# SkipOdds > De-vigged consensus sports win probabilities. Every surveyed bookmaker price for a market is > averaged and stripped of its margin, so the returned probabilities sum to exactly 100% instead of the > 105–110% a raw odds screen adds up to. 13 sports, 69+ bookmakers, one API key. Operated by SkipSeek > Inc. Informational data only — SkipOdds does not accept bets, hold funds, or settle wagers, and > exposes no bookmaker names. This file was generated by API Evangelist from the provider's public surface on 2026-08-11. SkipOdds does not publish an llms.txt of its own (https://skipodds.com/llms.txt returned 404). ## How to call it - Base URL: `https://skipodds.com`, all paths prefixed `/v1` - Auth: `Authorization: Bearer ` (preferred) or `x-api-key: `. Never in the query string. - Anonymous/demo key published by the provider: `skipodds-demo-2026` — 100 requests/day shared across all anonymous callers. A free personal key (250/day) is self-serve at https://skipodds.com/#free. - Remaining allowance is returned in the response BODY as `requests_remaining_today`. There are no RateLimit-* response headers. Quota exhaustion returns 429 `{"error":"quota_exceeded"}` with no Retry-After. - Responses are cached ~60s at the edge. - Free tiers must credit SkipOdds with a link to https://skipodds.com wherever the numbers render. ## APIs - [SkipOdds REST API](https://skipodds.com/docs): 11 operations over fixtures, line movement, outrights, golf tournaments and alert webhooks. - [SkipOdds MCP server](https://skipodds.com/mcp): streamable-http, stateless, 5 read-only tools. Answers with no credentials on the shared demo quota. ## Specs - [OpenAPI 3.0.3](https://skipodds.com/openapi.json): the whole REST surface. - MCP `tools/list`: POST `{"jsonrpc":"2.0","id":1,"method":"tools/list"}` to https://skipodds.com/mcp ## Endpoints - `GET /v1/fixtures` — soccer fixtures with the SkipOdds Index (`competition`, `limit` 1–50 default 25) - `GET /v1/fixtures/{id}` — one soccer fixture - `GET /v1/fixtures/{id}/movement` — how the Index moved (`hours`, default 24, max 72 / 336 on Scale) - `GET /v1/outrights` — tournament-winner probabilities, normalised across the still-alive field - `GET /v1/{sport}/fixtures` — fixtures for a non-soccer sport - `GET /v1/{sport}/fixtures/{id}` — one non-soccer fixture - `GET /v1/{sport}/fixtures/{id}/movement` — Index movement for a non-soccer fixture - `GET /v1/golf/tournaments` — golf tournaments with normalised outright probabilities - `GET /v1/golf/tournaments/{key}` — one golf tournament with the full priced field - `GET /v1/alerts/webhooks` — list your movement-alert webhooks (paid tiers) - `POST /v1/alerts/webhooks` — register a webhook fired when the Index moves past a threshold `{sport}` is one of: tennis, cricket, rugby, baseball, football (American), basketball, hockey, college-football, college-basketball, mma, boxing. Soccer has no prefix. Outright markets exist for soccer and golf only; every other sport is fixture-level. ## MCP tools - `list_fixtures` — start here; the fixture ids it returns are what the other fixture tools require - `get_fixture` — one fixture in full - `get_fixture_movement` — timestamped snapshots of how the fair probabilities moved - `list_tournament_outrights` — soccer competition winner probabilities - `list_golf_tournaments` — golf outrights; call with no arguments, then with a `tournament_key` All five are annotated read-only. There is no MCP tool for webhook registration. ## Docs - [API reference](https://skipodds.com/docs) - [Fixtures](https://skipodds.com/docs/fixtures) - [Line movement](https://skipodds.com/docs/movement) - [Outrights](https://skipodds.com/docs/outrights) - [Alerts & webhooks](https://skipodds.com/docs/alerts) - [Errors, attribution & terms](https://skipodds.com/docs/limits) - [Widget](https://skipodds.com/docs/widget) - [MCP server](https://skipodds.com/mcp) - [Pricing](https://skipodds.com/#pricing) - [Terms](https://skipodds.com/terms) · [Privacy](https://skipodds.com/privacy) ## Data shape Every successful response is an object carrying `source`, `attribution`, `generated_at`, `requests_remaining_today` and `tier`, plus a payload key. The probability object is always keyed `skipodds` and its inner keys vary by market: `home`/`draw`/`away` for team sports that price a draw, `home`/`away` for moneyline sports, `p1`/`p2` for tennis and combat sports, and `players[]` for golf. Each carries `fair_odds`, `books_surveyed` and `margin_removed`. Only the 3-way variant is modelled in the OpenAPI. ## Errors Flat JSON, not RFC 9457: `{"error": ""}`. - `401 invalid_api_key` — missing or invalid key - `429 quota_exceeded` — daily quota exhausted - `404` — unknown fixture (documented in prose only; not in the OpenAPI, slug unpublished) ## Not published No llms.txt, no /.well-known/ documents of any kind, no A2A agent card, no AsyncAPI, no GraphQL, no status page, no changelog, no SDK in any package registry, no public GitHub organization, and no Postman collection.