Skip to content

PinnFeed API Review 2026

PinnFeed pushes Pinnacle's live and pre-match prices over one filtered WebSocket and serves the same data over REST, with a no-vig price on every outcome. A free REST plan runs 30 seconds behind, and paid plans start at €29 a month.

PinnFeed at a Glance

PinnFeed Pinnacle Odds API Logo
PinnFeed
💲 to 💲💲💲
Free Tier
Pregame Live Bet365 Pinnacle Closing SGP Futures Deeplinks Settlement Stats Schedules Websocket MCP Discord

Streaming from: Builder, €99/mo (about $115; 3 WebSocket connections, 3-day trial with card)

Green = available · amber = unverified or varies by plan · crossed out = not available. Pricing: 💲 ≈ $20/mo up to 💲💲💲💲💲 = $1,000+/mo. From our directory research.

What PinnFeed Is

PinnFeed is a self-serve API for Pinnacle odds. It reshapes Pinnacle's live and pre-match prices into one normalized schema and sends them two ways: a WebSocket that pushes each change as it happens, and a REST API for snapshots. A hosted MCP server lets an AI assistant read the same data.

Every outcome carries the American price, the decimal price and a no-vig fair price, and every market carries Pinnacle's maximum stake and its margin. That last detail matters more than it looks: max stake is a rough read on how much Pinnacle trusts a line.

You don't need a Pinnacle account. PinnFeed describes itself as an independent data service with no tie to Pinnacle or any bookmaker. It launched in November 2026, so the public track record is short, but the docs already cover the full protocol, the error codes and the limits per plan.

Coverage and Markets

PinnFeed carries 13 sports, each with a fixed id: soccer, tennis, basketball, hockey, American football, baseball, rugby, MMA, boxing, volleyball and handball, esports, golf and cricket.

Market depth depends on the plan:

  • Free and Hobby: the main moneyline, spread and total of each event, for the sports you pick in the dashboard (two on Free, three on Hobby).
  • Builder and above: all 13 sports, with moneyline, spread, total and team total for every period, plus alternate lines, props and futures.

Events come with a start time, a status and, for in-play games, the live score and clock when Pinnacle has them. Each in-play event points back to its pre-match record through parentId, so you can follow one game from the opening line to the final whistle. When we checked the public status endpoint on a Monday afternoon (14:30 UTC, November 9, 2026), it reported 73 live events, 8,168 pre-match events and about 33,000 open markets.

The WebSocket Stream and REST API

The stream lives at wss://pinnfeed.io/v1/stream. After you connect, you send a subscribe message that filters on the server side by sport, league, event, market type, live or pre-match, and main lines only. The server answers with a snapshot in parts of up to 400 events, then sends only the changes. Each change is an upsert with the full object or a remove with an id, so the client logic is a dictionary and two operations.

A few details show that someone thought about production use:

  • Compression: frames over 1 KB are compressed, and the docs say snapshots shrink 5 to 10 times.
  • Heartbeat: a ping every 20 seconds, and silent connections close after 60.
  • Clear close codes: a slow reader that queues more than 16 MB gets close code 4008, so you know why you dropped.
  • New filters on the fly: send subscribe again to change the filter and get a fresh snapshot, with no reconnect.

REST at https://pinnfeed.io/v1 mirrors the stream. /v1/odds returns events with their markets, /v1/events returns the fixture list, and both take the same filters. Pro adds a raw mode that forwards upstream frames untouched. For more on push feeds and polling, see our live odds guide.

Fair Prices, Drops and Closing Lines

Three extras sit on top of the raw prices:

  • No-vig fair prices: every outcome carries fair and fairProb, worked out by the multiplicative method (each implied probability divided by their sum). The raw prices stay in the payload, so you can apply the power or Shin method yourself. The pricing table lists fair prices on every plan, Free included.
  • Dropping odds: GET /v1/drops returns the biggest price drops per outcome over a window of 1 to 60 minutes, with a minimum drop you set. It's a one-call steam detector.
  • Closing lines: at kick-off PinnFeed records every open market with its margin, max stake and fair prices. GET /v1/closing/{eventId} returns one game, and GET /v1/closing?date=YYYY-MM-DD pages through a whole UTC day. Builder and above.

