Braze API Endpoints

Braze API Endpoints

The collection below list interactive documentation with prewritten examples for all of Braze's API endpoints. For more detailed explanations of our API, please read our API overview. You can also check out our Postman Collection.
More information: https://helloreverb.com
Contact Info: hello@helloreverb.com
Version: 1.0
All rights reserved
http://apache.org/licenses/LICENSE-2.0.html

Access

  1. APIKey KeyParamName:api_key KeyInQuery:true KeyInHeader:false

Methods

[ Jump to Models ]

Table of Contents

EmailSync

EmailTemplates

Export

Messaging

SubscriptionGroups

UserData

EmailSync

Up
post /email/status
Changing Email Subscription Status Example (changingEmailSubscriptionStatusExample)
Example of using the /email/status endpoint to change user email subscription state. The body of the request needs to include your "api_key", the "email" address to be changed, and a valid "subscription_state": either "subscribed", "unsubscribed", or "opted_in".

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
get /email/unsubscribes
Querying All Email Unsubscribes Example (queryingAllEmailUnsubscribesExample)
Example of using the /email/unsubscribed endpoint to return emails that have unsubscribed during the time period from &quot;start_date&quot; to &quot;end_date&quot;. You must provide either an email or a start_date and an end_date. Additional parameters can be passed to determine how many records should be returned (&quot;limit&quot;) or where we should begin the list of unsubscribed (&quot;offset&quot;). If there are more than &quot;limit&quot; number of records to return, you should call this endpoint again, adding to the &quot;offset&quot; parameter until you are returned less than &quot;limit&quot; number of unsubscribe records (&quot;limit&quot;defaults at 100 and can be no higher than 500).

Query parameters

