Braze Export > Canvas API
The Export > Canvas API from Braze — 4 operation(s) for export > canvas.
The Export > Canvas API from Braze — 4 operation(s) for export > canvas.
openapi: 3.0.0
info:
title: Braze Export > Canvas 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 > Canvas
paths:
/canvas/data_series:
get:
tags:
- Export > Canvas
summary: Export Canvas Data Series Analytics
description: "> Use this endpoint to export time series data for a Canvas. \n \n\nTo use this endpoint, youll need to generate an API key with the `canvas.data_series` permission.\n\n## Rate limit\n\nWe apply the default Braze rate limit of 250,000 requests per hour to this 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 \"data\": {\n \"name\": (string) Canvas name,\n \"stats\": [\n {\n \"time\": (string) date as ISO 8601 date,\n \"total_stats\": {\n \"revenue\": (float),\n \"conversions\": (int),\n \"conversions_by_entry_time\": (int),\n \"entries\": (int)\n },\n \"variant_stats\": (optional) {\n \"00000000-0000-0000-0000-0000000000000\": (API identifier for variant) {\n \"name\": (string) name of variant,\n \"revenue\": (int),\n \"conversions\": (int),\n \"conversions_by_entry_time\": (int),\n \"entries\": (int)\n },\n ... (more variants)\n },\n \"step_stats\": (optional) {\n \"00000000-0000-0000-0000-0000000000000\": (API identifier for step) {\n \"name\": (string) name of step,\n \"revenue\": (float),\n \"conversions\": (int),\n \"conversions_by_entry_time\": (int),\n \"messages\": {\n \"email\": [\n {\n \"sent\": (int),\n \"opens\": (int),\n \"unique_opens\": (int),\n \"clicks\": (int),\n ... (more stats)\n }\n ],\n ... (more channels)\n }\n },\n ... (more steps)\n }\n },\n ... (more stats by time)\n ]\n },\n \"message\": (required, string) the status of the export, returns 'success' when completed without errors\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: canvas_id
in: query
schema:
type: string
description: '(Required) String
See [Canvas API Identifier](https://www.braze.com/docs/api/identifier_types/).'
example: '{{canvas_id}}'
- name: ending_at
in: query
schema:
type: string
description: '(Required) Datetime ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string)
Date on which the data export should end. Defaults to time of the request.'
example: '2018-05-30T23:59:59-5:00'
- name: starting_at
in: query
schema:
type: string
description: "(Optional*) Datetime ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string) \n\nDate on which the data export should begin.\n\n*Either `length` or `starting_at` is required."
example: '2018-05-28T23:59:59-5:00'
- name: length
in: query
schema:
type: integer
description: '(Optional*) String
Maximum number of days before `ending_at` to include in the returned series. Must be between 1 and 14 (inclusive).
*Either `length` or `starting_at` is required.'
example: 10
- name: include_variant_breakdown
in: query
schema:
type: boolean
description: '(Optional) Boolean
Whether or not to include variant stats (defaults to false).'
example: true
- name: include_step_breakdown
in: query
schema:
type: boolean
description: '(Optional) Boolean
Whether or not to include step stats (defaults to false).'
example: true
- name: include_deleted_step_data
in: query
schema:
type: boolean
description: '(Optional) Boolean
Whether or not to include step stats for deleted steps (defaults to false).'
example: true
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'
/canvas/data_summary:
get:
tags:
- Export > Canvas
summary: Export Canvas Data Analytics Summary
description: "> Use this endpoint to export rollups of time series data for a Canvas, providing a concise summary of a Canvas results. \n \n\nTo use this endpoint, youll need to generate an API key with the `canvas.data_summary` permission.\n\n## Rate limit\n\nWe apply the default Braze rate limit of 250,000 requests per hour to this 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 \"data\": {\n \"name\": (string) Canvas name,\n \"total_stats\": {\n \"revenue\": (float),\n \"conversions\": (int),\n \"conversions_by_entry_time\": (int),\n \"entries\": (int)\n },\n \"variant_stats\": (optional) {\n \"00000000-0000-0000-0000-0000000000000\": (API identifier for variant) {\n \"name\": (string) name of variant,\n \"revenue\": (float),\n \"conversions\": (int),\n \"entries\": (int)\n },\n ... (more variants)\n },\n \"step_stats\": (optional) {\n \"00000000-0000-0000-0000-0000000000000\": (API identifier for step) {\n \"name\": (string) name of step,\n \"revenue\": (float),\n \"conversions\": (int),\n \"conversions_by_entry_time\": (int),\n \"messages\": {\n \"android_push\": (name of channel) [\n {\n \"sent\": (int),\n \"opens\": (int),\n \"influenced_opens\": (int),\n \"bounces\": (int)\n ... (more stats for channel)\n }\n ],\n ... (more channels)\n }\n },\n ... (more steps)\n }\n },\n \"message\": (required, string) the status of the export, returns 'success' when completed without errors\n}\n\n```\n\n> **Tip:** For help with CSV and API exports, visit [Export troubleshooting](https://desktop.postman.com/?desktopVersion=9.19.0&userId=16580579&teamId=409325)."
parameters:
- name: Authorization
in: header
schema:
type: string
example: Bearer {{api_key}}
- name: canvas_id
in: query
schema:
type: string
description: "(Required) String \n\nSee [Canvas API identifier](https://www.braze.com/docs/api/identifier_types/)."
example: '{{canvas_id}}'
- name: ending_at
in: query
schema:
type: string
description: '(Required) Datetime ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string)
Date on which the data export should end. Defaults to time of the request'
example: '2018-05-30T23:59:59-5:00'
- name: starting_at
in: query
schema:
type: string
description: '(Optional*) Datetime ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string)
Date on which the data export should begin.
*Either `length` or `starting_at` is required.'
example: '2018-05-28T23:59:59-5:00'
- name: length
in: query
schema:
type: integer
description: '(Optional*) Integer
Max number of days before `ending_at` to include in the returned series. Must be between 1 and 14 (inclusive).
*Either `length` or `starting_at` is required.'
example: 5
- name: include_variant_breakdown
in: query
schema:
type: boolean
description: '(Optional) Boolean
Whether or not to include variant stats (defaults to false).'
example: true
- name: include_step_breakdown
in: query
schema:
type: boolean
description: '(Optional) Boolean
Whether or not to include step stats (defaults to false).'
example: true
- name: include_deleted_step_data
in: query
schema:
type: boolean
description: '(Optional) Boolean
Whether or not to include step stats for deleted steps (defaults to false).'
example: true
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'
/canvas/details:
get:
tags:
- Export > Canvas
summary: Export Canvas Details
description: "> Use this endpoint to export metadata about a Canvas, such as the name, time created, current status, and more. \n \n\nTo use this endpoint, youll need to generate an API key with the `canvas.details` permission.\n\n## Rate limit\n\nWe apply the default Braze rate limit of 250,000 requests per hour to this endpoint, as documented in [API rate limits](https://www.braze.com/docs/api/api_limits/).\n\n## Response\n\nNote: All Canvas steps have a next_paths field, which is an array of `{name, next_step_id}` data. For full steps and Message steps, the `next_step_ids` field will be present, but will not contain data for other Canvas Flow steps.\n\n``` json\nContent-Type: application/json\nAuthorization: Bearer YOUR-REST-API-KEY\n{\n \"created_at\": (string) date created as ISO 8601 date,\n \"updated_at\": (string) date updated as ISO 8601 date,\n \"name\": (string) Canvas name,\n \"description\": (string) Canvas description,\n \"archived\": (boolean) whether this Canvas is archived,\n \"draft\": (boolean) whether this Canvas is a draft,\n \"schedule_type\": (string) type of scheduling action,\n \"first_entry\": (string) date of first entry as ISO 8601 date,\n \"last_entry\": (string) date of last entry as ISO 8601 date,\n \"channels\": (array of strings) step channels used with Canvas,\n \"variants\": [\n {\n \"name\": (string) name of variant,\n \"id\": (string) API identifier of the variant,\n \"first_step_ids\": (array of strings) API identifiers for first steps in variant,\n \"first_step_id\": (string) API identifier of first step in variant (deprecated in November 2017, only included if the variant has only one first step)\n },\n ... (more variations)\n ],\n \"tags\": (array of strings) tag names associated with the Canvas,\n \"steps\": [\n {\n \"name\": (string) name of step,\n \"id\": (string) API identifier of the step,\n \"next_step_ids\": (array of strings) API identifiers of steps following step,\n \"channels\": (array of strings) channels used in step,\n \"messages\": {\n \"message_variation_id\": (string) { // <=This is the actual id\n \"channel\": (string) channel type of the message (eg., \"email\"),\n ... channel-specific fields for this message, see Campaign Details Endpoint API Response for example message responses ...\n }\n }\n },\n ... (more steps)\n ],\n \"message\": (required, string) the status of the export, returns 'success' when completed without errors\n}\n\n```\n\n> **Tip:** For help with CSV and API exports, visit [Export troubleshooting](https://desktop.postman.com/?desktopVersion=9.19.0&userId=16580579&teamId=409325)."
parameters:
- name: Authorization
in: header
schema:
type: string
example: Bearer {{api_key}}
- name: canvas_id
in: query
schema:
type: string
description: '(Required) String
See [Canvas API Identifier](https://www.braze.com/docs/api/identifier_types/) '
example: '{{canvas_identifier}}'
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'
/canvas/list:
get:
tags:
- Export > Canvas
summary: Export Canvas List
description: "> Use this endpoint to export a list of Canvases, including the name, Canvas API identifier and associated tags. \n \n\nCanvases are returned in groups of 100 sorted by time of creation (oldest to newest by default).\n\nArchived Canvases will not be included in the API response unless the `include_archived` field is specified. Canvases that are stopped but not archived, however, will be returned by default.\n\nTo use this endpoint, youll need to generate an API key with the `canvas.list` permission.\n\n## Rate limit\n\nWe apply the default Braze rate limit of 250,000 requests per hour to this 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 \"canvases\" : [\n {\n \"id\" : (string) Canvas API Identifier,\n \"last_edited\": (ISO 8601 string) the last edited time for the message,\n \"name\" : (string) Canvas name,\n \"tags\" : (array) tag names associated with the Canvas,\n },\n ... (more Canvases)\n ],\n \"message\": (required, string) the status of the export, returns 'success' when completed without errors\n}\n\n```\n\n> **Tip:** For help with CSV and API exports, visit [Export troubleshooting](https://desktop.postman.com/?desktopVersion=9.19.0&userId=16580579&teamId=409325)."
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 Canvases to return, defaults to `0` (returns the first set of up to 100).'
example: 1
- name: include_archived
in: query
schema:
type: boolean
description: '(Optional) Boolean
Whether or not to include archived Canvases, defaults to `false`.'
- name: sort_direction
in: query
schema:
type: string
description: '(Optional) String
- Sort creation time from newest to oldest: pass in the value `desc`.
- Sort creation time from oldest to newest: pass in the value `asc`.
If `sort_direction` is not included, the default order is oldest to newest.'
example: desc
- name: last_edit.time[gt]
in: query
schema:
type: string
description: '(Optional) Datetime ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string)
Filters the results and only returns Canvases that were edited greater than the time provided till now. Format is `yyyy-MM-DDTHH:mm:ss`.'
example: '2020-06-28T23:59:59-5:00'
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