openapi: 3.0.0
info:
title: Bird FAQ SMS Messaging API
description: 'The MessageBird FAQ API enables answering questions from an FAQ dataset. Datasets can be created and managed using the dataset section of the MessageBird Dashboard. FAQ datasets are created by giving multiple variations of questions that correspond to an answer. The API applies machine learning to generalize from the questions and answers so that unseen questions are automatically mapped to the right answer.
'
version: 1.0.0
contact:
name: Bird Support
url: https://bird.com/en-us/contact
servers:
- url: https://faq.messagebird.com
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: '255
# --- 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