accueil

API

Données de marché

Données de marché publiques de Seeryx en REST : marchés, manche en cours, historique, carnets d’ordres, transactions, volume et marchés événementiels.

Vue d’ensemble

Tous les endpoints de données de marché sont publics : sans connexion, sans clé. Les réponses sont en JSON ; les prix sont en cents, les tailles en parts.

Vous voulezAppel
Tous les marchés crypto avec leur manche en cours et leurs meilleurs prix, en une seule requêteGET /api/markets/summary
La manche en cours d’un marchéGET /api/markets/BTC/5m/current
Une manche par son slug, passée, en cours ou à venirGET /api/rounds/:slug
Le carnet complet d’un marchéGET /api/orderbook/:slug?side=up
Les transactions en temps réelAbonnement à une manche sur le WebSocket ; GET /api/trades/:slug pour rattraper le retard
Les marchés événementiels et leurs questionsGET /api/events, GET /api/event-groups

Marchés et manches

Les marchés crypto et leurs manches. Les manches se lisent par marché (la manche en cours, l’historique des manches réglées) ou par slug.

GET/api/markets

Tous les marchés crypto

Public
Requête
curl "https://seeryx.com/api/markets"
Réponse
[{ "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 est la durée de la manche en secondes ; symbol, la paire Binance dont le prix décide des manches. liquidityRewards : les ordres en attente sur ce marché rapportent des points de liquidité (voir Bot de tenue de marché).
GET/api/markets/upcoming

Marchés annoncés mais pas encore négociables

Public
Requête
curl "https://seeryx.com/api/markets/upcoming"
Réponse
[{ "asset": "BTC", "tf": "1d", "opensAt": 1791993600 }]
  • Un marché apparaît dans GET /api/markets à partir de sa première manche ; d’ici là, il est listé ici avec le début de cette manche. Généralement vide.
GET/api/markets/summary

Tous les marchés à la fois : manche en cours, meilleurs prix, derniers résultats

Public
Requête
curl "https://seeryx.com/api/markets/summary"
Réponse
{ "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" }, ...] }, ...] }
  • Le meilleur prix acheteur et le meilleur prix vendeur de chaque côté sous forme de [cents, parts], null quand ce côté est vide, et les 5 dernières manches réglées, de la plus récente à la plus ancienne. Actualisé au plus une fois par seconde : interrogez cet endpoint plutôt qu’un carnet par marché.
GET/api/markets/:asset/:tf/current

La manche en cours d’un marché

Public
ChampTypeDescription
assetcheminobligatoireBTC | ETH | BNBCasse indifférente
tfcheminobligatoire5m | 15m | 1h | 1dDurée de la manche
Requête
curl "https://seeryx.com/api/markets/BTC/5m/current"
Réponse
{ "slug": "btc-updown-5m-1791916200", "asset": "BTC", "tf": "5m", "start": 1791916200, "end": 1791916500,
  "open": 83082.005, "close": null, "outcome": null, "status": "live" }
  • Une manche dont la fin est passée reste "live" avec outcome null jusqu’à l’enregistrement de son prix de clôture, généralement en quelques secondes : vérifiez end, ne supposez pas qu’elle est encore négociable.
StatutCas
404Marché inexistant
GET/api/markets/:asset/:tf/rounds

Manches réglées d’un marché, de la plus récente à la plus ancienne

Public
ChampTypeDescription
assetcheminobligatoireBTC | ETH | BNBCasse indifférente
tfcheminobligatoire5m | 15m | 1h | 1dDurée de la manche
beforerequêtefacultatifnumberManches qui commencent avant cet instant, en secondes Unix ; maintenant par défaut
limitrequêtefacultatifnumberDe 1 à 100, 24 par défaut
Requête
curl "https://seeryx.com/api/markets/BTC/5m/rounds?limit=2"
Réponse
[{ "slug": "btc-updown-5m-1791915600", "asset": "BTC", "tf": "5m", "start": 1791915600, "end": 1791915900, "open": 83189.465, "close": 83133.425, "outcome": "down", "status": "settled" }, ...]
  • Passez le début de la dernière manche comme before pour obtenir la page suivante. Au plus 7 jours en arrière.
