Start free. Go real-time when you are ready.
Free covers the matched feed over REST. Paid plans add the real-time WebSocket push and more concurrent connections.
For trying the matched feed and building on REST.
- →Matched feed across both venues
- →REST API, about 60s delayed
- →Full historical tape
- →Free MCP access
For bots that need the live feed in real time.
- →Everything in Free
- →Real-time WebSocket push
- →Subscribe by sport or all sports
- →3 concurrent connections
- →Free MCP on live data
For desks running several bots on raw data.
- →Everything in Basic
- →Raw quote-level data
- →Early candidate signals
- →10 concurrent connections
- →Priority support
Compare plans
| Features | Free $0 | Basic $60 / mo | Pro $200 / mo |
|---|---|---|---|
| Matched feed across both venues | Included | Included | Included |
| REST API | About 60s delayed | About 60s delayed | About 60s delayed |
| Real-time WebSocket push | Not included | Included | Included |
| WebSocket channelsSubscribe to the arb channels: arb:{sport}, arb:all, and the status channel for feed health. | Not included | Included | Included |
| Max concurrent connections | 0 | 3 | 10 |
| Raw quote-level dataThe raw order-book quotes behind each matched line, streamed on the q:* channels. | Not included | Not included | Included |
| Early candidate signalsProvisional matches on the candidates:* channels, before they are confirmed. The earliest signal you can act on. | Not included | Not included | Included |
| Full historical tape | Included | Included | Included |
| MCP access | Free, ~60s data | Free, real-time | Free, real-time |
| Support | Community | Community | Priority |
What a connection is
A connection is one open WebSocket stream from your code to the live feed. One bot holding one stream counts as one connection. Your plan sets how many you can hold at the same time: 3 on Basic, 10 on Pro. The cap is what scales with the plan.
Why you would want more than one
Each connection runs on its own, so teams use the cap to keep several bots live at once. Common reasons:
- →Run a separate stream per strategy so one slow consumer never backs up another.
- →Keep a warm standby connection for failover during a deploy or a network blip.
- →Point staging and production bots at the live feed without sharing a stream.
On uptime
We run in a single region at launch, so there is no contractual uptime SLA yet. A real multi-region SLA comes with v2. Pro support means faster help when you need it, and it is not an uptime promise. Live feed health shows in the dashboard and on the status channel as live, degraded, or stale, so your bot can read the state and react.