Skip to content

Search for a complete word or an exact phrase.

SMS v1 and migration

Historical /api/smsko/v1/ routes, keys and responses are preserved during migration. The historical documentation and v1 Postman collection describe that legacy contract.

This page does not announce a retirement date. The schedule depends on v2 general availability, coverage of existing use cases and support for integrators.

Scroll horizontally if needed. Keyboard: Tab, then the left and right arrow keys.

Topicv1v2
Namespace/api/smsko/v1//api/sms/v2/
KeyHistorical contractOrganization bf_sms_ key only
AuthenticationAuthorization: <key> with the raw key, without a Bearer prefixAuthorization: Bearer <key>
OrganizationHistorical resolutionDerived from the key
SendingHistorical routesmessages resource
SchedulingDedicated routessend_at field or message-batches resource
TimestampHistorical formatRFC 3339 with an explicit timezone
IdempotencyHistorical behaviorRequired key for messages and batches
StatusHistorical contractUUID identifier and explicit state
ResponsesHistorical responsesEnglish fields, codes and messages

V2 rejects a historical key even if it has been associated with an organization. Do not simply replace v1 with v2 in a URL.

In v1, the header directly contains the historical or organization key accepted by that contract. V2 requires both the Bearer prefix and an organization key.

The v1 paths below use the /api/smsko/v1/ base; v2 paths use /api/sms/v2/.

Scroll horizontally if needed. Keyboard: Tab, then the left and right arrow keys.

Use caseV1 routeV2 equivalent
Immediate sendPOST send/POST messages/, without send_at
Single schedulePOST sendlater/POST messages/, with send_at
Multiple schedulesPOST sendbulk/POST message-batches/, with one shared future send_at
BalanceGET balance/GET balance/
ContactPOST contact/POST contacts/
Delivery statusGET get-delivery-status/GET messages/{message_id}/

This mapping describes how use cases migrate; request bodies and responses are not interchangeable. Refer to the historical documentation and collection linked above for complete v1 fields and responses.

  1. Inventory immediate sends, schedules, batches, balance reads, contacts and status checks.
  2. Create an organization key with the permissions you need.
  3. Update request fields and response handling.
  4. Store idempotency data and public identifiers in your application.
  5. Verify errors, insufficient credits and unknown outcomes.
  6. Move each business operation to one contract at a time.

Avoid submitting the same business operation to v1 and v2 in parallel: v2 idempotency does not automatically deduplicate a v1 submission. Continue tracking messages created in v1 through their historical contract.

The Postman collection linked above remains Legacy v1. The SMS v2.0.1 Postman collection covers all seven operations of the production v2 contract. Read the v2 reference to prepare your private key, variables and retries with the same idempotency key. Postman requests run manually against production.