{
  "name": "sec-api",
  "description": "Ticker → latest 10-K / 10-Q / 20-F / 40-F and earnings 8-K (Item 2.02) document URLs; calendar-driven earnings watch",
  "routes": [
    "GET  /",
    "GET  /health",
    "GET|POST /admin/refresh-tickers                 — seed/refresh ticker map (ADMIN_TOKEN)",
    "GET  /v1/watch                                  — earnings watch status",
    "GET  /v1/watch/events?date=YYYY-MM-DD           — detection log for a day",
    "GET  /v1/watch/events/:accession               — full detection + Slack body",
    "GET  /v1/watch/errors?date=YYYY-MM-DD           — structured error log for a day",
    "GET  /v1/tickers/:ticker                        — CIK from KV",
    "GET  /v1/tickers/:ticker/filings                — all 10-K/10-Q/20-F/40-F",
    "GET  /v1/tickers/:ticker/filings/latest         — latest annual + quarterly",
    "GET  /v1/tickers/:ticker/filings/latest/annual",
    "GET  /v1/tickers/:ticker/filings/latest/quarterly",
    "GET  /v1/tickers/:ticker/earnings               — 8-K Item 2.02 list",
    "GET  /v1/tickers/:ticker/earnings/latest        — latest earnings 8-K",
    "GET  /v1/tickers/:ticker/earnings/latest?parse=1 — parse EX-99.1; permanent KV cache",
    "GET  /v1/tickers/:ticker/earnings-reports       — slim decided EPS actuals (array, ?limit=)",
    "GET  /v1/earnings/extracts/:accession          — read permanent extract by accession",
    "GET  /v1/tickers/:ticker/street-eps?date=YYYY-MM-DD — AI street-EPS extraction (publishes or flags)"
  ],
  "adhoc": [
    "GET /v1/tickers/:ticker",
    "GET /v1/tickers/:ticker/filings",
    "GET /v1/tickers/:ticker/filings/latest",
    "GET /v1/tickers/:ticker/filings/latest/annual",
    "GET /v1/tickers/:ticker/filings/latest/quarterly",
    "GET /v1/tickers/:ticker/earnings",
    "GET /v1/tickers/:ticker/earnings/latest",
    "GET /v1/tickers/:ticker/earnings-reports",
    "GET /v1/watch",
    "GET /v1/watch/events",
    "GET /v1/watch/events/:accession",
    "GET /v1/watch/errors"
  ]
}