JSON odds API for Pinnacle prices
Answer: PinnFeed serves Pinnacle odds as plain JSON. GET /v1/odds returns { count, offset, limit, events: [...] }; each event carries markets, and each market carries outcomes with decimal, american, fair (no-vig decimal) and fairProb. The WebSocket (wss://pinnfeed.io/v1/stream, Builder) sends the same objects as snapshot and delta frames. No XML, no scraping.
One request#
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/odds?sport=soccer&market=moneyline&main=true&limit=2"
Shape (field names from /openapi.json)#
The values below are placeholders to show the structure, not live prices.
{
"count": 2, "offset": 0, "limit": 2,
"events": [{
"id": 123, "sport": "soccer", "home": "Home FC", "away": "Away United",
"league": { "id": 1, "name": "Example League" },
"startTime": "2026-11-10T19:00:00Z", "live": false,
"markets": [{
"id": "m-1", "eventId": 123, "type": "moneyline", "period": 0,
"main": true, "margin": 0.03, "maxStake": 100,
"outcomes": [
{ "name": "home", "decimal": 2.10, "american": 110, "fair": 2.16, "fairProb": 0.463 }
]
}]
}]
}
| Object | Key fields |
|---|---|
| Event | id, sport, league, home, away, startTime, live, status, markets |
| Market | id, eventId, type (moneyline, spread, total, team_total), period, line, main, margin, maxStake, outcomes |
| Outcome | name, decimal, american, fair, fairProb, points |
The machine-readable contract is /openapi.json; the human reference is schema docs.
Plans#
Free returns this JSON with a 30-second delay (2 sports, 1,000 requests/day). Hobby (€29/mo) is real-time REST. JSON pushed over a WebSocket needs Builder (€99/mo). Paid plans: 3-day trial; a card is required and it is charged after day 3 unless you cancel. Related: XML feed to JSON, American odds, answers hub.
Educational content for adults (18+). Odds data is not betting advice.
Related: Pinnacle odds by API (REST), XML vs JSON feed.
Questions people ask#
Do I get American and decimal odds?#
Yes. Every outcome has decimal and american; no conversion needed on your side.
Is the WebSocket JSON different from REST?#
The objects are the same. The socket wraps them in snapshot frames first, then delta frames with changes (upsert or remove of an event or market). See snapshot and delta.
Is there an XML version?#
No. PinnFeed is JSON only.