Braze Export > Purchases API

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

Operations 3

GET /purchases/product_list Export Product IDs #
GET /purchases/quantity_series Export Number of Purchases #
GET /purchases/revenue_series Export Revenue Data by Time #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/braze-export-purchases-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

braze-export-purchases-api-openapi.yml Raw ↑
openapi: 3.2.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.
  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.


        To use this endpoint, youll need to generate an API key with the `purchases.product_list` permission.


        ## Rate limit


        For 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.


        ## Response


        ``` json

        Content-Type: application/json

        Authorization: Bearer YOUR-REST-API-KEY

        {

        "products": [

        "product_name" (string), the name of the product

        ],

        "message": "success"

        }


        ```


        > **Tip:** For help with CSV and API exports, visit 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'
      operationId: getPurchasesProductList
      x-operation-id-source: derived
  /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.


        To use this endpoint, youll need to generate an API key with the `purchases.quantity_series` permission.


        ## Rate limit


        For 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.


        ## Example request


        ```

        curl --location --request GET ''https://rest.iad-01.braze.com/purchases/quantity_series?length=100'' \

        --header ''Authorization: Bearer YOUR-REST-API-KEY''


        ```


        ## Response


        ``` json

        Content-Type: application/json

        Authorization: Bearer YOUR-REST-API-KEY

        {

        "message": (required, string) the status of the export, returns ''success'' when completed without errors,

        "data" : [

        {

        "time" : (string) the date as ISO 8601 date,

        "purchase_quantity" : (int) the number of items purchased in the time period

        },

        ...

        ]

        }


        ```


        > **Tip:** For help with CSV and API exports, visit 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'
      operationId: getPurchasesQuantitySeries
      x-operation-id-source: derived
  /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.


        To use this endpoint, youll need to generate an API key with the `purchases.revenue_series` permission.


        ## Rate limit


        For 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.


        ## Example request


        ```

        curl --location --request GET ''https://rest.iad-01.braze.com/purchases/revenue_series?length=100'' \

        --header ''Authorization: Bearer YOUR-REST-API-KEY''


        ```


        ## Response


        ``` json

        Content-Type: application/json

        Authorization: Bearer YOUR-REST-API-KEY

        {

        "message": (required, string) the status of the export, returns ''success'' when completed without errors,

        "data" : [

        {

        "time" : (string) the date as ISO 8601 date,

        "revenue" : (int) amount of revenue for the time period

        },

        ...

        ]

        }


        ```


        > **Tip:** For help with CSV and API exports, visit 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'
      operationId: getPurchasesRevenueSeries
      x-operation-id-source: derived
components:
  responses:
    Unauthorized:
      description: 401 Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: 400 Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: 404 Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: 403 Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: 500 Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: 429 Rate Limited
      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