Recent SEC EDGAR filings per company by ticker or CIK, up to 200 companies a run and 1,000 filings each: form, filing and report dates, 8-K items, accession number, document and index links, plus SIC, state and exchange per company, from the SEC's JSON API. Filter on form and date. Pay per filing.
One filing delivered. Unknown companies and companies without matching filings are never charged.
ACTOR=steadydata~sec-edgar-filings URL="https://api.apify.com/v2/acts/$ACTOR/run-sync-get-dataset-items" curl -X POST "$URL?token=$APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"companies": ["AAPL", "320193", "TSLA"], "forms": ["10-K", "10-Q", "8-K"], "maxFilingsPerCompany": 50}'
import os, requests ACTOR = "steadydata~sec-edgar-filings" URL = f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items" rows = requests.post( URL, params={"token": os.environ["APIFY_TOKEN"]}, json={'companies': ['AAPL', '320193', 'TSLA'], 'forms': ['10-K', '10-Q', '8-K'], 'maxFilingsPerCompany': 50}, timeout=900, ).json() # every row carries a status; failures are records, not exceptions ok = [r for r in rows if r.get("status") == "ok"] print(len(ok), "rows delivered")
const ACTOR = "steadydata~sec-edgar-filings"; const url = `https://api.apify.com/v2/acts/${ACTOR}/run-sync-get-dataset-items` + `?token=${process.env.APIFY_TOKEN}`; const rows = await fetch(url, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({"companies": ["AAPL", "320193", "TSLA"], "forms": ["10-K", "10-Q", "8-K"], "maxFilingsPerCompany": 50}), }).then((r) => r.json()); // one object per delivered row, same shape every time console.log(rows.filter((r) => r.status === "ok").length, "rows");
Point an MCP client at Apify's hosted server with this dataset in the tools list, or run our own server locally.
https://mcp.apify.com?tools=steadydata/sec-edgar-filings # the tool arrives in your agent as steadydata--sec-edgar-filings
| Field | Type | Name | What it does |
|---|---|---|---|
companiesrequired | array of string | Companies | One per row, up to 200: a ticker (AAPL), a CIK (320193) or an EDGAR company URL. |
forms | array of string | Form types | Only these forms, for example 10-K, 10-Q, 8-K, S-1, 4, 13F-HR, DEF 14A. Empty means every form. |
sinceDate | string | Filed since | Only filings filed on or after this date (YYYY-MM-DD). Empty means no date limit. |
maxFilingsPerCompany | integer | Max filings per company | Cost ceiling per company, newest first; the SEC API carries the latest 1,000 filings. |
{
"cik": string | null,
"companyName": string | null,
"tickers": array | null,
"exchanges": array | null,
"sic": string | null,
"sicDescription": string | null,
"stateOfIncorporation": string | null,
"fiscalYearEnd": string | null,
"filerCategory": string | null,
"form": string | null,
"filingDate": string | null,
"reportDate": string | null,
"acceptedAt": string | null,
"items": string | null,
"accessionNumber": string | null,
"primaryDocument": string | null,
"primaryDocDescription": string | null,
"documentUrl": string | null,
"indexUrl": string | null,
"sizeBytes": integer | null,
"isXbrl": boolean | null,
"isInlineXbrl": boolean | null,
"status": string | null,
"input": string | null,
"errorCode": string | null,
"error": string | null
}| Field | Type | When it is filled |
|---|---|---|
cik | string, null | |
companyName | string, null | |
tickers | array, null | |
exchanges | array, null | |
sic | string, null | |
sicDescription | string, null | |
stateOfIncorporation | string, null | |
fiscalYearEnd | string, null | |
filerCategory | string, null | |
form | string, null | |
filingDate | string, null | |
reportDate | string, null | |
acceptedAt | string, null | |
items | string, null | |
accessionNumber | string, null | |
primaryDocument | string, null | |
primaryDocDescription | string, null | |
documentUrl | string, null | |
indexUrl | string, null | |
sizeBytes | integer, null | |
isXbrl | boolean, null | |
isInlineXbrl | boolean, null | |
status | string, null | Either 'ok' or 'error'. An error row carries errorCode and error, and leaves the data fields empty; it is never charged. |
input | string, null | The input this row was built from, so a row can always be traced back. |
errorCode | string, null | Filled on an error row only; a delivered row leaves it empty. |
error | string, null | Filled on an error row only; a delivered row leaves it empty. |
Open jobs from company boards on Greenhouse, Lever, Ashby, Workday, Workable, SuccessFactors, iCIMS, UKG, Oracle, Dayforce, JazzHR, BambooHR, Breezy, Paylocity, Teamtailor and Recruitee, up to 200 boards a run: title, department, location, posting date, salary, apply link. Pay per job.
$1.00 per 1,000 · Job listedDetails of any public GitHub repository, up to 500 per run: stars, forks, watchers, open issues, primary language, license, topics, default branch, size, homepage, created and last push dates, and the archived and fork flags, from GitHub's own API. No profiles, no emails. Pay per repository.
$0.40 per 1,000 · Repository detailedAlready using this one? Ratings are the first thing other buyers look at, and this dataset has none yet. If it does a job for you, a rating on its Apify page is the one thing that helps. It takes a minute and it is the only thing we ask for.