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