Streams & archives
Read a filing stream and collect a bounded asynchronous archive.
Stream filings and download an archive
Read a bounded stream
Use explicit stream:read and an entitled company. This example catches up and closes; it does not create a long-running subscription.
curl --fail-with-body --no-buffer --get 'https://api.filingsift.com/api/v1/filings/stream' \
-H "Authorization: Bearer $FILINGSIFT_API_KEY" \
--data-urlencode 'ticker=AAPL' \
--data-urlencode 'follow=false'Following streams send heartbeat comments. Persist event IDs; reconnect with Last-Event-ID or cursor (cursor takes precedence), deduplicate and handle access/limit errors. SDK users manage reconnection themselves. Events describe retained FilingSift records, not a direct SEC push feed. GET /filings/stream documents the contract.
Create and collect a filing archive
- Select 1–100 accessible accessions from filing results.
- With
batch:write, submitPOST /account/batch-jobsusing{"kind":"filing_archive","items":["YOUR_ACCESSION"]}. Other supported kinds include exhibit, fact and event archives. This starts asynchronous processing. - With
batch:read, pollGET /account/batch-jobs/{job_id}with a bounded retry interval until it succeeds or fails; do not resubmit each poll. - After success, download through
GET /account/batch-jobs/{job_id}/download. Inspect per-record and canonical-result checksums in the manifest. They are not a checksum of the entire serialized response file.
Jobs expire seven days after creation. Downloads recheck organization, current billing and source access. A 409 means the job is not ready; inspect the returned status. Fact archives cap complete retained traversal at 25,000 records/25 MB and refuse overflow instead of silently returning a partial archive. Keep the source evidence with every exported record.