Usage & Rate Limits

Pod Engine tracks API usage and enforces rate limits to ensure fair access for all users. Every API response includes headers with your current usage and limits.

Response Headers

Every API response includes these headers to help you monitor your usage:

Header Description
X-RateLimit-Limit Your monthly limit for this endpoint (or "unlimited")
X-RateLimit-Remaining Number of requests remaining before you hit the limit
X-RateLimit-Reset Unix timestamp (seconds) when your limit resets
X-Usage-Monthly Your current monthly usage count for this endpoint type
X-Plan-Tier Your current plan tier (e.g., free, business, agency)

Monthly limits reset on the 1st of each month at midnight UTC.

Per-IP rate limit

On top of the per-plan monthly limits, all API traffic is throttled per IP at the edge:

  • 3 requests/second sustained
  • Short bursts up to 10 requests are allowed before throttling kicks in

Exceeding the per-IP limit returns 429 Too Many Requests. Spread load across requests or implement exponential backoff (see below).

Rate Limit Errors

When you exceed your rate limit, the API responds with a 429 status code:
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Monthly limit of 100 search requests exceeded"
  }
}

Use the X-RateLimit-Reset header to determine when you can retry:

async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    const response = await fetch(url, options);

    if (response.status === 429) {
      const resetTime = response.headers.get('X-RateLimit-Reset');
      const waitMs = resetTime
        ? (parseInt(resetTime) * 1000) - Date.now()
        : Math.pow(2, attempt) * 1000; // Exponential backoff

      console.log(`Rate limited. Waiting ${waitMs}ms before retry...`);
      await new Promise(resolve => setTimeout(resolve, Math.max(waitMs, 1000)));
      continue;
    }

    return response;
  }

  throw new Error('Max retries exceeded');
}

Best Practices

  • 1. Monitor remaining requests - Check the X-RateLimit-Remaining header to avoid hitting limits
  • 2. Implement retry logic - Use exponential backoff when you receive a 429 response
  • 3. Cache responses - Store and reuse API responses where appropriate to reduce unnecessary requests
  • 4. Batch requests efficiently - Use bulk endpoints where available instead of making many individual requests
  • 5. Contact support for increases - If you consistently need higher limits, reach out to discuss your needs

Get started with the API and MCP server

One plan, everything included

  • Full Pod Engine web app access
  • Full API access — same data, programmatic
  • MCP server
  • 10,000 searches / mo
  • 10,000 podcast and episode lookups / mo
  • 1,000 transcripts / mo
  • Historical podcast charts
  • Contacts, emails, social & YouTube data
  • 30 alerts

Get Started

$100 / month

Pay monthly. Cancel anytime.

Available Discounts

We believe great tools should be accessible to everyone building amazing things.

Eligible for a discount? Contact us to learn more.

Bootstrapped Startups

50% off first year

Students & Educators

50% off first year

Nonprofits

50% off first year

Pay Annually

2 months free

Need Guest Booking, an Agency plan, or higher limits?

See the full pricing page for addons and Agency options, or schedule a call.

Need more than 10,000 searches / mo? Get in touch and we'll tailor a plan.