/api/v1/xbrl/bulkGet the latest nightly bulk-export manifest: the list of available files with per-file row count, byte size, and SHA-256 digest, plus the snapshot timestamp, the contract version the export was built against, and the file format.
Get the latest nightly bulk-export manifest: the list of available files with per-file row count, byte size, and SHA-256 digest, plus the snapshot timestamp, the contract version the export was built against, and the file format. The entry point for any bulk workflow — read this, then GET the file(s) you need. Files are regenerated once per night from the current standardized layer; a download always reflects the most recent completed snapshot.
Why use this
Common use case
Returns the manifest for the most recent completed nightly bulk export. The bulk surface regenerates the whole standardized layer once per night into gzip ND-JSON files so institutions do not make thousands of per-company calls to reconstruct the corpus. Two datasets ship today: standardized_values — every company's currently-in-force standardized line items, each row carrying {cik, ticker, entity_name, metric, fiscal_year, fiscal_period, period_end, value, unit, concept_qname, rule_tier, confidence, calc_status, accession_number, form_type, filed_date, engine_version}; and entities — the identity dimension ({cik, entity_name, primary_ticker, sic, fiscal_year_end}) so you can join without a second call. Each file entry carries a SHA-256 digest for integrity verification. Read this manifest, then stream the file(s) via GET /api/v1/xbrl/bulk/{filename}. 404 NOT_FOUND before the first export has run.
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| data.snapshot | string | no | The UTC timestamp identifying the current nightly snapshot (e.g. `2026-07-16T06-00-00Z`). Compare against your last-ingested value to detect a fresh export. |
| data.generated_at | string | no | ISO-8601 UTC time the snapshot finished generating. |
| data.api_version | string | no | The API contract version the export was built against — the standardized field set matches this version's documentation. |
| data.format | string | no | The file format for every file: `ndjson.gz` — gzip-compressed newline-delimited JSON (one JSON object per line). Decompress, then read line by line. |
| data.datasets | array | no | The datasets in this snapshot: `standardized_values` (the current in-force standardized line items for every company) and `entities` (the company identity dimension: CIK, name, primary ticker, SIC). |
| data.file_count | integer | no | Number of files in the snapshot. |
| data.total_rows | integer | no | Sum of `row_count` across all files — a quick sanity gauge of corpus size. |
| data.files | array | no | One entry per file: `{dataset, filename, row_count, byte_size, sha256, download_path}`. `download_path` is the ready-to-call path for GET /api/v1/xbrl/bulk/{filename}. |
| data.files[].sha256 | string | no | SHA-256 hex digest of the compressed file — verify your download against it before ingesting. |
Sample response
- "status": "success"
- "data":
- "snapshot": "2026-07-16T06-00-00Z"
- "generated_at": "2026-07-16T06-04-11.512000Z"
- "api_version": "3.103.0"
- "format": "ndjson.gz"
- "datasets":
- "file_count": 2
- "total_rows": 4821337
- "files":
- "meta":
- "snapshot": "2026-07-16T06-00-00Z"
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/xbrl/bulk?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).