home

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 wantCall
Every crypto market with its live round and best prices, in one requestGET /api/markets/summary
The live round of one marketGET /api/markets/BTC/5m/current
A round by slug, past, live or upcomingGET /api/rounds/:slug
The full book of one marketGET /api/orderbook/:slug?side=up
Trades as they happenWebSocket round subscription; GET /api/trades/:slug to catch up
Event markets and their questionsGET /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.

GET/api/markets

Every crypto market

Public
Request
curl "https://seeryx.com/api/markets"
Response
[{ "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).
GET/api/markets/upcoming

Markets announced but not trading yet

Public
Request
curl "https://seeryx.com/api/markets/upcoming"
Response
[{ "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.
GET/api/markets/summary

Every market at once: live round, best prices, last results

Public
Request
curl "https://seeryx.com/api/markets/summary"
Response
{ "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.
GET/api/markets/:asset/:tf/current

The live round of a market

Public
FieldTypeDescription
assetpathrequiredBTC | ETH | BNBAny case
tfpathrequired5m | 15m | 1h | 1dRound length
Request
curl "https://seeryx.com/api/markets/BTC/5m/current"
Response
{ "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.
StatusWhen
404No such market
GET/api/markets/:asset/:tf/rounds

Settled rounds of a market, newest first

Public
FieldTypeDescription
assetpathrequiredBTC | ETH | BNBAny case
tfpathrequired5m | 15m | 1h | 1dRound length
beforequeryoptionalnumberRounds that start before this, Unix seconds; default now
limitqueryoptionalnumber1-100, default 24
Request
curl "https://seeryx.com/api/markets/BTC/5m/rounds?limit=2"
Response
[{ "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.
StatusWhen
429Too many history reads from your IP address; Retry-After says when to try again
GET/api/rounds/:slug

One round, past, live or upcoming

Public
FieldTypeDescription
slugpathrequiredstringA round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...)
Request
curl "https://seeryx.com/api/rounds/btc-updown-5m-1791916500"
Response
{ "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).
StatusWhen
400"Round too far in future" or "Invalid round slug"
404A past round that is not stored
GET/api/rounds/:slug/holders

The largest holders of Up and Down

Public
FieldTypeDescription
slugpathrequiredstringA round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...)
Request
curl "https://seeryx.com/api/rounds/btc-updown-5m-1791916200/holders"
Response
{ "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.
GET/api/rounds/:slug/activity

The last 100 trades of a market with who took them

Public
FieldTypeDescription
slugpathrequiredstringA round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...)
Request
curl "https://seeryx.com/api/rounds/btc-updown-5m-1791916200/activity"
Response
[{ "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.

GET/api/orderbook/:slug

The order book of one side

Public
FieldTypeDescription
slugpathrequiredstringA round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...)
sidequeryoptionalup | downDefault up (for an event market: up is YES, down is NO)
Request
curl "https://seeryx.com/api/orderbook/btc-updown-5m-1791916200?side=up"
Response
{ "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.
GET/api/trades/:slug

The last 100 trades, newest first

Public
FieldTypeDescription
slugpathrequiredstringA round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...)
Request
curl "https://seeryx.com/api/trades/btc-updown-5m-1791916200"
Response
[{ "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.
GET/api/volume/:slug

Volume and trade count

Public
FieldTypeDescription
slugpathrequiredstringA round slug such as btc-updown-5m-1791916200, or an event market's slug (ev-...)
Request
curl "https://seeryx.com/api/volume/btc-updown-5m-1791916200"
Response
{ "volume": 55.845724, "trades": 13 }
  • volume is in USDC.
GET/api/fees

Taker fee rate, maker rebate and the smallest order

Public
Request
curl "https://seeryx.com/api/fees"
Response
{ "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.
GET/api/notice

A notice to every trader, if there is one

Public
Request
curl "https://seeryx.com/api/notice"
Response
{ "notice": null }
  • Otherwise { "text": "...", "level": "info" | "warning", "at": <ms> }. While trading is halted, orders, splits and merges answer 503 trading_halted; cancels keep working.
GET/api/stats

24-hour volume, trades and traders, per market and in total

Public
Request
curl "https://seeryx.com/api/stats"
Response
{ "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.

GET/api/events

Every event market

Public
Request
curl "https://seeryx.com/api/events"
Response
[{ "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.
GET/api/events/:slug

One event market

Public
FieldTypeDescription
slugpathrequiredstringev-...
Request
curl "https://seeryx.com/api/events/ev-mlb-ws26-brewers"
Response
{ "slug": "ev-mlb-ws26-brewers", "title": "Milwaukee Brewers", "closesAt": 1792796400, "status": "open", "outcome": null, ... }
StatusWhen
404Not an event market
GET/api/event-groups

Questions with their outcomes and prices

Public
FieldTypeDescription
categoryqueryoptionalfinance | politics | sports | esports | weatherOptional
Request
curl "https://seeryx.com/api/event-groups?category=politics"
Response
[{ "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.
GET/api/event-groups/:id

One question with its outcomes

Public
FieldTypeDescription
idpathrequiredstringThe question id, or the slug of one of its outcomes
rangequeryoptional1h | 1d | 1w | 1m | maxPrice history, default 1m
Request
curl "https://seeryx.com/api/event-groups/us-aliens-2026?range=1w"
Response
{ "id": "us-aliens-2026", "title": "Will the US confirm that aliens exist before 2027?", "outcomes": [...], "seriesGroups": [...] }
StatusWhen
404Unknown question
GET/api/event-groups/:id/holders

The largest holders of each outcome

Public
FieldTypeDescription
idpathrequiredstringThe question id
Request
curl "https://seeryx.com/api/event-groups/us-aliens-2026/holders"
Response
[{ "slug": "ev-us-aliens-dec31", "label": "Before 2027", "yes": [], "no": [] }]
  • The ten largest YES and ten largest NO positions of each outcome.