VoxiSMS API (2.0.0)

Download OpenAPI specification:

License: MIT

Public API for sending SMS messages through VoxiSMS.

Authentication

The v2 SMS endpoint uses HMAC authentication. Each request must include these headers:

  • customer-id: your VoxiSMS customer ID
  • timestamp: current Unix timestamp in seconds
  • signature: lowercase hex HMAC-SHA256 signature

Build the signature from this exact canonical string:

METHOD + "\n" + SIGN_PATH + "\n" + TIMESTAMP + "\n" + CUSTOMER_ID + "\n" + BODY

For POST https://api.voxisms.com/v2/enqueue-message, the signed path is /enqueue-message, not /v2/enqueue-message.

The timestamp value must be within 5 minutes of the server time. The BODY value must be the exact JSON bytes sent in the request body.

SMS

Send outbound SMS messages

Send an SMS

Enqueues an SMS message for delivery.

The request is authenticated with HMAC headers. The body contains only the message payload; customerId and secretKey are not sent in the JSON body.

Signature example

For this body:

{"recipient":"+15551234567","message":"Hello from VoxiSMS"}

and timestamp 1700000000, sign this canonical string:

POST
/enqueue-message
1700000000
your-customer-id
{"recipient":"+15551234567","message":"Hello from VoxiSMS"}

Then send the resulting HMAC-SHA256 hex digest in the signature header.

Authorizations:
(customerIdtimestampsignature)
Request Body schema: application/json
required
recipient
required
string <= 32 characters

Destination phone number in E.164 format.

message
required
string <= 1600 characters

SMS message text.

id
string or null <= 128 characters

Optional client-supplied message identifier. If omitted or blank, VoxiSMS generates one.

requestedTime
integer or null <int64>

Optional requested delivery time as a Unix timestamp in seconds.

source
string or null <= 128 characters

Optional integration or origin identifier.

webhookUrl
string or null <uri> <= 2048 characters

Optional HTTPS URL that receives delivery or status callbacks.

Responses

Request samples

Content type
application/json
Example
{
  • "recipient": "+15551234567",
  • "message": "Hello from VoxiSMS"
}

Response samples

Content type
application/json
{
  • "messageId": "sample-message-id-12345"
}

Legacy

Legacy endpoints kept for existing integrations

Send an SMS using the legacy endpoint Deprecated

Legacy SMS enqueue endpoint for existing integrations.

New integrations should use POST /enqueue-message on the v2 API with HMAC authentication.

Authorizations:
apiKey
Request Body schema: application/json
required
customerId
required
string

Your VoxiSMS customer ID.

secretKey
required
string

Your VoxiSMS secret key.

recipient
required
string

Destination phone number in E.164 format.

message
required
string

SMS message text.

id
string

Optional client-supplied message ID.

webhookUrl
string <uri>

Optional URL to receive delivery or status event callbacks.

source
string

Optional integration or origin identifier.

Responses

Request samples

Content type
application/json
{
  • "customerId": "string",
  • "secretKey": "string",
  • "recipient": "+15551234567",
  • "message": "Hello from VoxiSMS",
  • "id": "string",
  • "webhookUrl": "http://example.com",
  • "source": "zapier"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "string",
  • "data": {
    }
}