Skip to content

Learn

Versioning

The version is part of the URL, and a version that is going away tells you so in its own response headers.

The current version

v1 is current and is the only supported version. Pin your integration to an explicit version in the path; there is no unversioned alias, and there will not be one.

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

The policy

When a new major version ships, the previous one keeps working alongside it. Withdrawal is announced at least 183 days in advance, and every account whose key called the outgoing version in the previous 90 days is emailed directly.

What counts as a breaking change

Breaking changes require a new version. Everything else ships into the current one, which is why your client has to tolerate additions.

Requires a version bump

  • Removing or renaming a response field
  • Tightening validation on an existing parameter
  • Changing which error code a condition returns

Ships without a bump

  • Adding an optional request or response field
  • Adding a value to an existing enum
  • Adding a new endpoint

Two obligations on your client

Deprecation headers

While a version is on its way out, every response it serves carries the date it was deprecated, the date it will stop working, and a link to the notice.

Deprecation: Fri, 01 Jan 2027 00:00:00 GMT
Sunset: Mon, 05 Jul 2027 00:00:00 GMT
Link: <https://api.smsend.net/public/docs/deprecations>; rel="deprecation"

These headers never appear on the current version. Stamping them on a version that is not going anywhere would train every client to ignore them, which is exactly what you do not want on the day they matter.

Calling a version that does not exist

A request to a version that is not supported returns 400 with UNSUPPORTED_VERSION and the list of versions that do work — never a bare 404. A 404 reads as "you have the URL wrong" and sends people looking for a typo instead of at the deprecation notice they missed.

400 Bad Request
{
  "error": {
    "code": "UNSUPPORTED_VERSION",
    "message": "That version of the SMSend API is not available.",
    "retryable": false,
    "detail": { "supported_versions": ["v1"] },
    "request_id": "01K3F7XQZ8V2N4M6P8R0T5CJWE"
  }
}