API
Market data
Public Seeryx market data over REST: markets, the live round, round history, order books, trades, volume, event markets and their questions.
Overview
Every market data endpoint is public: no sign-in, no key. Answers are JSON; prices are in cents, sizes in shares.
| You want | Call |
|---|---|
| Every crypto market with its live round and best prices, in one request | GET /api/markets/summary |
| The live round of one market | GET /api/markets/BTC/5m/current |
| A round by slug, past, live or upcoming | GET /api/rounds/:slug |
| The full book of one market | GET /api/orderbook/:slug?side=up |
| Trades as they happen | WebSocket round subscription; GET /api/trades/:slug to catch up |
| Event markets and their questions | GET /api/events, GET /api/event-groups |
Markets and rounds
The crypto markets and their rounds. Rounds are read by market (the live one, the settled history) or by slug.
/api/marketsEvery crypto market
curl "https://seeryx.com/api/markets"[{ "asset": "BTC", "tf": "5m", "symbol": "BTCUSDT", "duration": 300, "liquidityRewards": true },
{ "asset": "BTC", "tf": "1h", "symbol": "BTCUSDT", "duration": 3600, "liquidityRewards": false },
{ "asset": "BTC", "tf": "1d", "symbol": "BTCUSDT", "duration": 86400, "liquidityRewards": false }, ...]- duration is the round length in seconds; symbol the Binance pair whose price decides the rounds. liquidityRewards: resting orders in this market earn liquidity points (see Market making).
/api/markets/upcomingMarkets announced but not trading yet
curl "https://seeryx.com/api/markets/upcoming"[{ "asset": "BTC", "tf": "1d", "opensAt": 1791993600 }]- A market appears in GET /api/markets from its first round on; until then it is listed here with that round's start. Usually empty.
/api/markets/summaryEvery market at once: live round, best prices, last results
curl "https://seeryx.com/api/markets/summary"{ "at": 1791915884702, "markets": [{ "asset": "BTC", "tf": "5m",
"round": { "slug": "btc-updown-5m-1791915600", "asset": "BTC", "tf": "5m", "start": 1791915600, "end": 1791915900, "open": 83189.47, "close": null, "outcome": null, "status": "live" },
"up": { "bid": [52, 120], "ask": [54, 80] }, "down": { "bid": [46, 80], "ask": [48, 120] },
"last": [{ "start": 1791915300, "end": 1791915600, "outcome": "up" }, ...] }, ...] }- The best bid and ask of each side as [cents, shares], null when that side is empty, and the last 5 settled rounds, newest first. Refreshed at most once a second: poll this instead of one book per market.
/api/markets/:asset/:tf/currentThe live round of a market
| Field | Type | Description |
|---|---|---|
asset | BTC | ETH | BNB | Any case |
tf | 5m | 15m | 1h | 1d | Round length |
curl "https://seeryx.com/api/markets/BTC/5m/current"{ "slug": "btc-updown-5m-1791916200", "asset": "BTC", "tf": "5m", "start": 1791916200, "end": 1791916500,
"open": 83082.005, "close": null, "outcome": null, "status": "live" }- A round past its end stays "live" with outcome null until its close price is stored, usually within seconds: check end, do not assume it still trades.
| Status | When |
|---|---|
| 404 | No such market |
/api/markets/:asset/:tf/roundsSettled rounds of a market, newest first
| Field | Type | Description |
|---|---|---|
asset | BTC | ETH | BNB | Any case |
tf | 5m | 15m | 1h | 1d | Round length |
before | number | Rounds that start before this, Unix seconds; default now |
limit | number | 1-100, default 24 |
curl "https://seeryx.com/api/markets/BTC/5m/rounds?limit=2"[{ "slug": "btc-updown-5m-1791915600", "asset": "BTC", "tf": "5m", "start": 1791915600, "end": 1791915900, "open": 83189.465, "close": 83133.425, "outcome": "down", "status": "settled" }, ...]- Pass the start of the last round as before for the next page. At most 7 days back.
| Status | When |
|---|---|
| 429 | Too many history reads from your IP address; Retry-After says when to try again |
/api/rounds/:slugOne round, past, live or upcoming
| Field | Type | Description |
|---|---|---|
slug | string | A round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...) |
curl "https://seeryx.com/api/rounds/btc-updown-5m-1791916500"{ "slug": "btc-updown-5m-1791916500", "asset": "BTC", "tf": "5m", "start": 1791916500, "end": 1791916800, "open": null, "close": null, "outcome": null, "status": "upcoming" }- Answers every round that trades: the live one and the next ten of a 5m or 15m market (the next one of 1h and 1d). An event slug answers in the shape of a round (tf "event", end = closesAt).
| Status | When |
|---|---|
| 400 | "Round too far in future" or "Invalid round slug" |
| 404 | A past round that is not stored |
/api/rounds/:slug/holdersThe largest holders of Up and Down
| Field | Type | Description |
|---|---|---|
slug | string | A round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...) |
curl "https://seeryx.com/api/rounds/btc-updown-5m-1791916200/holders"{ "up": { "count": 2, "holders": [{ "name": "alice", "handle": "alice", "address": "7xKXtg...gAsU", "avatar": null, "shares": 250.5 }] }, "down": { "count": 0, "holders": [] } }- count is every account holding that side; holders the 50 largest by shares. Positions are public, as on profiles. Cached for 5 seconds.
/api/rounds/:slug/activityThe last 100 trades of a market with who took them
| Field | Type | Description |
|---|---|---|
slug | string | A round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...) |
curl "https://seeryx.com/api/rounds/btc-updown-5m-1791916200/activity"[{ "id": 812, "side": "up", "action": "buy", "shares": 20, "price": 47, "time": 1791916330063, "trader": { "name": "alice", "handle": "alice", "address": "7xKXtg...gAsU", "avatar": null }, "tx": "5Kq3...", "txStatus": "confirmed" }]- The same trades as /trades/:slug, newest first, each with the public profile of its taker. tx is the Solana transaction of the trade once there is one, with txStatus pending, confirmed or failed.
Order book, trades and fees
Every endpoint here takes a round slug or an event market slug.
/api/orderbook/:slugThe order book of one side
| Field | Type | Description |
|---|---|---|
slug | string | A round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...) |
side | up | down | Default up (for an event market: up is YES, down is NO) |
curl "https://seeryx.com/api/orderbook/btc-updown-5m-1791916200?side=up"{ "bids": [[17, 5], [16, 5], [15, 5]], "asks": [[26, 5], [27, 5], [28, 5]] }- Levels are [price in cents, shares], best first, every level of the book. The books mirror each other: an Up bid at p is a Down ask at 100 - p, so either book shows every order.
/api/trades/:slugThe last 100 trades, newest first
| Field | Type | Description |
|---|---|---|
slug | string | A round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...) |
curl "https://seeryx.com/api/trades/btc-updown-5m-1791916200"[{ "id": 13, "side": "down", "action": "buy", "shares": 10, "price": 53, "time": 1791916330063 }]- side, action and price (cents) are those of the taker's order; time is in Unix milliseconds.
/api/volume/:slugVolume and trade count
| Field | Type | Description |
|---|---|---|
slug | string | A round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...) |
curl "https://seeryx.com/api/volume/btc-updown-5m-1791916200"{ "volume": 55.845724, "trades": 13 }- volume is in USDC.
/api/feesTaker fee rate, maker rebate and the smallest order
curl "https://seeryx.com/api/fees"{ "rateBps": 700, "rebateBps": 2000, "minOrderShares": 5 }- The taker pays shares × rateBps/10000 × p × (1 − p), p the price in dollars; the maker gets rebateBps/10000 of it back. See Fees.
/api/noticeA notice to every trader, if there is one
curl "https://seeryx.com/api/notice"{ "notice": null }- Otherwise { "text": "...", "level": "info" | "warning", "at": <ms> }. While trading is halted, orders, splits and merges answer 503 trading_halted; cancels keep working.
/api/stats24-hour volume, trades and traders, per market and in total
curl "https://seeryx.com/api/stats"{ "volume24h": 41.493814, "trades24h": 16, "traders24h": 3,
"markets": { "btc-5m": { "volume24h": 41.493814, "trades24h": 16, "traders24h": 3 } } }- Cached for 5 seconds.
Event markets
Yes/No questions resolved through UMA's Optimistic Oracle. An event market trades like one long round: its slug works with the order book, trades, volume, orders and the WebSocket. Up is YES, Down is NO.
/api/eventsEvery event market
curl "https://seeryx.com/api/events"[{ "slug": "ev-mlb-ws26-brewers", "groupId": "mlb-world-series-2026", "group": "MLB World Series Champion 2026", "title": "Milwaukee Brewers",
"question": "Will the Milwaukee Brewers win the 2026 World Series?", "rules": "...", "category": "sports",
"closesAt": 1792796400, "createdAt": 1791840170963, "status": "open", "outcome": null, "oracle": { "kind": "uma-oov3", ... } }, ...]- status: open, closed (trading ended, waiting for UMA) or resolved; outcome "yes" or "no" once resolved. closesAt (Unix seconds) is when trading stops.
/api/events/:slugOne event market
| Field | Type | Description |
|---|---|---|
slug | string | ev-... |
curl "https://seeryx.com/api/events/ev-mlb-ws26-brewers"{ "slug": "ev-mlb-ws26-brewers", "title": "Milwaukee Brewers", "closesAt": 1792796400, "status": "open", "outcome": null, ... }| Status | When |
|---|---|
| 404 | Not an event market |
/api/event-groupsQuestions with their outcomes and prices
| Field | Type | Description |
|---|---|---|
category | finance | politics | sports | esports | weather | Optional |
curl "https://seeryx.com/api/event-groups?category=politics"[{ "id": "us-aliens-2026", "category": "politics", "title": "Will the US confirm that aliens exist before 2027?", "status": "open",
"outcomes": [{ "slug": "ev-us-aliens-dec31", "label": "Before 2027", "closesAt": 1798779540, "status": "open", "outcome": null,
"yes": { "bid": 1, "ask": 5 }, "no": { "bid": 95, "ask": 99 }, "chance": 3, "change24h": null, "history": [[1791830000, 3]] }] }]- A question groups one or more event markets (its outcomes). history is a week of [Unix seconds, cents] points.
/api/event-groups/:idOne question with its outcomes
| Field | Type | Description |
|---|---|---|
id | string | The question id, or the slug of one of its outcomes |
range | 1h | 1d | 1w | 1m | max | Price history, default 1m |
curl "https://seeryx.com/api/event-groups/us-aliens-2026?range=1w"{ "id": "us-aliens-2026", "title": "Will the US confirm that aliens exist before 2027?", "outcomes": [...], "seriesGroups": [...] }| Status | When |
|---|---|
| 404 | Unknown question |
/api/event-groups/:id/holdersThe largest holders of each outcome
| Field | Type | Description |
|---|---|---|
id | string | The question id |
curl "https://seeryx.com/api/event-groups/us-aliens-2026/holders"[{ "slug": "ev-us-aliens-dec31", "label": "Before 2027", "yes": [], "no": [] }]- The ten largest YES and ten largest NO positions of each outcome.