Braze Export > Purchases API

The Export > Purchases API from Braze — 3 operation(s) for export > purchases.

OpenAPI Specification

braze-export-purchases-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Braze Export > Purchases API
  description: 'The Braze and Radar integration allows you to access sophisticated location-based campaign triggers and user profile enrichment with rich, first-party location data. When Radar geofence or trip tracking events are generated, custom events and user attributes are sent to Braze in real-time. These events and attributes can then be used to trigger location-based campaigns, power last-mile pickup and delivery operations, monitor fleet and shipping logistics, or build user segments based on location patterns. '
  version: 1.0.0
servers:
- url: https://rest.iad-01.braze.com
  description: REST endpoint for instance US-01
- url: https://rest.iad-01.braze.com
  description: REST endpoint for instance US-01
- url: https://rest.iad-02.braze.com
  description: REST endpoint for instance US-02
- url: https://rest.iad-03.braze.com
  description: REST endpoint for instance US-03
- url: https://rest.iad-04.braze.com
  description: REST endpoint for instance US-04
- url: https://rest.iad-05.braze.com
  description: REST endpoint for instance US-05
- url: https://rest.iad-06.braze.com
  description: REST endpoint for instance US-06
- url: https://rest.iad-08.braze.com
  description: REST endpoint for instance US-08
- url: https://rest.fra-01.braze.eu
  description: REST endpoint for instance EU-01
- url: https://rest.fra-02.braze.eu
  description: REST endpoint for instance EU-02
