/api/v1/factsGet system-wide facts.
Get system-wide facts.
10 tokensSince v1.0.0
Why use this
A lightweight platform health probe that returns the cumulative SEC filing count, the most-recent acceptance timestamp, the live parsing-queue depth, and a per-form-type breakdown of the last 90 days. Operations teams and external status-board integrations use this as a 60-second-cached canonical reference for 'is FinRadar ingesting?' — pair it with `GET /api/v1/status` to also cover service-level health. The 90-day form-type histogram is the cheapest way to confirm Form 4 / 13F-HR / 8-K / 10-K throughput is at expected magnitudes before kicking off heavier per-filing queries.
Common use case
Dashboard widgets showing total filings processed.
Returns a snapshot of platform-wide ingestion metrics: total filings, last-acceptance timestamp, queue depth, and per-form-type counts. Customers use this as a public health probe alongside GET /api/v1/status. The response is cached for 60 seconds at the gateway, so polling more aggressively than once per minute returns stale-but-cheap data. For a per-concept XBRL fact lookup, use GET /api/v1/facts/by-concept instead — this endpoint returns aggregate counts only.
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| total_filings | integer | no | Cumulative count of SEC filings successfully accepted and persisted to the `filings` table since 2000 — covers Forms 3/4/5, 13F-HR/NT, 13D/G, 8-K, 10-K/Q, S-1, 20-F, and ~340 other root form types. Increments roughly +5K/day off-season and +50K/day during 13F deadline windows. |
| last_filing_at | string | no | ISO-8601 UTC timestamp of the most recent successful filing acceptance (the moment the filing landed in our DB, NOT the filed_at on EDGAR which is timezone-loose). Lag should be < 60s during ET market hours; values older than ~10 minutes outside the SEC's overnight quiet-window (10pm-6am ET) are an ingestion-pipeline alert. |
| queue_depth | integer | no | Live count of accepted-but-not-yet-parsed filings in the Celery `sec_13f` + `sec_filings` queues. Steady-state < 50; values 100-500 indicate filing-season pressure (normal at 10-Q peak); values > 1,000 indicate worker backlog and merit a sec_watchdog inspection. |
| by_form_type | object | no | Map of form_type → count for the last 90 days (e.g. `{"4": 28432, "13F-HR": 9617}`). Only forms with non-zero activity in the window appear. Use this to confirm expected magnitudes per form type before kicking off heavy historical queries; sudden zeros on a form type usually indicate a parser regression rather than an SEC issuance pause. |
| as_of | string | no | ISO-8601 UTC timestamp the snapshot was generated server-side (cached up to 60 seconds). Treat any consumer-side `now() - as_of > 90s` as stale-cache contention rather than a stale source — re-poll once before alerting. |
Sample response
·
- "total_filings": 2845129
- "last_filing_at": "2026-05-01T20:54:12.000Z"
- "queue_depth": 14
- "by_form_type":
- "4": 28432
- "13F-HR": 9617
- "8-K": 16244
- "10-K": 4112
- "10-Q": 12055
- "13D": 412
- "13G": 1208
- "as_of": "2026-05-01T20:55:00.000Z"
Errors
| Status | Label | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid query, body, or path parameter. |
| 401 | Unauthorized | Missing or invalid Authorization header / api_Token. |
| 402 | Payment Required | Insufficient token balance for this call. Top up |
| 429 | Too Many Requests | Rate limit exceeded for your tier (see /pricing for tier limits). Tier limits |
| 500 | Server Error | Unexpected server-side failure. Retry with backoff; report if persistent. |
Code samples
curl "https://api.finradar.ai/api/v1/facts?api_Token=YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).