llms.txt
+49 −43
https://docs.odds-api.io/llms.txt
− # Odds-API.io Documentation Index for AI Tools− # This file provides an index of documentation pages for LLMs and AI coding assistants− Odds-API.io is a sports betting odds comparison API providing real-time data from 450 bookmakers across 34 sports.− https://docs.odds-api.io/ - Introduction and overview of the API− https://docs.odds-api.io/quickstart - Get started with your first API call− https://docs.odds-api.io/authentication - API key authentication and security− https://docs.odds-api.io/guides/fetching-odds - Fetch and compare odds from multiple bookmakers− Market catalogue: GET /markets?sport=<sport> (no auth required) returns the exact market names, shape, period and prematch/live availability for a sport, use it instead of guessing a name. Every sport parameter in the API takes either spelling, the name or the slug (Ice Hockey or ice-hockey). A listed sport we do not price yet returns an empty markets array, not a 404. Handball ML is always the full-time three-way result (home, draw, away); two-way handball winner prices are under Draw No Bet. C− https://docs.odds-api.io/guides/live-events - Live events, match clock and participant logos− https://docs.odds-api.io/guides/value-bets - Prices above a fair-odds estimate, with expected value− https://docs.odds-api.io/guides/arbitrage-bets - Prematch arbitrage opportunities across your bookmakers, margins after exchange fees, stakes within bookmaker limits− https://docs.odds-api.io/guides/dropping-odds - Track significant odds movements from sharp bookmakers− https://docs.odds-api.io/guides/on-sharp - ON Sharp: consensus line from the sharpest books, fixed 2%/2.5% margin, prematch, paid plans (bookmakers=ON Sharp)− https://docs.odds-api.io/guides/websockets - Real-time odds updates via WebSocket− https://docs.odds-api.io/guides/best-practices - Optimize API usage and performance− https://docs.odds-api.io/guides/historical - Historical closing lines for backtesting− Historical data: /historical/closing-lines (bulk, paid: sport + leagues + from/to + markets + bookmakers), /historical/events and /historical/odds (see API reference)− https://docs.odds-api.io/guides/settlement - Bet settlement API: results per event and automatic grading of bets (won, lost, void, half_won, half_lost), 172 markets in 21 sports, paid plans− Settlement: GET /settlements (eventIds, max 50: status pending/live/awaiting_result/settled/cancelled, final flag, scores) and POST /settlements/grade (JSON body, up to 50 selections of eventId + market + side + hdp + label; returns result, reason, final, basis per selection)− https://docs.odds-api.io/guides/sdks - Official TypeScript and Python SDKs− https://docs.odds-api.io/guides/prediction-markets - Prediction market odds (Polymarket, Kalshi)− https://docs.odds-api.io/guides/native-id-mappings - Native id mappings: our selections to a bookmaker's own ids (Polymarket conditionId + CLOB token id, Kalshi contract ticker + yes/no), lookups and bulk sync, paid plans− https://docs.odds-api.io/guides/paying-with-crypto - Pay with BTC, ETH, USDC and more (10+ coins); how crypto renewals are invoiced− https://docs.odds-api.io/api-reference/introduction - API overview and authentication− https://docs.odds-api.io/api-reference/websocket - WebSocket API documentation− https://docs.odds-api.io/llms-full.txt - Full documentation in a single file (for large context AI tools)− https://docs.odds-api.io/api-reference/openapi.json - OpenAPI specification with complete schemas− - `permessage-deflate` compression is required on WebSocket connections. Use Node `ws`, a browser, or Python `websockets` (all compress by default); Python `websocket-client` and PHP `textalk/websocket` cannot compress; connections without it are refused with HTTP 426− - live `score` and live-`status` messages also include an optional `clock` snapshot (minute, playedSeconds, period, running, statusDetail, serve, injuryTime, periodStartedAt - same shape as `GET /events/live`) to re-anchor a client-side ticker; omitted on pending/settled/cancelled and on sports without a clock. The clock arrives only with an event, so seed the initial value from `GET /events/live` on connect, then let the WebSocket re-anchor it− - WebSocket message types: `welcome`, `created`, `updated`, `deleted`, `no_markets`, `score`, `status`, `resync_required`− https://api.odds-api.io/v3− So football uses `p1`, `p2` + `ft` (+ `ot`, `ap`); ice hockey `p1`-`p3`, `ft` (+ `ot`, `ap`); basketball `p1`-`p4`, `ft` (+ `ot`). Some events also carry the older spellings `period1`-`period5`, `overtime`, `penalties` and `fulltime`, which stop on 12 November 2026, 09:00 UTC; read the keys above.− GET /bookmakers - List available bookmakers with name, active, createdAt and status (status ok/degraded/down, reason maintenance/unavailable); odds from "down" books are not served (no auth required)− GET /events?sport={slug}&apiKey={key} - List events for a sport. Esports events add an `esports` object: game, parent league, region, format (bestOf/firstTo + games). Defaults to the next 14 days when no `to` is given; pass `to` (RFC3339) to widen. Hard-capped at 5000/response - paginate with limit+skip.− GET /events/{id}?apiKey={key} - Get event by ID (live events include the clock object)− GET /odds?eventId={id}&bookmakers={list}&apiKey={key}&markets={names} - Get odds for an event− GET /odds/multi?eventIds={ids}&bookmakers={list}&apiKey={key}&markets={names} - Get odds for multiple events (up to 10)− GET /odds/movements?eventId={id}&bookmaker={name}&market={name}&marketLine={line}&apiKey={key} - Get prematch odds movement history for one market line (names case-insensitive, omit marketLine for the main line or for markets without one). History is recorded only for a fixed set of bookmakers: 10BET, 12bet, 1xbet, 22Bet, 888Sport, BC.Game, Bet365, Betano, Betclic FR, Betfair Exchange, Betfair Sportsbook, Betinia DK, BetMGM, Betsson, BetVictor, Betway, Bovada, Bwin ES, Bwin IT, CloudBet, ComeOn,− GET /value-bets?bookmaker={name}&apiKey={key} - Get prices above a fair-odds estimate (optional: sport={slug}, league={slug} requires sport, includeEventDetails). Rows carry firstSeenAt and bookmakerOddsUpdatedAt (last price write, may be absent); expectedValueUpdatedAt only moves when EV or the sharp limit increases, so it is not a freshness signal− GET /dropping-odds?sport={slug}&league={slug}&leagues={slug,slug}&markets={name,name}&apiKey={key} - Get dropping odds from sharp bookmakers (paid plans only). Use leagues (comma-separated) to filter by multiple leagues at once; mutually exclusive with league. Use markets (comma-separated) to filter by one or more market names.+ # Odds-API.io+ > Index of the Odds-API.io documentation for LLMs and AI coding assistants. Real-time sports betting odds API: 450+ bookmakers, 34 sports, REST and WebSocket.+ Odds-API.io is a sports betting odds comparison API providing real-time data from 450+ bookmakers across 34 sports.+ - [Introduction](https://docs.odds-api.io/): Introduction and overview of the API+ - [Quickstart](https://docs.odds-api.io/quickstart): Get started with your first API call+ - [Authentication](https://docs.odds-api.io/authentication): API key authentication and security+ - [Fetching Odds](https://docs.odds-api.io/guides/fetching-odds): Fetch and compare odds from multiple bookmakers+ Market catalogue: GET /markets?sport=<sport> (no auth required) returns the exact market names, shape, period and prematch/live availability for a sport, use it instead of guessing a name. The same catalogue as a page per sport: https://odds-api.io/markets. Every sport parameter in the API takes either spelling, the name or the slug (Ice Hockey or ice-hockey). A listed sport we do not price yet returns an empty markets array, not a 404. Handball ML is always the full-time three-way result (home,+ - [Live Events](https://docs.odds-api.io/guides/live-events): Live events, match clock and participant logos+ - [Value Bets](https://docs.odds-api.io/guides/value-bets): Pre-match prices above a fair-odds estimate, with expected value+ - [Arbitrage Bets](https://docs.odds-api.io/guides/arbitrage-bets): Prematch arbitrage opportunities across your bookmakers, margins after exchange fees, stakes within bookmaker limits+ - [Dropping Odds](https://docs.odds-api.io/guides/dropping-odds): Track significant odds movements from sharp bookmakers+ - [ON Sharp](https://docs.odds-api.io/guides/on-sharp): ON Sharp: consensus line from the sharpest books, fixed 2%/2.5% margin, prematch, paid plans (bookmakers=ON Sharp)+ - [WebSockets Guide](https://docs.odds-api.io/guides/websockets): Real-time odds updates via WebSocket+ - [Best Practices](https://docs.odds-api.io/guides/best-practices): Optimize API usage and performance+ - [Historical](https://docs.odds-api.io/guides/historical): Historical closing lines for backtesting+ Historical data: /historical/closing-lines (bulk, paid: sport + leagues + from/to + markets + bookmakers), /historical/events, /historical/events/search (query, 3 to 50 characters, optional sport + from/to) and /historical/odds (see API reference)+ - [Settlement](https://docs.odds-api.io/guides/settlement): Bet settlement API: results per event and automatic grading of bets (won, lost, void, half_won, half_lost), 172 markets in 21 sports, paid plans+ Settlement: GET /settlements (eventIds, max 50: status pending/live/awaiting_result/settled/cancelled, final flag, scores, replacedBy on re-issued events) and POST /settlements/grade (JSON body, up to 50 selections of eventId + market + side + hdp + label; returns result, reason, final, basis per selection)+ - [Outrights](https://docs.odds-api.io/guides/outrights): Outrights add-on (paid plans), golf first: outright odds and results for PGA Tour, DP World Tour, LIV Golf and the majors: Winner, Top 3/5/6/10/20, Top 5/10/20 (Incl. Ties), Make Cut+ Outrights: GET /outrights (sport, league, status, kind race|standings; kind, gender, discipline and bookmakerCount per tournament), GET /outrights/odds (id + bookmakers, max 30, same bookmaker rules as /odds) and GET /outrights/results (id; positions, ties, madeCut, winners per market, empty until settled)+ - [SDKs](https://docs.odds-api.io/guides/sdks): Official SDKs: Node.js/TypeScript (npm odds-api-io 1.5.3), Python (PyPI odds-api-io 1.2.2, extras [pandas] and [ws]), PHP (Composer odds-api-io/odds-api-php 0.1.0 on Packagist, PHP 8.1+, REST only), Go (go get github.com/odds-api-io/odds-api-go 0.1.0, oddsws WebSocket subpackage), R (CRAN oddsapiio 0.2.0), all with outrights, closing lines, odds summary, settlement and mappings; MCP server (npm odds-api-mcp-server 1.8.3, 33 tools)+ - [CLI](https://docs.odds-api.io/guides/cli): Command-line tool: npm install -g odds-api-cli, command odds-api (sports, bookmakers, events, odds, value-bets, arbitrage; --json; key from ODDS_API_KEY or --key)+ - [Google Sheets Add-on](https://docs.odds-api.io/guides/google-sheets): "Odds-API.io: Sports Odds for Sheets" on the Google Workspace Marketplace: side panel (Explore, Recipes, Playground, refresh every minute, Copy for AI) and formulas =ODDS(eventId, [market], [bookmaker], [refresh]) and =ODDS_TABLE(sport, [league], [market], [refresh]); needs a paid API key+ - [Prediction Markets](https://docs.odds-api.io/guides/prediction-markets): Prediction market odds (Polymarket, Kalshi)+ - [Native ID Mappings](https://docs.odds-api.io/guides/native-id-mappings): Native id mappings: our selections to a bookmaker's own ids (Polymarket conditionId + CLOB token id, Kalshi contract ticker + yes/no), lookups and bulk sync, paid plans+ - [Paying With Crypto](https://docs.odds-api.io/guides/paying-with-crypto): Pay with BTC, ETH, USDC and more (10+ coins); how crypto renewals are invoiced+ - [API Reference Introduction](https://docs.odds-api.io/api-reference/introduction): API overview and authentication+ - [WebSocket](https://docs.odds-api.io/api-reference/websocket): WebSocket API documentation+ - [llms-full.txt](https://docs.odds-api.io/llms-full.txt): Full documentation in a single file (for large context AI tools)+ - [OpenAPI spec](https://docs.odds-api.io/api-reference/openapi.json): OpenAPI specification with complete schemas+ - `permessage-deflate` compression is required on WebSocket connections. Use Node `ws`, the built-in `WebSocket` in Node.js 22+, a browser, or Python `websockets` (all compress by default); Python `websocket-client` and PHP `textalk/websocket` cannot compress; connections without it are refused with HTTP 426+ - live `score` and live-`status` messages also include an optional `clock` snapshot (minute, playedSeconds, period, running, statusDetail, serve, injuryTime, periodStartedAt - same shape as `GET /events/live`) to re-anchor a client-side ticker; omitted on pending/settled/cancelled and on sports without a clock+ - `clock` messages (`{"type":"clock","id","timestamp","clock"}`) re-send the current clock every 30 seconds for each live event whose clock has `playedSeconds` or `periodStartedAt` (none for tennis/table tennis; an unchanged clock at most every 5 minutes), to `scores` or `status` subscribers (same filters as score messages, best-effort, no `seq`). A `lastSeq` reconnect gets a `clock` message per live event right after its catch-up (after messages queued during it). Count forward from `playedSeco+ - WebSocket message types: `welcome`, `created`, `updated`, `deleted`, `no_markets`, `score`, `status`, `clock`, `resync_required`+ - A re-issued fixture's old event gets a `cancelled` `status` message and, on every `odds` connection, a sequenced `no_markets` per bookmaker, both with `replacedBy` (the event id to use): drop the old event and move your state to the new id+ `https://api.odds-api.io/v3`+ So football uses `p1`, `p2` + `ft` (+ `ot`, `ap`); ice hockey `p1`-`p3`, `ft` (+ `ot`, `ap`); basketball `p1`-`p4`, `ft` (+ `ot`). The older spellings `period1`-`period5`, `overtime`, `penalties` and `fulltime` stopped on 12 November 2026.+ GET /bookmakers - List available bookmakers with name, active, createdAt and status (status ok/degraded/down; reason maintenance/unavailable for degraded and down books, null when ok); odds from "down" books are not served, "degraded" books (also in maintenance) still are (no auth required)+ GET /events?sport={slug}&apiKey={key} - List events for a sport. Esports events add an `esports` object: game, parent league, region (of the competition stage), format (bestOf/firstTo + games). Defaults to the next 14 days when no `to` is given; pass `to` (RFC3339) to widen. Hard-capped at 5000/response - paginate with limit+skip.
Showing the first 40 of each.