Antwort · Linienbewegung · Chart
Pinnacle-Linienbewegungs-API
Antwort: PinnFeed liefert drei Teile: den Live-Stream (delta am Builder-WebSocket), aktuelle Drops (GET /v1/drops) und den Closing-Preis (GET /v1/closing, Builder). Es gibt keinen Tick-History-Endpunkt: für ein volles Chart speichern Sie Deltas ab Subscribe.
Record deltas (Python, Builder)#
# pip install websockets
import asyncio, json, os, sqlite3, time, websockets
db = sqlite3.connect("moves.db")
db.execute("create table if not exists moves(ts real, market_id text, event_id int, type text, line real, outcome text, decimal real)")
async def main():
url = "wss://pinnfeed.io/v1/stream"
async with websockets.connect(url, additional_headers={"x-api-key": os.environ["PINNFEED_KEY"]}, max_size=None) as ws:
await ws.send(json.dumps({"type": "subscribe", "sports": ["soccer"], "markets": ["moneyline", "total"], "main": True}))
async for raw in ws:
msg = json.loads(raw)
if msg["type"] == "ping":
await ws.send(json.dumps({"type": "pong"}))
elif msg["type"] == "delta":
for ch in msg["changes"]:
if ch["kind"] == "market" and ch["op"] == "upsert":
m = ch["market"]
for o in m["outcomes"]:
db.execute("insert into moves values(?,?,?,?,?,?,?)",
(time.time(), m["id"], m["eventId"], m["type"], m.get("line"), o["name"], o["decimal"]))
db.commit()
asyncio.run(main())
CTA#
Builder (99 €/Monat). 3 Tage Testphase; Karte erforderlich. REST gratis: Signup. Related: dropping odds, closing/CLV.
Häufige Fragen#
Gibt es eine Tick-Historie?#
Nein. Speichern Sie Deltas selbst.
Bildungsinhalt für Erwachsene?#
Ja (18+).
Bildungsinhalt für Erwachsene (18+). Keine Tipps, kein Gewinnversprechen. In Deutschland nur bei Anbietern auf der GGL-Whitelist wetten.