Skip to main content
SmsManager’s JSON API v2 lets you send SMS messages to any phone number worldwide with a single HTTP request. This guide walks you through everything from a minimal one-liner to a fully configured message with a custom sender, Unicode support, and delivery callbacks.

Prerequisites

  • An active SmsManager account
  • An API key from app.smsmanager.com
  • Base URL: https://api.smsmngr.com/v2
  • Authentication header: x-api-key: YOUR_API_KEY

1

Send your first SMS

The simplest request needs only two fields: body (the message text) and to (an array of recipients). Each recipient is an object with a phone_number field in international format, without the leading +.
cURL
Request body
A successful response returns a request_id and an array of accepted recipients, each with a unique message_id you can use to track delivery.
2

Set a sender name

Use the flow array to configure channel-specific options. For SMS, add an sms object inside the flow step with a sender field. Alphanumeric sender names can be up to 11 characters. If you are using a virtual number as the sender, omit the leading +.
Request body
Alphanumeric sender names may require pre-registration in some countries (for example, the UK, India, and several Asian markets). Contact SmsManager support to register your sender name before sending to those destinations.
3

Choose a gateway

The gateway field inside the sms flow object controls how SmsManager routes your message:
Request body
4

Handle Unicode characters

Standard SMS uses the GSM-7 character set. If your message contains characters outside that set — such as Cyrillic, Arabic, Chinese, or emoji — set type: "utf" inside the sms flow object to switch to UCS-2 encoding.
UCS-2 messages have a reduced per-segment capacity of 70 characters (versus 160 for GSM-7). Long Unicode messages will be split into more segments and cost more.
Request body

Tags

The tag field classifies your message for routing and reporting. Pass it at the top level of the request body.

Time-to-live

Set ttl (in minutes) inside the sms flow object to control how long SmsManager attempts delivery before abandoning the message. This is useful for time-sensitive codes that are worthless after a short window.

Full example

The following examples show a complete SMS request with a sender name, priority tag, TTL, and a delivery callback URL.

Next steps

Batch Sending

Send up to 100 messages in a single API call using the /messages endpoint.

Webhooks

Receive real-time delivery status updates at your callback URL.

Send Viber

Add Viber Business Messages with rich content and SMS fallback.

Phone Verification

Verify phone numbers with OTP using the SmsManager Verify API.