Sinch SMS API (end of sale)
The standalone SMS API: batches, delivery reports, inbounds and groups. End of sale for new integrations; new integrations should use the Conversation API, which supports SMS alongside other channels.
The standalone SMS API: batches, delivery reports, inbounds and groups. End of sale for new integrations; new integrations should use the Conversation API, which supports SMS alongside other channels.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/sinch:sinch-sms-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 3.2.0
info:
title: API Overview | Sinch
description: This API reference describes the behavior of the standalone SMS API. The standalone SMS API is currently only available for existing customers, and this documentation is being maintained for those existing customers. New customers will access SMS functionality through Sinch's [Conversation API](https://developers.sinch.com/docs/conversation/channel-support/sms). Existing customers can use this API to send single messages, scheduled batch messages, use available message templates, and more.
termsOfService: https://www.sinch.com/terms-of-service/
contact:
name: Support
url: https://www.sinch.com
email: Support@sinch.com
license:
name: MIT
url: https://www.sinch.com/legal
version: v1
servers:
- url: https://{region}.sms.api.sinch.com
description: Global API
variables:
region:
default: us
enum:
- us
- eu
- au
- br
- ca
x-enumDescriptions:
us: United States
eu: Europe
au: Australia
br: Brazil
ca: Canada
tags:
- name: Delivery reports
description: 'The REST API uses message statuses and error codes in delivery reports, which refer to the state of the batch and can be present in either [Retrieve a delivery report](https://developers.sinch.com/docs/sms/api-reference/sms/delivery-reports/getdeliveryreportbybatchid) or sent as a callback.
## Delivery report statuses
The status field describes which state a particular message is in. Note that statuses of type Intermediate will only be reported if you request a status of `per_recipient` ([Retrieve a recipient delivery report](https://developers.sinch.com/docs/sms/api-reference/sms/delivery-reports/getdeliveryreportbyphonenumber)).
The following statuses are available when using the SMS REST API:
| Status | Type | Description |
| ------------ | ------------ | --------------------------------------------- |
| `Queued` | Intermediate | Message is queued within REST API system and will be dispatched according to the rate of the account. |
| `Dispatched` | Intermediate | Message has been dispatched and accepted for delivery by the SMSC. Note that, in certain scenarios, the `Dispatched` status may be skipped if a more `Final` status is reached prior to sending the delivery report. For example, if a delivery report is not sent prior to the corresponding message''s successful delivery, you may only get a delivery report with a `Delivered` status.|
| `Aborted` | Final | Message was aborted before reaching the SMSC. |
| `Cancelled` | Final | Message was cancelled by user before reaching SMSC. |
| `Rejected` | Final | Message was rejected by the SMSC. |
| `Deleted` | Final | Message has been deleted. Message was deleted by a remote SMSC. This may happen if the destination is an invalid MSISDN or opted out subscriber. |
| `Delivered` | Final | Message has been delivered. |
| `Failed` | Final | Message failed to be delivered. |
| `Expired` | Final | Message expired before delivery to the SMSC. This may happen if the expiry time for the message was very short. |
| `Unknown` | Final | Message was delivered to the SMSC but no Delivery Receipt has been received or a Delivery Receipt that couldn''t be interpreted was received. |
## Delivery report error codes
The delivery report status code provides a more detailed view of what happened with a message. The REST API error codes are a combination of [SMPP error codes](https://developers.sinch.com/docs/sms/smpp/error-codes/#status-reports-error-codes), [MMS error codes](https://developers.sinch.com/docs/mms/7-service/mms-status-codes/) and custom codes.
The REST API custom error codes are all within the 4xx range. These are listed below:
| Status Code | Name | Status | Description |
| ----------------- | ---------------------------- | ------------ | --------------------------------------------------------- |
| 400 | Queued | `Queued` | Message is queued within REST API system and will be dispatched according to the rate of the account. |
| 401 | Dispatched | `Dispatched` | Message has been dispatched to SMSC. |
| 402 | Message unroutable | `Aborted` | SMSC rejected message. Retrying is likely to cause the same error. |
| 403 | Internal error | `Aborted` | An unexpected error caused the message to fail. |
| 404 | Temporary delivery failure | `Aborted` | Message failed because of temporary delivery failure. Message can be retried. |
| 405 | Unmatched Parameter | `Aborted` | One or more parameters in the message body has no mapping for this recipient. See [Message Parameterization](https://developers.sinch.com/docs/sms/resources/message-info/message-parameterization) |
| 406 | Internal Expiry | `Aborted` | Message was expired before reaching SMSC. This may happen if the expiry time for the message was very short. |
| 407 | Cancelled | `Cancelled` | Message was cancelled by user before reaching SMSC. |
| 408 | Internal Reject | `Aborted` | SMSC rejected the message. Retrying is likely to cause the same error. |
| 410 | Unmatched default originator | `Aborted` | No default originator exists/configured for this recipient when sending message without originator. |
| 411 | Exceeded parts limit | `Aborted` | Message failed as the number of message parts exceeds the defined max number of message parts. |
| 412 | Unprovisioned region | `Aborted` | SMSC rejected the message. The account hasn''t been provisioned for this region. |
| 413 | Blocked | `Aborted` | The account is blocked. Reach out to support for help. Potentially out of credits. |
| 414 | Bad Media | `Aborted` | MMS only, the request failed due to a bad media URL. It is possible that the URL was unreachable, or sent a bad response. |
| 415 | Delivery report Rejected | `Failed` | MMS only, message reached MMSC but was rejected by MMS gateway or mobile network. |
| 416 | Delivery report Not Supported| `Failed` | MMS only, message reached MMSC but it is not supported. |
| 417 | Delivery report Unreachable | `Failed` | MMS only, message reached MMSC but the destination network or the mobile subscriber cannot be reached. |
| 418 | Delivery report Unrecognized | `Failed` | MMS only, message reached MMSC but the handset of the mobile subscriber does not recognize the message content. |'
- name: Groups
description: A group is a set of phone numbers (or [MSISDNs](https://community.sinch.com/t5/Glossary/MSISDN/ta-p/7628)) that can be used as a target when sending an SMS. An phone number (MSISDN) can only occur once in a group and any attempts to add a duplicate are ignored but not rejected.
- name: Batches
description: Batches are sets of SMS messages. You can send a single message or many. Batches are queued and sent at the rate limit in first-in-first-out order.
- name: Inbounds
description: 'Inbounds, or Mobile Originated (MO) messages, are incoming messages. Inbound messages can be listed and retrieved like batch messages and they can also be delivered by callback requests like delivery reports.
## MMS Media error codes
The REST API handles MO media messages by uploading them to specified s3 storage location and providing the URL to download the attachment.
On a successful upload, the code will be `0`. If the upload fails, the code will be a value other than `0`.
| Status Code | Name | Status | Description |
| --------------- | ---------------------------- | ------------ | --------------------------------------------------------- |
| 0 | Uploaded | `Uploaded` | Attachment successfully uploaded to storage. |
| 1 | Internal failure | `Failed` | Internal exception happened during upload. |
| 2 | Bucket not found | `Failed` | Provisioned bucket doesn''t exist. |'
# --- truncated at 32 KB (211 KB total) ---
# Full source: https://artifacts.apis.io/sinch/openapi/sinch-sms-api-openapi.yml