Rate Limits

Limits per endpoint and how to handle them.

Edit this page·Last updated: July 13, 2026

Rate Limits

pepe.business applies rate limits to protect the infrastructure and ensure fair service.

Limits by category

CategoryLimitWindow
Read (GET)1,000 req/min
Write (POST/PATCH)100 req/min
Media upload30 req/min
OAuth connect10 req/min
Webhooks send50 req/min

Response headers

X-Pepe-RateLimit-Limit: 1000
X-Pepe-RateLimit-Remaining: 945
X-Pepe-RateLimit-Reset: 1720864800

On limit exceeded

Response 429 Too Many Requests:

{
  "error": "rate_limit_exceeded",
  "message": "Rate limit of 1000/min exceeded. Retry in 12s.",
  "retryAfter": 12
}

The Retry-After header indicates the wait time in seconds.

Retry strategy

Implement exponential backoff with jitter:

async function withRetry<T>(fn: () => Promise<T>, maxRetries = 5): Promise<T> {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (err: any) {
      if (err.status !== 429) throw err;
      const delay = Math.pow(2, i) * 1000 + Math.random() * 500;
      await new Promise(r => setTimeout(r, delay));
    }
  }
  throw new Error("Max retries exceeded");
}

Increase limits

For Enterprise accounts, limits can be increased on request. Contact enterprise@pepe.business.

Underlying platform limits

Each social platform also has its own limits (Twitter: 300 posts/3h, Instagram: 25 posts/24h). pepe.business handles this in a queue and publishes as soon as possible, but you can be notified of a delay via the post.delayed webhook.

Was this page helpful?