DocsLibraries and tools
Client libraries and tools
Packages and ready-made files for calling the API from your own code, an AI assistant, a spreadsheet or Postman. Each follows the public OpenAPI contract, and a call made through one costs the same tokens as any other.
Python client
The oddsrelay package has one method for each GET route, uses the standard library only and runs on Python 3.9 and up. It sends each ETag back so an unchanged reply is a free 304, waits out a 429 for its Retry-After, and with max_ quotes a call first and refuses it above your cap.
pip install oddsrelay
JavaScript and TypeScript client
The oddsrelay package on npm is ESM with TypeScript types and no runtime dependencies: it uses the fetch built into Node 18 and later. It sends the key as a Bearer token, asks for gzip, keeps each ETag so an unchanged reply is a free 304, waits out a 429, and with maxTokens quotes a call before it runs.
npm install oddsrelay
R client
The oddsrelay R package has one function for each GET route and returns each reply as a list, with arrays of records as data frames. It runs on R 4.1 and up, sends each ETag back so an unchanged reply is a free 304, and quote = prices a call without spending tokens. Until it is on CRAN, install it from GitHub.
install.packages("pak")
pak::pak("oddsrelay/oddsrelay-r")MCP server
oddsrelay-mcp gives an AI assistant read-only access to the API: matched boards, one event's prices, and the sport, event, bookmaker and coverage lists. It runs over stdio in Claude Desktop, Claude Code, Cursor and other MCP clients, on Node 18 or later. Every call that spends tokens is quoted first and refused above max_, so no single call spends more than its cap, and the assistant is told to ask you before raising it. The MCP Registry lists it as io.github.oddsrelay/. Claude Desktop's config file opens from Settings > Developer > Edit Config, and Cursor's is ~/. The key sits in that file as plain text, so keep it out of anything you commit. For Claude Desktop there is also a one-click bundle, oddsrelay-mcp.mcpb, on the latest release: open it and Claude Desktop asks for your key, masks it, and runs the server with no Node of your own needed.
claude mcp add --transport stdio oddsrelay --env ODDSRELAY_KEY=your_key_here -- npx -y oddsrelay-mcp
oddsrelay-mcp on npm · Smithery · Claude Desktop bundle · Source on GitHub
Google Sheets template
A spreadsheet with three formulas that fill a table from the API: ODDSRELAY_ for a matched board, ODDSRELAY_ and ODDSRELAY_ for the keys its filters take. Make a copy, then choose Extensions > OddsRelay > Set API key. The key stays in your own Apps Script settings, never in a cell, and each ODDSRELAY_ call is quoted first and stops above its token cap. Formulas run on the spreadsheet owner's key, so share a sheet view-only, and only with your own team.
=ODDSRELAY_ODDS("standard", "soccer", "bet365,ladbrokes", "smarkets", "h2h")Postman workspace
A public Postman workspace with every route as a request: your key goes in one collection variable, and optional parameters come switched off until you tick them. The same collection is a file you can import into Postman or Insomnia.
OpenAPI contract
The API's machine-readable description, OpenAPI 3.1, at a public address that needs no key. Every client on this page follows it. For another language, point a code generator at it. For a request tool, import it.
No client for your language? Generate one from the OpenAPI contract, or tell us what you use. Every parameter: API reference. What developers build on the feed: an odds API for developers.