API reference
Everything public on Backd is available as JSON: live markets with prices in every odds format, public records and calls, combos, leaderboards, and how Backd callers are split on any market. No key, no sign-up.
The basics
| Base URL | https://backd.market/api/v1 |
| Auth | None. Every endpoint is read-only and returns only what's public. |
| Rate limit | 120 requests a minute per IP. Every response carries x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-reset. |
| CORS | Allowed from any origin, so it works straight from a browser. |
| Caching | Responses carry cache-control; live data is 15 seconds, lists 30 to 60, odds an hour. |
| Numbers | Chances are 0 to 1. Money is on a notional $10 a call. Times are ISO 8601 or Unix seconds where marked. |
Your first request
curl "https://backd.market/api/v1/markets?category=Football&limit=3"{
"ok": true,
"live": true,
"count": 3,
"events": [
{ "slug": "epl-ars-che-2026-10-04", "title": "Arsenal vs. Chelsea", "category": "Football",
"markets": [ { "id": "4711001", "question": "Will Arsenal win on 2026-10-04?", "outcomes": [ { "name": "Yes", "chance": 0.58, "odds": { "percent": "58%", "decimal": "1.72", "fractional": "8/11", "american": "−138", "price": "58¢" } }, "…" ] } ],
"url": "https://backd.market/match/epl-ars-che-2026-10-04" }
]
}Endpoints
| Endpoint | What it returns |
|---|---|
| GET /api/v1/markets | Open events, busiest first. |
| GET /api/v1/markets/{eventSlug} | One event with every market, live prices in every odds format, and how Backd callers are split on each market.. |
| GET /api/v1/markets/{eventSlug}/history | The chance of a market’s first outcome over time, for charts.. |
| GET /api/v1/live | Every match in play right now, with the score, the clock and the chance of each result.. |
| GET /api/v1/calls | Public calls across Backd, newest first. |
| GET /api/v1/calls/{id} | One public call, with any updates the caller added to their thesis.. |
| GET /api/v1/users/{handle} | Someone’s public record: right %, profit on $10 calls, XP, streak and follows.. |
| GET /api/v1/users/{handle}/calls | A person’s public calls, newest first, optionally by status.. |
| GET /api/v1/leaderboard | Public records ranked on settled calls. |
| GET /api/v1/combos | Public combos (2 to 6 picks that all have to happen), newest first.. |
| GET /api/v1/odds | One chance in every odds format, with what $10 wins and the XP a right call would earn.. |
Common shapes
Every response is { "ok": true, ...data }. Errors are { "ok": false, "error": { "code", "message" } } with a matching status: 400 for a bad parameter, 404 when nothing matches, 429 when rate limited, 503 while records are unavailable. See errors.
Chance is always 0 to 1. Odds repeat the same chance as percent, decimal, fractional, american and price, so you never need to convert. profit_on_10 is the profit a $10 call made or would make.
OpenAPI
The whole API is described at /api/v1/openapi.json (OpenAPI 3.1), generated from the same spec as these pages. Point a client generator at it.