Build a funding-research list: who raised money, how much, and which investors the announcement names
One run gives you the past week's financings from three sources in one list: SEC Form D filings (amount sold and offered), TechCrunch funding news (headline round size) and PR Newswire funding releases, where the release names them, with the investor organisations and which of them led. Every amount says what it means. The same round reported twice arrives once. It is for sales teams, service providers, investors and analysts who track companies that just raised money.
What you get
Five of the 25 rows from a run on 1 October 2026 with the default settings (last 7 days, technology and health filings, PR Newswire on):
| date | company_name | source | amount_display | round_stage | investor_organizations |
|---|---|---|---|---|---|
| 2026-09-30 | Varda | prnewswire | $251,000,000 | Series D | Lux Capital (lead); Natural Capital (lead); Founders Fund (participant); Khosla Ventures (participant); … |
| 2026-09-30 | Miter | prnewswire | $40,000,000 | Series B | Battery Ventures (lead); Bessemer Venture Partners (participant) |
| 2026-09-30 | Astrocyte Pharmaceuticals | prnewswire | $9,500,000 | Series B | DeepWork Capital (lead); MintPharma Capital (participant); … |
| 2026-09-30 | RunLoyal, Inc. | sec_edgar | $1,167,339 sold of $1,267,339 offered | ||
| 2026-09-29 | EliseAI | techcrunch | $350,000,000 |
That run delivered 9 SEC filings, 8 TechCrunch stories and 8 PR Newswire releases, and folded 5 duplicate reports into the rows they belonged to (not charged). Investor names come only from PR Newswire releases; SEC and TechCrunch rows leave those columns empty.
The Funding tab gets 23 columns: record_id (used to avoid duplicates), date, company_name, source, event_type, raise_status, financing_type, amount, currency, amount_type (what the amount means, e.g. round size or amount sold so far), amount_display, round_stage, lead_investors, investor_organizations (name and role), investor_info_status, industry, location, issuer, title, url, other_reports (the same financing in another source), cik and last_seen. A Run log tab gets one row per run.
Get it in one click
Two ready-made searches; open one, press Start, then change the inputs:
- $5M+ Financings — Tech Form D + Funding News From Any Sector (SEC, TechCrunch and PR Newswire with investor organisations; 6 records, about $0.50 on the Free plan)
- Biotech & Pharma Private Offerings — SEC Form D, Last 14 Days (5 records, about $0.42)
Or open the Actor, Startup Funding Tracker — SEC Form D & Funding News, with:
{"mode": "all_sources", "daysBack": 7, "includePrNewswire": true, "maxResults": 25}
Get it from code
curl -X POST "https://api.apify.com/v2/acts/nexgensignal~funding-round-intelligence-api/run-sync-get-dataset-items?maxTotalChargeUsd=1" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"mode": "all_sources", "daysBack": 7, "includePrNewswire": true, "maxResults": 10}'
For a weekly list, use the Python script under Downloads; it keeps one CSV row per financing:
export APIFY_TOKEN=your_apify_token # Windows: set APIFY_TOKEN=your_apify_token
python funding_to_research_csv.py --days 7 --max 25
It writes funding_research.csv (one row per financing, matched on record_id) and funding_research.csv.runlog.csv. Options: --min-amount 5000000, --query "robotics", --all-industries, --no-prnewswire, --cap 2.50. Python 3.8+ and nothing else.
Put it in a Google Sheet every Monday (n8n)
- Get the workflow. In n8n choose Import from URL and paste the workflow link under Downloads (or download it and use Import from File).
- Add your Apify token. In Apify Console copy your API token (Settings → API & Integrations). In n8n create a Header Auth credential named
Apify API token: NameAuthorization, ValueBearerfollowed by your token. Select it in the five HTTP Request nodes (Get saved run, Start Apify run, Check run, Get run receipt, Get records). - Make the sheet. Create a Google Sheet with tabs Funding and Run log and paste the header rows from the header files under Downloads into row 1.
- Point the workflow at it. Paste the sheet URL into both Google Sheets nodes and choose your Google credential.
- Choose what to track. Open Settings (edit me): days back, PR Newswire on or off, SEC industry groups (empty = all), a minimum amount, an optional company or keyword, the most records per run and a spending cap per run.
- Run it once, check the sheet, then switch the workflow to Active (Mondays 08:00 New York time; change the schedule node if you like).
Google Sheets delivery: not yet verified
The workflow's Google Sheets nodes follow n8n 2.41.4's own Google Sheets node definition (append-or-update on record_id; values are written as plain text so numbers such as 00445790 keep their leading zeros), and the file imports into n8n. They have not yet been run against a real Google Sheet. Everything before the sheet has been tested in n8n, including scheduled runs, with a local stand-in that applies the same append-or-update rule. Try it on a copy of your sheet first.
If something is interrupted
- The sheet could not be written. Each run's ID is saved as soon as Apify answers. The next execution collects that same run instead of starting and paying for a new one, and saved progress moves on only after the rows are written. (Tested, including a scheduled run whose sheet write failed.)
- No answer when starting a run. Apify's API offers no way to make starting a run safe to repeat. If no answer comes back, the original request may have started a run; no second start is attempted automatically. The workflow stops with START OUTCOME UNKNOWN until you decide. If Apify Console → Runs shows the run, paste its ID into
resumeRunIdin the settings node: its results are collected without paying again. If no run started, paste the time shown in the message intostartNewAfterUnknown. - Two executions at the same time. If the workflow starts while an earlier execution is still waiting for its run (for example a manual run while a scheduled one is still going), it first asks Apify whether a run of this Actor with the same settings is still going. If one is, it stops with ALREADY RUNNING without starting or paying for anything, and the earlier execution writes those results. A run with the same settings started another way (for example by hand in Apify Console) counts too. (Tested in n8n with two overlapping executions.) The script does not make this check, so don't start it again while an earlier run of it is still going.
- Where the memory lives. The saved run ID are kept inside the n8n workflow. Re-importing the workflow resets them (tested).
- The script follows the same rules (
--resume-run RUN_ID,--start-new); after an uncertain start it looks for the run on its next start and reuses it if it finds exactly one.
What it costs
Existing prices: a $0.02 start fee per run ($0.01 per GB of memory, 2 GB), charged even when nothing matches, plus each financing delivered.
| Apify plan | Per financing | One run at the default maximum (25) | Four weekly runs |
|---|---|---|---|
| Free | $0.08 | up to $2.02 | up to $8.08 |
| Bronze | $0.072 | up to $1.82 | up to $7.28 |
| Silver | $0.064 | up to $1.62 | up to $6.48 |
| Gold / Platinum / Diamond | $0.0536 | up to $1.36 | up to $5.44 |
The test run on 1 October filled all 25, so a busy week can have more than your maximum: raise it, or narrow with a minimum amount, industry groups or a keyword. A week with nothing new costs the $0.02 start fee. Duplicates folded into another row within one run are not charged.
De-duplicated rows are not de-duplicated charges. Every financing a run delivers is charged, even if it is already in your sheet: for example when two runs' date windows overlap (a run started late, an extra manual run, or a daysBack longer than the schedule's gap). The sheet updates that row instead of adding it, but the run still pays for it. Keep daysBack equal to the time between scheduled runs to keep overlaps small.
When things don't go to plan
| Run log outcome | What it means | What the workflow does |
|---|---|---|
complete |
Financings added or updated | Nothing else to do |
no_match |
Every selected source was read and nothing matched | Only the $0.02 start fee |
partial |
Something stopped the search early: your maximum or spending cap was reached, PR Newswire hit its time or page limit (PARTIAL SEARCH / INCOMPLETE SEARCH), or one source did not answer |
Rows received are saved; the run's own message says what was missed. Treat it as incomplete, not as "nothing happened" |
source_unavailable |
No selected source answered | Nothing charged beyond the start fee; the workflow stops with an error |
failed |
The run failed (for example invalid input) | Stops with an error naming the run |
Know before you rely on it
- Form D is a filing, not an announcement. Companies file within 15 days of the first sale and report the amount sold so far (it can be $0). Many filers are small private companies.
- News is TechCrunch's headlines and PR Newswire's releases. Only what those sources cover; TechCrunch rows carry what the headline states (occasionally no company name).
- Investor names are rule-based. Only organisations a PR Newswire release shows are organisations; people are never listed. Lists are often shorter than the release's, and on our hand-checked samples roughly one PR Newswire financing in four or five was missed. Check
urlbefore relying on a row. - PR Newswire work is limited per run (about 150 seconds and 80 release pages); a long window can be reported as
partial.
Links
- Actor: Startup Funding Tracker — SEC Form D & Funding News
- Ready-made searches to try first: $5M+ Financings — Tech Form D + Funding News From Any Sector · Biotech & Pharma Private Offerings — SEC Form D, Last 14 Days
- Apify API reference used: Run Actor, Get run
Downloads
- n8n workflow (import from URL or file; Google Sheets step not yet verified) — save as
n8n-workflow.json - Python script (CSV instead of n8n) — save as
funding_to_research_csv.py - Header row for the Funding tab — save as
sheet-headers-funding.csv - Header row for the Run log tab — save as
sheet-headers-run-log.csv - This tutorial as a web page
Published by NexGen Signal (official-source data products on Apify). Prices are the Actors' existing pay-per-record prices on 1 October 2026; check the Actor page for current prices.