Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: InferSports Ops API
summary: Sharp Asian odds, built for code.
description: 'Read-only REST API for live Asian-bookmaker + Pinnacle odds (football & basketball; 1x2 / Asian handicap / totals; full-time & half-time).
**Determinism contract** (see `/llms.txt`): `/v1` is frozen (breaking changes ship under `/v2`); Sqids ids are stable across calls and restarts; response field sets are fixed (optional values are sent as `null`, never omitted — the sole exception is `/convert/odds`, which projects to the requested `to` formats). `convert/odds`, `convert/handicap` and `explain_handicap` are pure functions (same input → same output) and safe to cache indefinitely; snapshot reads keep a fixed shape but live values. No historical data.'
version: 0.1.0
tags:
- name: ops
paths:
/health:
get:
tags:
- ops
summary: Health
operationId: health_health_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Health Health Get
/v1/usage:
get:
tags:
- ops
summary: Usage
description: 'Request / error / latency metrics for the CALLER''S OWN key (PRD-v3 §7).
Requires a real API key — keyless callers are rejected. Scoped to the caller: only this key''s
own bucket is returned (masked), never the full per-key map, so one customer can''t read another
customer''s key material or usage. The session-scoped dashboard uses /platform/usage instead.'
operationId: usage_v1_usage_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Usage V1 Usage Get