SEC 8-K Filings API: Search by Item (5.02, 1.01, 4.02) avatar

SEC 8-K Filings API: Search by Item (5.02, 1.01, 4.02)

Pricing

from $2.10 / 1,000 filing events

Go to Apify Store
SEC 8-K Filings API: Search by Item (5.02, 1.01, 4.02)

SEC 8-K Filings API: Search by Item (5.02, 1.01, 4.02)

Get SEC 8-K filings by item type: 5.02 officer changes, 1.01 material agreements, 4.02 restatements and more. Search all companies by date or name tickers and CIKs. One row per filing with item labels and links. $3.00 per 1,000 filings. Independent tool, not affiliated with the SEC.

Pricing

from $2.10 / 1,000 filing events

Rating

0.0

(0)

Developer

Don Mangu

Don Mangu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Share

Use this SEC 8-K filings API to find 8-K current reports by item type, for $3.00 per 1,000 filings. Ask for item 5.02 to see officer and director changes, 1.01 for material agreements, 4.02 for restatement warnings, 3.01 for delisting notices or 1.03 for bankruptcies. Search all companies in a date range, or read the 8-K history of single companies by ticker, CIK or name. Every row has the item codes, a plain-English label for each item and links to the filing on sec.gov.

You need no login, no API key and no proxy. The Actor reads public SEC EDGAR data. It is an unofficial tool built by an independent developer. It is not affiliated with, endorsed by or operated by the U.S. Securities and Exchange Commission.

What this SEC 8-K filings API returns

One row is one 8-K filing (or one 8-K/A amendment, if you switch amendments on). The fields are:

  • Company name, CIK and ticker of the filer.
  • Form (8-K or 8-K/A), filing date, report date and acceptance time (acceptedAt).
  • Items: the item codes the filing reports, such as 5.02 and 9.01.
  • Item labels and item descriptions: a short plain-English label and the official Form 8-K heading for each item, in the same order as the codes.
  • Matched items: the items you asked for that the filing reports.
  • Accession number, a link to the primary document and a link to the filing index with all exhibits.

The Actor supports every item of the current Form 8-K. The official Form 8-K heading of each item is in the field itemDescriptions. Older filings can hold item numbers outside this list. The Actor returns them with the label "Item N".

ItemLabel in the output
1.01Material agreement
1.02Termination of material agreement
1.03Bankruptcy or receivership
1.04Mine safety
1.05Cybersecurity incident
2.01Acquisition or disposition completed
2.02Results of operations
2.03Direct financial obligation
2.04Obligation accelerated
2.05Exit or disposal costs
2.06Material impairment
3.01Delisting notice
3.02Unregistered equity sale
3.03Change to security holder rights
4.01Auditor change
4.02Non-reliance or restatement
5.01Change in control
5.02Officer or director departure or appointment
5.03Charter or bylaw change
5.04Benefit plan trading suspension
5.05Code of ethics change
5.06Shell company status change
5.07Shareholder vote results
5.08Shareholder director nominations
6.01ABS informational material
6.02Servicer or trustee change
6.03Credit enhancement change
6.04Missed distribution
6.05Securities Act updating disclosure
6.06Static pool
6.10Alternative ABS filing
7.01Regulation FD disclosure
8.01Other events
9.01Financial statements and exhibits

Two modes

All companies. The Actor reads the SEC full-text search index for every 8-K filed in your date range, newest first, and keeps the filings that report your items. Use it for questions such as "which companies announced a CEO or CFO change this week" or "who reported a non-reliance on past financials this quarter". The range can reach back to 2001 and covers up to 366 days per run.

Companies I name. The Actor reads the SEC submissions list of each company you enter and returns its 8-K filings, with the acceptance time of each filing. Enter tickers such as AAPL, CIK numbers such as 0000320193 or names such as Microsoft. A name that matches several companies returns up to three of them. The list of resolved companies is in the STATS record of the run.

How it differs from our SEC EDGAR Filings API

SEC EDGAR Filings API returns the filings of any form type for one ticker or CIK and shows the raw 8-K item codes. This Actor is built for 8-K items: it searches all companies by item and date, adds the label and the official heading for each item, and marks which of your items a filing matched. Use the other Actor when you need 10-K, 10-Q or Form 4 lists for a known company. Use this one when the question starts from an event type.

How to get SEC 8-K filings by item, step by step

  1. Open the Actor and go to Input.
  2. Pick Mode. Use "All companies" to search the market. Use "Companies I name" and fill Companies to read single companies. A filled Companies list always selects the companies mode.
  3. Pick one or more Item types, such as 5.02. Leave the field empty to get filings with every item.
  4. Set the period with Last days (for example 7), or enter Start date and End date as year-month-day.
  5. Switch on Include amendments (8-K/A) if you want amendment filings too. Switch on Add acceptance time if you need acceptedAt in the all companies mode.
  6. Set Max results. Start small, for example 10.
  7. Start the run. The first rows appear in the Output tab within seconds. Download them as JSON, CSV or Excel, or read them through the API.
  8. Schedule the Actor to run every morning with Last days set to 2 for a daily list of new events.

