# PinnRadar > PinnRadar is an independent odds API (not affiliated with Pinnacle) that serves Pinnacle live and prematch prices as REST snapshots, pushes server-detected odds drops over Server-Sent Events, relays the raw upstream feed over a WebSocket add-on, and exposes the same data to AI assistants through a remote MCP server. One API key covers every surface; the base URL is https://pinnradar.com. Start with a free key from the dashboard (just an email). The key is the only credential: send it as the `x-portal-apikey` or `x-api-key` header, or as `?key=`. Free keys get REST at 20 requests per minute and 100 per day. New accounts start with a 3-day full demo (fast REST, SSE drop streams and the WebSocket feed); after that the key stays on Free. Support: Telegram @PinnRadarSupport (https://t.me/PinnRadarSupport) or info@pinnradar.com. ## Docs - [API reference](https://pinnradar.com/docs): the human-readable docs with request examples in curl, Node.js, Python, Go and PHP - [Complete reference as one text file](https://pinnradar.com/llms-full.txt): every endpoint, parameter, response field, stream frame and limit in markdown; load this into a coding assistant before writing an integration - [MCP server](https://pinnradar.com/mcp): connect Claude, Cursor, VS Code or Codex to `https://mcp.pinnradar.com/mcp` with your key as a Bearer token, or through OAuth on claude.ai ## Endpoints at a glance - [GET /kit/v1/markets](https://pinnradar.com/docs#markets): the in-play board of one sport (`sport_id`); `event_type=prematch` switches to upcoming fixtures, `since` returns only changes, `include_specials=1` adds props and futures - [GET /kit/v1/details](https://pinnradar.com/docs#details): one live event by `event_id` - [GET /kit/v1/prematch/fixtures](https://pinnradar.com/docs#prematch-fixtures), [/prematch/markets](https://pinnradar.com/docs#prematch-markets) and [/prematch/lines](https://pinnradar.com/docs#prematch-lines): upcoming fixtures, the full market set of one fixture, and one market's ladder (`market_type`) - [GET /api/drops](https://pinnradar.com/docs#api-drops): recent price drops with `from`, `to`, `drop_pct` and the no-vig price `nvp`, filtered by `mode`, `sport_id`, `min_drop_pct`, `max_age_sec`, `markets` and `periods` - [SSE /odds-drop](https://pinnradar.com/docs#sse-live) and [SSE /odds-drop-prematch](https://pinnradar.com/docs#sse-prematch): pushed drop alerts with an optional `min_drop` threshold (default 5%); the prematch stream also takes `recheck` to confirm a drop held; one connection per account on each - [WSS /ws/feed](https://pinnradar.com/docs#ws-feed): unmodified upstream frames, subscribed by sport or by event id; $99/month add-on for REST, Edge and Scale - [GET /health](https://pinnradar.com/docs#health) and [GET /ping](https://pinnradar.com/docs#ping): feed status for alerting, and a public liveness check ## Plans - [Pricing](https://pinnradar.com/#pricing): all plans carry the same data at full line depth; they differ in request rate and push access - Free: $0; 20 requests/minute, 100/day; no SSE - Drops: $99/month ($249 per 90 days); SSE drop streams, REST at the Free limits - REST: $99/month ($249 per 90 days, $449 per 180 days); REST at 10 requests/second, no SSE - Edge: $149/month ($379 per 90 days, $679 per 180 days); REST at 10 requests/second plus SSE - Scale: $229/month ($599 per 90 days); REST at 30 requests/second plus SSE - WebSocket feed: $99/month on top of a plan with REST access ## Account - [Dashboard](https://pinnradar.com/panel): get or regenerate a key, buy or renew a plan, see usage, find your affiliate link (30% of referred customers' payments) ## Optional - [Privacy policy](https://pinnradar.com/privacy) - [Terms of service](https://pinnradar.com/terms) - [Postman collection](https://pinnradar.com/postman.json) - Support: Telegram @PinnRadarSupport (https://t.me/PinnRadarSupport) or info@pinnradar.com ## Blog - [REST polling vs WebSocket vs SSE for sports odds: which one fits your use case](https://pinnradar.com/blog/rest-vs-websocket-vs-sse-odds): Trade-offs between REST snapshots, SSE drop alerts and a raw WebSocket odds feed: what each carries, what it costs, and a decision table by use case. - [Building a Pinnacle odds bot with Claude or Cursor using MCP](https://pinnradar.com/blog/pinnacle-odds-mcp-claude-cursor): Connect Claude, Cursor, VS Code or Codex to PinnRadar's MCP server, learn its eight odds tools and their quota cost, and script it with the Claude API. - [How to get Pinnacle odds from an API in Python](https://pinnradar.com/blog/pinnacle-odds-api-python): Get a free key, list sports and events, read one event's odds, and poll Pinnacle prices in Python within rate limits, handling 429 and stale data. - [Pinnacle odds API pricing explained: choosing between Free, Drops, REST, Edge and Scale](https://pinnradar.com/blog/pinnacle-odds-api-pricing-plans): Every PinnRadar plan with exact prices and limits: Free, Drops, REST, Edge, Scale, longer terms, the WebSocket add-on, card and crypto billing. - [Detecting dropping odds in real time with Server-Sent Events](https://pinnradar.com/blog/dropping-odds-sse): How PinnRadar's /odds-drop SSE streams work: drop definition, min_drop and recheck, plus Python and Node.js clients with reconnect, backoff and sport filters. - [Closing line value (CLV): what it is and how to track it with live odds data](https://pinnradar.com/blog/closing-line-value-clv): What closing line value means, how to remove the margin from the closing price, and how to record your own closing lines from prematch odds data.