On the wire · 05:01:34 UTC Live 575 · Prematch 14,330 · Markets 57,068 Vol. I · No. 5 · Friday 13 November 2026 wss://pinnfeed.io/v1/stream
PinnFeed
Answer · REST · Search

Get Pinnacle odds for one team by name

Updated · PinnFeed · 2 min read

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=united matches several clubs and any league with "United" in its name. Check home/away in your code, or use the event id once you have it: /v1/events/{id}.
  • Leagues match too. q=premier returns 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.

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.