Segment recommends not exceeding 1,000 requests per second per workspace on its HTTP API. Go over that and Segment may queue the extra events or reject requests with a 429. Request size is capped at 32 KB per call and 500 KB per batch request, and a batch can hold up to 2500 events.
A soft rate limit and hard size limits
Segment's HTTP API has two kinds of limit, and they behave very differently. The rate is a recommendation: Segment queues or rejects traffic above it. The sizes are hard rules: break them and the request fails. Most failed calls come from the second kind.
| Item | Limit | Applies to |
|---|---|---|
| Requests per workspace | 1,000 per second (recommended maximum) | HTTP API, per workspace |
| Normal API request size | 32 KB | A single call |
| Batch request size | 500 KB | Batch endpoint |
| Events per batch | 2500 | Batch endpoint, each event under 32 KB |
| Inbound events | 1,000 per second | Engage |
What happens above 1,000 a second
Segment reserves the right to queue additional events and process them at a rate that doesn't exceed the limit. So the first effect of going over is usually a delay, not lost data. Requests well over acceptable limits may be rejected with HTTP status 429, though. If your traffic regularly runs above the recommendation, you can contact Segment to ask for a higher limit.
The size rules that cause errors
- A normal request over 32 KB returns 400 Bad Request.
- A batch request can be up to 500 KB.
- A batch can hold up to 2500 events, and each one must be under 32 KB.
- Every request needs a content-type header of application/json.
A 400 is your clue. If you're seeing 400 errors rather than 429s, the issue is almost certainly size or the missing content-type header, not the rate.
Batch maths for a busy app
The two batch limits work together, and the smaller one wins, and it's worth doing the sums before you build your sender. 2500 events in 500 KB means each event can average only about 200 bytes. Most real events with a handful of properties are bigger than that, so in practice the 500 KB ceiling, not the 2500 count, decides how many events fit.
Say your events average 1 KB each. Then a batch holds about 500 of them before it hits 500 KB. Sending 50,000 events would take around 100 batch requests, which is nowhere near the 1,000-a-second recommendation. Batching is the simplest way to keep both the request rate and the error rate down.
Why queued doesn't mean lost
Segment Docs, on the HTTP API source, make the distinction clear. The 1,000-per-second number is a recommendation, not a hard wall, and Segment may queue the extra events rather than drop them. The hard failures are size based: over 32 KB on a normal call returns a 400, and a batch over 500 KB or 2500 events is rejected. Build your retries around 429s, and your validation around sizes.
If you're monitoring the services that send data to Segment, see my roundup of API monitoring tools, and if you're deciding what to do with the data once it's in, my guide to customer segmentation tools.
How Zendesk, Help Scout and Notion compare
Zendesk lists Support API requests per minute of 200, 400, 400, 700 and 2500 across its five plan levels.
Help Scout lists up to 200, 400 and 800 calls per minute for its Inbox API, depending on plan.
Notion allows 600 requests per minute per connection on Business and Enterprise workspaces, and 180 per minute on other plans.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
My advice for teams sending to Segment
Batch everything you can, check event size before you send, and always set the application/json header. Treat 429s as a signal to slow down and 400s as a bug in what you're sending. If your normal traffic sits near 1,000 a second, talk to Segment before a big launch rather than after.
A simple retry pattern helps. When a 429 comes back, wait, then resend with a longer pause each time, so you're not adding to the overload. When a 400 comes back, don't retry at all: log the payload, check its size and headers, and fix it. Retrying a request that's too big won't ever succeed, and it just wastes your request rate.
Want your tool on this list? Featured spots and reviews here are paid partnerships. Here's how to partner with me.
Frequently asked questions
What's the Segment API rate limit?
Segment recommends no more than 1,000 requests per second per workspace on the HTTP API.
What happens if I exceed it?
Segment may queue the extra events or reject requests with a 429.
How big can a request be?
32 KB for a normal call and 500 KB for a batch request.
How many events can I batch?
Up to 2500 events per batch, each under 32 KB.
Can the limit be raised?
Yes. You can contact Segment to request a higher limit.


