The CapCheck JSON API
Read-only. No auth, no keys, no rate limits beyond the edge cache. Wide-open CORS so you can hit it from a browser, a notebook, a Discord bot, whatever. Every endpoint returns ok: boolean and data or an error. Never triggers a scan — strictly reads what we've already cached.
Base URL
https://capcheck.fyi
Endpoints
- GET
/api/h/:handleCached handle row + every call we've extracted. 404 if the handle has never been scanned — use the website to trigger a scan.
Query?slim=1drop the calls array; handle row only
Try it/api/h/ashcrypto ↗ - GET
/api/asset/:symbolPer-asset rollup. `callers` ranked by average resolved P&L on that symbol; `recent` is the 50 latest calls mentioning the symbol (any status).
Query?slim=1drop the recent array
Try it/api/asset/SOL ↗ - GET
/api/leaderboardTop certified and top cap handles. Both require at least 3 resolved calls — a single lucky moonshot can't chart.
Query?limit=N1–50, default 10
- GET
/api/discoverPaginated directory of every scanned handle with a gradable record. JSON twin of /discover.
Query?v`all` (default), `follow`, `cap`, `inconclusive`?sort`capscore` (default), `followers`, `calls`, `recent`?p=Npage number, 1-indexed (default 1)?limit=N1–50 per page, default 24
- GET
/api/recentChronological feed of recently-resolved calls across all handles. Only emits `certified` / `cap` — pending/unresolvable calls are filtered out so clients never see a status that might still flip.
Query?limit=N1–200, default 50
Try it/api/recent?limit=10 ↗ - GET
/api/statsSite-wide aggregates: totals, verdict distribution, call outcome distribution, and the top 10 most-called assets with their avg P&L. Mirrors the /stats HTML page.
Try it/api/stats ↗ - GET
/api/recordsSuperlatives across the dataset: best call ever, worst call ever, highest/lowest cap score, biggest certified/cap caller by followers, most calls, most-scanned this week. JSON twin of /records.
Try it/api/records ↗ - GET
/api/h/:handle/badge.svgShields-style SVG verdict badge. Embeddable anywhere — bios, READMEs, blog footers. Returns a neutral 'unscanned' badge (still 200 OK) if we've never seen the handle, so it's safe to embed even before a scan runs.
Query?variant`verdict` (default), `score` (numeric capscore), or `hitrate` (certified / resolved as a %)
Also available
- /feed.xml — RSS 2.0 of recently-resolved calls (same data as /api/recent)
/h/:handle/feed.xml— RSS 2.0 scoped to one caller's resolved calls- /sitemap.xml — every handle + asset we've indexed
/h/:handle/embed— iframe-friendly verdict card (x-frame-options: ALLOWALL)