PRICING

Pricing

Free forever at 5,000 requests a day — 200 without even signing up. Add Pinnacle and higher limits when you ship.

Free
$0forever
60 req/min · 5,000/day

A real key in seconds, no card. Six Asian books, 90s-delayed. Keyless works too, at 200/day.

  • 6 Asian books (no Pinnacle)
  • 5,000 requests/day (200/day keyless)
  • 90s data freshness
  • Burst 30 req
  • Community support
Start free
popular
Standard
Freein beta
600 req/min · no daily cap

For apps in production. Pinnacle included.

  • All books, incl. Pinnacle
  • No daily request cap
  • 10s data freshness
  • Burst 120 req
  • Email support
Get a key
Real-time
Freein beta
6,000 req/min

2s freshness at 6,000 req/min — polling, not a stream.

  • All books, incl. Pinnacle
  • 2s data freshness
  • Burst 600 req
  • Priority support
Get a key
Enterprise
Customcontact sales
60,000 req/min

Scaled limits with a contract & SLA.

  • All books, incl. Pinnacle
  • 2s data freshness
  • Burst 2,000 req
  • Dedicated + SLA
Contact sales

Standard and Real-time are still free on request while billing is being built; pricing lands before GA. Metered in plain requests, not credits — one call is one call, single match or full slate, with no per-market multipliers.

Compare tiers

Every limit, side by side.

Same REST surface on every tier. What changes: requests/min, requests/day, freshness (2s–90s), and whether Pinnacle is included.

Feature FreeStandardReal-timeEnterprise
Requests / min606006,00060,000
Requests / day5,000 (200 keyless)No capNo capNo cap
Burst301206002,000
Data freshness90s10s2s2s
BookmakersSelect AsianAllAllAll
Pinnacle & sharp books
Asian handicap
Totals (O/U)
1×2
Full-time + Half-time
Odds formats (all 6)
Rate-limit headers
SupportCommunityEmailPriorityDedicated
SLA

Rate limits live in the headers.

Every response carries X-RateLimit-Remaining and X-RateLimit-Reset, so you always know where you stand. When the bucket empties you get a 429 with a Retry-After: wait that many seconds, then retry. Every endpoint is read-only, so retries are always safe.

http — 429 Too Many Requests
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1748534665
Retry-After: 3

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded; retry after 3s",
    "is_retriable": true,
    "retry_after_seconds": 3,
    "documentation_url": "https://docs.infersports.dev/errors#rate_limit_exceeded"
  }
}
FAQ

Rate limits, freshness, and the keyless free tier — answered.

Everything that counts against your bucket, what “real-time” really means, and why retries are safe.

What counts as a request?

Every HTTP call to a /v1 endpoint — one event list, one odds pull, one resolve or convert call. Responses are served from a per-tier cache, so polling the same fixture inside its freshness window is cheap on our side but still draws one token from your bucket.

Is there really a free tier?

Yes — $0, no card. You get a real key in seconds: 60 req/min, 5,000 requests a day, and select Asian books at 90-second freshness. You can also skip the signup entirely and call it keyless at 200 requests a day. It is the same API, just without Pinnacle and the tighter freshness ceilings. Upgrade only when you ship.

How do rate limits work?

Two budgets. Pace is a token bucket per key: it refills at your tier’s req/min and tolerates a short burst up to the bucket capacity, and every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. Volume is a daily ceiling — 200 requests/day per IP keyless, 5,000/day with a free key, none from Standard up. Either one returns HTTP 429 with a Retry-After; a daily one is tagged X-RateLimit-Scope: daily and its Retry-After is hours rather than seconds. Back off and retry — every endpoint is read-only, so repeating a call is always safe.

About "data freshness" — is this real-time?

We have no public WebSocket. Freshness is the outward cache-TTL ceiling on odds responses: the most stale a payload can be before we recompute it from the in-memory snapshot. "Real-time" means a short TTL (2s) plus a high request rate, not a streaming socket. Every payload also carries an as_of stamp so you always know the snapshot age.

Can I upgrade anytime?

Yes. Tiers attach to your API key, so upgrading lifts your limits, drops your freshness ceiling and unlocks Pinnacle immediately — no new key, no code changes. Standard and Real-time are still free on request while billing is being built; pricing lands before GA. Email us and we will set you up.

Start on the free tier today.

A real key in seconds, no card — 5,000 requests a day. Add Pinnacle and higher limits the moment you ship.