Lead generation
SEC Form D Scraper — Capital-Raise Leads
Scrape SEC EDGAR Form D (Regulation D capital-raise) filings into structured B2B leads, exported to JSON or CSV — every row carries company name, address, phone, industry, offering amounts, investor counts, officers, and exemption codes. No API key, no login.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
One ResultRow per qualifying Form D filing pulled from the SEC EDGAR Full-Text Search index and the EDGAR static-archive XML. Each row has 27 top-level fields plus a nested related_persons list of officers, directors, and promoters. Data is U.S. government public domain — there are no terms-of-service restrictions on redistribution.
What we handle for you
- Real-time SEC EDGAR Form D feed — every Reg D capital raise in the U.S. lands here within 15 days of the first sale.
- 27-field extraction including the structured B2B contact fields (phone, address, named officers) that generic EDGAR scrapers do not surface.
- Free-text query, date range, U.S. state filter, and minimum-raise-size filter — all four input axes optional, all four post-filtered before the per-row charge so you pay only for kept rows.
- Amendment toggle:
includeAmendments=false(default) skips Form D/A entries before fetching the XML — saves both bandwidth and rate-limit budget. - XML schema quirks handled correctly —
"Indefinite"offering amounts,overFiveYearsyear-of-inc,yetToOccurfirst-sale flag, raw"0"minimum investment → null. - EDGAR Fair Access Policy compliant — mandatory
User-Agentheader set on every request; 0.1 s inter-fetch sleep keeps the run under the 10 req/s/IP limit. - Pydantic v2 input validation: ISO date shape checked before any network call,
start_date <= end_dateenforced, state filter normalised to uppercase. - We rotate browser fingerprints using
curl-cffi(Chrome / Firefox TLS impersonation) so every request looks like a real browser, not a script — robust against any future EDGAR fingerprint tightening. - We retry with exponential backoff on
429/503responses and honourRetry-Afterheaders. Up to 5 attempts per page before surfacing a clear failure. - We enforce EDGAR's rate-limit pacing — a 0.1 s inter-fetch sleep caps throughput at the Fair Access Policy ceiling; your run never triggers an IP ban.
- We keep the dataset clean — Pydantic-validated rows, ISO-8601 timestamps, stable IDs, null-safe numeric fields. No garbage rows, no silent empties.
- You pay only for results that land. Rows discarded by your state or minimum-raise filters are never charged. No data → no charge (only the small
actor-startwarm-up fee).
Use cases
- B2B sales prospecting — pull every Form D filed in the last 7-30 days in your target state (e.g.
stateFilter=CA,minOfferingAmountUsd=1000000) for fresh trigger-event leads to SaaS / professional-services teams selling into newly-funded startups. - VC deal-flow tracking — query
industryGroupType=Biotechnologyand filter by state to surface every Series A-and-earlier biotech raise in your geography. - Compete-monitoring — pass a
queryterm matching a competitor's domain category to detect new entrants raising private capital. - Journalism + research — bulk-export Form D over a multi-month window to measure private-market capital flow by state, industry, or exemption code.
- Crunchbase / PitchBook alternative for early-stage — Form D is the original-source filing every paid private-markets database derives from, available here at $5/1,000 rows vs $299-999/month.
- Compliance + KYC — verify a counterparty's Reg D filing history by issuer name or CIK before signing a master service agreement.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
query | string | no | Optional free-text filter passed to EDGAR Full-Text Search (e.g. artificial intelligence or biotechnology). 1-200 chars. |
startDate | string | no | Inclusive lower bound on filing date in YYYY-MM-DD form. Defaults to 30 days ago when omitted. |
endDate | string | no | Inclusive upper bound on filing date in YYYY-MM-DD form. Defaults to today when omitted. |
stateFilter | string | no | Optional post-filter: keep only rows where the issuer's state matches this ISO 3166-1 alpha-2 code (e.g. CA, NY, TX). Lower-case is normalised to upper. |
minOfferingAmountUsd | integer | no | Optional post-filter: discard filings whose total offering is below this amount. Indefinite-amount filings always pass through. Use 1000000 for $1M+ raises. |
maxResults | integer | no | Maximum rows emitted (1-5000). The Actor stops fetching once this many rows survive every filter. |
includeAmendments | boolean | no | When false (default), only new Form D notices are returned. When true, amendments (Form D/A) are included with is_new_notice = false. |
useProxy | boolean | no | Route requests through Apify Proxy (BUYPROXIES94952). EDGAR does not currently rate-limit datacenter IPs when the User-Agent header is set; leave off unless you see 403 or 429. |
{
"maxResults": 100,
"includeAmendments": false,
"useProxy": false
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
accession_numbercikentity_nameentity_typejurisdiction_of_incorporationyear_of_incorporationissuer_street_1issuer_street_2issuer_cityissuer_state_or_countryissuer_zip_codeissuer_phone_numberindustry_group_typetotal_offering_amount_usdtotal_amount_sold_usdtotal_remaining_usd
{
"accession_number": "0002122627-26-000001",
"cik": "0002122627",
"entity_name": "AM-0304 Fund II, a series of Delk-SPV, LP",
"entity_type": "Limited Partnership",
"jurisdiction_of_incorporation": "DELAWARE",
"year_of_incorporation": 2026,
"issuer_street_1": "2006 196TH ST SW",
"issuer_street_2": "SUITE 114",
"issuer_city": "LYNNWOOD",
"issuer_state_or_country": "WA",
"issuer_zip_code": "98036",
"issuer_phone_number": "2068016359",
"industry_group_type": "Pooled Investment Fund",
"total_offering_amount_usd": 577807.0,
"total_amount_sold_usd": 577807.0,
"total_remaining_usd": 0.0,
"is_indefinite_amount": false,
"total_number_already_invested": 35,
"minimum_investment_usd": 1000.0,
"exemption_claimed": [
"06B",
"3C",
"3C.1"
],
"is_new_notice": true,
"date_of_first_sale": "2026-05-14",
"related_persons": [
{
"first_name": "N/A",
"last_name": "Fund GP, LLC",
"city": "Wilmington",
"state_or_country": "DE",
"relationships": [
"Director"
]
}
],
"filing_date": "2026-05-15",
"filing_url": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0002122627&type=D",
"scraped_at": "2026-05-16T12:00:00.000000+00:00"
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| Result row emitted | $0.0050 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
Limitations
- Public EDGAR Full-Text Search only. No EDGAR Online, no authenticated EDGAR features, no premium SEC data products.
- Form D and Form D/A only. Forms 3/4/5 (insider transactions), Form 10-K/Q (public-company financials), and Form S-1/424 (public offerings) are out of scope.
- No email address extraction. Form D does not contain email addresses; only the issuer phone and the named officers' city + state are filed.
- No use-of-proceeds narrative. Free-text fields beyond the structured XML elements listed above are out of scope.
- No sales-compensation extraction. Broker / finder fee data is present in the XML but excluded — out of scope for lead generation.
- No cross-run deduplication. Overlapping date ranges may surface the same filing multiple times across separate runs.
- EDGAR rate limit applies. The Actor enforces a 0.1 s inter-fetch sleep, capping the practical throughput at ~10 filings/second / ~600 filings/minute / 5,000 cap → ~9 minutes for a full run.
- 7-day default storage retention on the Apify FREE plan. Export the dataset immediately after the run or move to a paid plan for longer retention.
- U.S. government public domain. SEC EDGAR data has no copyright; attribution is optional but appreciated.
FAQ
Do I need an API key or login?
User-Agent header identifying Devil Scrapes per EDGAR Fair Access Policy §2.4 — this is a compliance requirement, not an authentication step.Is there a Form D filings API I can query programmatically?
POST /v2/acts/DevilScrapes~sec-form-d-leads/runs with your filter parameters, then retrieve structured results from the dataset endpoint. Full Apify API docs at docs.apify.com.Why does the `cik` URL not have leading zeros?
cik is the canonical zero-padded form ("0002122627"), and the internal URL builder strips the leading zeros for the XML fetch. Pre-padding the URL returns HTTP 404.What's the difference between Form D and Form D/A?
includeAmendments=false (default), only new D notices are returned. When true, amendments are included with is_new_notice=false.Why is `total_offering_amount_usd` sometimes null?
"Indefinite" (common for evergreen funds and certain real-estate offerings). The is_indefinite_amount flag is True on those rows, and total_offering_amount_usd + total_remaining_usd are both null. Indefinite-amount rows always pass the minOfferingAmountUsd filter — we never discard them on a numeric comparison they can't satisfy.Why is `year_of_incorporation` sometimes null?
overFiveYears=true in the XML — the SEC does not require an exact year when the entity is more than 5 years old. Issuers younger than 5 years report withinFiveYears=true and the specific <value>YYYY</value> we parse to an integer.Can I redistribute the data?
How does this compare to paid Regulation D filings list providers?
Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors