Skip to main content

API Limits & Best Practices

Trackly SMS is built for high-volume sending. Throughput scales with bulk requests, since one request can carry up to 1,000 messages — batch aggressively to reach high send rates.

Rate Limits

The core sending endpoints (/v2/send, /v2/send/bulk, and related SMS/email endpoints) do not enforce a fixed per-IP request-rate cap. In practice, throughput is bound by request latency and payload size, so bulk endpoints are how you scale: a single POST /v2/send/bulk carries up to 1,000 messages. Some specialized endpoints (for example OTP and phone validation) and account-level controls (such as daily send caps) enforce their own limits. When one is exceeded, the response is 429 Too Many Requests with a rate_limited code:
429 - Too Many Requests
When you receive a 429, pause and retry with exponential backoff after the window resets. Prefer bulk requests over many single requests for efficiency and reliability.

Payload Limits

Batch Limits

Bulk endpoints accept up to 1,000 records per request. Each record is processed individually — partial success is possible. To process more than 1,000 items, split your data into batches and send multiple requests.

Best Practices

Use Bulk Endpoints

Buffer messages locally and send in bulk batches. Sending 1,000 messages in a single bulk request is more efficient than 1,000 individual requests — fewer round trips, lower latency, and less overhead on both sides.

Handle Transient Errors

Use exponential backoff with jitter when you receive 5xx errors. These are transient and resolve on retry.

Handle Partial Failures

Bulk responses include per-record errors. Parse the errors array to identify and retry failed items without re-sending the entire batch.

Parallelize Across Batches

You can send multiple bulk requests concurrently. Split large sends into 1,000-message batches and dispatch them in parallel; very high concurrency is bound by request latency, so batch aggressively with bulk endpoints.

Next Steps

Error Codes

Handle errors in your integration

Send Bulk

Send up to 1,000 messages per request