SEC Form D Scraper: Reg D Funding Rounds
Pricing
from $1.60 / 1,000 filing returneds
SEC Form D Scraper: Reg D Funding Rounds
List recent SEC Form D filings, or read the EDGAR links you paste, one row per Reg D offering: issuer, industry, amounts raised and offered, minimum investment, investors, exemptions and the named executives. Filter by date, state, industry and size. No login, no key.
Pricing
from $1.60 / 1,000 filing returneds
Rating
0.0
(0)
Developer
Pradio Actors
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
41 minutes ago
Last modified
Categories
Share
What does SEC Form D Scraper do?
SEC Form D Scraper returns one row per SEC Form D filing, the notice a company files when it raises money under Regulation D. Each row carries the issuer's name, CIK, address and phone, the industry and fund type, and the exemption claimed. It also carries the amounts offered and sold, the minimum investment, the investor counts, and the officers, directors and promoters named. Press Start with no links and it lists the Form D filings of the last seven days. Or paste an EDGAR link: a full-text search, a company's filing list or a single filing. A link that yields nothing costs nothing, and its row says why.
Each data row carries 39 fields, from industry group and state of incorporation to the accession number and the filing's two sec.gov links. Filters keep a run to the dates, states, industry groups, keyword and offering size you name. A scheduled run can return only the filings that are new since the last one. In a measured run over 26 EDGAR links the Actor had never seen, 25 returned filing rows (96.2%), 485 rows in all. The 26th link's filings were already in the run under another link. A returned row costs $0.0028, a miss is free, and no login or key is needed.
Who uses SEC Form D Scraper
| Buyer | What they run it for |
|---|---|
| Investors and analysts | A feed of new private placements: who is raising, how much, under which exemption. |
| Market and partnership research | Which companies in a sector or state just disclosed a raise, and how large it was. |
| Fund and venture researchers | New funds by type (venture, hedge, private equity), their size and minimum investment. |
| Compliance and legal teams | An issuer's Form D history as structured rows: exemptions, amounts, related persons, amendments. |
| Data engineers | Form D filings turned into a dataset, exported or fed downstream. |
Features
- Recent filings with no links. Leave Start URLs empty and the run lists the latest Form D filings, the last 7 days unless you set
dateFromanddateTo. - Every EDGAR link shape works. Paste a full-text-search URL, a browse-edgar company link, a submissions JSON URL or an Archives filing path.
- Filters that narrow the read.
dateFrom,dateTo,keyword,states,industryGroups,minTotalOffering,includeAmendmentsandformTypecut what the run keeps. - Only new since last run.
onlyNewremembers which filings a search already returned, so a scheduled run delivers and bills only the new ones. - Numbers you can sort.
total_offering_amountandtotal_remainingare always a number or null. An offering the form calls Indefinite says so in its own true or false column. - Filing detail, not just hits. Each matched filing's own XML is read. Rows carry offering amounts, minimum investment, investor counts, fund type, amendment links and related persons.
- SEC fair access kept. A declared User-Agent and paced requests keep the run under the SEC's published 600-a-minute limit.
- De-duplication and caps. Rows dedupe on
filing_index_url, andmaxItemsstops the run at your limit. - No login, no key, no browser. Everything is read from EDGAR's public endpoints.
What you can count on
- You pay only for rows whose status is
ok. An entry the run cannot answer is pushed as an unchargedITEM_STATUSrow naming the entry and why. - Every row is charged only after it is written to your dataset. A row you cannot see is never billed.
- A run that finds nothing returns one
NO_FILINGS_FOUNDrow that says so, never an empty dataset. - A spending limit stops the run cleanly. A
STOPPED_EARLYrow says how many rows were returned and how many were not. - Every run writes a
RUN_SUMMARYin the key-value store. It carries rowsFetched, rowsPushed, rowsCharged and duplicatesDropped, so a short run and a broken one are told apart. - If EDGAR changes what it answers, the run fails with the error in the log. It never returns rows full of nulls and calls it success.
- No value is invented. A field the filing does not show is null, and this page says which.
Why this one
- The most-used alternative on this platform, run with its own defaults on 2026-09-19, returned 20 rows; this Actor's defaults return up to 100.
- Its per-row price is $0.0035. A filing row here costs $0.0028, and a miss is a free status row that says why.
- Measured over 26 EDGAR links this build had never seen, 25 returned filing rows (96.2%), 485 in all. The 26th link's filings were already in the run under another link.
- Every row carries
source_urlnaming the link or search that produced it, plusfiling_index_urlandfiling_folder_url, so the filing itself is one click away on sec.gov.
What data does SEC Form D Scraper return?
One row per Form D filing. This is a real row from a run over the recent-filings search:
{"status": "ok","company_name": "OurCrowd (Investment in KVM) L.P","cik": "0002157060","entity_type": "Limited Partnership","address": "30 YESHAYAHU LEIBOWITZ ST., GAV-YAM HEBREW CAMPUS, BUILDING 1","city": "JERUSALEM","state": "L3","zip": "9190401","year_of_inc": "2026","state_of_inc": "VIRGIN ISLANDS, BRITISH","industry_group": "Pooled Investment Fund","federal_exemptions": "06b","date_of_first_sale": "2026-08-22","first_sale_yet_to_occur": false,"is_more_than_one_year": false,"total_offering_amount": null,"total_offering_indefinite": true,"total_amount_sold": 1622868,"total_remaining": null,"total_remaining_indefinite": true,"minimum_investment": 10000,"number_of_investors": 27,"number_non_accredited_investors": 0,"security_types": "Pooled Investment Fund","sales_commissions": 0,"finders_fees_expenses": 0,"related_persons": [{"firstName": "Caleb","lastName": "Chill","title": "Executive Officer","location": "Jerusalem, L3"}],"issuer_phone": "9726369300","investment_fund_type": "Venture Capital Fund","is_amendment": false,"previous_accession_number": null,"filing_date": "2026-09-24","form_type": "D","accession_number": "0002157060-26-000001","filing_index_url": "https://www.sec.gov/Archives/edgar/data/2157060/000215706026000001/0002157060-26-000001-index.htm","filing_folder_url": "https://www.sec.gov/Archives/edgar/data/2157060/000215706026000001/","query": {"startUrl": "https://efts.sec.gov/LATEST/search-index?forms=D"},"source_url": "https://efts.sec.gov/LATEST/search-index?forms=D","row_type": "ROW"}
Every field, what it means and where in the Form D filing or the index it is read from:
| Field | What it is |
|---|---|
company_name | The issuer's name, from entityName in the filing's primaryIssuer block. |
cik | The issuer's Central Index Key, the SEC's numeric filer identifier. |
entity_type | The issuer's legal form, from entityType: Corporation, Limited Partnership, LLC and the like. |
address | The issuer's street address, from street1 and street2 in issuerAddress. |
city | The issuer's city, from issuerAddress. |
state | The issuer's state or country code, from issuerAddress. |
zip | The issuer's postal code, from issuerAddress. |
year_of_inc | The year the issuer was incorporated or organized, from yearOfInc; null where the filing carries none. |
state_of_inc | The issuer's jurisdiction of incorporation, from jurisdictionOfInc. |
industry_group | The Form D industry group, from industryGroupType, such as Pooled Investment Fund. |
federal_exemptions | The federal exemption items the filing claims, joined from federalExemptionsExclusions. |
date_of_first_sale | The first sale date the offering reports, YYYY-MM-DD, from dateOfFirstSale. Null when the first sale is yet to occur. |
first_sale_yet_to_occur | True when the form says the first sale is yet to occur, false when it gives a date. |
is_more_than_one_year | Whether the offering runs more than one year, from moreThanOneYear in durationOfOffering. |
total_offering_amount | The total offering amount in dollars, from totalOfferingAmount. Always a number or null: null when the form says Indefinite or gives no amount. |
total_offering_indefinite | True when the form gives the total offering amount as Indefinite, false when it gives a number. |
total_amount_sold | The dollar amount already sold, from totalAmountSold. |
total_remaining | The dollar amount still to be sold, from totalRemaining. A number or null, like total_offering_amount. |
total_remaining_indefinite | True when the form gives the amount remaining as Indefinite, false when it gives a number. |
minimum_investment | The smallest investment the issuer accepts from an outside investor, in dollars, from minimumInvestmentAccepted. |
number_of_investors | Investors already in the offering, from totalNumberAlreadyInvested. |
number_non_accredited_investors | How many non-accredited investors are already in the offering, from numberNonAccreditedInvestors; 0 when the form states it has none. |
security_types | The security types offered, joined from typesOfSecuritiesOffered; null where the filing checked none. |
sales_commissions | Sales commissions disclosed, from salesCommissions. |
finders_fees_expenses | Finders' fees disclosed, from findersFees. |
related_persons | Each related person on the filing, from relatedPersonsList: firstName, lastName, corporate title or relationship, and city/state location. A related person can be an entity, such as a management company or general partner, filed as a last name with a placeholder first name (the filing's own value, such as N/A, a period or [none]); the row carries it as filed. The location is the city with the state as filed (Columbia, MD); outside the United States the second part is EDGAR's country code (X0 United Kingdom, L2 Ireland; the SEC's full list: EDGAR state and country codes). |
issuer_phone | The issuer's business phone number as the form states it, from issuerPhoneNumber; null where the filer typed zeros. |
investment_fund_type | For a pooled investment fund, the fund type the form states, such as Hedge Fund, Private Equity Fund or Venture Capital Fund; null for other issuers. |
is_amendment | True when the filing amends an earlier Form D, from isAmendment. |
previous_accession_number | On an amendment, the accession number of the filing it amends; null on a new filing. |
filing_date | The filing's date: the search index's file_date, the company feed's filingDate, or the filing index's last-modified stamp on a pasted filing link. |
form_type | The form as filed: D or D/A. |
accession_number | The filing's accession number, the SEC's unique submission identifier. |
filing_index_url | The filing's index page on sec.gov. Rows dedupe on it. |
filing_folder_url | The filing's document directory on sec.gov. |
query | The link or search that produced this row, plus any filters the run applied. |
source_url | The input URL that produced this row, echoed verbatim so each row answers to its entry. With no Start URLs it is the EDGAR search URL the run built from your filters. |
status | ok on a data row; on an ITEM_STATUS row it is the miss verdict: bad_url, not_found, fetch_failed. |
row_type | ROW on a data row; ITEM_STATUS on a per-entry miss, NO_FILINGS_FOUND when the run found nothing, STOPPED_EARLY when the charge limit ended the run. |
reason | Present only on a status row: why the run returned no rows, or why it stopped early. |
rowsFetched | Present only on a status row: how many rows the source handed over before de-duplication and the cap. |
rowsReturned | Present only on a status row: how many data rows are in the dataset. |
rowsRemaining | Present only on a status row: how many fetched rows were not returned. |
previous_accession_number is null on every new filing, so a run with includeAmendments off leaves it null on every row; turn amendments on and it fills on the D/A rows. investment_fund_type fills only on pooled investment funds. security_types reads null where the filing checked no type-of-security box, and year_of_inc is empty where the filer left the year blank. The Overview view leads with the columns a buyer scans first; the All fields view carries every field.
How much does it cost?
Two charges, and nothing else:
| Charged event | Price |
|---|---|
filing-returned, one Form D filing row written to your dataset | $0.0028 per row |
apify-actor-start, billed by Apify at one event per GB of memory the run gets, minimum one; at the 256 MB default that is one event | $0.00005 per run |
Status rows and dropped duplicates are never charged. A row is billed only after it is written. With onlyNew on, a filing an earlier run already returned is skipped, so it is neither returned nor billed again.
| Filing rows returned | Row cost | One run, with the start charge |
|---|---|---|
| 100 | $0.28 | $0.28005 |
| 1,000 | $2.80 | $2.80005 |
| 10,000 | $28.00 | $28.00005 |
In the measured run over pasted links, 25 of 26 returned rows, and the 26th repeated another link's filings. A filing link returns one row, and a company link returns that company's Form D filings. A search link or a run with no links returns the filings that match, up to maxItems.
A maxItems cap bounds the bill before the run starts. A run at maxItems 1,000 costs at most $2.80 plus the start charge.
How do I use SEC Form D Scraper?
- Open the Actor page.
- Either clear Start URLs to list recent filings, or paste EDGAR links there. It arrives filled in with three working examples: a Form D search, one company's filing list and one filing.
- Set any filters: dates, states, industry groups, a minimum offering, a keyword. Press Start.
- Rows land in the dataset as they are read. Export them as JSON, CSV or Excel, or read them over the API.
Example input with links:
{"startUrls": [{ "url": "https://efts.sec.gov/LATEST/search-index?forms=D" },{ "url": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=2114445&type=D" },{ "url": "https://www.sec.gov/Archives/edgar/data/1740149/000174051818000001/0001740518-18-000001-index.htm" }],"formType": "D"}
Over the Apify API, the last week's filings with no links:
curl -X POST "https://api.apify.com/v2/acts/Pradio~sec-edgar-form-d/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" -H "Content-Type: application/json" -d "{\"maxItems\": 100}"
Input
| Input | Default | What it does |
|---|---|---|
startUrls | three working EDGAR links | Optional. The EDGAR links to read. Empty: list recent Form D filings. |
maxItems | 100 | The most filing rows one run returns; the run stops there and says so. |
maxItemsPerEntry | maxItems shared across the entries | The most filing rows one startUrls entry returns before the next entry is read, so one broad search link cannot starve the rest. Unset, filing and company links are read first and the search links share what is left. |
formType | D | D returns new filings, plus amendments when includeAmendments is on; D/A returns amendments only. |
includeAmendments | off | Also return D/A amendments to earlier filings. |
keyword | none | Full-text search inside the filings. |
dateFrom | none (last 7 days with no links) | Only filings dated on or after this day, YYYY-MM-DD. |
dateTo | none | Only filings dated on or before this day, YYYY-MM-DD. |
states | none | Keep filings whose issuer address is in one of these two-character EDGAR codes, such as CA, NY, or E9 for the Cayman Islands. |
industryGroups | none | Keep filings whose industry group is one of these, such as Pooled Investment Fund or Biotechnology. |
minTotalOffering | none | Keep filings whose total offering amount is at least this many dollars. An Indefinite offering passes any minimum; a filing that states no amount does not. |
onlyNew | off | Skip filings an earlier run of the same search already returned. |
industry | none | Older single-value form of industryGroups, still honoured: keep rows whose industry group contains this text. |
minAmount | none | Older name for minTotalOffering, still honoured. |
Start URLs.
These shapes all work:
- a full-text-search URL from
efts.sec.gov/LATEST/search-indexor the search UI atwww.sec.gov/edgar/search/ - a browse-edgar company link carrying a numeric CIK
- a submissions JSON URL such as
https://data.sec.gov/submissions/CIK0002114445.json - an Archives filing path
The run reads sec.gov only. A URL on any other host, or a sec.gov link that names no Form D search, company or filing, comes back as an uncharged bad_url row. A pasted search whose forms parameter excludes D, or a browse link typed for another form, is a bad_url too. It is never a silent rewrite of your query.
Recent filings with no links. Leave Start URLs empty and the run searches EDGAR for Form D filings dated in your window, with the filters applied. With no dates set the window is the last 7 days. Each row's source_url is the EDGAR search the run built, so you can open the same search in a browser.
{"dateFrom": "2026-09-01","dateTo": "2026-09-24","states": ["CA", "NY"],"minTotalOffering": 5000000,"maxItems": 200}
The filters.
On a search URL or a run with no links, keyword, dateFrom, dateTo and states go to EDGAR's index with the query. industryGroups, minTotalOffering and the amendment rule are checked on each filing. On a company link, keyword runs as a full-text search scoped to that company. On a single pasted filing, a set filter keeps the row only when the filing passes. An excluded filing comes back as a not_found row naming the filter that cut it. A filing pasted by its own link is returned even when it is an amendment. A search that reads 1,000 filings which all fail the filters stops there and says so in the log, so narrow the dates or add a keyword to reach further.
Amendments. Off by default, so a run returns new offerings only. Turn includeAmendments on to add D/A filings, whose is_amendment is true and whose previous_accession_number names the filing they amend. formType set to D/A returns amendments only.
{"includeAmendments": true,"industryGroups": ["Pooled Investment Fund"],"dateFrom": "2026-09-01"}
Only new since last run.
With onlyNew on, the run remembers the accession number of every filing it delivered. The memory is a key-value store named sec-edgar-form-d-only-new in your account, keyed by the search: the links and the filters. The next run of the same search skips those filings, so they are neither returned nor charged. A run with no links and no dates keeps one memory even though its 7-day window moves, which is what a daily schedule wants. Changing maxItems keeps the memory; changing the search starts a fresh one. Only filings that reached your dataset are remembered, so a run cut short by your spending limit delivers the rest next time.
{"industryGroups": ["Biotechnology", "Pharmaceuticals"],"onlyNew": true,"maxItems": 500}
Worked examples
Use it to track every new large private raise in California and New York each morning, above the minimum offering you set.
{"states": ["CA", "NY"],"minTotalOffering": 10000000,"onlyNew": true,"maxItems": 500}
Use it to find the new venture and hedge funds filed this month, with their minimum investment.
{"dateFrom": "2026-09-01","industryGroups": ["Pooled Investment Fund"],"maxItems": 300}
Use it to list the Form D offerings that mention a sector, amendments included.
{"keyword": "artificial intelligence","includeAmendments": true,"dateFrom": "2026-07-01","maxItems": 200}
Use it to read one company's whole Form D history as rows.
{"startUrls": [{ "url": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=2114445&type=D" }],"includeAmendments": true}
Output
Every data row carries row_type: "ROW" and status: "ok". Three other rows carry verdicts instead of data:
ITEM_STATUS: one entry missed, withstatussaying how (bad_url,not_found,fetch_failed). Pushed so you see which entry and why; never charged.NO_FILINGS_FOUND: the input produced nothing. One row, never charged, androwsFetchedsays what the source saw.STOPPED_EARLY: the run's charge limit was reached.rowsReturnedandrowsRemainingsay what came back and what was left; never charged.
A zero result is one status row, never an empty dataset and never a charge. RUN_SUMMARY in the run's key-value store carries rowsFetched, rowsPushed, rowsCharged and duplicatesDropped. "Found nothing" and "broke" never look the same. Say you paste 50 links: the filing rows bill as usual, any miss is a free status row, and the summary's counts cover both.
What can you do with the data?
Track new raises. Schedule the Actor with no links and onlyNew on. Every run returns the Form D filings that are new since the last: who is raising, how much, under which exemption.
Map who is raising in a market. Narrow by states, industryGroups or minTotalOffering and the rows name each company, its offering and the amounts, for market sizing or deal-flow research.
Watch new funds. Keep to Pooled Investment Fund and read investment_fund_type, minimum_investment and number_of_investors to see which venture, hedge and private equity funds opened and how large.
Read one filing as a row. Paste a single Archives link and get the issuer, the offering and the related persons back structured, for a diligence note or a pipeline.
Feed a document pipeline. filing_index_url and filing_folder_url point at the filing's index page and document directory on sec.gov, so a downstream step fetches only the filings it wants.
Use SEC Form D Scraper with AI agents
Paste this line to give an agent the Actor as a tool:
claude mcp add --transport http apify "https://mcp.apify.com?tools=Pradio/sec-edgar-form-d"
The agent can then run EDGAR searches and pull filing rows itself.
Personal data
A row can name a person. related_persons carries officers', directors' and promoters' names, corporate titles or relationships, and city/state, taken from SEC EDGAR Form D public filings. These people appear in their business capacity only. A related person can also be an entity, such as a management company or a general partner. The filing carries it as a last name with a placeholder first name (N/A or a period), and the row carries it as filed. A location is the city with the state (Columbia, MD). Outside the United States the state position carries EDGAR's country code (X0 United Kingdom, L2 Ireland); the SEC's full code list is published here.
- Purpose. Structured access to public offering records: you look up an offering and get the filing's facts, including the people it names. Named persons are not contacted individually, and this section is the transparency notice for that collection. Running this product collects personal data. You become a controller of the rows your runs produce, and you owe the same notice for your own use.
- Field cap. A row carries only a name, a corporate title or relationship, and city/state for any officer, director or promoter. No street address, email, phone or other person-field is carried, even where the filing itself contains one.
issuer_phoneis the number the filing gives for the issuer, read from the issuer block, not from any related person's entry. Each named person appears once per row, insiderelated_persons; no separate name list is carried. - Objections. A person named in a row who objects can open an issue on this Actor's Issues tab in the Apify Console. They are added to a suppression list and redacted from rows emitted after that, and from any shipped fixture or sample row.
Form D is a mandatory public filing published by the U.S. Securities and Exchange Commission's EDGAR system. It is filed so the public can see who stands behind a securities offering. Every row links back to the filing on sec.gov, and the filing itself is the source of every value.
Release notes
0.2, 2026-09-24: runs with no links list recent Form D filings (the last 7 days unless dates are set). New filtersstates,industryGroups,minTotalOfferingandincludeAmendments, andonlyNewfor scheduled runs. New fieldsissuer_phone,investment_fund_type,minimum_investment,number_non_accredited_investors,is_amendment,previous_accession_number,first_sale_yet_to_occur,total_offering_indefiniteandtotal_remaining_indefinite. Changed:total_offering_amountandtotal_remainingare now always a number or null, with the word Indefinite moved to its own column.date_of_first_saleis a date or null, with "Yet to occur" moved tofirst_sale_yet_to_occur. Amendments are left out unlessincludeAmendmentsis on orformTypeis D/A.industryandminAmountstill work.0.1.17, 2026-09-24: a filing that answers "server busy" (HTTP 503) is retried after 2 and then 5 seconds before it is reported asfetch_failed.0.1.16, 2026-09-24: the row a run with no results returns is now calledNO_FILINGS_FOUND.0.1.15, 2026-09-24:edgar_urlandfiling_urlare renamedfiling_index_urlandfiling_folder_url, so each says which page it opens.0.1.14, 2026-09-24: with no per-entry cap set, filing and company links are read first and the search links share what is left ofmaxItems. Before, the first search link could return every row and the others none.0.1, 2026-09-19: first public release. One row per Form D filing from pasted EDGAR links: issuer, offering amounts, investors and the named officers, directors and promoters. Date, keyword, industry and amount filters; a per-entry cap so one broad search link cannot starve the rest; and a miss that costs nothing and says why.
Limits
- This build reads sec.gov only. A link on any other host is an uncharged
bad_urlrow. A sec.gov link that names no Form D search, company or filing is the same. - Form D only. A pasted search or browse link typed for another form,
forms=10-Kortype=4, comes backbad_urlrather than silently widening your query. - Rows carry facts and links, not filing bodies. The document itself stays on sec.gov behind
filing_index_urlandfiling_folder_url. - The full-text index answers 100 hits a page and stops paging at 10,000 hits. A very broad search needs a date window or a keyword, not deeper paging.
- Industry, offering-size and amendment filters are checked on each filing after it is read, so a narrow filter over a wide window reads many filings to keep a few. A search stops after 1,000 filings that all fail the filters.
onlyNewremembers up to 50,000 filings per search; beyond that the oldest are forgotten. Its memory lives in your own account's key-value store, so deleting that store starts every search fresh.- Fair access is kept, not worked around. A declared User-Agent and paced requests stay under the published 600-a-minute limit. A big sweep takes the time it takes.
filing_dateon a pasted single-filing link is the filing index's last-modified stamp, the SEC's acceptance time, not the cover date.- People on a filing are named only in their business capacity. Each appears once per row inside
related_persons. - A field the filing does not carry is null and stays null. Nothing is invented to fill it.
- Errors run toward failing. If EDGAR stops answering or changes what it returns, the run fails with the error in the log. It never emits rows of nulls.
Troubleshooting
My pasted link produced a bad_url row. Why?
This build reads sec.gov only, and only Form D. Give an EDGAR search URL, a browse-edgar company link with a numeric CIK, a submissions JSON URL or an Archives filing path. A forms parameter that excludes D is a bad_url too.
A filing link I know exists came back not_found.
A set filter can exclude it. The row's reason names which one: an offering amount below minTotalOffering, an industry group or state that does not match, a date bound. It can also mean the accession's directory listed no XML document to read.
The run returned fewer rows than maxItems.
The search or company had fewer matching Form D filings, or the filters cut them. Amendments are left out unless includeAmendments is on. With onlyNew on, filings an earlier run returned are skipped. The same filing reached twice counts once: rows dedupe on filing_index_url, and RUN_SUMMARY's duplicatesDropped says how many folded.
total_offering_amount is null on a filing that has an offering.
The form gives the amount as Indefinite; total_offering_indefinite is true on that row.
Zero rows came back. Is it broken?
A zero result is one NO_FILINGS_FOUND row, not an empty dataset. The ITEM_STATUS rows beside it say which entry missed and why, and RUN_SUMMARY carries the counts.
A STOPPED_EARLY row ended my run.
The run's charge limit was reached. The row's rowsRemaining says how much was left; raise the limit and re-run.
Still stuck? Report it through the Actor's Issues tab in the Apify Console with the run ID attached.
FAQ
Can I use integrations with SEC Form D Scraper?
Yes. The dataset plugs into Apify integrations such as webhooks, Zapier, Make and Google Sheets, and rows export as JSON, CSV or Excel. Schedule the Actor with onlyNew on to keep a filing feed current.
Can I use SEC Form D Scraper with the Apify API?
Yes. Run it and read the dataset through the Apify API. The curl one-liner under "How do I use" returns the rows directly.
Can I use SEC Form D Scraper through an MCP server?
Yes. The snippet under "Use with AI agents" registers the Actor as a tool an agent can call.
Is it legal to scrape SEC EDGAR?
Form D filings are public regulatory filings published by the U.S. SEC on EDGAR. They are read here under the SEC's published fair-access conditions: a declared User-Agent and no more than 600 requests a minute. Rows carry facts and links, not filing bodies. A row can name a person in a business capacity, and the Personal data section says what is kept and how a named person objects. This is not legal advice; use the data responsibly.
See also
- SEC EDGAR Filings Scraper: our own Actor for the wider read. It returns one row per filing of every form type for each ticker, CIK, company or keyword you name, with Form 4 insider transactions.
Not affiliated
This Actor is an independent product. It is not affiliated with, endorsed by or sponsored by the U.S. Securities and Exchange Commission. The data is read from the SEC's public EDGAR system, cited as the source. EDGAR and EDGARLink are registered trademarks of the SEC, and no SEC or EDGAR logos or marks are used.