DEVELOPER GUIDE

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

  1. Select 1–100 accessible accessions from filing results.
  2. With batch:write, submit POST /account/batch-jobs using {"kind":"filing_archive","items":["YOUR_ACCESSION"]}. Other supported kinds include exhibit, fact and event archives. This starts asynchronous processing.
  3. With batch:read, poll GET /account/batch-jobs/{job_id} with a bounded retry interval until it succeeds or fails; do not resubmit each poll.
  4. 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.

← Browse all documentation