Error Response Format
All errors follow this format:HTTP Status Codes
| Status | Meaning |
|---|---|
200 | Success |
201 | Created (for POST requests) |
400 | Bad Request - Invalid parameters |
401 | Unauthorized - Invalid or missing API key |
404 | Not Found - Resource doesn’t exist |
429 | Too Many Requests - Rate limit exceeded |
500 | Internal Server Error - Something went wrong |
Authentication Errors (401)
| Code | Message | Solution |
|---|---|---|
missing_api_key | API key required | Include X-Api-Key header |
invalid_api_key | Invalid API key | Check your API key is correct and active |
Validation Errors (400)
Message Endpoints
| Code | Message | Solution |
|---|---|---|
missing_to | Recipient phone number (to_msisdn) is required | Provide the to_msisdn field |
missing_body | Message body is required | Provide the body field |
missing_from | Sending number ID (from_phone_number_id) is required | Provide from_phone_number_id |
invalid_phone | Invalid phone number format | Use E.164 format (+1…) |
too_many_messages | Maximum 1000 messages per request | Split into smaller batches |
missing_messages | Messages array is required | Provide the messages array |
Example: Missing Field
Example: Invalid Phone
Resource Errors (404)
| Code | Message | Solution |
|---|---|---|
list_not_found | Sending number not found | Verify the from_phone_number_id exists and is active |
Handling Errors
Python Example
JavaScript Example
Deprecation Headers
All v1 API responses include deprecation headers:API Limits
Trackly SMS does not impose API rate limits. For payload size limits and bulk batch guidance, see API Limits & Best Practices.Getting Help
If you encounter persistent errors:Discord Support
Create a support ticket with
/support newFAQ
Check common questions