Skip to content

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.