Answer · Tennis
Pinnacle tennis odds API
Answer: use sport slug tennis. REST: GET /v1/odds?sport=tennis&main=true. WebSocket subscribe: "sports":["tennis"] on Builder (€99/mo).
REST#
export PINNFEED_KEY="ps_live_..."
curl -sS -H "x-api-key: $PINNFEED_KEY" \
"https://pinnfeed.io/v1/odds?sport=tennis&market=moneyline,total&main=true&live=true&limit=20" \
| jq '.events[] | {league: .league.name, home, away, markets: [.markets[] | {type, line, outcomes: [.outcomes[] | {name, decimal, fair}]}]}'
WebSocket#
{
"type": "subscribe",
"sports": ["tennis"],
"markets": ["moneyline", "spread", "total"],
"main": true,
"specials": false
}
Connect to wss://pinnfeed.io/v1/stream with x-api-key. See WebSocket docs and the Python example answer.
Trial CTA#
Pricing — Free for delayed REST, Builder for push. 3-day trial on paid plans; card required, charged after day 3 unless cancelled.
Questions people ask#
Are ATP and WTA separate sports?#
No. Both arrive under tennis; distinguish via league.name on each event.
Does Free include tennis?#
Free lets you pick 2 sports in the dashboard. Choose tennis there, or upgrade.
Is this educational content for adults?#
Yes (18+).