Braze Export > Purchases API
The Export > Purchases API from Braze — 3 operation(s) for export > purchases.
The Export > Purchases API from Braze — 3 operation(s) for export > purchases.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/braze-export-purchases-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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