Limits, quotas, and overage
What each plan includes, what happens when you pass it, and the technical limits that apply to every plan.
These pages describe ShellOrbit as it runs today. Breaking changes to the HTTP API are announced before they ship, and existing request and response shapes stay supported.
What counts as an event?
One request received at an ingest endpoint. Delivery attempts, retries, and replays do not add to the count, so a single event that takes eight attempts still counts once.
What does each plan include?
| Plan | Events per month | Retention and replay | Overage rate |
|---|---|---|---|
| Hobby | 15,000 | 3 days | Queued, see below |
| Starter | 75,000 | 14 days | $0.50 per 1,000 |
| Pro | 150,000 | 30 days | $0.40 per 1,000 |
| Business | 750,000 | 90 days | $0.30 per 1,000 |
What happens when I pass my plan volume?
On paid plans, nothing changes. Events keep arriving, keep being delivered, and the extra is billed by the thousand at your plan rate. There is no lockout on the day your product gets attention.
On the free plan, receipt continues and events are queued for up to 48 hours while we notify you. Upgrading drains the queue. If the account stays over its limit after that window, delivery slows, and sustained overrun leads to rejection at the edge with 429 so the provider retries on its own schedule. You are told before that happens.
Passing a plan limit never deletes stored events.
Will I be warned before I am charged for overage?
Yes. At 90 percent of your included volume we email the addresses on your alert settings, and the dashboard shows the same notice the next time you open it. Both say the rate, so the decision to upgrade or absorb the overage is one you make before the charge exists rather than after the invoice arrives.
The warning goes out once per period. It is sent regardless of whether failure alert emails are switched on: that setting is about a destination going down, and turning it off is not a request to be kept in the dark about being billed.
When is overage actually charged?
After the period closes, not as it accrues. A job runs once a month, works out how far each account went past its included volume, and adds the amount to your next invoice as a single line rather than raising a separate transaction. Charging separately would pay the payment processor’s fixed fee twice, which on an overage of a few dollars can cost more than the overage.
A period is charged exactly once. The job claims each period before raising a charge, so a rerun or a retry finds the period already claimed and stops.
Is there a ceiling on what I can be billed?
Yes. Paid accounts stop being accepted at ten times the plan’s included volume, answering 429 so the provider holds the events and retries on its own schedule.
This is a guard against a runaway bill, not a sales limit. Ordinary growth and busy weeks bill normally; what it stops is a retry loop in somebody else’s system running up a bill nobody intended, where the first anyone hears of it is the invoice. Contact support if you need it raised.
What technical limits apply everywhere?
| Limit | Value |
|---|---|
| Inline payload size | 350 KB |
| Maximum payload size | 5 MB, stored in object storage |
| Delivery request timeout | 15 seconds |
| Ingest rate per endpoint | 100 requests per second sustained, bursts higher |
| Destinations per endpoint | 1 on Hobby and Starter, 3 on Pro, unlimited on Business |
| Endpoints | 1 on Hobby, 5 on Starter, unlimited above |
| API rate limit | 100 requests per minute per key |
| Bulk replay rate | Set per replay, default 10 per second |
How do I keep usage predictable?
- Set a lower retention plan if you do not need long history. Retention drives storage, not cost per event, but it also decides how much personal data you hold.
- Use a transformation to drop fields you never read.
- Watch the usage view, which shows the current month against your included volume and the projected overage.
- Set a failure alert. Most surprise volume is a retry loop in someone else’s system, and an alert catches it on day one.