On the wire · 05:11:51 UTC Live 587 · Prematch 14,341 · Markets 57,328 Vol. I · No. 5 · Friday 13 November 2026 wss://pinnfeed.io/v1/stream
PinnFeed
Answer · Soccer · Feed

Football odds feed from Pinnacle

Updated · PinnFeed · 4 min read

Answer: PinnFeed's sport=soccer feed carries Pinnacle football markets: moneyline (1X2), spread (Asian handicap), total goals and team totals, for each period Pinnacle prices, prematch and in-play. Poll GET /v1/odds?sport=soccer on any plan, or get every change pushed over the WebSocket on Builder (€99/mo).

REST#

export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
  "https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline,spread,total&main=true&limit=50"

Filter by league id (list leagues from GET /v1/events?sport=soccer), live=true or live=prematch, or q= for a team name.

WebSocket (Builder)#

{ "type": "subscribe", "sports": ["soccer"], "markets": ["moneyline", "spread", "total"], "main": true }

You get subscribed, then snapshot frames, then delta frames as prices move. The server pings every 20 seconds; answer with {"type":"pong"}. Client: Python, Node reconnect.

Market pages#

MarketHow to request itLonger page
1X2 / moneylinesport=soccer&market=moneyline(covered above)
Asian handicapsport=soccer&market=spread — not a separate type(covered above)
Total goalssport=soccer&market=total(covered above)
Cornerssee the corners pagesoccer corners
Opening and closingBuilder /v1/closingfootball open/close, European closing lines

Plans#

Free: 30-second delay, pick 2 sports, main markets. Hobby (€29/mo): real-time REST. Builder: WebSocket, all markets, props and closing-line history. Paid plans: 3-day trial; a card is required and it is charged after day 3 unless you cancel.

Educational content for adults (18+). No tips, no guaranteed profit.

Filter by competition#

When Pinnacle lists a competition it appears in the soccer feed. Look the id up once with /v1/events?sport=soccer&q=…, confirm league.name and league.group, then filter /v1/odds, /v1/drops or a Builder subscribe with that league id. q= is a search, not a unique key.

CompetitionTypical q=What to watch for
Premier LeaguepremierConfirm the English top flight in league.name.
La LigaligaMany leagues contain "Liga" (Spain's second tier and other countries). Use group. Copa del Rey and European nights have their own ids. Kick-off times are UTC; convert to Europe/Madrid.
Serie A (Italy)serie aItaly and Brazil both have a Serie A — filter by id, not the name. Serie B and Coppa Italia have their own ids. Kick-off times are UTC; convert to Europe/Rome.
BundesligabundesligaAlso matches Germany's second tier and Austria's top flight. DFB-Pokal is a separate id. Kick-off times are UTC; convert to Europe/Berlin. Early prices often carry a lower maxStake.
BrasileirãobrazilDo not search Serie A alone. Série B, state championships and Copa do Brasil have their own ids. Kick-off times are UTC; convert to America/Sao_Paulo.
Champions LeaguechampionsOther competitions can contain "Champions" — confirm the id. Tournament-winner outrights, when listed, are specials on Builder and Pro (special + participants); pass specials=false to hide them. Free and Hobby get main markets only.
Ligue 1ligueAlso matches Ligue 2 and some French-speaking leagues; try q=france if needed. Coupe de France and European nights have their own ids. Kick-off times are UTC; convert to Europe/Paris.
MLSmlsIf that finds nothing, try q=usa. Playoffs and cups can be separate ids. The slug is soccer, so moneylines include the draw. Kick-off times are UTC; convert to the user's US time zone.
J-Leaguej-league or japanJ2, J3 and cups can share the search; pick J1 by league.name. Names are usually romanized English. Kick-off times are UTC; convert to Asia/Tokyo. Asian handicap is the spread market (quarter lines included).
Copa LibertadoreslibertadoresQualifying rounds may be a separate id from the group stage; Copa Sudamericana is a different competition. Each leg of a two-legged tie is its own event: the moneyline is 90 minutes of that leg, not who goes through. Kick-off times are UTC; convert to America/Sao_Paulo or America/Argentina/Buenos_Aires.

Reuse the numeric id afterwards rather than matching on the name every time. The same pattern is documented with working code in filter by league id.

Soccer market types#

Soccer market types on this feed:

  • Moneyline is three-way (home / draw / away). The catalog slug is soccer; American football is american-football.
  • Asian handicap arrives as spread (there is no separate asian_handicap type). Each outcome has points for the line. Quarter and half handicaps use period.
  • Totals are total (and team_total where Pinnacle offers them). Use main=true for the main line; leave it unset on Builder to receive alternates.
  • Period markets (halves, and other periods Pinnacle prices) share the same types with period ≠ 0. There is no market=period filter — read the period field.

Questions people ask#

Does the feed include scores?#

Events carry score, clock and status fields where Pinnacle provides them. PinnFeed is an odds feed, not a stats provider: no lineups or player data.

Which leagues are covered?#

Whatever Pinnacle prices. List current leagues and events with GET /v1/events?sport=soccer.

Other bookmakers?#

No. PinnFeed carries Pinnacle only. See multi-book vs Pinnacle-only.

The WebSocket plan: Builder, €99/mo.

Real-time Pinnacle odds pushed over one WebSocket, all 13 sports, every market, no-vig fair odds and closing lines. 3 days free, cancel in one click.

Form K-1 · Free API key

Get your free API key.

One field. No password, no card: enter your email, click the link we send, and your key is on screen.

By continuing you agree to the Terms and Privacy Policy.

One free key per email. Link valid for 20 minutes.