The closing archive starts on the day the service launched, so it's young. It grows every day, and Enterprise plans can export the whole archive as CSV or Parquet. If you backtest over past seasons today, pair PinnFeed with a historical odds source and let its closing records build forward.

MCP Server for AI Assistants

PinnFeed hosts an MCP server at https://pinnfeed.io/mcp, so Claude, ChatGPT, Cursor or VS Code can ask for odds in plain language. It has 8 tools, among them live and pre-match odds, event search, drops and closing odds. Your API key goes in an Authorization: Bearer header, or in the URL for clients that cannot send headers.

The server follows your plan. A free key gets delayed data, closing odds need Builder, and each tool call counts as one REST request. The docs give a setup line for each client. Our sports MCP servers page covers the wider field.

PinnFeed Pricing and the Free Plan

Prices are in euros and include VAT:

  • Free, €0: REST only, 30 seconds behind, 2 sports, main lines, 1,000 requests a day. No card.
  • Hobby, €29 a month: real-time REST, 3 sports, main lines, 2 requests a second.
  • Builder, €99 a month: the WebSocket with 3 connections, all 13 sports and every market, 10 requests a second and closing-line history.
  • Pro, €199 a month: 10 connections, raw upstream frames, 30 requests a second and priority support.
  • Enterprise, custom: bulk closing exports, an SLA and a commercial licence to redistribute.

Hobby, Builder and Pro start with a 3-day free trial. A card is required at checkout and charged after day 3 unless you cancel. You can also prepay 1, 3 or 12 months in USDC, USDT, SOL or BTC, and crypto plans never renew on their own. The free plan is the easy first step: it shows you the schema and the fair prices before you pay for speed.

Getting an API Key

Get a free key on the sign-up page. You enter an email address, PinnFeed sends a link that works for 20 minutes, and the key appears on screen. There's no password and no card, and each email gets one free key (checked November 2026).

Keys start with ps_live_ and show only once, so copy yours straight away. An account can hold up to 20 active keys, one per project or server, and the plan limits count across all of them. Send the key in the x-api-key header. Authorization: Bearer works too, and ?key= covers browsers and WebSocket clients that cannot set headers.

Hobby, Builder and Pro each start with a 3-day free trial. You add a card at checkout, and Stripe charges it after day 3 unless you cancel. Your free key stays the same and gains the new limits when the trial starts.

A First Request in Python

This sample calls GET /v1/odds for soccer with main lines only. The answer holds a count and a list of events, each with home, away and its markets, and every outcome carries a decimal price and a no-vig fair price. It comes from the docs, checked November 2026.

import os

import requests

resp = requests.get(
    "https://pinnfeed.io/v1/odds",
    params={"sport": "soccer", "main": "true", "limit": 5},
    headers={"x-api-key": os.environ["PINNFEED_API_KEY"]},
    timeout=10,
)
resp.raise_for_status()
data = resp.json()

print(data["count"], "events")
for event in data["events"]:
    for market in event["markets"]:
        prices = [(o["name"], o["decimal"], o["fair"]) for o in market["outcomes"]]
        print(event["home"], "v", event["away"], market["type"], prices)

On the Free plan, pick soccer as one of your two sports in the dashboard first, or the call returns 403 sport_not_in_plan. Free answers run 30 seconds behind and carry an X-Data-Delay-Seconds header.

Rate Limits, Docs and SDKs

REST limits are per key, as a token bucket that allows bursts of twice the rate. Free gets 1 request a second and 1,000 a day, reset at 00:00 UTC. Hobby gets 2 a second, Builder 10, Pro 30 and Enterprise 100, with no daily cap on paid plans. WebSocket connections count per account: 3 on Builder and 10 on Pro. Past a limit you get HTTP 429 with rate_limited or daily_quota, a Retry-After header in seconds and retryAfterMs in the body (checked November 2026).

There's no official SDK or OpenAPI spec. The docs carry examples in Python, Node.js, browser JavaScript and curl, plus guides for a stream client, a CLV tracker and a Telegram bot. GET /health needs no key and reports feed status, upstream lag and event counts. Support runs through email, with priority support on Pro.

Who PinnFeed Is For