security:
- BearerAuth: []
tags:
- name: Export > Purchases
paths:
  /purchases/product_list:
    get:
      tags:
      - Export > Purchases
      summary: Export Product IDs
      description: "> Use this endpoint to return a paginated lists of product IDs. \n  \n\nTo use this endpoint, youll need to generate an API key with the `purchases.product_list` permission.\n\n## Rate limit\n\nFor customers who onboarded with Braze on or after September 16, 2021, we apply a shared rate limit of 1,000 requests per hour to this endpoint. This rate limit is shared with the `/events/list` endpoint, as documented in [API rate limits](https://www.braze.com/docs/api/api_limits/).\n\n## Response\n\n``` json\nContent-Type: application/json\nAuthorization: Bearer YOUR-REST-API-KEY\n{\n  \"products\": [\n    \"product_name\" (string), the name of the product\n  ],\n  \"message\": \"success\"\n}\n\n```\n\n> **Tip:** For help with CSV and API exports, visit [Export troubleshooting](https://www.braze.com/docs/user_guide/data_and_analytics/export_braze_data/export_troubleshooting/)."
      parameters:
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      - name: page
        in: query
        schema:
          type: integer
        description: '(Optional) Integer


          The page of your product list that you would like to view.'
        example: 1
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /purchases/quantity_series:
    get:
      tags:
      - Export > Purchases
      summary: Export Number of Purchases
      description: "> Use this endpoint to return the total number of purchases in your app over a time range. \n  \n\nTo use this endpoint, youll need to generate an API key with the `purchases.quantity_series` permission.\n\n## Rate limit\n\nFor customers who onboarded with Braze on or after September 16, 2021, we apply a shared rate limit of 1,000 requests per hour to this endpoint. This rate limit is shared with the `/events/list` endpoint, as documented in [API rate limits](https://www.braze.com/docs/api/api_limits/).\n\n## Example request\n\n```\ncurl --location --request GET 'https://rest.iad-01.braze.com/purchases/quantity_series?length=100' \\\n--header 'Authorization: Bearer YOUR-REST-API-KEY'\n\n```\n\n## Response\n\n``` json\nContent-Type: application/json\nAuthorization: Bearer YOUR-REST-API-KEY\n{\n  \"message\": (required, string) the status of the export, returns 'success' when completed without errors,\n  \"data\" : [\n    {\n      \"time\" : (string) the date as ISO 8601 date,\n      \"purchase_quantity\" : (int) the number of items purchased in the time period\n      },\n    ...\n  ]\n}\n\n```\n\n> **Tip:** For help with CSV and API exports, visit [Export troubleshooting](https://www.braze.com/docs/user_guide/data_and_analytics/export_braze_data/export_troubleshooting/)."
      parameters:
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      - name: ending_at
        in: query
        schema:
          type: string
        description: '(Optional) Datetime (ISO 8601 string)

          Date on which the data series should end. Defaults to time of the request.'
        example: '2018-06-28T23:59:59-5:00'
      - name: length
        in: query
        schema:
          type: integer
        description: '(Required) Integer

          Maximum number of days before ending_at to include in the returned series. Must be between 1 and 100 (inclusive).'
        example: 100
      - name: unit
        in: query
        schema:
          type: integer
        description: '(Optional) String

          Unit of time between data points. Can be `day` or `hour`, defaults to `day`. '
        example: 14
      - name: app_id
        in: query
        schema:
          type: string
        description: '(Optional) String

          App API identifier retrieved from the Settings > Setup and Testing > API Keys to limit analytics to a specific app.'
        example: '{{app_identifier}}'
      - name: product
        in: query
        schema:
          type: string
        description: '(Optional) String

          Name of product to filter response by. If excluded, results for all apps will be returned.'
        example: name
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /purchases/revenue_series:
    get:
      tags:
      - Export > Purchases
      summary: Export Revenue Data by Time
      description: "> Use this endpoint to return the total money spent in your app over a time range. \n  \n\nTo use this endpoint, youll need to generate an API key with the `purchases.revenue_series` permission.\n\n## Rate limit\n\nFor customers who onboarded with Braze on or after September 16, 2021, we apply a shared rate limit of 1,000 requests per hour to this endpoint. This rate limit is shared with the `/events/list` endpoint, as documented in [API rate limits](https://www.braze.com/docs/api/api_limits/).\n\n## Example request\n\n```\ncurl --location --request GET 'https://rest.iad-01.braze.com/purchases/revenue_series?length=100' \\\n--header 'Authorization: Bearer YOUR-REST-API-KEY'\n\n```\n\n## Response\n\n``` json\nContent-Type: application/json\nAuthorization: Bearer YOUR-REST-API-KEY\n{\n  \"message\": (required, string) the status of the export, returns 'success' when completed without errors,\n  \"data\" : [\n    {\n      \"time\" : (string) the date as ISO 8601 date,\n      \"revenue\" : (int) amount of revenue for the time period\n      },\n    ...\n  ]\n}\n\n```\n\n> **Tip:** For help with CSV and API exports, visit [Export troubleshooting](https://www.braze.com/docs/user_guide/data_and_analytics/export_braze_data/export_troubleshooting/)."
      parameters:
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      - name: ending_at
        in: query
        schema:
          type: string
        description: '(Optional) Datetime (ISO 8601 string)

          Date on which the data series should end. Defaults to time of the request.'
        example: '2018-06-28T23:59:59-5:00'
      - name: length
        in: query
        schema:
          type: integer
        description: '(Required) Integer

          Maximum number of days before ending_at to include in the returned series. Must be between 1 and 100 (inclusive).'
        example: 100
      - name: unit
        in: query
        schema:
          type: integer
        description: '(Optional) String

          Unit of time between data points. Can be `day` or `hour`, defaults to `day`. '
        example: 14
      - name: app_id
        in: query
        schema:
          type: string
        description: '(Optional) String

          App API identifier retrieved from the Settings > Setup and Testing > API Keys to limit analytics to a specific app.'
        example: '{{app_identifier}}'
      - name: product
        in: query
        schema:
          type: string
        description: '(Optional) String

          Name of product to filter response by. If excluded, results for all apps will be returned.'
        example: name
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  responses:
    Forbidden:
      description: 403 Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: 401 Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: 429 Rate Limited
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: 404 Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: 400 Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: 500 Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
        errors:
          type: array
          items:
            type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer