Rate Limits¶
The GoByte API is rate limited to keep the service fast and fair for everyone. Limits are applied per API key.
Tiers¶
Rate limits scale with your plan. Higher tiers get higher throughput.
| Plan | Throughput |
|---|---|
| Free | Best for testing and low volume. |
| Pro | Higher limits for production apps. |
| Team | Elevated limits for teams. |
| Enterprise | Custom limits — contact us. |
Info
Exact request-per-minute numbers depend on your plan and may change. Design
your integration to handle 429 responses gracefully rather than assuming a
fixed number.
Handling 429 Too Many Requests¶
When you exceed your limit, the API returns HTTP 429. Back off and retry
rather than hammering the endpoint.
Recommended strategy:
- Retry with exponential backoff — wait a short interval, then double it on each subsequent retry (for example 1s, 2s, 4s), with a cap.
- Add jitter — randomize the wait slightly so many clients don't retry in lockstep.
- Batch where possible — use the bulk create endpoint
(
POST /api/v1/public/links/bulk) to create many links in a single request instead of one request per link.
async function createLink(body, attempt = 0) {
const res = await fetch("https://api.gobyte.io/api/v1/public/links", {
method: "POST",
headers: {
Authorization: "Bearer gb_live_sk_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify(body),
});
if (res.status === 429 && attempt < 5) {
const wait = Math.min(1000 * 2 ** attempt, 30000) + Math.random() * 250;
await new Promise((r) => setTimeout(r, wait));
return createLink(body, attempt + 1);
}
return res.json();
}
Need higher limits?¶
If you're hitting limits on a production workload, upgrade your plan from the dashboard or reach out about Enterprise limits.