Get Pinnacle odds for one team by name
Answer: add q= to /v1/odds (or /v1/events). It is a case-insensitive substring match on the home team, away team and league name, so q=arsenal returns every Arsenal fixture in the sport you pass, each with its markets. sport is required on /v1/odds. It works on every plan, Free included (Free is 30 s delayed and main markets only).
curl#
curl -s "https://pinnfeed.io/v1/odds?sport=soccer&q=arsenal&market=moneyline&main=true" \
-H "x-api-key: ps_live_your_key"
The response is {count, offset, limit, events: [...]}. Each event carries id, home, away, league {id, name, group}, startTime, live and a markets array with outcomes (decimal, american, fair, fairProb) plus margin and maxStake.
Python: next match only#
import os, requests
KEY = os.environ["PINNFEED_KEY"] # ps_live_...
r = requests.get(
"https://pinnfeed.io/v1/odds",
params={"sport": "soccer", "q": "arsenal", "market": "moneyline", "main": "true"},
headers={"x-api-key": KEY},
timeout=10,
)
r.raise_for_status()
events = r.json()["events"] # sorted by start time, current events first
if events:
ev = events[0]
for m in ev["markets"]:
prices = {o["name"]: o["decimal"] for o in m["outcomes"]}
print(ev["home"], "v", ev["away"], ev["startTime"], prices, "maxStake", m["maxStake"])
Tips#
- Be specific.
q=unitedmatches several clubs and any league with "United" in its name. Checkhome/awayin your code, or use the eventidonce you have it:/v1/events/{id}. - Leagues match too.
q=premierreturns events whose league name contains "Premier". For a stable filter use the league id: filter by league id. - Names come from Pinnacle. Spelling and suffixes follow Pinnacle's feed; there is no cross-book team mapping. See event id mapping.
- Live push for one fixture. On Builder, subscribe the WebSocket with
"events":[id]instead of polling: subscribe filters.
Plans#
Free: 2 sports, 1 req/s, 1,000 requests/day, 30 s delay. Builder (€99/mo) adds real-time WebSocket push, all 13 sports and all markets. 3-day trial; a card is required and it is charged after day 3 unless you cancel. Get a free key · docs.
Educational content for adults (18+).
Questions people ask#
Is the search fuzzy?#
No. It is a plain case-insensitive substring match on home, away and league name. "Man Utd" will not match "Manchester United".
Can I search across all sports?#
/v1/events?q=... works without a sport and searches every sport your plan includes (events only, no prices). /v1/odds needs sport.
Does it return finished matches?#
No. Only events currently listed by Pinnacle. For past prices on Builder, use closing odds.