PinnFeed suits anyone who treats Pinnacle as the reference price:

  • Value bettors who compare soft-book prices with Pinnacle's no-vig fair price.
  • Steam chasers who want dropping odds from one REST call or the live stream.
  • CLV trackers who grade each bet against Pinnacle's closing price.
  • Builders of AI tools who want odds inside Claude or ChatGPT through MCP.
  • Hobby projects that fit in two sports and a 30-second delay, at no cost.

The pricing page allows commercial use inside your own product. Showing a few prices, fair odds or edges to your users is fine, but resale of the feed itself needs an Enterprise licence. PinnFeed covers one book, so if you need prices from several, pair it with an aggregator from the API directory.

Verdict

PinnFeed gets the basics of a Pinnacle feed right on day one. The protocol is simple, the docs are complete, and max stake, margin and a fair price ride along on every market. The free plan is generous enough to build against, and the 3-day trial lets you test the stream before the first charge.

The open question is time. The service and its closing archive are both brand new, so watch its uptime for a few weeks before you hang a production bot on it. Get a free key, pull a few snapshots, and decide from there.

Last updated: · How providers get listed

Frequently Asked Questions

Yes. The Free plan costs nothing and needs no card. It gives REST access with a 30-second delay, 2 sports of your choice, main lines and 1,000 requests a day at 1 request a second. Paid plans also start with a 3-day free trial, with a card at checkout.
Hobby costs €29 a month for real-time REST, Builder €99 a month for the WebSocket, and Pro €199 a month. Enterprise is priced on request. Prices include VAT. You can pay monthly by card or prepay 1, 3 or 12 months in crypto.
Builder, at €99 a month, is the first plan with the WebSocket. It allows 3 connections, all 13 sports and every market. Pro raises that to 10 connections. Free and Hobby keys are REST only and get a 403 error if they open the stream.
PinnFeed covers 13 sports: soccer, tennis, basketball, hockey, American football, baseball, rugby, MMA, boxing, volleyball and handball, esports, golf and cricket. Free covers 2 of them and Hobby 3, chosen in the dashboard. Builder and above cover all 13 with alternate lines, props and futures.
Yes. Every outcome carries a no-vig fair price and probability on every plan. Closing lines come with Builder and above: PinnFeed records every open market at kick-off, and the closing endpoints return them by event or by UTC day. The archive started when the service launched in November 2026.
No. PinnFeed needs no Pinnacle account and no Pinnacle API access. You sign up with an email address and use a PinnFeed key. PinnFeed says it isn't affiliated with, endorsed by or sponsored by Pinnacle or any bookmaker.
Enter your email address on the PinnFeed sign-up page and open the link that arrives within 20 minutes. The key, which starts with ps_live_, appears on screen once. The free key needs no card. Send it in the x-api-key header on every request.
Free allows 1 REST request a second and 1,000 a day. Hobby allows 2 a second, Builder 10, Pro 30 and Enterprise 100, with no daily cap on paid plans. Builder allows 3 WebSocket connections and Pro 10. Past a limit, a 429 response carries a Retry-After header.

PinnFeed Alternatives

Similar providers from the directory worth shortlisting alongside PinnFeed.

Want Pinnacle prices in your code today?

The free key takes an email address and no card. Pull delayed REST snapshots for two sports, then start the 3-day Builder trial when you want the live stream.

Are You the Team Behind PinnFeed?

Show developers you're independently listed on SportsAPIs.dev. Copy this badge onto your site. It links straight back to this profile.

Each of these works best on a reviews or "As cited on SportsAPIs.dev" page that your homepage links to, or in a testimonial strip on the homepage.

Badge

PinnFeed is listed on SportsAPIs.dev
<a href="https://sportsapis.dev/apis/pinnfeed" title="PinnFeed on SportsAPIs.dev">
  <img src="https://sportsapis.dev/assets/images/badges/listed-on-sportsapis.svg"
       alt="PinnFeed is listed on SportsAPIs.dev" width="220" height="48">
</a>

Text link

<a href="https://sportsapis.dev/apis/pinnfeed">Read the PinnFeed review on SportsAPIs.dev</a>

Review quote

<blockquote>
  Self-serve Pinnacle odds over WebSocket and REST, with fair prices and a
  free plan.
</blockquote>
<p><a href="https://sportsapis.dev/apis/pinnfeed">SportsAPIs.dev review</a></p>

Want a Featured Partner spot or to update your listing? Partner with us →