SEC EDGAR Filings Monitor avatar

SEC EDGAR Filings Monitor

Pricing

$2.00 / 1,000 filing results

Go to Apify Store
SEC EDGAR Filings Monitor

SEC EDGAR Filings Monitor

Track new SEC EDGAR filings by ticker or CIK: company, form, filed/report dates, accession number, primary document and index URLs. Form-type filter and onlyNew mode. Unofficial; not affiliated with the U.S. SEC.

Pricing

$2.00 / 1,000 filing results

Rating

0.0

(0)

Developer

Chee Chiaw Lim

Chee Chiaw Lim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What it does

Collect public SEC EDGAR filings for company tickers or CIKs. Filter by form and filing date. Each filing links to its primary document and filing index.

How only new works

onlyNew defaults to true. The Actor saves accession numbers in the named key-value store sec-edgar-filings-monitor-state, under SEEN. The first run pushes matching filings. Later runs skip saved accession numbers. Set onlyNew to false to push matching filings again.

The Actor saves an accession number only after a successful push. Filtered filings and filings left behind by a charge limit remain unseen. Duplicate accession numbers within a run are pushed once. A document update does not make an existing accession number new.

State writes and dataset pushes are separate operations. A crash between them can cause a duplicate on retry. Avoid overlapping runs that share a state store. Use separate store names for independent histories. Deleting SEEN resets the history.

Input fields

FieldTypeDefaultDescription
tickersString listAAPL, MSFT, TSLATickers or CIKs. JSON input also accepts numeric CIKs.
formTypesString list[]Exact case-insensitive matches. Empty includes all forms.
includeAmendmentsBooleantrueA base form such as 10-K also matches 10-K/A. Explicit 10-K/A matches only that form.
filedAfterDate stringUnsetInclusive filing-date boundary in YYYY-MM-DD format.
maxFilingsPerCompanyInteger20Newest matching filings per company, after form and date filters. Maximum 1000.
onlyNewBooleantrueSkip saved accession numbers. Applied after the per-company limit.
maxItemsInteger1000Maximum filings pushed per run, up to 10000.
userAgentStringSee belowSEC request identity and contact email.
stateStoreNameStringsec-edgar-filings-monitor-stateNamed store for seen accession numbers and the ticker cache.
stateKeyStringSEENSeen accession record key.
minIntervalMsInteger200Shared request-start interval for both SEC hosts. Minimum 110 ms.

The default userAgent is SEC EDGAR Filings Monitor (unofficial Apify Actor) cheechiawbot@mail.grokbot.com.

Input examples

Collect five recent filings per company, including previously seen filings.

{
"tickers": ["AAPL", "MSFT", "TSLA"],
"formTypes": [],
"maxFilingsPerCompany": 5,
"onlyNew": false
}

Monitor annual reports and their amendments from a filing date onward.

{
"tickers": ["AAPL", 789019],
"formTypes": ["10-K"],
"includeAmendments": true,
"filedAfter": "2025-01-01",
"onlyNew": true
}

Output schema

The default dataset contains one record per filing with these fields.

FieldMeaning
companyCompany name from submissions.
cikTen-digit zero-padded CIK string.
tickerCompany ticker or requested CIK.
formSEC form name.
filedDateFiling date.
reportDateReport date, or null when empty.
acceptanceDateTimeSEC acceptance timestamp.
accessionNumberAccession number with dashes.
primaryDocumentPrimary document filename.
primaryDocDescriptionPrimary document description.
primaryDocUrlPublic primary document URL.
filingIndexUrlPublic filing index URL.
items8-K items, or null when absent.
sizeFiling size in bytes.
checkedAtUTC timestamp when the Actor checked filings.

Unknown tickers produce { "ticker": "UNKNOWN", "error": "..." } records. These records have no event charge.

RUN_SUMMARY record

The default key-value store contains RUN_SUMMARY. It records startedAt, finishedAt, onlyNew, counts.fetched, counts.eligible, counts.pushed, and stoppedAtChargeLimit. Failed runs also record error. Counts cover filings processed before the run stops. Uncharged error records do not count as pushed filings.

Pricing

The price is $0.002 per filing pushed to the dataset, or $2.00 per 1,000 filings. There is no run fee. The charge event is filing. Errors and skipped filings are not charged. The Actor stops when its charge limit is reached. Local runs do not bill you. Store pricing must be configured before publication as described in PUBLISHING.md.

Limits

  • Only filings.recent is read, roughly the last 1,000 filings per company. Historical submissions files are not fetched.
  • The SEC Fair Access limit is at most 10 requests per second. The Actor uses about 5 requests per second by default across www.sec.gov and data.sec.gov, sharing one throttle bucket. The interval cannot fall below 110 ms.
  • SEC servers may block requests. Set a valid contact identity in userAgent.
  • The ticker map is fetched at most once per run and cached for 24 hours in the state store.
  • HTTP 429 and server errors have up to three retries with exponential backoff and Retry-After support. Requests time out after 30 seconds.
  • Filings are sorted newest first within each company. There is no global sort across companies.
  • Seen history grows with the number of successfully pushed accession numbers.

Disclaimer

This Actor is unofficial and is not affiliated with or endorsed by the U.S. SEC. It uses only public EDGAR APIs. It uses no SEC logos and requires no login.

Local development

npm install
npm test
npm start

Node 20 or newer is required. npm start normally requests public SEC data using storage/key_value_stores/default/INPUT.json. Tests stub fetch and use fixtures and isolated local storage without network access.

Run the real entrypoint with stubbed SEC responses and separate local storage.

CRAWLEE_STORAGE_DIR=./storage/offline-check APIFY_LOCAL_STORAGE_DIR=./storage/offline-check APIFY_PURGE_ON_START=false NODE_OPTIONS='--import ./test/helpers/offline-preload.js' npm start

The first offline run writes three filing records and one uncharged unknown-ticker error. Read storage/offline-check/datasets/default/ and storage/offline-check/key_value_stores/default/RUN_SUMMARY.json. Later runs skip the three saved accession numbers.