Dropping odds alerts from a Pinnacle API
Answer: treat alerts as a delivery layer on top of the feed, not as a separate product. Poll GET /v1/drops on a short interval, or detect steam on the Builder WebSocket, then send the same payload to whichever channel you already run — log, email, Slack, Discord, Telegram. This page is the cross-channel how-to. Endpoint fields live on dropping odds API; a Sheets-only recipe is email alerts from Google Sheets; a Telegram-oriented walkthrough is steam chasing alerts.
One payload, many channels#
import os, requests
KEY = os.environ["PINNFEED_KEY"] # ps_live_...
r = requests.get(
"https://pinnfeed.io/v1/drops",
params={"sport": "soccer", "minutes": 10, "min_pct": 5},
headers={"x-api-key": KEY}, timeout=10)
body = r.json()
rows = body.get("drops", body) if isinstance(body, dict) else body
for row in rows:
text = f"{row.get('teams') or row.get('eventId')} {row.get('market')} {row.get('from')} → {row.get('to')} ({row.get('dropPct')}%)"
# deliver(text) # your email / Slack / Discord / Telegram hook
print(text)
Deduplicate on (eventId, market, outcome, movedAt) so a 30-second poll does not repeat the same drop. Free keys follow the 30 s delay and 2-sport limit; Hobby is real-time REST; sub-second steam still needs Builder (€99/mo) and a rolling-window detector (steam moves, Node poller, Slack alert, WhatsApp picks bot).
A poller only sees a change on the next request, so on average it is half an interval late, plus round-trip. That is arithmetic, not a latency claim against any named vendor.
Honest limits#
- Drops are Pinnacle-only. We do not alert on other books.
- An alert is not a bet, and it is not a locked edge. Limits move and prices bounce.
- Do not ship the API key to the browser, and do not redistribute the raw feed (acceptable use).
Try it#
Get a free delayed REST key to poll /v1/drops, or start a 3-day Builder trial (€99/mo, VAT incl. where applicable) for live push. Paid plans: 3-day trial; a card is required and it is charged after day 3 unless you cancel. Pricing.
Educational content for adults (18+). No tips, no guaranteed profit.
Questions people ask#
Which channel does PinnFeed send alerts to?#
None by itself. The API returns drops; you post them to email, Slack, Discord, Telegram or a log.
Is this the same as the Sheets email alert page?#
No. That page is a no-code Sheets recipe. This one is the API pattern you can point at any channel.
Do I need the WebSocket to alert?#
Not for a /v1/drops poller. Use the WebSocket when you want to detect steam between REST snapshots.