StatutCas
429Trop de lectures d’historique depuis votre adresse IP ; Retry-After indique quand réessayer
GET/api/rounds/:slug

Une manche, passée, en cours ou à venir

Public
ChampTypeDescription
slugcheminobligatoirestringUn slug de manche comme btc-updown-5m-1791916200, ou le slug d’un marché événementiel (ev-...)
Requête
curl "https://seeryx.com/api/rounds/btc-updown-5m-1791916500"
Réponse
{ "slug": "btc-updown-5m-1791916500", "asset": "BTC", "tf": "5m", "start": 1791916500, "end": 1791916800, "open": null, "close": null, "outcome": null, "status": "upcoming" }
  • Répond pour toute manche négociable : la manche en cours et les dix suivantes d’un marché 5m ou 15m (la suivante pour 1h et 1d). Un slug d’événement répond au format d’une manche (tf "event", end = closesAt).
StatutCas
400"Round too far in future" ou "Invalid round slug"
404Une manche passée qui n’est pas enregistrée
GET/api/rounds/:slug/holders

Les principaux détenteurs de Hausse et de Baisse

Public
ChampTypeDescription
slugcheminobligatoirestringUn slug de manche comme btc-updown-5m-1791916200, ou le slug d’un marché événementiel (ev-...)
Requête
curl "https://seeryx.com/api/rounds/btc-updown-5m-1791916200/holders"
Réponse
{ "up": { "count": 2, "holders": [{ "name": "alice", "handle": "alice", "address": "7xKXtg...gAsU", "avatar": null, "shares": 250.5 }] }, "down": { "count": 0, "holders": [] } }
  • count est le nombre total de comptes détenant ce côté ; holders, les 50 plus gros en nombre de parts. Les positions sont publiques, comme sur les profils. Mis en cache pendant 5 secondes.
GET/api/rounds/:slug/activity

Les 100 dernières transactions d’un marché, avec le taker de chacune

Public
ChampTypeDescription
slugcheminobligatoirestringUn slug de manche comme btc-updown-5m-1791916200, ou le slug d’un marché événementiel (ev-...)
Requête
curl "https://seeryx.com/api/rounds/btc-updown-5m-1791916200/activity"
Réponse
[{ "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" }]
  • Les mêmes transactions que /trades/:slug, de la plus récente à la plus ancienne, chacune avec le profil public de son taker. tx est la transaction Solana de l’opération lorsqu’elle existe, avec txStatus pending, confirmed ou failed.

Carnet d’ordres, transactions et frais

Chaque endpoint de cette section accepte un slug de manche ou de marché événementiel.

GET/api/orderbook/:slug

Le carnet d’ordres d’un côté

Public
ChampTypeDescription
slugcheminobligatoirestringUn slug de manche comme btc-updown-5m-1791916200, ou le slug d’un marché événementiel (ev-...)
siderequêtefacultatifup | downup par défaut (pour un marché événementiel : up correspond à Oui, down à Non)
Requête
curl "https://seeryx.com/api/orderbook/btc-updown-5m-1791916200?side=up"
Réponse
{ "bids": [[17, 5], [16, 5], [15, 5]], "asks": [[26, 5], [27, 5], [28, 5]] }
  • Les niveaux sont [prix en cents, parts], du meilleur au moins bon, avec tous les niveaux du carnet. Les carnets sont le miroir l’un de l’autre : un ordre d’achat Hausse à p est un ordre de vente Baisse à 100 − p, chaque carnet montre donc tous les ordres.
GET/api/trades/:slug

Les 100 dernières transactions, de la plus récente à la plus ancienne

Public
ChampTypeDescription
slugcheminobligatoirestringUn slug de manche comme btc-updown-5m-1791916200, ou le slug d’un marché événementiel (ev-...)
Requête
curl "https://seeryx.com/api/trades/btc-updown-5m-1791916200"
Réponse
[{ "id": 13, "side": "down", "action": "buy", "shares": 10, "price": 53, "time": 1791916330063 }]
  • side, action et price (en cents) sont ceux de l’ordre du taker ; time est en millisecondes Unix.
