Books · P2P · Prediction · Sweeps

Every market. One API. For humans and agents.

Every market we cover, every venue we've connected — sportsbooks, peer-to-peer platforms, prediction markets, and sweeps — normalized into one real-time stream. Query via REST, subscribe via WebSocket, or point Claude / Cursor at our MCP server and let your agent build on top.

Need a key? Email james@openmarkets.ai
flow.sh
200 OK
$ curl https://api.openmarkets.ai/flow/v1/contests \
     -H "X-API-Key: om_data_live_…"

{
  "data": [
    {
      "id": "ct_4f2a1b",
      "title": "Chiefs vs. 49ers",
      "starts_at": "2026-09-07T20:20:00Z",
      "status": "open"
    }
  ],
  "meta": { "api_version": "v1" }
}

The market, normalized.

Every venue we connect — sportsbooks, P2P, and prediction markets — in one schema. Read it over REST, or subscribe over WebSocket for live changes.

REST

Snapshots

/flow/v1

Leagues, contests, markets, participants, liquidity, orderbook depth, and live game state — normalized across every connected venue. Cursor-paginated, filterable, cached.

GET /flow/v1/contests
GET /flow/v1/contests/:id/liquidity
GET /flow/v1/depth/:position_hash
GET /flow/v1/contests/:id/state
REST reference

WebSocket

Live

/flow/v1/stream

Subscribe to contest IDs and receive only what changed — liquidity and contest_state channels. Millisecond latency, no polling.

wss://…/flow/v1/stream
subscribe { contest_ids }
channel: liquidity
channel: contest_state
Streaming reference
Venue types covered
Books · P2P · PMs · Sweeps
Avg. update latency
< 2s
Markets normalized
Moneyline · Spread · Total · Futures · Props
Transports
REST + WebSocket + MCP

Everything wired in.

Flow is the same data plane that runs OpenMarkets internally. We've done the normalization, the change detection, and the failover so you don't have to.

One normalized schema

Same league, contest, market, position model across every partner. Stop writing six adapters.

Real-time WebSocket

Subscribe to contest IDs. Receive only changes — no polling, no debouncing your own way out.

Depth and consensus

Full per-partner orderbook depth, plus consensus and distribution-model fair values out of the box.

Production-grade auth

Per-key rate limits, usage analytics, instant revocation. Hashed at rest — plaintext shown once.

Six terms. That's it.

The Flow data model fits on one screen. Once you have it, every endpoint in the reference reads naturally.

League
Top-level grouping like NFL, NBA, NHL.
Contest
A specific event (game, match, tournament) inside a league.
Market
A market on a contest — moneyline, spread, total.
Position
A unique outcome identified by a position_hash: contest + market + side + variable + participant + timeframe.
Liquidity
Best-available prices across every connected partner at a position, plus consensus and distribution fair values.
Depth
Full orderbook levels per partner for a single position.

Build with OpenMarkets today.

The API lives at https://api.openmarkets.ai/flow/v1 (stream at wss://…/flow/v1/stream). Authenticate with an API key. Current version: v1.