On the wire · 05:06:24 UTC Live 584 · Prematch 14,345 · Markets 56,949 Vol. I · No. 5 · Friday 13 November 2026 wss://pinnfeed.io/v1/stream
PinnFeed
Answer · Filters · Leagues

Filter Pinnacle odds by league id

Updated · PinnFeed · 2 min read

Answer: every event has league {id, name, group}. Look the id up once with /v1/events?sport=soccer&q=<league name>, then filter with league=<id> on /v1/odds, /v1/events and /v1/drops, or "leagues":[id] in a WebSocket subscribe. Several ids are comma-separated (league=1980,2627). Ids are Pinnacle's own, so they stay stable while names can vary.

1. Find the id#

curl -s "https://pinnfeed.io/v1/events?sport=soccer&q=premier&limit=50" \
  -H "x-api-key: ps_live_your_key" | jq -r '.events[] | "\(.league.id)\t\(.league.name)\t\(.league.group)"' | sort -u

group is Pinnacle's grouping (usually the country or region), which helps tell apart leagues with similar names.

2. Filter REST#

curl -s "https://pinnfeed.io/v1/odds?sport=soccer&league=LEAGUE_ID&market=moneyline,total&main=true" \
  -H "x-api-key: ps_live_your_key"

The same league parameter works on /v1/drops (biggest price drops in the last N minutes) to watch one competition only.

3. Filter the WebSocket (Builder)#

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

The snapshot and every later delta only contain events and markets from those leagues. More options: subscribe filters.

Plans#

League filters work on every plan. Free covers 2 sports with a 30 s delay; Hobby 3 sports in real time over REST; Builder (€99/mo) all 13 sports plus WebSocket push. 3-day trial; a card is required and it is charged after day 3 unless you cancel. Free key · docs.

Educational content for adults (18+).

Competitions that share a sport slug#

Some competitions share a sport slug and only split on league id:

  • WNBA has no dedicated slug. Games arrive in sport=basketball (same slug as the NBA). Look them up with q=wnba, confirm league.name, and filter by that id. Off-season the list can be empty. PinnFeed does not invent a WNBA fixture list.
  • EuroLeague is also sport=basketball — there is no euroleague sport slug. Look them up with q=euroleague, confirm league.name, and filter by that id. EuroCup and domestic leagues (Liga ACB, Lega Basket and others) have their own ids. Basketball moneylines have no draw; quarter and half markets come through period.
  • College basketball is sport=basketball as well — do not reuse an NBA or WNBA id.
  • College football is sport=american-football, but it is a different league id from the NFL. There is no ncaaf sport slug. Look it up with q=ncaa (or a college query), confirm league.name, and filter by that id. Saturday slates can be long — page /v1/odds with limit/offset.

Questions people ask#

Is there a list of all league ids?#

There is no separate leagues endpoint. Pull /v1/events for the sport and collect distinct league objects; that is the live list.

Do league ids cover cups and friendlies?#

Each competition Pinnacle lists has its own league id, so cups and friendlies have different ids from the domestic league.

Can I mix league and team filters?#

Yes. league= and q= combine: the event must match both. See odds by team name.

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.