Bird SMS Messaging API

MessageBird’s SMS API allows you to send and receive SMS messages to and from any country in the world through a REST API. Each message is identified by a unique random ID so that users can always check the status of a message using the given endpoint. The SMS API uses HTTP verbs and a RESTful endpoint structure with an access key that is used as the API Authorization. Request and response payloads are formatted as JSON using UTF-8 encoding and URL encoded values.

Operations 4

POST /messages Send message
GET /messages List messages
GET /messages/{messageId} Get message by ID
DELETE /messages/{messageId} Delete message by ID

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/bird-sms-messaging-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

bird-sms-messaging-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: MessageBird SMS SMS Messaging API
  version: 1.0.0
  description: 'MessageBird’s SMS API allows you to send and receive SMS messages to and from any country in the world through a REST API. Each message is identified by a unique random ID so that users can always check the status of a message using the given endpoint.


    The SMS API uses HTTP verbs and a RESTful endpoint structure with an access key that is used as the API Authorization. Request and response payloads are formatted as JSON using UTF-8 encoding and URL encoded values.'
servers:
- url: https://rest.messagebird.com/messages
security:
- AccessKey: []
tags:
- name: SMS Messaging
  description: 'MessageBird’s SMS API allows you to send and receive SMS messages to and from any country in the world through a REST API. Each message is identified by a unique random ID so that users can always check the status of a message using the given endpoint.


    The SMS API uses HTTP verbs and a RESTful endpoint structure with an access key that is used as the API Authorization. Request and response payloads are formatted as JSON using UTF-8 encoding and URL encoded values.'
