Skip to main content
Rate limits protect the platform from runaway loops and keep delivery times predictable for every team.

Defaults

Different plans have different ceilings — contact us if you need higher limits for a one-off campaign.

What happens when you hit the limit

A Retry-After: 1 header tells you the minimum seconds to wait. Our SDKs handle this automatically — they back off and retry once before surfacing the error to your code.

Best practices

Use batch endpoints

One /v1/sms/batch call of 1000 messages is 1 request. Same for emails.

Add jitter to retries

When retrying a 429, add random 100–500 ms jitter so you don’t stampede on the next second.

Bucket by idempotency key

Deterministic keys mean a stampede of retries doesn’t multiply charges.

Move heavy work to queues

Don’t call Robase from a hot request handler. Enqueue a job, return immediately, process async.

Higher limits

Need more than the default? Email sales@robase.dev with your monthly volume and use case. We lift limits for teams doing ≥50k messages/day at no extra cost.