Home / Products / Find & track
Find & track

Real-Time Stream API: new SEC filings the moment EDGAR publishes them

Get every new EDGAR filing seconds after it is accepted, over Server-Sent Events or webhooks, filtered by form type and CIK.

27.3Mfilings indexed
1993first filing
2026-10-09latest filing date
curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/stream/latest?size=2"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/stream/latest",
    params={'size': '2'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
)
print(r.json())

Overview

EDGAR publishes filings throughout the day, and the ones that move markets (8-Ks, Form 4s, 13Ds) are worth the most in the first minutes. The Real-Time Stream API watches EDGAR's live feed every few seconds and pushes each new filing to you once, even when EDGAR lists it once per party.

Connect with Server-Sent Events from any HTTP client, or register a webhook and let SecFeed POST new filings to your endpoint. Filter by form type and CIK so you only receive what you need, and check the measured delivery latency at any time.

What you get

Built for developers who would rather not parse EDGAR.

Server-Sent Events

A long-lived GET that emits one JSON event per new filing. Works with curl, browsers and the Python SDK.

Webhooks

POST /v1/webhooks with your HTTPS URL and filters; new filings are pushed to you as they arrive.

Filter by form and company

formTypes=8-K,4 and ciks=... so you only receive what you trade or monitor.

One event per filing

EDGAR lists a filing once per party (issuer, reporting owner). The stream emits each accession once.

Measured latency

/v1/stream/latency reports p50, p90 and p99 from EDGAR acceptance to SecFeed.

Endpoints

Authenticate with Authorization: Bearer YOUR_KEY. Responses are JSON.

GET/v1/streamDocs →

Server-Sent Events: each new filing the moment EDGAR publishes it.

Parameters: formTypes, ciks

GET/v1/stream/latestDocs →

The latest filings seen by the stream, each with seenAt and latencyMs.

Parameters: size

GET/v1/stream/latencyDocs →

Measured delivery latency (p50, p90, p99) from EDGAR acceptance to SecFeed, last N hours.

Parameters: hours

POST/v1/webhooksDocs →

Push new filings to your HTTPS endpoint.

Parameters: JSON body: {"url", "formTypes": [], "ciks": []}

Response fields

The main fields in every result. The raw filing data is always one level down.

FieldMeaning
accessionNo, formTypeThe filing and its form type.
companyName, cik, roleThe party listed in the feed and its role (filer, issuer, reporting owner).
filedAtEDGAR acceptance time with time zone.
linkToFilingDetailsThe filing index page on EDGAR.

Use cases

Datasets behind this API

The SEC forms this API reads, with live filing counts.

Tutorials

FAQ

How fast is the stream?

SecFeed polls EDGAR's live feed every few seconds. /v1/stream/latency shows the measured delay from EDGAR acceptance for the last N hours.

Should I use SSE or webhooks?

SSE is simplest when you run a process that stays connected. Webhooks suit serverless setups: SecFeed calls your HTTPS endpoint for each new filing.

Can I limit the stream to some companies?

Yes. Pass ciks and formTypes as comma separated lists on /v1/stream or in the webhook body.

Try the Real-Time Stream API free

500 API calls a month on the free plan. No sales call.

Get free API key →