api_key (required)
Query Parameter — Your App Group REST API key as found in your Developer Console.
start_date (required)
Query Parameter — Start date of the range to retrieve unsubscribes, must be earlier than end_date. This is treated as midnight in UTC time by the API. YYYY-MM-DD format
end_date (required)
Query Parameter — End date of the range to retrieve unsubscribes. This is treated as midnight in UTC time by the API. YYYY-MM-DD format
limit (optional)
Query Parameter — format: int32
offset (optional)
Query Parameter — format: int32
sort_direction (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /email/bounce/remove
Removing Hard Bounced Email Example (removingHardBouncedEmailExample)
Example of using the /email/bounce/remove endpoint to remove email addresses from the hard bounce list maintained by Braze and your email provider. Email addresses can be included on the hard bounce list if they were previously invalid while we tried to send them a message.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /email/spam/remove
Removing Spam List Email Example (removingSpamListEmailExample)
Use to remove email addresses from the spam report lists maintained by Braze and your email provider. &quot;email&quot; can be a string, or an array of up to 50 email addresses to modify.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

EmailTemplates

Up
post /templates/email/create
Create an Email Template (createEmailTemplate)
Use the endpoints below to create email templates in your Braze account. These templates will be available on the Templates and Media page. The response from this endpoint will include a field for email_template_id, which can be used to update the template in subsequent API calls.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Query parameters

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
get /templates/email/list
List Available Email Template (listEmailTemplates)
Use the endpoints below to get a list of available templates in your Braze account.

Query parameters

api_key (required)
Query Parameter — Your App Group REST API key as found in your Developer Console.
modified_after (optional)
Query Parameter — Filters to retrieve only those templates updated at or after the given time.
modified_before (optional)
Query Parameter — Filters to retrieve only those templates updated at or before the given time.
limit (optional)
Query Parameter — The maximum number of templates to retrieve, default to 100. If not provided, maximum acceptable value is 1000. Must be a positive number. format: int32
offset (optional)
Query Parameter — The number of templates to skip before returning rest of the templates that fit the search criteria. Must be a positive number. format: int32

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
get /templates/email/info
See Email Template Information (seeEmailTemplateInformation)
Use to get information on your available email templates.

Query parameters

api_key (required)
Query Parameter — Your App Group REST API key as found in your Developer Console.
email_template_id (required)
Query Parameter — The ID of your already existing email template.

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /templates/email/update
Update an Email Template (updateEmailTemplate)
Use the endpoints below to update email templates on the Braze dashboard. You can access an email template’s <code>email_template_id</code> by navigating to it on the Templates and Media page. The email template creation API endpoint will also return an <code>email_template_id</code> reference. All fields other than the <code>api_key</code> and <code>email_template_id</code> are optional, but you must specify at least one field to update.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Export

Up
get /campaigns/data_series
Campaign Export - Analytics Example (campaign export analytics example)
Example of using the /campaigns/data_series endpoint to retrieve daily time-series data for a given campaign. Data returned includes how many messages were sent, opened, clicked, converted, etc., broken down by message channel. The parameters &quot;length&quot; and &quot;ending_at&quot; determine the range of time that we will return data for. The parameter &quot;length&quot; controls how many days of data will be returned (maximum of 100). &quot;ending_at&quot; (DateTime ISO 8601 string) controls what the last day returned ought to be.

Query parameters

campaign_id (required)
Query Parameter
length (required)
Query Parameter — format: int32
ending at (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /campaigns/details
Campaign Export - Details Example (campaign export details example)
Example of using the /campaigns/details endpoint to request details for a given campaign. Data returned includes &quot;created_at&quot;, &quot;updated_at&quot;, &quot;name&quot;, &quot;schedule_type&quot; (triggered, time-based, etc.), &quot;channels&quot; (message types included in the campaign), &quot;first_sent&quot;, &quot;last_sent&quot;, &amp; &quot;tags&quot; (dashboard user-specified tags applied to this campaign).

Query parameters

campaign_id (required)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /campaigns/list
Campaign Export - List Example (campaign export list example)
Example of using the /campaigns/list endpoint to retrieve a list of all campaigns set up in the Braze dashboard for a given app group. Each response returns data for up to 100 campaigns that are sorted by time of creation (oldest to newest by default). The &quot;page&quot; parameter can be used to retrieve additional sets of campaigns (up to 100 per page). By default, archived campaigns are not included unless the &quot;include_archived&quot; parameter is set to true. Paused campaigns are returned by default. The &quot;sort_direction&quot; parameter can be set to &quot;desc&quot; to sort by creation time from newest to oldest, or &quot;asc&quot; to sort by creation from oldest to newest.

Query parameters

page (optional)
Query Parameter — format: int32
include_archived (optional)
Query Parameter
sort_direction (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /canvas/data_series
Canvas Export - Data Series Example (canvas export data series example)
Example request for using the /canvas/data_series endpoint to retrieve daily time-series data for a given Canvas. The time frame of data that should be returned is specified by including the required &quot;ending_at&quot; parameter and either &quot;length&quot; (1-14, denotes how many days of data should be returned) or &quot;starting_at&quot; (a date on which we should start the time series) in DateTime ISO 8601 format. There are three other parameters which default to false that determine what type of data should be returned: &quot;include_variant_breakdown&quot; (controls whether we should return aggregated stats for an entire Canvas variant), &quot;include_step_breakdown&quot; (controls if we return per-step breakdowns), and &quot;include_deleted_step_data&quot; (controls if we return data for steps that have been deleted).

Query parameters

canvas_id (required)
Query Parameter
ending_at (required)
Query Parameter — Example: 2018-06-28T23:59:59-5:00
length (optional)
Query Parameter — format: int32
include_variant_breakdown (optional)
Query Parameter
include_step_breakdown (optional)
Query Parameter
include_deleted_step_data (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /canvas/data_summary
Canvas Export - Data Summary Example (canvas export data summary example)
Example request to the /canvas/data_summary endpoint that returns rollups of time-series data for a given Canvas, providing a concise summary of a Canvas' results. The time frame of data that should be returned is specified by including the required &quot;ending_at&quot; parameter and either &quot;length&quot; (1-14, denotes how many days of data should be returned) or &quot;starting_at&quot; in the format DateTime ISO 8601 (a date on which we should start the time series). There are three other parameters which default to false that determine what type of data should be returned: &quot;include_variant_breakdown&quot; (controls whether we should return aggregated stats for an entire Canvas variant), &quot;include_step_breakdown&quot; (controls if we return per-step breakdowns), and &quot;include_deleted_step_data&quot; (controls if we return data for steps that have been deleted).

Query parameters

canvas_id (required)
Query Parameter
ending_at (required)
Query Parameter — Example: 2018-06-28T23:59:59-5:00
length (optional)
Query Parameter — format: int32
include_variant_breakdown (optional)
Query Parameter
include_step_breakdown (optional)
Query Parameter
include_deleted_step_data (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /canvas/details
Canvas Export - Details Example (canvas export details example)
Example of using the /canvas/details endpoint to return details about a given Canvas. Data returned includes &quot;created_at&quot;, &quot;updated_at&quot;, &quot;name&quot;, and other fields.

Query parameters

canvas_id (required)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /canvas/list
Canvas Export - List Example (canvas export list example)
Example of using the /canvas/list endpoint to retrieve a list of Canvases set up in the Braze dashboard for a given app group. Responses will include up to 100 Canvases per page. The &quot;page&quot; parameter can be set to return additional sets of up to 100 Canvases. Archived Canvases will not be included by default unless &quot;include_archived&quot; is set to true. Stopped Canvases will be included. The &quot;sort_direction&quot; parameter can be set to &quot;desc&quot; to return the list sorted by time of creation from newest to oldest, or &quot;asc&quot; to sort from oldest to newest (default).

Query parameters

page (optional)
Query Parameter — format: int32
include_archived (optional)
Query Parameter
sort_direction (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /events/list
Custom Events Analytics Export - List Example (custom events analytics export list example)
Example request to the /events/list endpoint which returns a list of custom events that have been recorded for a particular app group. Returns up to 250 events per page. The &quot;page&quot; parameter can be used to iterate through all events in groups of 250 events.

Query parameters

page (optional)
Query Parameter — format: int32

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /events/data_series
Custom Events Analytics Export - Series Example (custom events analytics export series example)
Example request to the /events/data_series endpoint which returns daily time-series data for how many times a custom event was recorded for a given app group. The parameters &quot;app_id&quot; and &quot;segment_id&quot; can be specified to pull data just for custom event records that occurred for a particular app or by members of a particular segment. The &quot;unit&quot; parameter can be specified to break data out by &quot;hour&quot; or &quot;day&quot; (defaults to &quot;day&quot;). The &quot;ending_at&quot; parameter must follow the format DateTime ISO 8601 string format, and is the point in time when the data series should end (defaults to time of the request).

Query parameters

event (required)
Query Parameter
length (required)
Query Parameter — format: int32
unit (optional)
Query Parameter
ending_at (optional)
Query Parameter — Example: 2018-06-28T23:59:59-5:00
app_id (optional)
Query Parameter
segment_id (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /kpi/dau/data_series
KPI Export - DAU Example (kpi export dau example)
Example request to the /kpi/dau/data_series endpoint which returns daily time-series data on the number of DAU for a given app group. The &quot;app_id&quot; parameter can be specified using an app's API identifier to return DAU stats for that particular app.The &quot;ending_at&quot; parameter must follow the DateTime ISO 8601 string format, and is the point in time when the data series should end (defaults to time of the request).

Query parameters

length (required)
Query Parameter — format: int32
ending_at (optional)
Query Parameter — example: 2018-06-28T23:59:59-5:00
app_id (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /kpi/mau/data_series
KPI Export - MAU Example (kpi export mau example)
Example request to the /kpi/mau/data_series endpoint which returns daily time-series data on the number of MAU for a given app group. The &quot;app_id&quot; parameter can be specified using an app's API identifier to return MAU stats for that particular app. The &quot;ending_at&quot; parameter must follow the DateTime ISO 8601 string format, and is the point in time when the data series should end (defaults to time of the request).

Query parameters

length (required)
Query Parameter — format: int32
ending at (optional)
Query Parameter — Example: 2018-06-29T04:59:59.0000000+00:00
app_id (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /kpi/new_users/data_series
KPI Export - New Users Example (kpi export new users example)
Example request to the /kpi/new_users/data_series endpoint which returns daily time-series data on the number of new users for a given app group. The &quot;app_id&quot; parameter can be specified using an app's API identifier to return new users' stats for that particular app.The &quot;ending_at&quot; parameter must follow the DateTime ISO 8601 string format, and is the point in time when the data series should end (defaults to time of the request).

Query parameters

length (required)
Query Parameter — format: int32
ending_at (optional)
Query Parameter — Example: 2018-06-28T23:59:59-5:00
app_id (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /kpi/uninstalls/data_series
KPI Export - Uninstalls Example (kpi export uninstalls example)
Example request to the /kpi/uninstalls/data_series endpoint which returns daily time-series data on the number of uninstalls for a given app group. The &quot;app_id&quot; parameter can be specified using an app's API identifier to return uninstall stats for that particular app. The &quot;ending_at&quot; parameter must follow the DateTime ISO 8601 string format, and is the point in time when the data series should end (defaults to time of the request).

Query parameters

length (required)
Query Parameter — format: int32
ending_at (optional)
Query Parameter
app_id (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /purchases/product_list
Revenue Analytics Export - List Example (revenue analytics export list example)
Example request to the /purchases/product_list endpoint which returns a list of products that have been recorded for a particular app group. Returns up to 250 products per page. The &quot;page&quot; parameter can be used to iterate through all products in groups of 250 products, sorted alphabetically.

Query parameters

page (optional)
Query Parameter — format: int32

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /purchases/quantity_series
Revenue Analytics Export - Purchase Quantity Example (revenue analytics export purchase quantity example)
Example request to the /purchases/quantity_series endpoint which returns daily time-series data for how many purchases were recorded for a given app group. The parameter &quot;app_id&quot; can be specified to pull data just for purchase quantities that were recorded for a particular app. The &quot;product&quot; parameter can be specified to return purchase quantity data for a particular product. The &quot;unit&quot; parameter can be specified to break data out by &quot;hour&quot; or &quot;day&quot; (defaults to &quot;day&quot;). The &quot;ending_at&quot; parameter must follow the DateTime ISO 8601 string format, and is the point in time when the data series should end (defaults to time of the request).

Query parameters

length (required)
Query Parameter — format: int32
product (optional)
Query Parameter — Example: 20A
unit (optional)
Query Parameter
ending_at (optional)
Query Parameter — Example: 2014-12-10T23:59:59-5:00
app_id (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /purchases/revenue_series
Revenue Analytics Export - Series Example (revenue analytics export series example)
Example request to the /purchases/revenue_series endpoint which returns daily time-series data for how much revenue was recorded for a given app group. The parameter &quot;app_id&quot; can be specified to pull data just for revenue that was recorded for a particular app. The &quot;product&quot; parameter can be specified to return revenue data for a particular product. The &quot;unit&quot; parameter can be specified to break data out by &quot;hour&quot; or &quot;day&quot; (defaults to &quot;day&quot;). The ending_at parameter is the point in time in which the data series should end in DateTime ISO 8601 format (defaults to time of the request).

Query parameters

length (required)
Query Parameter — format: int32
product (optional)
Query Parameter — Example: 20A
unit (optional)
Query Parameter
ending_at (optional)
Query Parameter
app_id (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /segments/data_series
Segment Export - Analytics Example (segment export analytics example)
Example of using the /segments/data_series endpoint to return daily time-series data about the membership size of a given segment. The parameters &quot;api_key&quot; and &quot;segment_id&quot; (segment api identifier) are required. Length is the max number of days before ending_at to include in the returned series; must be between 1 and 100 inclusive, and &quot;ending_at&quot; must be in DateTime ISO 8601 string format.

Query parameters

segment_id (required)
Query Parameter
length (required)
Query Parameter — Max number of days before ending_at to include in the returned series - must be between 1 and 100 inclusive format: int32
ending_at (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /segments/details
Segment Export - Details Example (segment export details example)
Example of using the /segments/details endpoint to return details about a given segment. Details that will be returned are &quot;created_at&quot;, &quot;updated_at&quot;, &quot;name&quot;, &quot;description&quot; (human-readable description of filters), and &quot;tags&quot; (dashboard user-created tags applied to this segment).

Query parameters

segment_id (required)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /segments/list
Segment Export - List Example (segment export list example)
Example request to return a list of segments from the /segments/list endpoint. There are two optional parameters in this request: &quot;page&quot;, which determines the set of segments returned (up to 100 per response), and &quot;sort_direction&quot;, which can take the value &quot;desc&quot; to sort by creation time from newest to oldest, or &quot;asc&quot; to sort from oldest to newest.

Query parameters

page (optional)
Query Parameter — The page of segments to return, defaults to 0 (returns the first set of up to 100) format: int32
sort_direction (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
get /sessions/data_series
Session Analytics Export - Session Series Example (session analytics export session series example)
Example request to the /sessions/data_series endpoint which returns daily time-series data on the number of sessions for a given app group. The &quot;app_id&quot; parameter can be specified using an app's API identifier to return session stats for that particular app. The &quot;segment_id&quot; parameter can be specified using a segment's API identifier to return session stats for a users in a particular segment. The &quot;ending_at&quot; parameter must follow the DateTime ISO 8601 string format, and is the point in time when the data series should end (defaults to time of the request).

Query parameters

length (required)
Query Parameter — format: int32
unit (optional)
Query Parameter
ending_at (optional)
Query Parameter — Example: 2018-06-28T23:59:59-5:00
app_id (optional)
Query Parameter
segment_id (optional)
Query Parameter

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
post /users/export/segment
User Export - Segment ID Example (user export segment id example)
Example of exporting all users in a segment for a particular app group using the /users/export/segment endpoint. This example request includes the optional &quot;fields_to_export&quot; field which allows you to specify what specific data fields should be returned instead of all user data. Individual custom attributes cannot be exported. However, all custom attributes can be exported by including ‘custom_attributes’ in the “fields_to_export” array (e.g. [‘first_name’, ‘email’, ‘custom_attributes’]).

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

AccessDenied

AWS Error: Your exported file does not exist yet and is currently being constructed. Try the link again later.

Up
post /users/export/ids
User Export - User IDs Example (user export user ids example)
Example of exporting user data documents by specifying individual user IDs using the /users/export/ids endpoint. This endpoint allows you to export data from any user profile by specifying a form of user identifier. Up to 75 external_ids or user_aliases can be included in a single request. Should you want to specify device_id or email_address, only one of either identifier can be included per request.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Messaging

Up
post /campaigns/trigger/schedule/create
Create Scheduled API Triggered Campaign Example (createScheduledApiTriggeredCampaignExample)
Example of scheduling a future send of a campaign set up in the dashboard with API-Triggered Delivery. It is possible to specify future scheduled messages to be sent in users' local time or using our Intelligent Delivery calculated optimal time with the &quot;in_local_time&quot; or &quot;at_optimal_time&quot; parameters in the &quot;schedule&quot; object (&quot;in_local_time&quot; is featured in this example). This example specifies a single user in the request with some properties that can be templated into the message using Liquid (e.g. {{api_trigger_properties.${some_property}}} will populate the value of &quot;some_property&quot; into the message). Uses the /campaigns/trigger/schedule/create endpoint.The parameter &quot;time&quot; under &quot;schedule&quot; is required (DateTime ISO 8601 format). When sending a message to a segment or campaign audience using an API endpoint, Braze requires you to explicitly define whether or not your message is a “broadcast” to a large group of users by including a “broadcast” boolean in the API call. That is, if you intend to send an API message to the entire segment that a campaign or Canvas targets, you must include “broadcast: true” in your API call. If the “broadcast” flag is not set to true and an explicit list of recipients it not provided, the API endpoint will return an error. Similarly, including “broadcast: true” and providing a recipient list will return an error. The “broadcast” flag is required in order to protect against accidental sends to large groups of users. In this example, there is a specific recipient and therefore broadcast does not have to be stated as it will default to false.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /canvas/trigger/schedule/create
Create Scheduled API Triggered Canvas Example (createScheduledApiTriggeredCanvasExample)
Example of scheduling a future send of a canvas set up in the dashboard with API-Triggered Delivery.The paramters &quot;api_key&quot; and &quot;canvas_id&quot; are required. You can pass in canvas_entry_properties that will be templated into the messages sent by the first steps of the Canvas. When sending a message to a segment or campaign audience using an API endpoint, Braze requires you to explicitly define whether or not your message is a “broadcast” to a large group of users by including a “broadcast” boolean in the API call. That is, if you intend to send an API message to the entire segment that a campaign or Canvas targets, you must include “broadcast: true” in your API call. If the “broadcast” flag is not set to true and an explicit list of recipients it not provided, the API endpoint will return an error. Similarly, including “broadcast: true” and providing a recipient list will return an error. The “broadcast” flag is required in order to protect against accidental sends to large groups of users.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /messages/schedule/create
Create Scheduled Message Example (createScheduledMessageExample)
Example of scheduling a message using Braze's API that is not associated with any campaign and will be sent at some point in the future. It is possible to specify future scheduled messages to be sent in users' local time or using our Intelligent Delivery calculated optimal time with the &quot;in_local_time&quot; or &quot;at_optimal_time&quot; parameters in the &quot;schedule&quot; object (&quot;in_local_time&quot; is featured in this example). This uses the /messages/schedule/create endpoint and can use our API Campaigns (not to be confused with API-Triggered Campaigns) feature to track analytics. The parameter &quot;time&quot; under &quot;schedule&quot; is required (DateTime ISO 8601 format).

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /sends/id/create
Create Send IDs for Message Send Tracking (createSendIdsForMessageSendTracking)
An example of Braze’s Send Identifier, which adds the ability to send messages and track message performance entirely programmatically, without campaign creation for each send. Using the Send Identifier to track and send messages is useful if you are planning to programmatically generate and send content. The daily maximum number of custom send identifiers that can be created via this endpoint for a given app group is 100. Each send id - campaign id combination that you create will count towards your daily limit.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
get /messages/scheduled_broadcasts
Get Upcoming Scheduled Campaigns and Canvases (getUpcomingScheduledCampaignsAndCanvases)
You can view a JSON list of upcoming and scheduled Campaigns and Canvases using the following information and parameters. The endpoint will return information about scheduled Campaigns and entry Canvases between now and the designated end_time (ISO 8601 format) specified in the request. Daily, recurring messages will only appear once with their next occurrence. Results returned in this endpoint are only for Campaigns and Canvases created and scheduled in Braze.

Query parameters

end_time (required)
Query Parameter — example: 2018-09-01T04:00:00.0000000+00:00

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /campaigns/trigger/send
Send API Triggered Delivery Campaign Example (sendApiTriggeredDeliveryCampaignExample)
Example of sending a campaign set up in the dashboard with API-Triggered Delivery. This example specifies a single user in the request with some properties that can be templated into the message using Liquid (e.g. {{api_trigger_properties.${some_property}}} will populate the value of &quot;some_property&quot; into the message). Uses the /campaigns/trigger/send endpoint. Either &quot;external_user_id&quot; OR &quot;user_aliases&quot; is required, requests must only specify one.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /canvas/trigger/send
Send API Triggered Delivery Canvas Example (sendApiTriggeredDeliveryCanvasExample)
Example of sending a canvas set up in the dashboard with API-Triggered Delivery. This example specifies a single user in the request with some properties that can be templated into the message using Liquid (e.g. {{api_trigger_properties.${some_property}}} will populate the value of &quot;some_property&quot; into the message). Uses the /canvas/trigger/send endpoint. Either &quot;external_user_id&quot; OR &quot;user_aliases&quot; is required, requests must only specify one. The recipient array may contain up to 75 objects, with each one containing a single &quot;external_user_id&quot; string and &quot;canvas_entry_properties&quot; object.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /messages/send
Send Message Immediately Example (sendMessageImmediatelyExample)
Example of sending a message using Braze's API that is not associated with any campaign. This uses the /messages/send endpoint and can use our API Campaigns (not to be confused with API-Triggered Campaigns) feature to track analytics.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /campaigns/trigger/schedule/update
Update Scheduled API Triggered Campaign Send Example (updateScheduledApiTriggeredCampaignSendExample)
Example of updating a scheduled send for an API-Triggered Campaign. Successful requests to /campaigns/trigger/schedule/create will return a &quot;schedule_id&quot; within the response. This can be saved for use with this /campaigns/trigger/schedule/update endpoint or the /campaigns/trigger/schedule/delete endpoint. The /campaigns/trigger/schedule/update endpoint can be used to update the scheduled time for a message, message data is changed from within the Braze dashboard.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /canvas/trigger/schedule/update
Update Scheduled API Triggered Campaign Send Example (updateScheduledApiTriggeredCanvasSendExample)
Example of updating a scheduled send for an API-Triggered Campaign. Successful requests to /canvas/trigger/schedule/create will return a &quot;schedule_id&quot; within the response. This can be saved for use with this /campaigns/trigger/schedule/update endpoint or the /canvas/trigger/schedule/delete endpoint. The /canvas/trigger/schedule/update endpoint can be used to update the scheduled time for a message, message data is changed from within the Braze dashboard.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /messages/schedule/update
Update Scheduled Message Example (updateScheduledMessageExample)
Example of updating a messsage that was scheduled to be sent using our /messages/schedule/create endpoint. Successful requests to /messages/schedule/create will return a &quot;schedule_id&quot; within the response. This can be saved for use with this /messages/schedule/update endpoint or the /messages/schedule/delete endpoint. The /messages/schedule/update endpoint can be used to update the scheduled time for a message, the data contained in the message, or both (seen in the example below).

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

SubscriptionGroups

Up
get /subscription/user/status
Get Users' Subscription Groups (getUsersSubscriptionGroups)
Use this to list and get the current subscription groups of a certain user.

Query parameters

api_key (required)
Query Parameter — Your App Group REST API key as found in your Developer Console.
external_id (required)
Query Parameter — The External Id (<code>external_id</code>) of the user (must include at least one and at most 50 <code>external_ids</code>).
email (required)
Query Parameter — The email address of the user; must include at least one address and at most 50 addresses.
limit (optional)
Query Parameter — format: int32
offset (optional)
Query Parameter — format: int32

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
get /subscription/status/get
Get Users' Subscription Status (getUsersSubscriptionStatus)
Use the endpoints below to get the subscription state of a user in a subscription group. These groups will be available on the Subscription Group page. The response from this endpoint will include a 0 (subscribed), 1 (unsubscribed), or null value for the specific subscription group requested in the API call. This can be used to update the subscription group state in subsequent API calls or to be displayed on a hosted web page.

Query parameters

api_key (required)
Query Parameter — Your App Group REST API key as found in your Developer Console.
external_id (optional)
Query Parameter — The External Id (<code>external_id</code>) of the user (must include at least one and at most 50 <code>external_ids</code>). Either the user's <code>external_id</code> or the <code>email</code> is required.
email (optional)
Query Parameter — The email address of the user; must include at least one address and at most 50 addresses. Either the user's <code>external_id</code> or the <code>email</code> is required.
subscription_group_id (required)
Query Parameter — The ID of your Subscription Group. Copied from the Subscription Groups page of your Braze account.

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /subscription/status/set
Updating Users' Subscription State (setUsersSubscriptionStatus)
Use the endpoints below to update the subscription state of a user in your Braze account. You can access a subscription groups <code>subscription_group_id</code> by navigating to it on the Subscription Group page.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

UserData

Up
post /users/alias/new
New User Alias Request Example (newUserAliasRequestExample)
Example of creating a new user alias for an existing identified user. You can add up to 50 user aliases per request. The parameters api_key and user_aliases are required. User_aliases are an array of New User Alias Object.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /users/track
User Track - Attributes Example (user track – attributes example)
Example of submitting user attributes with all of the different data types we support to the /users/track endpoint. An API request with any fields in the Attributes Object will create or update an attribute of that name with the given value on the specified user profile. To remove a profile attribute, set it to null. Some fields, such as external_id and user_alias, cannot be removed once added to a user profile. If you wish to add or remove custom attributes from an array, use the formatting &quot;my_array_custom_attribute:{&quot;add or remove&quot;: [&quot;value you are adding or removing&quot;]}. The parameter my_custom_attributes can be stored as dates (ISO 8601 format), strings, floats, boolean, integers, and array.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /users/track#events
User Track - Events Example (user track – events example)
Example of submitting user attributes with all of the different data types we support to the /users/track endpoint. An API request with any fields in the Attributes Object will create or update an attribute of that name with the given value on the specified user profile. To remove a profile attribute, set it to null. Some fields, such as external_id and user_alias cannot be removed once added to a user profile. If you wish to add or remove custom attributes from an array use the formatting &quot;my_array_custom_attribute:{&quot;add or remove&quot;: [&quot;value you are adding or removing&quot;]}.The parameter my_custom_attributes can be stored as dates (ISO 8601 format), strings, floats, boolean, integers, and array.

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Up
post /users/delete
User Delete Example (userDeleteExample)
Example of a request to delete a user profile from the specified app group using the /users/delete endpoint. Either &quot;external_ids&quot; OR &quot;braze_ids&quot; are accepted, but only one can be (if both &quot;external_id&quot; and &quot;braze_id&quot; are provided, then there will be an error)

Consumes

This API call consumes the following media types via the Content-Type request header:
  • application/json

Responses

200

Sometimes seen as <code>success</code>, this code indicates that the request was successfully made.

Models

[ Jump to Methods ]

Table of Contents