SEC EDGAR Full-Text Search: Filings by Keyword and Form avatar

SEC EDGAR Full-Text Search: Filings by Keyword and Form

Pricing

from $1.50 / 1,000 sec filing matcheds

Go to Apify Store
SEC EDGAR Full-Text Search: Filings by Keyword and Form

SEC EDGAR Full-Text Search: Filings by Keyword and Form

Search the full text of SEC EDGAR filings by keyword or phrase, form type and date. One row per filing with company, form, filing date and a link to the matching document, plus an alert mode that only returns new filings.

Pricing

from $1.50 / 1,000 sec filing matcheds

Rating

0.0

(0)

Developer

Adriana Voss

Adriana Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Share

Search the full text of SEC filings for a word or phrase, filtered by form type and date, and get one row per filing. Each row has the company, CIK, form, filing date, period, and a link to the matching document on sec.gov. Use it to find every 10-K that mentions "going concern", every 8-K about a "cybersecurity incident", or every filing that names a supplier. Turn on monitoring and run it on a schedule to get only filings that are new since your last run, charged per filing and free on a quiet day.

Who uses it: analysts and screeners watching risk language, compliance and due-diligence teams, journalists, and agents that need "which filings say X" as structured rows.

Related actors: for one company's filing list use SEC EDGAR Company Lookup; for 8-K events by item number use SEC 8-K Event Alerts. This actor searches what filings say, across all companies.

How to use

  1. In the Apify Console. Open the actor page and click Start — the queries field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~sec-edgar-full-text-search-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"queries":["going concern"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

Input

{
"queries": [
"going concern"
]
}

One word or phrase per line, matched against the full text of SEC filings and their exhibits. Put a phrase in double quotes for an exact match. Each line is a separate search; a filing that matches several is returned once. Accepted formats: going concern, "material weakness", "cybersecurity incident".

Searching form 10-K also returns its amendments (10-K/A). Quote a phrase for an exact match. Several lines are separate searches; a filing that matches more than one comes back once, with matchedQueries listing which. The index holds one hit per document, so a 10-K and its exhibits are merged into a single filing row (matchedDocuments says how many matched).

Output

One row per filing, for example:

queryfoundstatussearchSummaryfilingCounttruncatedmonitorStatusfilingsaccessionNumbercompanyNametickercikformfiledAtperiodEndingdocumentTypefileDescriptionsicCodebusinessLocationincorporationStatematchedDocumentsmatchedQueriesdocumentUrlfilingIndexUrlisNewfirstSeenAtscrapedAt
going concerntrueOK<all filings (full list)><is this filing new?>1970-01-01T00:00:00.000Z

A search with no match comes back as one row with "found": false and is never charged. Fields SEC does not publish for a filing (for example periodEnding on most 8-Ks) are null, never 0 or an empty string.

Only filings in SEC EDGAR full-text search coverage are searchable; SEC publishes it from 2001 onward.

Pricing

Pay-per-event. A flat per-run fee covers session/proxy warmup; you're billed per item only when data is actually found and returned — see .actor/pay_per_event.json for exact prices. A miss is never charged.

Example runs

Paste any of these into the Input tab and press Start. All three return rows with no key, no token and no account of your own beyond an Apify login.

10-Ks that mention "going concern", last 30 days. The default shape.

{
"queries": ["going concern"],
"forms": ["10-K"],
"sinceDays": 30,
"maxResults": 20
}

8-Ks about a cybersecurity incident in a fixed window.

{
"queries": ["\"cybersecurity incident\""],
"forms": ["8-K"],
"startDate": "2026-09-01",
"endDate": "2026-10-11",
"maxResults": 50
}

Material weakness language across 10-K and 10-Q, with monitoring on.

{
"queries": ["\"material weakness\""],
"forms": ["10-K", "10-Q"],
"sinceDays": 7,
"onlyNewSinceLastRun": true
}

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~sec-edgar-full-text-search-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"queries":["going concern"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~sec-edgar-full-text-search-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"queries":["going concern"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~sec-edgar-full-text-search-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"queries":["{{search}}"]}, mapping the row's search into the queries array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "sec edgar full text search" — the agent will find and run this actor.