Skip to content

Changelog

Changes to the API and the streaming schema. Each entry is dated.

Docs realigned to the v2 API

The developer docs, llms.txt, and the MCP manifest now describe the deployed v2 surface: /v2/markets with the signal=arb view, /v2/pairs/{market_id}, /v2/leagues, and POST /v2/report-bad-arb. The v1 data endpoints were removed from the API earlier and the docs had lagged behind; every example now traces to the live routes.

Two corrections worth calling out. The opportunity envelope's ts field is an ISO-8601 UTC string; earlier docs described it as Unix seconds. The stream itself never changed; the description of it did. And cs2 joined the documented sport keys, since Counter-Strike 2 markets went live on 2026-07-02.

Broad sports and the league field

The sport values are now broad keys: baseball, basketball, football, hockey, soccer, tennis, lol, dota2, and mma. Each matched game also carries a league, the competition within a sport, so baseball spans MLB, KBO, and NPB.

If you were filtering with ?sport=mlb, switch to ?sport=baseball&league=MLB. The league filter is new on /v1/markets and /v1/pairs, and it is case-insensitive. The opportunity snapshot and stream filter by sport. Call /v1/leagues for the sports and leagues in season right now, rather than hard-coding them.

Native MCP server

A native Model Context Protocol server is live at api.dino.markets/v1/mcp. A coding agent can now read the matched feed, the opportunities, and the catalog as tools, with no client code. The listing is free on every plan, and the data each tool returns follows your key's tier.

v1

REST catalog and the real-time stream

The first version of the API is available.

  • REST endpoints for the matched feed and the live opportunity snapshot: /v1/markets, /v1/opportunities, /v1/pairs, and /v1/leagues.
  • The real-time WebSocket stream with the arb, quote, candidates, and status channels, gated by plan.
  • Per-tier REST rate limits, from 60 requests a minute on Free up to 1200 on Pro.