How to use it: 3 steps
- Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
- Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example:
0002152949in CIKs. Each start is one run. - Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.
This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.
What it does
SEC Form D Filing Monitor finds public Form D and D/A filings in SEC EDGAR. Give it a date range, issuer CIKs or accession numbers. You get one Dataset row per filing with filed offering amounts, issuer facts, amendment links and official SEC URLs. Data comes directly from official SEC EDGAR files; no login, API key or proxy is needed. The quick-start run takes a few seconds and costs about $0.004. A filing does not prove that a funding round closed.
snapshot: read a fixed scope once.backfill: read a bounded historical window. Completed quarters use SEC Form D data sets.monitor: save a checkpoint and return new accessions or changed source documents. Keep onecheckpointNameand one filter scope.
Who uses it
Venture researchers
Review new private offering filings each day or week.
Analysts
Keep amendment history for each filing in your database.
Journalists
Check filed offering facts with links to the SEC source.
Price
Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.
| What you pay for | Price | When |
|---|---|---|
| Accepted filing or change | $0.001 (from $0.0007 on paid Apify plans) | One unique validated SEC Form D or D/A filing or same-accession correction saved to the Dataset. |
| Start fee | $0.0019 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
Examples
- One filing: about $0.0029.
- 1,000 filings: about $1.00.
- Every day 100 filings, for 30 days: about $3.06 a month.
Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 4,900 filings.
Prices checked on 24 October 2026. See the current price on Apify.
Questions
Does a Form D mean the round closed?
No. A filing shows filed facts. It does not prove money was raised.
Can I search by company name?
Not by name. Search by date, CIK or accession number.
Does it include investor contacts?
No. It returns filing facts and SEC links, not contact lists.
Do I need an SEC account?
No. It reads public EDGAR data.
Is the filed amount sold verified funding?
No. It is what the filer disclosed. An amendment is not a second confirmed funding round.
Can I find every issuer by company name?
No. issuerNameContains filters already discovered primary and co-issuer names. Use an exact ten-digit CIK for a known issuer.
What can be missing?
Source fields can be null, absent in a quarterly table or unparseable. An indefinite amount is not zero. durationYears is currently reserved and stays null.
Will a monitor remove a filing if the source is partial?
No. It retains the previous checkpoint and does not close or delete filings. It emits new accessions and detected document corrections only.
Are empty runs free?
No. They have no filing charge, but the standard start event still applies.
Does it replace the SEC filing?
No. Read the official link before relying on a field. Coverage depends on the selected source and the run bounds.
Details
Step by step on Apify
- Open the Actor Input tab. The new form has a small CIK snapshot example. No SEC login or source API key is needed.
- Run the example and open the Dataset. It includes one D and one D/A filing for the same issuer.
- Open
OUTPUTorRUN_SUMMARYto check coverage and warnings. - Replace the CIK and dates for your own search. Set the platform total charge cap before a run.
Use cases
| Task | Input | Key fields | Next step |
|---|---|---|---|
| Review issuer disclosures | discovery=cik, ciks, dates | issuer.primary, offering, SEC links | Export and inspect the source |
| Keep amendment history | mode=monitor, checkpointName | formType, amendment.previousAccessionNumber | Join on accession, retain earlier rows |
| Build a date export | discovery=market, bounded dates | filing.filedDate, stableId, industry | Check summary coverage before using the export |
| Filter filed values | minAmountSoldUsd, exemptionCodes | filedAmountSoldUsd, exemptionCodes | Compare filed facts, not verified cash |
Tips for better results
- Use monitor mode with one state key for daily checks.
- Check the coverage status in the summary before you trust an export.
- Keep date windows to 366 days or less per run.
Limits and good to know
See SEC Form D data sets and SEC access guidance. A cap or missing source never proves complete coverage. Split large requests into smaller date windows.
- Maximum 366 inclusive calendar days per run; the end date must be before today in UTC
- Maximum 100 CIKs or accessions, 1,000 rows, 20,000 scanned candidates and 1,000 requests. Defaults are 100 rows, 5,000 candidates and 200 requests
- Internal source deadline defaults to 240 seconds, with an input maximum of 900. A larger platform timeout does not expand it. A shorter platform timeout reserves time to save the summary
- Direct SEC HTTPS only: one declared contact User-Agent, 2 requests/second globally, two in-flight requests and at most two retries for HTTP 408/425/429/5xx. A 403 is not retried
- Source response bounds: 32 MiB ZIP, 16 MiB JSON and 4 MiB XML/text; at most 128 MiB decompressed ZIP data. Only the recognized SEC HTML doctype is stripped; entities and other DTDs are rejected without fetching them
- CIK additional history follows at most 20 files. Quarterly packages can lag current filings. Daily indexes can be missing, blocked or later corrected. No real-time or full-corpus promise
Troubleshooting
| Symptom | Check | Action |
|---|---|---|
| No rows | Read OUTPUT.status, dates and filters | A clean NO_FILINGS is different from a source error; widen only a valid search |
| Repeat monitor has no rows | NO_NEW_FILINGS and checkpoint state | Use snapshot to export the same notices again |
| SEC denied access | BLOCKED or HTTP 403 | Retry later. Do not use identity or IP rotation to bypass SEC controls |
| Rate limit or transient failure | Source warnings and retries | Retry the same bounded scope later |
| Partial or capped results | covered.complete, caps, request count | Use smaller date windows; a monitor checkpoint has not advanced |
| Missing exact accession | Its archive CIK may be an agent CIK | Use known issuer CIK and dates; follow the official filing link |
| Source schema changed | TECHNICAL_ERROR and run ID | Report it through Issues; do not treat it as an empty search |
| Resource error | Platform memory and timeout, summary warning | Use valid platform resources; increasing timeout does not expand internal work |
Recent updates
Update · 21 October 2026
- Input
stateKeyrenamed tocheckpointName(Apify quality flag "mark sensitive fields isSecret" fired on the name; the value is a non-secret checkpoint name).stateKeystays an API alias; equal values allowed, differing values INVALID_INPUT. Stored state record keepsstateKey, scope hash unchanged, so existing checkpoints continue.
- Input
Update · 21 October 2026
secAcceptanceUtc: archive index "Accepted" (America/New_York wall time, DST-aware) → ISO UTC; submissions ISO values canonicalized; unparseable → null. Fixes mixed formats and monitor ordering (src/state.ts sortFilings). Verified live: index 17:26:42 ↔ submissions 21:26:42Z for 0001012975-26-000877.- README tier table names Platinum/Diamond.
Update · 21 October 2026
- Store tier discounts on the row event (1.00/0.90/0.80/0.70 per 1,000); start event flat $0.0019.
- Input schema: section captions, enum titles, stringList editors, richer descriptions; contract unchanged.
- Dataset schema: field descriptions and
overviewtable view; output schema adds theoverviewlink.
For developers
Sample result
One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.
{
"stableId": "sec-form-d:0001012975-26-000877",
"accessionNumber": "0001012975-26-000877",
"formType": "D",
"filing": {
"filedDate": "2026-09-10",
"acceptanceDateTime": "2026-09-10T21:26:42.000Z",
"submissionType": "D",
"accessionCik": "0001012975",
"primaryDocument": "primary_doc.xml",
"archiveIndexUrl": "https://www.sec.gov/Archives/edgar/data/2152949/000101297526000877/0001012975-26-000877-index.htm",
"sourceDocumentUrl": "https://www.sec.gov/Archives/edgar/data/2152949/000101297526000877/primary_doc.xml"
},
"issuer": {
"primary": {
"cik": "0002152949",
"name": "Aspira Fund I (D) AB",
"entityType": "Other",
"jurisdictionOfIncorporation": "SWEDEN",
"city": "STOCKHOLM",
"stateOrCountry": "V7",
"stateOrCountryDescription": "SWEDEN",
"postalCode": "111 44"
},
"coIssuers": []
},
"industry": {
"groupType": "Pooled Investment Fund",
"groupDescription": null,
"fundType": "Private Equity Fund",
"revenueRange": "Decline to Disclose",
"netAssetValueRange": null
},
"offering": {
"firstSaleDate": "2026-08-18",
"firstSaleYetToOccur": null,
"durationYears": null,
"moreThanOneYear": false,
"securityTypes": [
"POOLED_INVESTMENT_FUND"
],
"isEquity": null,
"isDebt": null,
"isPooledInvestmentFund": true,
"exemptionCodes": [
"06b",
"3C",
"3C.7"
],
"minimumInvestmentUsd": 0,
"totalOfferingAmountUsd": 312741000,
"filedAmountSoldUsd": 40540500,
"filedTotalRemainingAmountUsd": 272200500,
"totalOfferingIndefinite": false,
"amountSoldIndefinite": false,
"remainingAmountIndefinite": false,
"fundingVerificationStatus": "FILED_VALUE_NOT_VERIFIED",
"salesAmountClarification": "Total Offering Amount reflects interests offered and sold by the Issuer and its parallel funds to US and non-US persons. Total Offering Amount and Total Amount Sold converted from EUR to USD on August 18, 2026 at a rate of Euro 1 to USD 1.1583.",
"useOfProceeds": {
"grossProceedsUsedUsd": 0
}
}
}Use it from code
Actor ID: cliqtomedia/sec-edgar-form-d-funding-monitor. You need your Apify API token from Apify Console → Settings → API & Integrations.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/sec-edgar-form-d-funding-monitor").call(run_input={
"mode": "snapshot",
"discovery": "cik"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~sec-edgar-form-d-funding-monitor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode": "snapshot", "discovery": "cik"}'# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("cliqtomedia/sec-edgar-form-d-funding-monitor")
result = tool.invoke({"run_input": {"mode": "snapshot", "discovery": "cik"}})
print(result)The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.
Data fields (16)
| Field | Type | Meaning |
|---|---|---|
recordType | string | Always FORM_D_FILING. |
eventType | string | FILING_SAVED for a new D, AMENDMENT_SAVED for a new D/A, SOURCE_CORRECTION_UPDATED when a monitor sees a changed source document for a known accession. |
stableId | string | Stable row ID: sec-form-d:<accessionNumber>. A correction keeps the same ID. |
accessionNumber | string | SEC accession number with dashes. |
formType | string | D for a new notice, D/A for an amendment. |
isAmendment | boolean | True for D/A filings. |
filing | object | SEC filing date, acceptance time, accession CIK and official archive and document URLs. |
issuer | object | Primary issuer and co-issuers as filed: CIK, name, entity type, jurisdiction, city, state or country code and description. |
industry | object | Filed industry group, fund type, revenue range and net asset value range. |
offering | object | Filed offering facts: first sale date, security types, exemption codes, minimum investment, total offering amount, filed amount sold and remaining amount in USD. Filed values are not verified funding. |
investors | object | Filed accredited and non-accredited investor counts. |
salesCompensation | object | Filed commissions, finder fees and recipient names and roles. Empty when includeSalesCompensation is false. |
relatedPersons | array | Filed related-person names and relationships, no addresses or enrichment. Empty when includeRelatedPersons is false. |
amendment | object | For D/A filings: the filed previous accession number and link status. |
provenance | object | Source kind, SEC index and document URLs, retrieval time, source fingerprint and SEC non-affiliation notice. |
calculated | object | Consistency check of offering minus sold against filed remaining amount. |
Input settings (23)
The main fields of the input form. With the API you send them as JSON.
| Setting | Name in the API | Type | Example value |
|---|---|---|---|
| Run mode | mode | string | "snapshot" |
| Discovery route | discovery | string | "cik" |
| Start date | startDate | string | "2026-09-01" |
| End date | endDate | string | "2026-09-30" |
| Monitor days back | daysBack | integer | 7 |
| CIKs | ciks | array | ["0002152949"] |
| Accession numbers | accessionNumbers | array | [] |
| Issuer name contains | issuerNameContains | string | |
| States or countries | statesOrCountries | array | [] |
| Industry groups | industryGroups | array | [] |
| Exemption codes | exemptionCodes | array | [] |
| Minimum total offering amount | minTotalOfferingAmountUsd | number | |
| Minimum filed amount sold | minAmountSoldUsd | number | |
| Include related persons | includeRelatedPersons | boolean | false |
| Include sales compensation | includeSalesCompensation | boolean | false |
| Checkpoint name | checkpointName | string | |
| State action | stateAction | string | "USE" |
| Monitor overlap days | overlapDays | integer | 7 |
| Maximum accepted rows | maxResults | integer | 10 |
| Maximum candidates scanned | maxFilingsScanned | integer | 100 |
| Maximum SEC requests | maxRequests | integer | 20 |
| Maximum runtime seconds | maxRuntimeSeconds | integer | 240 |
| Maximum filing-row charge USD | maxChargeUsd | number | 0.01 |
Use cases with this tool
Each guide shows all the steps and the other tools.




