Pinnacle is the sharp reference book — when its prices fall, the market is telling you something. PinnWire detects every Pinnacle price drop, live and prematch, and hands it to your code two ways: a queryable REST buffer and push SSE streams. Every record carries the no-vig fair price (nvp) so you can judge value, not just movement.
curl "https://pinnwire.com/api/drops?mode=live&min_drop_pct=5&key=demo"
# latest Pinnacle price drops with no-vig fair price — public demo key, no signup
Each record: event_id, teams, market, side, from → to (decimal), drop_pct, nvp, and a freshness timestamp. Filters: mode=live|prematch, min_drop_pct, max_drop_pct, sport_id, markets, periods, max_age_sec.
SSE streams at /odds-drop (live) and /odds-drop-prematch deliver each qualifying fall as it happens — set your own threshold with min_drop=N (down to 1%). On Stream ($89/mo) and up. The raw WebSocket feed pushes every price change, not just drops.
Pinnacle data only — pair it with other books for full arbitrage detection. The buffer holds ~3 hours; store drops yourself for longer history. A drop is detected movement, not proof of informed money.
A dropping-odds alert fires when a bookmaker price falls — often because informed (sharp) money hit the market. PinnWire watches every Pinnacle outcome and reports each detected fall with the previous price, new price, drop percentage, and the no-vig fair price (nvp). It reports movement; it does not prove who bet or why.
Two ways in: a REST buffer you can query anytime covering roughly the last 3 hours (default filter 5%, configurable down to 1%), and SSE streams — live and prematch — that push each qualifying drop the moment it is detected. Prematch SSE supports a stable-price recheck filter that suppresses prices that bounce straight back.
Yes — the REST drops endpoint works right now with the public demo key (key=demo, 10 requests/min in total, shared by everyone using it). SSE streams need a Stream, Pro + Drops or Scale plan.