paths:
  /messages:
    post:
      tags:
      - SMS Messaging
      summary: Send message
      description: 'MessageBird''s Programmable SMS API enables you to programmatically send SMS messages from your web application.


        First, you need to create a new message object. MessageBird returns the created message object with each request. A maximum of 50 recipients can be entered per request.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - originator
              - body
              - recipients
              properties:
                originator:
                  type: string
                  example: MessageBird
                  description: The sender of the message. This can be a telephone number (including country code) or an alphanumeric string. In case of an alphanumeric string, the maximum length is 11 characters.
                body:
                  type: string
                  example: '+380999999999'
                  description: The body of the SMS message.
                recipients:
                  type: array
                  items:
                    type: string
                  example: '["380999999999", "380999999999"]'
                  description: An array of recipients msisdns.
                groupIds:
                  type: array
                  items:
                    type: string
                  description: An array of group id's. If provided recipients can be omitted.
                type:
                  type: string
                  enum:
                  - sms
                  - binary
                  - flash
                  description: 'The type of message. Values can be: sms, binary, or flash.'
                reference:
                  type: string
                  description: A client reference. Is required for a status report callback to be sent.
                reportUrl:
                  type: string
                  example: https://example.ua/report-here
                  description: The status report URL to be used on a per-message basis. This value overrides the standard status report url configured on the customer account.
                validity:
                  type: integer
                  example: 60
                  description: The amount of seconds that the message is valid. If a message is not delivered within this time, the message will be discarded.
                gateway:
                  type: integer
                  example: 11
                  description: The SMS route that is used to send the message.
                typeDetails:
                  type: object
                  example: '{"udh":"050003340201"}'
                  description: A hashmap with extra information.
                datacoding:
                  type: string
                  example: unicode
                  description: The datacoding used, defaults to plain (GSM 03.38 characters only), or it can be set to unicode (contains non-GSM 03.38 characters) or set to auto and we will set unicode or plain depending on the body content.
                mclass:
                  type: integer
                  example: 1
                  description: Indicated the message type. 1 is a normal message, 0 is a flash message. (0-3 are valid values).
                shortenUrls:
                  type: boolean
                  example: false
                  description: \*beta\* Shorten all the URLs present in the message body.
                scheduledDatetime:
                  type: integer
                  example: '2022-05-20T12:50:28Z'
                  description: The scheduled date and time of the message in RFC3339 format (Y-m-d\TH:i:sP), when you want to schedule a message in the future. Don't set this value when message needs to be send directly.
              example:
                recipients: '+380999999999'
                originator: MessageBird
                body: Lorem ipsum dolor sit amet.
                type: binary
                reference: test
                reportUrl: https://example.com/callback
                validity: 30
                gateway: 11
                typeDetails:
                  udh: '050003340201'
                datacoding: unicode
                mclass: 1
                shortenUrls: true
                scheduledDatetime: null
      parameters:
      - name: Content-Type
        required: true
        in: header
        schema:
          type: string
        example: application/json
      - name: Authorization
        required: true
        in: header
        schema:
          type: string
        example: AccessKey wNmtVQTcLO4uf22uJxjvzwJ223
      responses:
        '201':
          description: SMS successfully created
          headers:
            Date:
              schema:
                type: string
                example: Fri, 01 Jul 2022 16:16:51 GMT
            Content-Type:
              schema:
                type: string
                example: application/json; charset=UTF-8
            Content-Length:
              schema:
                type: integer
                example: '602'
            Access-Control-Allow-Headers:
              schema:
                type: string
                example: Authorization, Content-Type
            Access-Control-Allow-Origin:
              schema:
                type: string
                example: '*'
            Access-Control-Allow-Methods:
              schema:
                type: string
                example: GET, POST, PUT, PATCH, DELETE
            Access-Control-Allow-Credentials:
              schema:
                type: boolean
                example: 'true'
            Pragma:
              schema:
                type: string
                example: no-cache
            Expires:
              schema:
                type: integer
                example: '0'
            Cache-Control:
              schema:
                type: string
                example: must-revalidate, post-check=0, pre-check=0
          content:
            application/json:
              schema:
                type: object
              examples:
                example-0:
                  summary: 201 Created
                  value:
                    id: f28bbe526fc14974b3e7e663a6139b53
                    href: https://rest.messagebird.com/messages/f28bbe526fc14974b3e7e663a6139b53
                    direction: mt
                    type: sms
                    originator: MessageBird
                    body: Lorem ipsum dolor sit amet.
                    reference: null
                    validity: null
                    gateway: 10
                    typeDetails: {}
                    datacoding: plain
                    mclass: 1
                    scheduledDatetime: null
                    createdDatetime: '2022-07-01T16:16:51+00:00'
                    recipients:
                      totalCount: 1
                      totalSentCount: 1
                      totalDeliveredCount: 0
                      totalDeliveryFailedCount: 0
                      items:
                      - recipient: 380999999999
                        status: sent
                        statusDatetime: '2022-07-01T16:16:51+00:00'
                        messagePartCount: 1
                example-1:
                  summary: 201 Created (binary)
                  value:
                    id: 1217667de49b4847a7bfeca00ae9ffe3
                    href: https://rest.messagebird.com/messages/1217667de49b4847a7bfeca00ae9ffe3
                    direction: mt
                    type: binary
                    originator: MessageBird
                    body: Lorem ipsum dolor sit amet.
                    reference: test
                    validity: 30
                    gateway: 10
                    typeDetails:
                      udh: '050003340201'
                    datacoding: unicode
                    mclass: 1
                    scheduledDatetime: null
                    createdDatetime: '2022-07-01T16:29:24+00:00'
                    recipients:
                      totalCount: 1
                      totalSentCount: 1
                      totalDeliveredCount: 0
                      totalDeliveryFailedCount: 0
                      items:
                      - recipient: 380999999999
                        status: sent
                        statusDatetime: '2022-07-01T16:29:24+00:00'
                        messagePartCount: 1
        '401':
          description: Unauthorized
          headers:
            Date:
              schema:
                type: string
                example: Fri, 01 Jul 2022 15:50:06 GMT
            Content-Type:
              schema:
                type: string
                example: application/json; charset=UTF-8
            Content-Length:
              schema:
                type: integer
                example: '107'
            Access-Control-Allow-Headers:
              schema:
                type: string
                example: Authorization, Content-Type
            Access-Control-Allow-Origin:
              schema:
                type: string
                example: '*'
            Access-Control-Allow-Methods:
              schema:
                type: string
                example: GET, POST, PUT, PATCH, DELETE
            Access-Control-Allow-Credentials:
              schema:
                type: boolean
                example: 'true'
            Www-Authenticate:
              schema:
                type: string
                example: Basic realm="REST API authentication"
            Pragma:
              schema:
                type: string
                example: no-cache
            Expires:
              schema:
                type: integer
                example: '0'
            Cache-Control:
              schema:
                type: string
                example: must-revalidate, post-check=0, pre-check=0
          content:
            application/json:
              schema:
                type: object
              example:
                errors:
                - code: 2
                  description: Request not allowed (incorrect access_key)
                  parameter: access_key
        '422':
          description: Unprocessable Entity
          headers:
            Date:
              schema:
                type: string
                example: Fri, 01 Jul 2022 16:15:29 GMT
            Content-Type:
              schema:
                type: string
                example: application/json; charset=UTF-8
            Content-Length:
              schema:
                type: integer
                example: '187'
            Access-Control-Allow-Headers:
              schema:
                type: string
                example: Authorization, Content-Type
            Access-Control-Allow-Origin:
              schema:
                type: string
                example: '*'
            Access-Control-Allow-Methods:
              schema:
                type: string
                example: GET, POST, PUT, PATCH, DELETE
            Access-Control-Allow-Credentials:
              schema:
                type: boolean
                example: 'true'
            Pragma:
              schema:
                type: string
                example: no-cache
            Expires:
              schema:
                type: integer
                example: '0'
            Cache-Control:
              schema:
                type: string
                example: must-revalidate, post-check=0, pre-check=0
          content:
            application/json:
              schema:
                type: object
              example:
                errors:
                - code: 9
                  description: 'no (correct) recipients found. Note: during your test period you can only send messages to your own number (+380999999999).'
                  parameter: recipient
    get:
      tags:
      - SMS Messaging
      summary: List messages
      parameters:
      - name: originator
        in: query
        schema:
          type: string
        description: Display messages by the specified originator.
        example: ValTesting
      - name: recipient
        in: query
        schema:
          type: integer
        description: Display messages for the specified recipient.
        example: '380999999999'
      - name: direction
        in: query
        schema:
          type: string
        description: Display either mt (sent) or mo (received) messages.
        example: mt
      - name: limit
        in: query
        schema:
          type: integer
        description: Limit the amount of messages listed.
        example: '50'
      - name: offset
        in: query
        schema:
          type: integer
        description: Skip first n results.
        example: '0'
      - name: searchterm
        in: query
        schema:
          type: string
        description: Display messages including the specified searchterm in recipient and originator
        example: val
      - name: type
        in: query
        schema:
          type: string
        description: Display messages of type sms, binary, or flash
        example: sms
      - name: contact_id
        in: query
        schema:
          type: string
        description: Display messages by contact_id. See Contacts API for more info.
        example: 61afc0531573b08ddbe36e1c85602827
      - name: status
        in: query
        schema:
          type: string
        description: Display messages with status scheduled, sent, buffered, delivered, expired, or delivery_failed.
        example: buffered
      - name: from
        in: query
        schema:
          type: string
        description: Display messages starting from the specified date in RFC3339 format (Y-m-d\TH:i:sP).
        example: '2022-05-20T12:50:28Z'
      - name: until
        in: query
        schema:
          type: string
        description: Display messages until the specified date in RFC3339 format (Y-m-d\TH:i:sP).
        example: '2022-06-29T12:50:28Z'
      responses:
        '200':
          description: OK
          headers:
            Date:
              schema:
                type: string
                example: Fri, 01 Jul 2022 16:30:02 GMT
            Content-Type:
              schema:
                type: string
                example: application/json; charset=UTF-8
            Vary:
              schema:
                type: string
                example: Accept-Encoding
            Access-Control-Allow-Headers:
              schema:
                type: string
                example: Authorization, Content-Type
            Access-Control-Allow-Origin:
              schema:
                type: string
                example: '*'
            Access-Control-Allow-Methods:
              schema:
                type: string
                example: GET, POST, PUT, PATCH, DELETE
            Access-Control-Allow-Credentials:
              schema:
                type: boolean
                example: 'true'
            Pragma:
              schema:
                type: string
                example: no-cache
            Expires:
              schema:
                type: integer
                example: '0'
            Cache-Control:
              schema:
                type: string
                example: must-revalidate, post-check=0, pre-check=0
            Content-Encoding:
              schema:
                type: string
                example: gzip
            Transfer-Encoding:
              schema:
                type: string
                example: chunked
          content:
            application/json:
              schema:
                type: object
              examples:
                example-0:
                  summary: 200 OK
                  value:
                    offset: 0
                    limit: 20
                    count: 9
                    totalCount: 9
                    links:
                      first: https://rest.messagebird.com/messages/?offset=0
                      previous: null
                      next: null
                      last: https://rest.messagebird.com/messages/?offset=0
                    items:
                    - id: cea5a8d4a82f4b7bb4a053296d5a9ba1
                      href: https://rest.messagebird.com/messages/cea5a8d4a82f4b7bb4a053296d5a9ba1
                      direction: mt
                      type: sms
                      originator: ValTesting
                      body: 'Current time: 2022-06-23 12:41:23.828134 +0300 EEST m=+0.001717501'
                      reference: null
                      validity: null
                      gateway: 10
                      typeDetails: {}
                      datacoding: plain
                      mclass: 1
                      scheduledDatetime: null
                      createdDatetime: '2022-06-23T09:41:24+00:00'
                      recipients:
                        totalCount: 1
                        totalSentCount: 1
                        totalDeliveredCount: 1
                        totalDeliveryFailedCount: 0
                        items:
                        - recipient: 380999999999
                          originator: null
                          status: delivered
                          statusDatetime: '2022-06-23T09:41:31+00:00'
                          recipientCountry: Ukraine
                          recipientCountryPrefix: 380
                          recipientOperator: life:)
                          messageLength: 66
                          statusErrorCode: null
                          statusReason: successfully delivered
                          price:
                            amount: 1
                            currency: TRC
                          mccmnc: '25506'
                          mcc: '255'
                          mnc: '06'
                          messagePartCount: 1
                    - id: 281f98b1732b4ee29f68f930b80b2f60
                      href: https://rest.messagebird.com/messages/281f98b1732b4ee29f68f930b80b2f60
                      direction: mt
                      type: sms
                      originator: ValTesting
                      body: Hi! This is not your first message
                      reference: null
                      validity: null
                      gateway: 10
                      typeDetails: {}
                      datacoding: plain
                      mclass: 1
                      scheduledDatetime: null
                      createdDatetime: '2022-06-23T06:54:41+00:00'
                      recipients:
                        totalCount: 1
                        totalSentCount: 1
                        totalDeliveredCount: 1
                        totalDeliveryFailedCount: 0
                        items:
                        - recipient: 380999999999
                          originator: null
                          status: delivered
                          statusDatetime: '2022-06-23T06:54:47+00:00'
                          recipientCountry: Ukraine
                          recipientCountryPrefix: 380
                          recipientOperator: life:)
                          messageLength: 34
                          statusErrorCode: null
                          statusReason: successfully delivered
                          price:
                            amount: 1
                            currency: TRC
                          mccmnc: '25506'
                          mcc: '255'
                          mnc: '06'
                          messagePartCount: 1
                    - id: 78065add7b144d7cb6909576cbfc5b5e
                      href: https://rest.messagebird.com/messages/78065add7b144d7cb6909576cbfc5b5e
                      direction: mt
                      type: sms
                      originator: ValTesting
                      body: qwerty3
                      reference: null
                      validity: null
                      gateway: 10
                      typeDetails: {}
                      datacoding: plain
                      mclass: 1
                      scheduledDatetime: null
                      createdDatetime: '2022-06-22T22:29:58+00:00'
                      recipients:
                        totalCount: 1
                        totalSentCount: 1
                        totalDeliveredCount: 1
                        totalDeliveryFailedCount: 0
                        items:
                        - recipient: 380999999999
                          originator: null
                          status: delivered
                          statusDatetime: '2022-06-22T22:30:05+00:00'
                          recipientCountry: Ukraine
                          recipientCountryPrefix: 380
                          recipientOperator: life:)
                          messageLength: 7
                          statusErrorCode: null
                          statusReason: successfully delivered
                          price:
                            amount: 1
                            currency: TRC
                          mccmnc: '25506'
                          mcc: '255'
                          mnc: '06'
                          messagePartCount: 1
                    - id: c81801d34d0b4c29bcf304de906feae1
                      href: https://rest.messagebird.com/messages/c81801d34d0b4c29bcf304de906feae1
                      direction: mt
                      type: sms
                      originator: ValTesting
                      body: Hi! This is not your first message
                      reference: null
                      validity: null
                      gateway: 10
                      typeDetails: {}
                      datacoding: plain
                      mclass: 1
                      scheduledDatetime: null
                      createdDatetime: '2022-06-22T14:04:22+00:00'
                      recipients:
                        totalCount: 1
                        totalSentCount: 1
                        totalDeliveredCount: 1
                        totalDeliveryFailedCount: 0
                        items:
                        - recipient: 380999999999
                          originator: null
                          status: delivered
                          statusDatetime: '2022-06-22T14:04:29+00:00'
                          recipientCountry: Ukraine
                          recipientCountryPrefix: 380
                          recipientOperator: life:)
                          messageLength: 34
                          statusErrorCode: null
                          statusReason: successfully delivered
                          price:
                            amount: 1
                            currency: TRC
                          mccmnc: '25506'
                          mcc: '255'
                          mnc: '06'
                          messagePartCount: 1
                    - id: e876126d16af4fdfb368c538f7a4d660
                      href: https://rest.messagebird.com/messages/e876126d16af4fdfb368c538f7a4d660
                      direction: mt
                      type: sms
                      originator: ValTesting
                      body: Hi! This is not your first message
                      reference: null
                      validity: null
                      gateway: 10
                      typeDetails: {}
                      datacoding: plain
                      mclass: 1
                      scheduledDatetime: null
                      createdDatetime: '2022-06-22T14:03:56+00:00'
                      recipients:
                        totalCount: 1
                        totalSentCount: 1
                        totalDeliveredCount: 1
                        totalDeliveryFailedCount: 0
                        items:
                        - recipient: 380999999999
                          originator: null
                          status: delivered
                          statusDatetime: '2022-06-22T14:04:04+00:00'
                          recipientCountry: Ukraine
                          recipientCountryPrefix: 380
                          recipientOperator: life:)
                          messageLength: 34
                          statusErrorCode: null
                          statusReason: successfully delivered
                          price:
                            amount: 1
                            currency: TRC
                          mccmnc: '25506'
                          mcc: '255'
                          mnc: '06'
                          messagePartCount: 1
                    - id: cfe8234a793f4f90833fe6d01731e6fa
                      href: https://rest.messagebird.com/messages/cfe8234a793f4f90833fe6d01731e6fa
                      direction: mt
                      type: sms
                      originator: ValTesting
                      body: qwerty2
                      reference: null
                      validity: null
                      gateway: 10
                      typeDetails: {}
                      datacoding: plain
                      mclass: 1
                      scheduledDatetime: null
                      createdDatetime: '2022-06-22T01:29:58+00:00'
                      recipients:
                        totalCount: 1
                        totalSentCount: 1
                        totalDeliveredCount: 1
                        totalDeliveryFailedCount: 0
                        items:
                        - recipient: 380999999999
                          originator: null
                          status: delivered
                          statusDatetime: '2022-06-22T01:30:14+00:00'
                          recipientCountry: Ukraine
                          recipientCountryPrefix: 380
                          recipientOperator: life:)
                          messageLength: 7
                          statusErrorCode: null
                          statusReason: successfully delivered
                          price:
                            amount: 1
                            currency: TRC
                          mccmnc: '25506'
                          mcc: '255'
                          mnc: '06'
                          messagePartCount: 1
                    - id: 0f484ecbf51942b5b7f4df62891ea247
                      href: https://rest.messagebird.com/messages/0f484ecbf51942b5b7f4df62891ea247
                      direction: mt
                      type: sms
                      originator: ValTesting
                      body: qwerty2
                      reference: null
                      validity: null
                      gateway: 10
                      typeDetails: {}
                      datacoding: plain
                      mclass: 1
                      scheduledDatetime: null
                      createdDatetime: '2022-06-22T01:29:58+00:00'
                      recipients:
                        totalCount: 1
                        totalSentCount: 1
                        totalDeliveredCount: 1
                        totalDeliveryFailedCount: 0
                        items:
                        - recipient: 380999999999
                          originator: null
                          status: delivered
                          statusDatetime: '2022-06-22T01:30:04+00:00'
                          recipientCountry: Ukraine
                          recipientCountryPrefix: 380
                          recipientOperator: life:)
                          messageLength: 7
                          statusErrorCode: null
                          statusReason: successfully delivered
                          price:
                            amount: 1
                            currency: TRC
                          mccmnc: '25506'
                          mcc: '255'
                          mnc: '06'
                          messagePartCount: 1
                    - id: 0aa1c53c34d34bda84cc4bc454d95028
                      href: https://rest.messagebird.com/messages/0aa1c53c34d34bda84cc4bc454d95028
                      direction: mt
                      type: sms
                      originator: ValTesting
                      body: Hi! This is not your first message
                      reference: null
                      validity: null
                      gateway: 10
                      typeDetails: {}
                      datacoding: plain
                      mclass: 1
                      scheduledDatetime: null
                      createdDatetime: '2022-06-21T16:03:00+00:00'
                      recipients:
                        totalCount: 1
                        totalSentCount: 1
                        totalDeliveredCount: 1
                        totalDeliveryFailedCount: 0
                        items:
                        - recipient: 380999999999
                          originator: null
                          status: delivered
                          statusDatetime: '2022-06-21T16:03:07+00:00'
                          recipientCountry: Ukraine
                          recipientCountryPrefix: 380
                          recipientOperator: life:)
                          messageLength: 34
                          statusErrorCode: null
                          statusReason: successfully delivered
                          price:
                            amount: 1
                            currency: TRC
                          mccmnc: '25506'
                          mcc: '255'
                          mnc: '06'
                          messagePartCount: 1
                    - id: cb96c6336c92482797554428a899a225
                      href: https://rest.messagebird.com/messages/cb96c6336c92482797554428a899a225
                      direction: mt
                      type: sms
                      originator: Test
                      body: This is a test message
                      reference: null
                      validity: null
                      gateway: 10
                      typeDetails: {}
                      datacoding: plain
                      mclass: 1
                      scheduledDatetime: null
                      createdDatetime: '2022-06-21T15:28:58+00:00'
                      recipients:
                        totalCount: 1
                        totalSentCount: 1
                        totalDeliveredCount: 1
                        totalDeliveryFailedCount: 0
                        items:
                        - recipient: 380999999999
                          originator: null
                          status: delivered
                          statusDatetime: '2022-06-21T15:29:05+00:00'
                          recipientCountry: Ukraine
                          recipientCountryPrefix: 380
                          recipientOperator: life:)
                          messageLength: 22
                          statusErrorCode: null
                          statusReason: successfully delivered
                          price:
                            amount: 1
                            currency: TRC
                          mccmnc: '2

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bird/refs/heads/main/openapi/bird-sms-messaging-api-openapi.yml