Create Scheduled Messages
The create schedule endpoint allows you to schedule a Campaign, Canvas, or other message to be sent at a designated time (up to 90 days in the future) and provides you with an identifier to reference that message for updates. If you are targeting a segment, a record of your request will be stored in the Developer Console after all scheduled messages have been sent.
Use this endpoint to send messages directly from the API.
Looking for the api_key
parameter?
As of May 2020, Braze has changed how we read API keys to be more secure. Now API keys must be passed as a request header, please see YOUR_REST_API_KEY
within the Example Request below.
Braze will continue to support the api_key
being passed through the request body and URL parameters, but will eventually be sunset. Please update your API calls accordingly.
Request Body
1
2
Content-Type: application/json
Authorization: Bearer YOUR_REST_API_KEY
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{
// You will need to include at least one of 'segment_id', 'external_user_ids', and 'audience'
// Including 'segment_id' will send to members of that segment
// Including 'external_user_ids' and/or 'user_aliases' will send to those users
// Including both a Segment and users will send to the provided users if they are in the segment
"broadcast": (optional, boolean) see Broadcast -- defaults to false on 8/31/17, must be set to true if users are not specified,
"external_user_ids": (optional, array of strings) see External User ID,
"user_aliases": (optional, array of User Alias Object) see User Alias,
"audience": (optional, Connected Audience Object) see Connected Audience,
"segment_id": (optional, string) see Segment Identifier,
"campaign_id": (optional, string) see Campaign Identifier,
"send_id": (optional, string) see Send Identifier,
"override_messaging_limits": (optional, bool) ignore global rate limits for campaigns, defaults to false,
"recipient_subscription_state": (optional, string) use this to send messages to only users who have opted in ('opted_in'), only users who have subscribed or are opted in ('subscribed') or to all users, including unsubscribed users ('all'), the latter being useful for transactional email messaging. Defaults to 'subscribed',
"schedule": {
"time": (required, datetime as ISO 8601 string) time to send the message, (up to 90 days in the future),
"in_local_time": (optional, bool),
"at_optimal_time": (optional, bool),
},
"messages": {
"apple_push": (optional, Apple Push Object),
"android_push": (optional, Android Push Object),
"windows_push": (optional, Windows Phone 8 Push Object),
"windows8_push": (optional, Windows Universal Push Object),
"kindle_push": (optional, Kindle/FireOS Push Object),
"web_push": (optional, Web Push Object),
"email": (optional, Email object),
"webhook": (optional, Webhook object),
"content_card": (optional, Content Card Object),
"sms": (optional, SMS Object)
}
}
Request Parameters
Parameter | Required | Data Type | Description |
---|---|---|---|
broadcast |
Optional | Boolean | See Broadcast – defaults to false on 8/31/17, must be set to true if “recipients” object is omitted |
external_user_ids |
Optional | Array of Strings | See External User ID |
user_aliases |
Optional | Array of User Alias Objects | See User Alias Object |
audience |
Optional | Connected Audience Object | See Connected Audience |
segment_id |
Optional | String | See Segment Identifier |
campaign_id |
Required | String | See Campaign Identifier |
recipients |
Optional | Array of Recipient Objects | See Recipients Object |
send_id |
Optional | String | See Send Identifier |
override_messaging_limits |
Optional | Boolean | Ignore global rate limits for campaigns, defaults to false |
recipient_subscription_state |
Optional | String | Use this to send messages to only users who have opted in (‘opted_in’), only users who have subscribed or are opted in (‘subscribed’) or to all users, including unsubscribed users (‘all’), the latter being useful for transactional email messaging. Defaults to ‘subscribed’ |
schedule |
Required | Schedule Object | See Schedule Object |
messages |
Optional | Messaging Object | See Messaging Object |
Request Components
- Broadcast
- User Alias Object
- Connected Audience
- Segment Identifier
- Campaign Identifier
- Schedule Object
- API Parameters
Available Messaging Objects
You can use these objects in the request body above.
- Android Objects
- Apple Objects
- Content Cards Object
- Email Object
- Kindle or FireOS Object
- SMS Object
- Web Objects
- Webhook Object
- Windows Objects
Example Request
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
curl --location --request POST 'https://rest.iad-01.braze.com/messages/schedule/create' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
"broadcast": "",
"external_user_ids": "",
"user_aliases": {
"alias_name" : "",
"alias_label" : ""
},
"segment_id": "",
"audience": {
"AND": [
{
"custom_attribute": {
"custom_attribute_name": "eye_color",
"comparison": "equals",
"value": "blue"
}
},
{
"custom_attribute": {
"custom_attribute_name": "favorite_foods",
"comparison": "includes_value",
"value": "pizza"
}
},
{
"OR": [
{
"custom_attribute": {
"custom_attribute_name": "last_purchase_time",
"comparison": "less_than_x_days_ago",
"value": 2
}
},
{
"push_subscription_status": {
"comparison": "is",
"value": "opted_in"
}
}
]
},
{
"email_subscription_status": {
"comparison": "is_not",
"value": "subscribed"
}
},
{
"last_used_app": {
"comparison": "after",
"value": "2019-07-22T13:17:55+0000"
}
}
]
},
"campaign_id": "",
"send_id": "",
"override_messaging_limits": false,
"recipient_subscription_state": "subscribed",
"schedule": {
"time": "",
"in_local_time": true,
"at_optimal_time": true
},
"messages": {
"apple_push": (optional, Apple Push Object),
"android_push": (optional, Android Push Object),
"windows_push": (optional, Windows Phone 8 Push Object),
"windows8_push": (optional, Windows Universal Push Object),
"kindle_push": (optional, Kindle/FireOS Push Object),
"web_push": (optional, Web Push Object),
"email": (optional, Email object)
"webhook": (optional, Webhook object)
"content_card": (optional, Content Card Object)
}
}'