How long a run takes depends on how rare the item is. The Actor reads every 8-K of the range and keeps the matches, because the SEC search does not filter reliably by item (see the FAQ). Recorded runs against the live SEC on 11.10.2026: item 5.02 over 7 days needed 1 request for the first 10 rows. Item 5.02 over 30 days read 4,019 filings in 43 requests (12 seconds) and returned 794 rows. Item 4.02 over 90 days read 15,320 filings in 159 requests (46 seconds) and returned 24 rows. The Actor sends at most 4 requests per second.

Run it every day

Switch on Only new since the last run to get each filing once. The Actor keeps a list of the accession numbers it already delivered, so a daily schedule returns only filings that appeared since the last run.

  1. Open the Actor, fill the input (for example item 5.02) and switch on Only new since the last run. Enter a Monitor name, such as officer-changes.
  2. Click Save as a new task and give the task a name.
  3. In the Apify Console go to Schedules, click Create new, pick your task and enter a cron expression for once a day, for example 0 8 * * * for 08:00.
  4. Each scheduled run delivers only the filings it has not delivered before. The first run delivers everything in the date range and becomes the baseline.

The memory lives in your own Apify account, in a key-value store named sec8k-monitor-<monitorName> (for example sec8k-monitor-officer-changes). It holds accession numbers only, no filing content. Use one Monitor name per saved task, so two tasks never share their memory. The memory is separate for each set of Item types and Include amendments. The date range and the company list do not change it, so a moving date range or a longer company list never delivers a known filing again.

A filing is charged when it is saved to the dataset. A filing the Actor skips as already delivered is not charged. A filing that Max results or your maximum charge cuts off is not remembered, so the next run delivers it.

Worked cost example on the Free plan, with the price of $0.003 per filing and $0.00005 per run start from the pricing section. Assume 15 new filings appear each day. A daily run with Last days set to 2 and Only new switched off returns 30 filings, because each filing sits in two daily windows: 30 x $0.003 + $0.00005 = $0.09005 per run. The same daily run with Only new switched on returns the 15 new filings: 15 x $0.003 + $0.00005 = $0.04505 per run. Over 30 days that is 30 x $0.04505 = $1.3515.

Bulk lists

In the companies mode you can give the list of companies as a file or as an Apify Dataset instead of typing it, or together with the typed list.

  • Dataset with the list: pick an Apify Dataset. Enter the field that holds the ticker, CIK or company name in Field in the dataset. Leave the field empty to use the first text field.
  • List file URL: the web address of a .txt file (one entry per line), a .csv file (the first column is used) or a .json file (an array). A header row is skipped. The file can be up to 10 MB.

The typed list, the Dataset and the file are merged into one list. Duplicate entries are removed. A filled list selects the companies mode. The limit of 100 companies applies to the merged list: a longer list stops the run before any request, with a message, and nothing is charged. The price does not change: you pay per filing returned, as before.

SEC 8-K API pricing

The price is $0.003 per filing returned ($3.00 per 1,000 filings) on the Free plan, plus $0.00005 for each run start. Paid Apify plans pay less per filing: $0.0027 (Bronze), $0.0024 (Silver) and $0.0021 (Gold), which is $2.70, $2.40 and $2.10 per 1,000. Only a filing saved to the dataset is charged. A run that finds nothing, or that stops on a SEC error, charges the start fee and no filing.

Worked example on the Free plan: a daily run for item 5.02 returns 15 filings. Cost is 15 x $0.003 + $0.00005 = $0.04505 per run, and 30 daily runs cost 30 x $0.04505 = $1.3515 per month. A one-off pull of 100 filings costs 100 x $0.003 + $0.00005 = $0.30005. Set Max results or the maximum charge of the run to cap the cost: the Actor stops when the limit is reached.

Input example

This is the input of the first recorded run below. It reads item 5.02 over the last 7 days and stops after 10 filings.

{
"mode": "market",
"items": ["5.02"],
"lastDays": 7,
"maxResults": 10
}

To read single companies instead, set the mode and list them. This is the input of the second recorded run.

{
"mode": "companies",
"companies": ["AAPL"],
"items": ["5.02"],
"lastDays": 365,
"maxResults": 20
}

Output example

Both rows come from real runs of this Actor against the live SEC on 11.10.2026. The first run (all companies, 1 request, under 1 second, 10 rows) returned this row as its second row. In the all companies mode acceptedAt is null unless you switch on Add acceptance time.

