Public Stats API
The same numbers you see on our landing page, available as JSON: the nightly Polymarket liquidity-reward payouts our live account actually received, what's accruing today, and how many markets the bot is quoting. Read-only, open CORS, built for agents.
Machine-readable discovery
- /.well-known/api-catalog — RFC 9727 API catalog (
application/linkset+json) - /openapi.json — OpenAPI 3.1 description
- /llms.txt — plain-text service summary
- /auth.md — agent authentication and access notes
Authentication
Send the project's public anon key in an apikey header. This is a client-side credential published in our website bundle — it is designed to be public, and it grants nothing beyond the read-only endpoints described here. No signup, no rate-limit key, no account needed.
apikey: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzc2NTQxMjc4LCJleHAiOjIwOTE5MDEyNzh9.8qcC7ge8tG1P59FZJlmg_fPioUHl5tBiUqTSCQ4mstQCORS is open (Access-Control-Allow-Origin: *), so browser-based agents can call these endpoints directly.
Endpoints
https://api2.clydescan.com/rest/v1/rpc/landing_statsNightly payouts (last 16 settled nights), today's accrual, market breadth, and all-time totals. POST with {} is equivalent.
curl -s "https://api2.clydescan.com/rest/v1/rpc/landing_stats" \
-H "apikey: $CLYDESCAN_ANON_KEY"Response (abridged)
{
"updated_at": "2026-08-17T21:02:16Z",
"daily": [
{ "date": "2026-08-16", "usd": 75.93 },
{ "date": "2026-08-17", "usd": 60.55 }
],
"last_night_usd": 60.55,
"last_night_date": "2026-08-17",
"accrued_today_usd": 19.69,
"accrued_today_markets": 73,
"markets_quoted_24h": 68,
"total_usd": 451.85,
"since_date": "2026-07-21",
"best_day_usd": 75.93,
"capital": {
"cash_usd": 2310.35,
"inventory_usd": 873.17,
"positions": 70,
"at_stake_usd": 3183.52,
"as_of": "2026-08-17T23:17:03Z"
},
"returns": {
"window_days": 15,
"from_date": "2026-08-03",
"to_date": "2026-08-17",
"rewards_usd": 349.45,
"trading_costs_usd": 479.35,
"net_usd": -129.90,
"rewards_vs_costs": 0.73,
"gross_yield_pct": 10.98,
"net_yield_pct": -4.08
}
}https://api2.clydescan.com/rest/v1/rpc/landing_healthData freshness and writer liveness. Always HTTP 200 when reachable — read the status field, not the status code.
curl -s "https://api2.clydescan.com/rest/v1/rpc/landing_health" \
-H "apikey: $CLYDESCAN_ANON_KEY"{
"status": "ok",
"checked_at": "2026-08-17T21:02:16Z",
"data": {
"last_payout_date": "2026-08-17", "payout_age_days": 0, "fresh": true,
"last_accrual_at": "2026-08-17T23:00:14Z", "accrual_age_minutes": 17,
"accrual_fresh": true
},
"writer": { "last_heartbeat_at": "2026-08-17T21:02:05Z", "alive": true }
}Semantics and etiquette
- All values are USD and reflect one real production Polymarket account — not a simulation, backtest, or projection.
- Payout dates are UTC. Each night's payout covers the prior day's activity and settles at 00:00 UTC.
accrued_today_usdis an estimate in progress — it grows through the day and settles tonight. Don't compare it to a settled night.- The payout fields are gross.
daily,last_night_usd,total_usdandbest_day_usdare reward income before the cost of unwinding filled inventory. Thereturnsobject carries both halves, andnet_usdcan be negative. Reporting a payout figure as profit misstates this account. - Don't annualise
gross_yield_pct. It coversreturns.window_days, not a year, and reward pools are split among competing quoters rather than compounding like interest. - Polling: the data changes at most every few minutes. Once per 5 minutes is plenty; there are no published rate limits, but please don't hammer it.
- Aggregates only. No positions, orders, wallet addresses, or per-market figures are exposed by design.
- Not financial advice. Past reward income does not predict future income; reward pools and competition change. See Terms.