tyca exposes a small public HTTP API — the same one tyca.io itself calls. No API key, no signup: every endpoint below is an unauthenticated GET. All data is play money; nothing here moves real currency.
https://tyca.io/api/v1Stability: read-only, no write access documented or supported, and no stability guarantee yet — expect response shapes to grow new fields, not to break existing ones without notice. We’ll version before promising more.
GET /api/v1/markets | Browse/filter markets (category, tag, status, kind, sort). |
GET /api/v1/markets/movers | Biggest price movers right now. |
GET /api/v1/markets/{id} | One market — options, prices, volume, resolution rule. |
GET /api/v1/market-by-slug/{slug} | Same as above, addressed by its URL slug. |
GET /api/v1/markets/{id}/history?range=1h|1d|1w|all | Per-option crowd-share-over-time series for the chart. |
GET /api/v1/markets/{id}/trades | Recent trades on this market. |
GET /api/v1/markets/{id}/trading | Live trading info — implied prices, liquidity depth. |
GET /api/v1/markets/{id}/holders | Top holders / open positions on this market. |
GET /api/v1/markets/{id}/related | Related markets. |
GET /api/v1/markets/{id}/comments | Comments on this market. |
GET /api/v1/trades/recent | Site-wide live trade tape, newest first. |
GET /api/v1/wins/weekly | Biggest wins across tyca this week. |
GET /api/v1/live/board | Composed board: fixtures + their coin markets + prices, in one payload. |
GET /api/v1/activity | Site-wide recent activity feed. |
GET /api/v1/live/prices | Live crypto and economic reference prices. |
GET /api/v1/live/prices/{id}/history | Historical data for a price reference. |
GET /api/v1/stream | Server-Sent Events. Events: hello (on connect), price, trade, score, settle, plus a periodic heartbeat comment. |
GET /api/v1/daily | Today's daily call-of-the-day market. |
GET /api/v1/events | List event hubs (markets grouped under one story). |
GET /api/v1/events/{slug} | One event hub and its markets. |
GET /api/v1/tags | List discovery tags. |
GET /api/v1/tags/{tag}/markets | Markets carrying one tag. |
GET /api/v1/search?q= | Search markets and participants. |
GET /api/v1/leaderboard | Global portfolio-value leaderboard. |
GET /api/v1/leaderboard/season | Current-season leaderboard. |
GET /api/v1/transparency | Coin-supply conservation + ledger tamper-evidence snapshot, recomputed every few minutes. |
GET /api/v1/transparency/checkpoints?limit= | Hash-chain checkpoint history, newest first (limit clamped 1–200, default 50). |
GET /api/v1/sports/* | World Cup 2026 matches, timelines, lineups, standings, brackets, scorers, leaderboard, live takes, player profiles — all public reads. Submitting a prediction requires an account. |
The per-option share-over-time series behind a market’s chart:
$ curl 'https://tyca.io/api/v1/markets/3fa4c11e-2b77-4c9a-9c0a-8e2a6b6e0a10/history?range=1d'
{
"data": {
"options": [
{ "key": "yes", "label": "Yes" },
{ "key": "no", "label": "No" }
],
"points": [
{ "t": "2026-07-02T06:00:00Z", "shares": { "yes": 58, "no": 42 }, "volume": 180 },
{ "t": "2026-07-02T12:00:00Z", "shares": { "yes": 61, "no": 39 }, "volume": 240 },
{ "t": "2026-07-02T18:00:00Z", "shares": { "yes": 57, "no": 43 }, "volume": 95 }
]
}
}Points are abbreviated above — a real response is sampled to a bounded count.
The same feed behind the Transparency page:
$ curl https://tyca.io/api/v1/transparency
{
"data": {
"coin_supply": 48250000,
"status": "ok",
"conserved": true,
"drift": 0,
"negative_balances": 0,
"reconciled_at": "2026-07-02T23:58:04Z",
"ledger_entries": 512340,
"hash_prefix": "9f3a21",
"checkpointed_at": "2026-07-02T23:58:04Z",
"trading_halted": false,
"traders": 1830,
"trades": 41207,
"coins_traded": 9812340,
"volume_24h": 214500,
"markets_open": 268,
"markets_settled": 187
}
}