Public API

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/:handle

    Cached 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
  • GET/api/asset/:symbol

    Per-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
  • GET/api/leaderboard

    Top 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/discover

    Paginated 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/recent

    Chronological 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
  • GET/api/stats

    Site-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.

  • GET/api/records

    Superlatives 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.

  • GET/api/h/:handle/badge.svg

    Shields-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)
← Back home