Response format
Every endpoint returns the same JSON envelope, so your integration can handle success and failure the same way everywhere.
Success
A successful response sets success: true and puts the result in data.
json
{
"success": true,
"data": { "uuid": "msg-uuid", "status": "queued" }
}Paginated lists
List endpoints return an array in data and a meta object with the total count and current page. Pass page and page_size as query parameters.
json
{
"success": true,
"data": [ /* ...items... */ ],
"meta": { "total": 142, "page": 1, "page_size": 20 }
}Errors
A failed response sets success: false and a human-readable error message. The HTTP status code signals the class of error.
json
{
"success": false,
"error": "insufficient SMS unit balance"
}Always check success first
Read
success before touching data. On failure, data is absent and error tells you what went wrong.