Skip to content

API reference

API reference

Eleven endpoints across five resources. Every one is JSON over HTTPS, authenticated with an API key.

Base URL

https://api.smsend.net/public/v1

Every path in this reference is relative to that base. The version is part of the path and is never negotiated through a header.

Response envelope

Successful responses wrap their payload in a data object. Failures wrap theirs in an error object. Nothing is ever returned at the root.

Response
{
  "data": {
    "batch_id": "01K3F7XQZ8V2N4M6P8R0T5CJWE",
    "status": "QUEUED"
  }
}
Errors
{
  "error": {
    "code": "INSUFFICIENT_FUNDS",
    "message": "Wallet balance 0 XOF is below the 23700 XOF required.",
    "retryable": false,
    "detail": {},
    "request_id": "01K3F7XQZ8V2N4M6P8R0T5CJWE"
  }
}

The one exception is the OpenAPI document, which is returned unwrapped because every tool that consumes it expects the specification at the root.

Endpoints

Forward compatibility

SMSend adds to the current version without a bump. Two obligations fall on your client, and both are relied on when non-breaking changes ship:

  • Tolerate unknown fields. Optional fields are added to responses and webhook payloads without a version change; a strict deserialiser that rejects them will break on a day nothing was announced.
  • Tolerate unknown enum values. New statuses, rejection reasons and event types are added without a version change, so switch with a default branch rather than throwing.