Braze Messaging > Send Messages API

The Messaging > Send Messages API from Braze — 5 operation(s) for messaging > send messages.

Business capability
Digital Marketing Management BC-400.60

Operations 5

POST /sends/id/create Create Send IDs For Message Send Tracking #
POST /messages/send Send Messages Immediately via API Only #
POST /transactional/v1/campaigns/{campaign_id}/send Send Transactional Email via API Triggered Delivery #
POST /campaigns/trigger/send Send Campaign Messages via API Triggered Delivery #
POST /canvas/trigger/send Send Canvas Messages via API Triggered Delivery #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/braze-messaging-send-messages-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

braze-messaging-send-messages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Braze Messaging > Send Messages 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: Messaging > Send Messages
paths:
  /sends/id/create:
    post:
      tags:
      - Messaging > Send Messages
      summary: Create Send IDs For Message Send Tracking
      description: '> Use this endpoint to create send IDs that can be used to send messages and track message performance programatically, without campaign creation for each send.


        To use this endpoint, youll need to generate an API key with the `sends.id.create` permission.


        Using the send identifier to track and send messages is useful if you are planning to programmatically generate and send content.


        ## Rate limit


        The daily maximum number of custom send identifiers that can be created via this endpoint is 100 for a given app group. Each `send_id` and `campaign_id` combination that you create will count towards your daily limit. The response headers for any valid request include the current rate limit status, see API rate limits for details.


        ### Request parameters


        | Parameter | Required | Data Type | Description |

        | --- | --- | --- | --- |

        | `campaign_id` | Required | String | See campaign identifier. |

        | `send_id` | Optional | String | See send identifier. |


        ## Response


        ### Example success response


        ``` json

        Content-Type: application/json

        Authorization: Bearer YOUR-REST-API-KEY

        {

        "message": "success",

        "send_id" : (string) the send identifier

        }


        ```'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                campaign_id: campaign_identifier
                send_id: send_identifier
              properties:
                campaign_id:
                  type: string
                send_id:
                  type: string
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '201':
          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: postSendsIdCreate
      x-operation-id-source: derived
  /messages/send:
    post:
      tags:
      - Messaging > Send Messages
      summary: Send Messages Immediately via API Only
      description: '> Use this endpoint to send immediate, ad-hoc messages to designated users via the Braze API.


        To use this endpoint, youll need to generate an API key with the `messages.send` permission.


        Be sure to include Messaging Objects in your body to complete your requests.


        If you are targeting a segment, a record of your request will be stored in the Developer Console.


        ## Rate limit


        When specifying a segment or Connected Audience in your request, we apply a rate limit of 250 requests per minute to this endpoint. Otherwise, if specifying an `external_id`, this endpoint has a default rate limit of 250,000 requests per hour, as documented in API rate limits.


        Braze endpoints support batching API requests. A single request to the messaging endpoints can reach any of the following:


        - Up to 50 specific `external_ids`, each with individual message parameters

        - A segment of any size created in the Braze dashboard, specified by its `segment_id`

        - An ad-hoc audience segment of any size, defined in the request as a Connected Audience object


        ### Request parameters


        | Parameter | Required | Data Type | Description |

        | --- | --- | --- | --- |

        | `broadcast` | Optional | Boolean | See broadcast. This parameter defaults to false (as of August 31, 2017).


        If `recipients` is omitted, `broadcast` must be set to true. However, use caution when setting `broadcast: true`, as unintentionally setting this flag may cause you to send your messages to a larger than expected audience. |

        | `external_user_ids` | Optional | Array of strings | See external user ID. |

        | `user_aliases` | Optional | Array of user alias objects | See user alias object. |

        | `segment_id` | Optional | String | See segment identifier. |

        | `audience` | Optional | Connected audience object | See connected audience. |

        | `campaign_id` | Optional\* | String | See campaign identifier for more information.


        \*Required if you wish to track campaign stats (e.g. sends, clicks, bounces, etc) on the Braze dashboard. |

        | `send_id` | Optional | String | See send identifier |

        | `override_frequency_capping` | Optional | Boolean | Ignore \`frequency_capping\` 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`).


        Using `all` users is useful for transactional email messaging. Defaults to `subscribed`. |

        | `messages` | Optional | Messaging objects | See available messaging objects. |


        ## Response details


        Message sending endpoint responses will include the messages `dispatch_id` for reference back to the dispatch of the message. The `dispatch_id` is the id of the message dispatch (unique id for each transmission sent from the Braze platform). For more, information refer to Dispatch ID behavior.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                broadcast: 'false'
                external_user_ids: external_user_identifiers
                user_aliases:
                  alias_name: example_name
                  alias_label: example_label
                segment_id: segment_identifier
                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: campaign_identifier
                send_id: send_identifier
                override_frequency_capping: 'false'
                recipient_subscription_state: all
                messages:
                  android_push: (optional, Android Push Object)
                  apple_push: (optional, Apple Push Object)
                  content_card: (optional, Content Card Object)
                  email: (optional, Email Object)
                  kindle_push: (optional, Kindle/FireOS Push Object)
                  web_push: (optional, Web Push Object)
                  windows_phone8_push: (optional, Windows Phone 8 Push Object)
                  windows_universal_push: (optional, Windows Universal Push Object)
              properties:
                broadcast:
                  type: string
                external_user_ids:
                  type: string
                user_aliases:
                  type: object
                  properties:
                    alias_name:
                      type: string
                    alias_label:
                      type: string
                segment_id:
                  type: string
                audience:
                  type: object
                  properties:
                    AND:
                      type: array
                      items:
                        type: object
                campaign_id:
                  type: string
                send_id:
                  type: string
                override_frequency_capping:
                  type: string
                recipient_subscription_state:
                  type: string
                messages:
                  type: object
                  properties:
                    android_push:
                      type: string
                    apple_push:
                      type: string
                    content_card:
                      type: string
                    email:
                      type: string
                    kindle_push:
                      type: string
                    web_push:
                      type: string
                    windows_phone8_push:
                      type: string
                    windows_universal_push:
                      type: string
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '201':
          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: postMessagesSend
      x-operation-id-source: derived
  /transactional/v1/campaigns/{campaign_id}/send:
    post:
      tags:
      - Messaging > Send Messages
      summary: Send Transactional Email via API Triggered Delivery
      description: '> Use this endpoint to send immediate, ad-hoc transactional messages to a designated user.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                external_send_id: YOUR_BASE64_COMPATIBLE_ID
                trigger_properties:
                  example_string_property: YOUR_EXAMPLE_STRING
                  example_integer_property: YOUR_EXAMPLE_INTEGER
                recipient:
                - external_user_id: TARGETED_USER_ID_STRING
              properties:
                external_send_id:
                  type: string
                trigger_properties:
                  type: object
                  properties:
                    example_string_property:
                      type: string
                    example_integer_property:
                      type: string
                recipient:
                  type: array
                  items:
                    type: object
                    properties:
                      external_user_id:
                        type: string
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      - name: campaign_id
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '201':
          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: postTransactionalV1CampaignsByCampaignIdSend
      x-operation-id-source: derived
  /campaigns/trigger/send:
    post:
      tags:
      - Messaging > Send Messages
      summary: Send Campaign Messages via API Triggered Delivery
      description: '> Use this endpoint to send immediate, ad-hoc messages to designated users via API-triggered delivery.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                campaign_id: campaign_identifier
                send_id: send_identifier
                trigger_properties: {}
                broadcast: false
                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
                recipients:
                - user_alias:
                    alias_name: example_name
                    alias_label: example_label
                  external_user_id: external_user_identifier
                  trigger_properties: {}
                  send_to_existing_only: true
                  attributes:
                    first_name: Alex
              properties:
                campaign_id:
                  type: string
                send_id:
                  type: string
                trigger_properties:
                  type: object
                broadcast:
                  type: boolean
                audience:
                  type: object
                  properties:
                    AND:
                      type: array
                      items:
                        type: object
                recipients:
                  type: array
                  items:
                    type: object
                    properties:
                      user_alias:
                        type: object
                        properties:
                          alias_name:
                            type: string
                          alias_label:
                            type: string
                      external_user_id:
                        type: string
                      trigger_properties:
                        type: object
                      send_to_existing_only:
                        type: boolean
                      attributes:
                        type: object
                        properties:
                          first_name:
                            type: string
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '201':
          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: postCampaignsTriggerSend
      x-operation-id-source: derived
  /canvas/trigger/send:
    post:
      tags:
      - Messaging > Send Messages
      summary: Send Canvas Messages via API Triggered Delivery
      description: '> Use this endpoint to send Canvas messages via API-triggered delivery.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                canvas_id: canvas_identifier
                canvas_entry_properties:
                  product_name: shoes
                  product_price: 79.99
                broadcast: false
                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
                recipients:
                - user_alias:
                    alias_name: example_name
                    alias_label: example_label
                  external_user_id: user_identifier
                  trigger_properties: {}
                  canvas_entry_properties: ''
                  send_to_existing_only: true
                  attributes:
                    first_name: Alex
              properties:
                canvas_id:
                  type: string
                canvas_entry_properties:
                  type: object
                  properties:
                    product_name:
                      type: string
                    product_price:
                      type: number
                broadcast:
                  type: boolean
                audience:
                  type: object
                  properties:
                    AND:
                      type: array
                      items:
                        type: object
                recipients:
                  type: array
                  items:
                    type: object
                    properties:
                      user_alias:
                        type: object
                        properties:
                          alias_name:
                            type: string
                          alias_label:
                            type: string
                      external_user_id:
                        type: string
                      trigger_properties:
                        type: object
                      canvas_entry_properties:
                        type: string
                      send_to_existing_only:
                        type: boolean
                      attributes:
                        type: object
                        properties:
                          first_name:
                            type: string
      parameters:
      - name: Content-Type
        in: header
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        schema:
          type: string
        example: Bearer {{api_key}}
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '201':
          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: postCanvasTriggerSend
      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