GET/api/volume/:slug

Volume et nombre de transactions

Public
ChampTypeDescription
slugcheminobligatoirestringUn slug de manche comme btc-updown-5m-1791916200, ou le slug d’un marché événementiel (ev-...)
Requête
curl "https://seeryx.com/api/volume/btc-updown-5m-1791916200"
Réponse
{ "volume": 55.845724, "trades": 13 }
  • volume est en USDC.
GET/api/fees

Taux des frais taker, remise maker et ordre minimum

Public
Requête
curl "https://seeryx.com/api/fees"
Réponse
{ "rateBps": 700, "rebateBps": 2000, "minOrderShares": 5 }
  • Le taker paie parts × rateBps/10000 × p × (1 − p), p étant le prix en dollars ; le maker en récupère rebateBps/10000. Voir Frais.
GET/api/notice

Un avis à tous les traders, s’il y en a un

Public
Requête
curl "https://seeryx.com/api/notice"
Réponse
{ "notice": null }
  • Sinon { "text": "...", "level": "info" | "warning", "at": <ms> }. Tant que le trading est suspendu, les ordres, les scissions et les fusions répondent 503 trading_halted ; les annulations continuent de fonctionner.
GET/api/stats

Volume, transactions et traders sur 24 heures, par marché et au total

Public
Requête
curl "https://seeryx.com/api/stats"
Réponse
{ "volume24h": 41.493814, "trades24h": 16, "traders24h": 3,
  "markets": { "btc-5m": { "volume24h": 41.493814, "trades24h": 16, "traders24h": 3 } } }
  • Mis en cache pendant 5 secondes.

Marchés événementiels

Des questions Oui/Non résolues par l’Optimistic Oracle d’UMA. Un marché événementiel se négocie comme une longue manche unique : son slug fonctionne avec le carnet d’ordres, les transactions, le volume, les ordres et le WebSocket. Up correspond à Oui, Down à Non.

GET/api/events

Tous les marchés événementiels

Public
Requête
curl "https://seeryx.com/api/events"
Réponse
[{ "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 terminé, en attente d’UMA) ou resolved ; outcome "yes" ou "no" une fois résolu. closesAt (secondes Unix) est l’heure d’arrêt du trading.
GET/api/events/:slug

Un marché événementiel

Public
ChampTypeDescription
slugcheminobligatoirestringev-...
Requête
curl "https://seeryx.com/api/events/ev-mlb-ws26-brewers"
Réponse
{ "slug": "ev-mlb-ws26-brewers", "title": "Milwaukee Brewers", "closesAt": 1792796400, "status": "open", "outcome": null, ... }
StatutCas
404Ce n’est pas un marché événementiel
GET/api/event-groups

Les questions avec leurs issues et leurs prix

Public
ChampTypeDescription
categoryrequêtefacultatiffinance | politics | sports | esports | weatherFacultatif
Requête
curl "https://seeryx.com/api/event-groups?category=politics"
Réponse
[{ "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]] }] }]
  • Une question regroupe un ou plusieurs marchés événementiels (ses issues). history contient une semaine de points [secondes Unix, cents].
GET/api/event-groups/:id

Une question avec ses issues

Public
ChampTypeDescription
idcheminobligatoirestringL’id de la question, ou le slug de l’une de ses issues
rangerequêtefacultatif1h | 1d | 1w | 1m | maxHistorique des prix, 1m par défaut
Requête
curl "https://seeryx.com/api/event-groups/us-aliens-2026?range=1w"
Réponse
{ "id": "us-aliens-2026", "title": "Will the US confirm that aliens exist before 2027?", "outcomes": [...], "seriesGroups": [...] }
StatutCas
404Question inconnue
GET/api/event-groups/:id/holders

Les principaux détenteurs de chaque issue

Public
ChampTypeDescription
idcheminobligatoirestringL’id de la question
Requête
curl "https://seeryx.com/api/event-groups/us-aliens-2026/holders"
Réponse
[{ "slug": "ev-us-aliens-dec31", "label": "Before 2027", "yes": [], "no": [] }]
  • Les dix plus grosses positions Oui et les dix plus grosses positions Non de chaque issue.