Skip to main content

Rate Limits

Rate Limits

XCROP uses a credit-based system to ensure fair usage and platform stability. Credits are consumed per API call based on the endpoint and result count. Monthly plan credits reset every 30 days, counted from your payment date; monthly plans last 30 days and do not auto-renew, and renewing early adds 30 days to your current expiry. Basic and Pro can also be bought yearly at 20% off ($47.04/yr and $95.04/yr): a yearly plan lasts 365 days and grants the whole year of credits at once (8.4M or 24M). Free Starter credits reset on the 1st of each calendar month. Per-minute rate limits apply based on your plan tier.

Plan Comparison

FeatureStarterBasicProPay as You Go
Monthly credits5K700K2MBuy packs
Requests / minute60300600300
Max results / call1,0001,0001,0001,000
Write API✓✓✓✓
Batch endpoints✓✓✓✓
Credits reset1st of monthEvery 30 days (yearly: once)Every 30 days (yearly: once)Never expire
SupportCommunityCommunityPriorityPriority
PriceFree$4.90/mo$9.90/moFrom $2.90
Yearly (20% off)n/a$47.04/yr$95.04/yrn/a

Rate Limit Headers

API responses include headers indicating your current rate limit status:

Response headersBASH
X-RateLimit-Limit: 60           # Per-minute request limit for your plan
X-RateLimit-Remaining: 58       # Per-minute requests remaining
X-Response-Time: 312ms          # Request latency
X-MaxResults-Allowed: 1000      # Max results per request (list endpoints)
X-Cache: MISS                   # Responses are never cached; every call fetches fresh data

429: Rate Limit Exceeded

JSON
{
  "error": "Rate limit exceeded — too many requests per minute",
  "code": "RATE_LIMIT_EXCEEDED"
}
✦
Use the X-RateLimit-Remaining header to proactively throttle your requests before hitting the limit. When it reaches 0, wait for the per-minute window to reset. If your monthly credits run out, the 429 body carries code: "CREDITS_EXHAUSTED" instead, and waiting will not help: buy a credit pack or upgrade.

More in Guides

Full documentation with search: xcrop.io/docs