{
"companyName": "Victoria's Secret & Co.",
"cik": "0001856437",
"ticker": "VSXY",
"form": "8-K",
"filingDate": "2026-10-09",
"acceptedAt": null,
"reportDate": "2026-10-07",
"items": [
"5.02",
"9.01"
],
"itemLabels": [
"Officer or director departure or appointment",
"Financial statements and exhibits"
],
"itemDescriptions": [
"Departure of Directors or Certain Officers; Election of Directors; Appointment of Certain Officers; Compensatory Arrangements of Certain Officers",
"Financial Statements and Exhibits"
],
"matchedItems": [
"5.02"
],
"accessionNumber": "0001856437-26-000023",
"primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/1856437/000185643726000023/vsco-20261007.htm",
"filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/1856437/000185643726000023/0001856437-26-000023-index.htm",
"source": "full-text-search",
"retrievedAt": "2026-10-11T08:45:33.854Z"
}

The second run (companies, AAPL, 2 requests, 3 rows) returned this row as its first row. The companies mode always fills acceptedAt.

{
"companyName": "Apple Inc.",
"cik": "0000320193",
"ticker": "AAPL",
"form": "8-K",
"filingDate": "2026-04-20",
"acceptedAt": "2026-04-21T01:29:51.000Z",
"reportDate": "2026-04-17",
"items": [
"5.02"
],
"itemLabels": [
"Officer or director departure or appointment"
],
"itemDescriptions": [
"Departure of Directors or Certain Officers; Election of Directors; Appointment of Certain Officers; Compensatory Arrangements of Certain Officers"
],
"matchedItems": [
"5.02"
],
"accessionNumber": "0001140361-26-015711",
"primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000114036126015711/ef20071035_8k.htm",
"filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000114036126015711/0001140361-26-015711-index.htm",
"source": "submissions-api",
"retrievedAt": "2026-10-11T08:51:37.289Z"
}

Each run also writes a STATS record in the key-value store with the number of requests, retries, filings scanned, the User-Agent sent and the duration.

FAQ

Is it legal to use SEC EDGAR data this way? SEC states on its webmaster page (https://www.sec.gov/about/webmaster-frequently-asked-questions): "All Government-created content on sec.gov and EDGAR public filing content are free to access and reuse." and "We allow scripted access to sec.gov content". The access policy (https://www.sec.gov/search-filings/edgar-search-assistance/accessing-edgar-data) says: "Current max request rate: 10 requests/second." and asks you to "declare your user agent in request headers". It also says: "The SEC does not allow botnets or automated tools to crawl the site." This Actor does not crawl. It sends a few targeted requests to the documented JSON API and to the search backend of EDGAR full-text search, at most 4 per second, with a declared User-Agent. This is not legal advice. Check your own use of the data.

What User-Agent does the Actor send? The default is "Don Mangu apify-actor contact via https://apify.com/conserving_celerytop". SEC accepted it in tests. You can enter your own text in User-Agent for requests, for example your company name and a contact URL.

Why does the Actor read all filings of the range instead of asking SEC for the item? The SEC search accepts an items parameter, but its cache ignores that parameter: two requests that differ only in the item can return the same answer. On 11.10.2026 a request for item 4.02 returned the answer cached for item 5.02. The Actor does not rely on the parameter and checks the item codes of every filing itself.

Does a row hold the text of the filing? No. A row holds the item codes, labels and links. Open primaryDocumentUrl for the text. Filing text can name people, so the Actor does not copy it.

How fresh is the data? The SEC search index lists filings after SEC accepts them, normally within minutes to a few hours. The all companies mode may show the newest filings of the current day late. The companies mode reads the submissions API, which is usually current within minutes.

Why is the date range limited to 366 days in the all companies mode? One run reads every 8-K of the range. A full year is about 35,000 filings and 350 requests, which takes about 3 minutes. For longer histories of one company use the companies mode (up to 3,660 days).

A companies run returned no filings. The input form prefills Last days with 7, so a quiet company can return nothing. Clear the field to read the last 365 days, or set Start date and End date.

Some rows have no ticker. SEC lists no ticker for many small filers and for companies that are no longer listed. The field is null then. Switch on Add acceptance time to fill a missing ticker from the submissions list when it has one.

A company name found nothing. The name search uses the SEC list of current tickers. Delisted companies are not in it. Enter their CIK number instead.

The run stopped with a message about SEC. SEC answers 403 when a request has no clear User-Agent or the rate is too high, and 429 when asked to wait. The Actor retries 429 up to three times, honors the Retry-After header and stops on 403 without trying to get around it. Nothing is charged for a run that returns no filing, apart from the start fee. Run again later or enter your own User-Agent.

This is an unofficial, independent tool. It is not affiliated with, endorsed by or operated by the U.S. Securities and Exchange Commission or EDGAR.