Quick start

Base URL: https://pinnwire.com. Auth: put your key in the x-api-key header or ?key=. Get a free key on the homepage — no card.

curl "https://pinnwire.com/kit/v1/markets?sport_id=1&key=YOUR_KEY"

AI agent? Feed it pinnwire.com/agent-setup/prompt.md and it sets itself up.

Endpoints

EndpointWhat it returns
GET /kit/v1/markets?sport_id=NEvery live event for a sport: moneyline, spreads, totals, team totals per period. Add &event_type=prematch for upcoming games.
GET /kit/v1/prematch/fixtures?sport_id=NAll upcoming fixtures with full odds.
GET /kit/v1/details?event_id=NOne event, full markets.
GET /api/drops?mode=live&min_drop_pct=5Recent price drops, filterable (mode, sport_id, min_drop_pct, max_age_sec, limit). Includes no-vig price nvp.
SSE /odds-drop?min_drop=5Live drop alerts pushed the moment they happen. min_drop floor 1%.
SSE /odds-drop-prematchSame, prematch lines only.
WS /wsRaw real-time firehose: every price change on every subscribed sport. Add-on plan.
GET /v1/healthFeed status + event counts.
GET /pingPublic liveness (no key).

Sports

sport_id: 1 Soccer · 2 Tennis · 3 Basketball · 4 Hockey · 5 Football · 6 Baseball · 7 Rugby · 8 MMA · 9 Boxing · 10 Volleyball/Handball · 11 Esports · 12 Golf · 13 Cricket

Event shape

{
  "event_id": 1628594960,
  "sport_id": 1,
  "league_name": "China - Super League",
  "home": "Yunnan Yukun",
  "away": "Tianjin Jinmen Tiger",
  "starts": "2026-04-17T12:00:00Z",
  "event_type": "live",
  "periods": {
    "num_0": {
      "money_line": { "home": 2.45, "draw": 3.30, "away": 2.90 },
      "spreads": { "-0.5": { "hdp": -0.5, "home": 2.06, "away": 1.82 } },
      "totals":  { "2.5":  { "points": 2.5, "over": 1.90, "under": 1.98 } },
      "team_total": { "home": { "points": 1.5, "over": 1.86, "under": 2.00 } }
    }
  }
}

Decimal odds everywhere. Compatible with common third-party Pinnacle API response shapes — most existing clients work after swapping the base URL.

Drop alerts (SSE)

curl -N "https://pinnwire.com/odds-drop?key=YOUR_KEY&min_drop=5"

data: {"type":"connected","id":"..."}
data: [{"home":"Aryan","away":"ASOS Rainbow AC","sect":"Spread","period":0,
        "from_price":2.24,"to_price":2.21,"drop_pct":1.34,"nvp":2.385,
        "sport":"Soccer","is_live":true,...}]

nvp is the no-vig fair price — compare to_price / nvp to spot value. Available on Pro + Drops and Scale plans.

WebSocket firehose

wss://pinnwire.com/ws?key=YOUR_KEY
// receives every odds update in real time as JSON frames

Raw WebSocket add-on plan required. One connection per key.

Rate limits

PlanLimitSSE dropsRaw WS
Trial20/min, 100/day
Pro10 req/s, unlimitedadd-on
Pro + Drops10 req/s, unlimitedadd-on
Scale30 req/s, unlimitedadd-on

Over the limit → 429 with Retry-After header. Honor it.