# Startup Funding Rounds API — SEC Form D, Wires & News (`insight.solutions/funding-signals-api`) Actor

Who just raised money: one row per funding round from SEC Form D notices — amount sold and offered, security type, industry, state, investor count — plus press-wire announcements and Google News headlines with round, amount and lead investor. People never named. No key.

- **URL**: https://apify.com/insight.solutions/funding-signals-api.md
- **Developed by:** [Insight Solutions](https://apify.com/insight.solutions) (community)
- **Categories:** Business, Lead generation, News
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 funding events

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Startup Funding Rounds API — SEC Form D, Wires & News

**Who just raised money — one row per funding round.** Every US private placement made under Regulation D is a public **Form D** on SEC EDGAR, filed within 15 days of the first sale: the amount sold, the amount still offered, what kind of securities, the industry, the state, how many investors. Almost every venture round is also announced on a press wire and picked up by the news. This Actor reads all three — SEC Form D, GlobeNewswire and PR Newswire, and Google News — and returns one company-level row per round: **round type, amount, currency, valuation, lead investor and investing firms, industry, state**, and the Form D facts when there is one. Plus a row per document read and a free summary per company. JSON, CSV or Excel. HTTP only, no browser, no login, no API key.

**Company-level data only.** Form D's lists of executives, directors, promoters and brokers are never parsed; people in headlines and teasers become `[individual]`; `investors[]` holds organisations only. **$5.00 per 1,000 funding events** plus **$1.00 per 1,000 documents read** on the FREE tier.

### Try it in 30 seconds

This is the Store prefill; paste it and run:

```json
{ "mode": "market", "days": 2, "sources": ["sec-form-d", "press-release"], "excludeFunds": true, "maxEvents": 150, "userAgentContact": "Insight Solutions austinhughhillis@gmail.com" }
```

Every new Form D on EDGAR over the last two days (pooled funds and amendments left out) and the funding releases on the two wires. On the pinned copies of EDGAR's feed, a week of Form D search and the wire pages in our test suite it gives **48 funding events from 48 documents** — 44 Form Ds and 4 wire rounds (Journify's $12M Series A, Northwood's $375M, Clark's $11M seed, Equinox's raise) — after skipping 71 fund filings and 76 amendments before reading them. A live weekday adds the Form Ds the suite does not pin: EDGAR receives 150–300 a day.

`userAgentContact` is required by the SEC on every request: your organisation and an address it can reach. The form pre-fills the publisher's contact so the example runs; replace it with yours.

Startups that raised at least $1M of equity this week (the example task):

```json
{ "mode": "market", "days": 7, "excludeFunds": true, "minAmountUsd": 1000000, "securityTypes": ["equity"], "userAgentContact": "Acme Research data@acme.com" }
```

Your watchlist, two years back, Form D plus wires plus news:

```json
{ "mode": "companies", "companies": ["Journify", "Yipio", "2163386"], "months": 24, "userAgentContact": "Acme Research data@acme.com" }
```

**From code** — `client.actor("insight.solutions/funding-signals-api").call(run_input={"days": 1, "userAgentContact": "Acme Research data@acme.com"})` with `apify-client`, or `POST https://api.apify.com/v2/acts/insight.solutions~funding-signals-api/run-sync-get-dataset-items`.

### What comes back

A **funding-event** row from a Form D (from the pinned Yipio filing; null columns cut):

```json
{
  "rowType": "funding-event",
  "company": "Yipio Inc.",
  "cik": "2163386",
  "source": "sec-form-d",
  "sourceName": "SEC EDGAR",
  "url": "https://www.sec.gov/Archives/edgar/data/2163386/000216338626000001/primary_doc.xml",
  "date": "2026-11-03",
  "roundType": "equity-offering",
  "amountUsd": 30000,
  "amountOfferedUsd": 1500000,
  "amountRemainingUsd": 1470000,
  "currency": "USD",
  "amountText": "$30,000 sold of $1,500,000 offered",
  "isAmendment": false,
  "accessionNumber": "0002163386-26-000001",
  "securityTypes": ["option-warrant"],
  "industry": "software",
  "industryGroup": "Computers",
  "entityType": "Corporation",
  "yearOfIncorporation": 2025,
  "jurisdiction": "Delaware",
  "city": "Alamo",
  "state": "CA",
  "country": "US",
  "revenueRange": "No Revenues",
  "exemptions": ["06b"],
  "firstSaleDate": "2026-11-02",
  "minimumInvestmentUsd": 15000,
  "investorCount": 2,
  "hasNonAccreditedInvestors": false,
  "title": "Form D: $1.5M option/warrant offering, $30K sold, 2 investors",
  "excerpt": "Yipio Inc. (Alamo, CA; Computers; incorporated 2025 in Delaware) filed a notice of a $1.5M offering of option/warrant securities under Rule 506(b): $30K sold to 2 investors, first sale 2026-11-02; minimum investment $15K.",
  "eventKey": "yipio|equity-offering|46|692",
  "confidence": "high"
}
```

A wire round, from the pinned PR Newswire search:

```json
{
  "rowType": "funding-event",
  "company": "Clark",
  "source": "press-release",
  "sourceName": "PR Newswire",
  "date": "2026-11-02T16:00:00.000Z",
  "roundType": "seed",
  "stage": "early",
  "amountUsd": 11000000,
  "currency": "USD",
  "amountText": "$11M",
  "industry": "ai",
  "investors": ["Touring Capital", "Marathon Management Partners", "Sofeon Ventures"],
  "leadInvestor": "Touring Capital",
  "title": "Clark Launches Autonomous AI Employees for Audit and Raises $11M Seed Round, Bringing Total Funding to $16M",
  "confidence": "high"
}
```

When the same round is on a wire and in the news, the wire row is kept and the news links go into `alsoReportedBy[]` (Journify's GlobeNewswire release carries its three Google News copies). A Form D row lists the `eventKey`s of the announcements about the same company in `relatedEvents[]`.

A **document** row (paid) for each Form D, release or article read — `eventCount` (1 or 0: a Form D read and found to be a fund, or outside your filters, is 0) and `bytes`. A free **company** row per input company in companies mode:

```json
{
  "rowType": "company",
  "input": "2163386",
  "company": "Yipio Inc.",
  "cik": "2163386",
  "resolvedBy": "cik",
  "documentsRead": { "sec-form-d": 1, "press-release": 0, "news": 0 },
  "eventsByRoundType": { "equity-offering": 1 },
  "latestRound": { "date": "2026-11-03", "roundType": "equity-offering", "amountUsd": 30000, "source": "sec-form-d" },
  "totalRaisedUsd": 30000
}
```

Anything that could not be read — a name no filer carries, a wire behind a challenge page, SEC refusing the run — comes back as a free **diagnostic** row (`errorType`, `error`) instead of a charge.

### Use cases

- **Sales and business development** — a daily list of companies that just closed money, with their state, industry and round size: the moment budgets open.
- **Recruiters and talent teams** — who raised a seed or Series A this week and is about to hire, by industry and state.
- **Vendors, agencies and service providers** — new real-estate, energy and technology offerings in your states, from the filing itself rather than the press.
- **Investors and analysts** — every Form D in a sector or state, the rounds announced in it, and the investing firms behind them, deduplicated across sources.
- **Journalists and researchers** — the rounds nobody announced: a Form D with $4.4M sold to 17 investors is public on EDGAR whether or not there was a press release.

### How it compares

- **From the public record, not a licensed database.** Form D is the SEC's own filing; every row links to it, or to the release or article it came from. No login, no API key, nothing resold.
- **Rounds nobody announced.** Most Form Ds never reach a press release. Wire- and news-only lists miss them; this one starts from them.
- **Three sources, one schema.** A Form D, a wire release and a news article come back in the same columns, so a round announced on Monday and filed two weeks later sits in one table, linked by `relatedEvents[]`.
- **Events, not mentions.** The same round on a wire and in a dozen outlets is one row with `alsoReportedBy[]`, not thirteen.
- **Company-level by design.** The people a Form D lists are never read, and people named in releases are redacted or, as investors, dropped.

### Where the signals come from

**What a Form D is.** A notice a company files with the SEC within 15 days of first selling securities in a private offering exempt from registration (Regulation D, Rules 504 and 506, and Securities Act Section 4(a)(5)). It states the issuer, its industry and size band, the exemption, the securities, the amount offered and sold, and how many investors bought.

**What a Form D does not tell you.** No valuation, no price per share, no investor names (the people it lists are the issuer's officers, directors and promoters, and this Actor does not read them). The offering amount may be written "Indefinite". It is filed up to 15 days after the first sale and amended (D/A) as sales go on, so it lags the round, and it is US issuers only.

1. **SEC Form D** — direct from sec.gov, never through a proxy, with the descriptive `User-Agent` the SEC requires (`ApifyEdgarActor/1.0 (<your contact>)`) and **at most 8 requests per second** across the whole run, shared by every SEC request (SEC allows 10).
   - **Market mode** pages back through EDGAR's current-filings feed for Form D (`browse-edgar?action=getcurrent&type=D`, 100 filings a page, newest first, up to 40 pages — 4,000 filings) until the `days` window is covered. The feed's `type=D` also matches `DEF 14A` proxy filings; only `D` and `D/A` are kept. If the feed runs out inside the window, **EDGAR full-text search** (`forms=D` and the date range) covers the rest, up to 1,000 filings.
   - **Companies mode** resolves each entry — a CIK directly; a ticker or registered name through SEC's `company_tickers.json`; any other name through full-text search of Form Ds, keeping only an issuer whose name is the company's ("Anduril" matches "Anduril Industries, Inc.", never "Anduril Holdings SPV, LP" or one of the dozens of funds named after it) — then reads every `D` and `D/A` in its `submissions` list inside `months`.
   - Each filing's `primary_doc.xml` (5–30 KB) is read through a **path allow-list**: issuer, address city and state, industry, size, exemptions, new or amendment, first-sale date, duration, securities, amounts, investor counts, commissions and proceeds — **amounts only**. `relatedPersonsList`, `salesCompensationList` and `signatureBlock` are cut out before anything is read; the issuer's street, ZIP and phone are on no path.
   - **Funds.** About a third of Form Ds are pooled investment funds and the special-purpose vehicles that buy into startups. With `excludeFunds` on, a filing whose listing claims the private-fund exclusions — Investment Company Act 3(c)(1) or 3(c)(7) — is skipped **before it is read** (free); one that turns out to be a pooled fund when read is skipped after (its document row is billed).
   - Documents above 5 MB are not a Form D and are skipped (a free `parse-failed` row).
2. **Press wires** — GlobeNewswire and PR Newswire keyword search, through the proxy you configure (Apify datacenter by default), first page each: market mode searches `raises`, `funding round`, `seed round`, `Series A` to `Series D`, `closes`, `secures`, `investment`, `growth equity` and `venture debt` (24 searches); companies mode `<company> raises`, `<company> funding` and `<company> investment` on each wire. Only the listing — headline and teaser — is read; release bodies, which end in media contacts, never are. Phone numbers and e-mail addresses are removed.
3. **News** — Google News RSS search, through the same proxy: market mode `"raises" "million" funding`, `"series a" OR "series b" raises` and `"seed round"`, each limited to the last `days` (`when:<days>d`); companies mode `"<company>" raises OR funding OR "series"`. **Headline and publisher only**: the Google News link is the row's `url`, and the article itself is never fetched.

Each source degrades to a free `source-unavailable` row, never a failed run: a wire's challenge page, a feed that cannot be parsed, SEC refusing the run.

### How events are classified, and the confidence scale

**Events, not sentences.** One `funding-event` per document: a Form D, a release, an article. A release or article is a funding event when its headline (or a first paragraph that opens with the issuer raising) carries the funding words — raises, raised, closes, secures, "announces … funding / investment / round", pre-seed, seed, Series A–F, growth round or equity, venture debt or round, led by, participation from, valuation — and is not a look-alike: guidance or a dividend raised, "raises the bar", a gala, a charity drive or anything raised *for* a trust or foundation, an earnings release. The company is the headline's subject, without labels ("Exclusive:"), descriptors ("AI startup", "Capital markets firm"), places ("Hamburg’s") or a person's possessive ("Mike Cagney's Navra" → Navra); a headline that names no company ("Two college kids raise…") is not an event.

**Round types.** From releases and articles: `pre-seed`, `seed`, `series-a`, `series-b`, `series-c`, `series-d`, `series-e`, `series-f` (Series G and later count as `growth`), `growth`, `venture-debt`, `debt` (credit facility, term loan, convertible notes), `grant`, `crowdfunding` (Reg CF, Reg A, offering circulars), `ipo` (IPO, SPAC, an exchange debut), `fund` (a venture firm closing a fund), `unknown`. When several stages are named ("$52M Seed and Series A") the later one wins; an investor's name ("BDC Seed Venture Fund") is not a round. From a Form D: `equity-offering` when any equity or option flag is set, `debt-offering` when debt only, `fund` for a pooled investment fund, `other`.

**Stage.** `early` for pre-seed, seed and Series A; `growth` for Series B and C; `late` for Series D and later and growth rounds.

**Amounts.** Form D: `amountUsd` is the total sold — `null` when nothing is sold yet (`firstSaleYetToOccur`), with the offering in `amountOfferedUsd` (`null` when "Indefinite"). Releases and articles: the first amount raised in the headline, else in the first paragraph — `$12M`, `US$10M`, `USD 56 mln`, `€100 Million`, `£8.97 million`, `₹5 Crore`, `Rs 120 Cr`, `10 Billion Won` — converted to US dollars at a fixed table (EUR 1.08, GBP 1.27, CAD 0.73, AUD 0.66, SGD 0.74, CHF 1.13, INR 0.012, JPY 0.0067, KRW 0.00073, CNY 0.14 and a few more), the original `currency` kept. An amount stated as a valuation ("at $600 Million Valuation") goes to `valuationUsd`; totals, revenue and money "to fund" something are not the raise.

**Investors.** From "led by", "co-led by", "<Firm>-led", "with participation from", "investors include", "backed by" and "raises … from" — **organisations only**: a name with a corporate or investor word (Ventures, Capital, Partners, Fund, Investments, Equity, Growth, Holdings, Management, Advisors, Angels, Accelerator, Labs, Seed, VC, LP, LLC, Inc, Corp, Group, Bank, Foundation, Family Office, Trust, University, Collective, Syndicate), an acronym (NEA, GV, MMC), or a known firm whose name is built from surnames (Andreessen Horowitz, Sequoia, a16z, Y Combinator, …). An angel or a partner named as the lead is **dropped**, not redacted. `leadInvestor` is the organisation the text says led.

**Industry.** One of 20: `ai`, `software`, `fintech`, `financial-services`, `crypto`, `healthcare`, `biotech`, `medical-devices`, `energy`, `climate`, `real-estate`, `consumer`, `food`, `robotics`, `space`, `defense`, `cybersecurity`, `semiconductors`, `mobility`, `industrial` — from the Form D industry group (kept verbatim in `industryGroup`), or the first match in the release text with investor names left out.

**The confidence scale:**

| `confidence` | What it rests on | Example |
|---|---|---|
| `high` | A Form D, or a release stating both an amount and a round | "Casap Raises $56M Series B…" |
| `medium` | A release or article stating a round or an amount | "Trajectory raises $45M to make AI model training accessible…" |
| `low` | The funding words alone | "Equinox … Raises Capital from Existing Investors…" |

**Dedupe.** `eventKey` = normalised company + round type + amount bucket + 30-day window. Two announcements are one round when the company is the same, the round types agree (or one is `unknown`), the amounts agree within 15 % (or one is unstated) and they are at most 30 days apart; the wire row is kept, the others' URLs go into `alsoReportedBy[]` (free), and a later copy can fill an amount or round the first one left out. **Form D rows are never merged** — a filing states different facts — and carry in `relatedEvents[]` the keys of announcements about the same company within 60 days. Amendments (`D/A`) are separate events, flagged `isAmendment: true` with `previousAccession`.

**Individuals never appear.** Form D's related persons, sales-compensation recipients and signatures are never parsed. In every headline and teaser: attribution clauses (`"…," said <Name>, <title>` and `"<Name>, CEO of X, said…"`) and quoted sentences are cut entirely; appointments ("Appoints <Name> as CEO"), `<role> <Name>`, a given name followed by a surname, `Mr./Ms./Dr. <Surname>` and `<First Last>, (CEO|founder|…)` become `[individual]`. Excerpts are at most 400 characters after redaction.

### Input reference

| Field | Type | Default | What it does |
|---|---|---|---|
| `mode` | select | `market` | `market` reads everything new for the last `days`; `companies` reads the list below. |
| `companies` | string\[] | — | Companies mode: names (`Journify`), tickers (`TSLA`) or CIKs (`2163386`), up to 500. One filer listed twice is read once. |
| `days` | integer | 3 (prefill 2) | Market mode: 1–30 days back. |
| `months` | integer | 24 | Companies mode: 1–120 months back. |
| `sources` | string\[] | all three | `sec-form-d`, `press-release`, `news`. |
| `excludeFunds` | boolean | `true` | Leave out pooled investment funds and SPVs (see *Where the signals come from*). Off: they come back as `roundType: fund`. |
| `includeAmendments` | boolean | `false` in market mode, `true` in companies mode | Form D/A amendments. Off in market mode, they are skipped before reading (free). |
| `minAmountUsd` | integer | 0 | Floor, in US dollars, on the amount sold (Form D; the amount offered when nothing is sold yet) or raised (releases, articles). An event with no amount does not pass a floor above 0. |
| `maxAmountUsd` | integer | — | Ceiling, in US dollars. An event with no amount passes. |
| `roundTypes` | string\[] | `[]` | Return only these round types. |
| `industries` | string\[] | `[]` | Return only these industries — the 20 above, or a Form D industry group as SEC writes it (`Biotechnology`). |
| `states` | string\[] | `[]` | Form D only: issuer state codes (`CA`, `NY`). Releases and articles carry no state, so setting it reads Form Ds only. |
| `securityTypes` | string\[] | `[]` | Form D only: `equity`, `debt`, `option-warrant`, `pooled-fund`, `other`. Setting it reads Form Ds only. |
| `maxEvents` | integer | 200 (prefill 150) | Market mode: stop after this many events, 1–5,000. Announcements are written first, then Form Ds, newest first. |
| `maxEventsPerCompany` | integer | 50 | Companies mode: 1–500 events per company. |
| `userAgentContact` | string | — (prefilled) | **Required for Form D.** Your organisation and a reachable address (`Acme Research data@acme.com`). Empty, the shipped placeholder, or a documentation address (`example.com` and the like) stops the run before any request. Not needed when `sources` leaves out `sec-form-d`. |
| `maxConcurrency` | integer | 4 | 1–8 documents, searches or companies at once. SEC's 8-per-second limit is shared whatever this is. |
| `maxRunSecs` | integer | 240 | 30–3,600. Rows already returned are kept — and billed — when it runs out. |
| `proxyConfiguration` | object | `{ "useApifyProxy": true }` | For the wires and Google News only. SEC always goes direct. |

A run with nothing usable — no company in companies mode, no source, an unknown source, round type, security type or industry, a state that is not a two-character code, a floor above the ceiling, `states` or `securityTypes` without `sec-form-d`, an unusable `userAgentContact` — finishes **FAILED** before a single request, with a free `invalid-input` row saying why.

### Output reference

Every row has the same columns, `null` where a column does not apply, so the dataset exports as one table. `rowType` is `funding-event`, `document`, `company` or `diagnostic`.

**On every row:** `ok`, `rowType`, `input` (your entry, as typed; empty in market mode), `company`, `cik`, `source` (`sec-form-d` · `press-release` · `news`), `scrapedAt`.

**Event and document rows:** `sourceName` (`SEC EDGAR`, the wire, or the publisher), `url` (the `primary_doc.xml`, the release, or the Google News link), `date` (the filing date, or the publication time), `accessionNumber`, `isAmendment`, `isPooledFund`.

**Funding-event rows** (paid): `roundType`, `stage`, `amountUsd`, `amountOfferedUsd`, `amountRemainingUsd`, `currency`, `amountText`, `previousAccession`, `securityTypes[]`, `industry`, `industryGroup` (Form D verbatim), `fundType`, `entityType`, `yearOfIncorporation`, `jurisdiction`, `city`, `state`, `country`, `revenueRange`, `netAssetValueRange`, `exemptions[]` (Form D codes: `06b` Rule 506(b), `06c` Rule 506(c), `04` Rule 504, `3C.1`/`3C.7` the private-fund exclusions), `firstSaleDate`, `firstSaleYetToOccur`, `moreThanOneYear`, `isBusinessCombination`, `minimumInvestmentUsd`, `investorCount`, `hasNonAccreditedInvestors`, `salesCommissionsUsd`, `findersFeesUsd`, `grossProceedsUsedUsd` (amounts only), `investors[]` (organisations only), `leadInvestor`, `valuationUsd`, `title` (the redacted headline, or a generated one: "Form D: $4.5M equity offering, $4.4M sold, 17 investors"), `excerpt` (redacted, ≤ 400 characters), `eventKey`, `relatedEvents[]`, `alsoReportedBy[]`, `confidence`.

**Document rows** (paid): `eventCount`, `bytes`.

**Company rows** (free): `resolvedBy` (`cik`, `ticker`, `name`, `form-d-search`, `as-typed`), `documentsRead` (per source), `eventsByRoundType`, `latestRound`, `totalRaisedUsd` (the amounts sold in the window's new Form Ds; with none, the announced amounts), `unresolved` (why the entry is not an SEC filer that was read).

**Diagnostic rows** (free): `errorType`, `error`, and `url` where one applies.

| `errorType` | Meaning |
|---|---|
| `invalid-input` | The input cannot be used: see *Input reference*. The run is then FAILED. |
| `unresolved` | The entry is not a CIK, ticker or registered name, and no Form D issuer carries the name (or only funds named after it do). Releases and news are still searched by the name as typed. |
| `source-unavailable` | A Form D not on sec.gov, a wire or news search that could not be read (a challenge page, an error), or SEC refusing this run's User-Agent. |
| `rate-limited` | SEC refused the run for its request rate (SEC's "Request Rate Threshold Exceeded" page). No further SEC request is sent in that run. |
| `timeout` | The run's `maxRunSecs` ran out before the window was read. Rows already returned are kept. |
| `parse-failed` | A document that is not a Form D (or above 5 MB), or a feed page that is not a feed. |
| `internal` | This Actor's own error. The run is then FAILED. |

Pooled funds skipped by `excludeFunds` (`fund-skipped`) and amendments skipped in market mode are counted in the run's status message, not written as rows.

### Pricing

| Event | What it is | FREE | BRONZE | SILVER | GOLD |
|---|---|---|---|---|---|
| `actor-start` | Once per run, only after the run has returned a paid row | $0.001 | $0.001 | $0.001 | $0.001 |
| **`funding-event`** | One funding round from one Form D, release or article | **$0.005** | **$0.005** | **$0.004** | **$0.003** |
| `document` | One Form D, release or article read and returned | $0.001 | $0.001 | $0.001 | $0.001 |

**$5.00 per 1,000 funding events**, plus $1.00 per 1,000 documents read.

| Run | Cost |
|---|---|
| The prefill as the offline test suite runs it — 48 events from 48 documents | **$0.289** |
| The example task offline — 35 equity rounds of $1M+ from 68 Form Ds read (33 outside the filters) | **$0.244** |
| A 200-event market day, ≈ 300 documents read (funds the listing does not mark are read and billed) | **≈ $1.30** |
| The same at GOLD | **≈ $0.90** |
| A watchlist of 50 companies at ≈ 2 events each | **≈ $0.60** |

Charging is charge-after-push: rows are in your dataset before the event is recorded. A document and its event are delivered **together or not at all** — both are checked against `ACTOR_MAX_TOTAL_CHARGE_USD` together — and the run stops reading when the next pair would not fit, finishing SUCCEEDED and saying so. A Form D read and found to be a fund, an amendment you left out or a filing outside your filters bills its `document` row only. Never charged: Form Ds skipped before reading (3(c)(1)/3(c)(7) funds, amendments in market mode, other states when the listing says so), news copies merged into `alsoReportedBy[]`, company rows, diagnostic rows, documents that could not be read, and a run that returns nothing (start fee included). A run that read documents and found no funding event is SUCCEEDED — "Read N documents, no funding events found" — and its document rows bill.

### Limits

- **Form D is US only**, and only for offerings under Regulation D: a round raised abroad, from a US company's foreign parent, or under another exemption files no Form D. Wires and news cover the rest, in English.
- **Form D lags and is partial.** Up to 15 days after the first sale; amounts may be "Indefinite"; no valuation, no price, no investor names; the issuer's name is its legal name (an LLC for a property, a series of a fund).
- **Funds are excluded by default.** A fund that does not claim 3(c)(1) or 3(c)(7) in its listing is read before it is known to be one.
- **People are never named.** Form D's officers and directors are not read; a person in a headline is `[individual]`; an angel investor is dropped from `investors[]`. A company whose name is a person's name can be redacted in a headline too.
- **News is headlines only.** Google News gives a headline and a publisher; the article is never fetched, so its amount and investors are what the headline says.
- **Wires: listings, first page.** Twelve terms per wire in market mode, three per company; a release further down the results, or a fact only in its body, is not seen.
- **Classification is heuristic.** The company is read from the headline's subject; the amount is the first one raised; investors are what the text names. Read a row with its `title` and `excerpt`.
- **SEC limits:** at most 8 requests per second for the whole run; the current-filings feed is paged back at most 40 pages (4,000 filings) and full-text search 1,000 filings; documents above 5 MB are skipped.
- **Not investment advice.** A row is what a company filed or announced, as of its date.
- Not affiliated with the SEC, GlobeNewswire, PR Newswire, Google, or any company named in the output. Names are used descriptively, to say what was read and what was found.

### Use it from an AI agent, or from code

One JSON object in, one flat array out — the shape agent runtimes want. The Actor runs with **limited permissions** and **pay-per-event** pricing, so it works over the Apify MCP server (`mcp.apify.com`) and with agentic (x402) payments. The **Integrations** tab pushes results to Slack, a webhook, Zapier, Make, Google Sheets, Snowflake or BigQuery, and Apify Schedules run it unattended — every morning with `days: 1`, the dataset is yesterday's rounds.

```bash
curl -X POST "https://api.apify.com/v2/acts/insight.solutions~funding-signals-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"days":1,"minAmountUsd":1000000,"userAgentContact":"Acme Research data@acme.com"}'
```

```python
## pip install apify-client
from apify_client import ApifyClient

client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("insight.solutions/funding-signals-api").call(run_input={
    "mode": "market",
    "days": 1,
    "roundTypes": ["seed", "series-a", "equity-offering"],
    "userAgentContact": "Acme Research data@acme.com",
})

for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    if row["rowType"] == "funding-event":
        print(row["company"], row["state"], row["roundType"], row["amountUsd"], row["leadInvestor"], row["url"], sep=" | ")
```

**Building an app with Lovable?** Apify's Lovable connector runs any Actor from inside a Lovable project with your Apify token. Connect Apify in Lovable once, then ask it: *"Use Apify to run insight.solutions/funding-signals-api every morning and build a 'who just raised' feed around the results."* A one-day market run finishes well inside Lovable's 300-second synchronous limit at the default settings, and every result is one JSON object per row, so the generated app needs no extra parsing. Usage bills to the Apify account whose token is connected.

### FAQ

**Why do so many Form D companies look like property LLCs and holding companies?**
Because they are: Form D covers every Regulation D offering, and real-estate syndications, oil and gas programmes and single-asset LLCs file far more of them than startups do. Filter with `industries`, `securityTypes: ["equity"]` and `minAmountUsd`, or keep `excludeFunds` on to drop the funds.

**Why is `amountUsd` null on a Form D?**
Nothing has been sold yet (`firstSaleYetToOccur: true`) — the offering is in `amountOfferedUsd`. A `minAmountUsd` floor then compares against the amount offered.

**Why does a startup I know raised not appear?**
It may not have filed yet (up to 15 days), may have raised under a different exemption or abroad, or filed under its legal name ("Acme Labs, Inc." for "Acme"). Try companies mode with its name or CIK, and keep the wires and news on.

**Why are there two rows for one round?**
A Form D and an announcement are never merged — they state different facts — but the Form D row carries the announcement's `eventKey` in `relatedEvents[]`. Two announcements of one round are merged into one row.

**What does "\[individual]" stand for?**
A person — a founder, an executive, an angel. This Actor never returns people's names. The company and the investing firms are kept.

**Why do I have to give a contact for the SEC?**
The SEC requires every automated client to declare who it is and how to reach it, and refuses requests without that. It is not an API key and costs nothing; it is your name on your traffic.

**Is any of this investment advice?**
No. This Actor reproduces what companies filed and announced. It does not evaluate them.

### Legal and data-protection notes

- **Public sources only.** SEC EDGAR's current-filings feed, Form D documents, EDGAR full-text search, SEC's ticker file and `submissions`, two press wires' public search pages, and Google News' public RSS search — all served to any anonymous visitor. It never logs in, never supplies cookies or session tokens, and never accepts credentials. SEC is accessed under its published fair-access rules: a declared User-Agent and at most 8 requests per second.
- **Form D related persons are deliberately not read.** A Form D lists the issuer's executive officers, directors and promoters with their addresses, the brokers paid to sell with their CRD numbers, and the signer. This Actor cuts those blocks out before it reads anything, and its parser is an allow-list of company-level fields; the issuer's street, ZIP and phone are not on it.
- **Companies, not people.** People named in a headline or teaser are replaced or, as investors, dropped; attribution clauses are cut. There is no person search and no input that names a person.
- **We are not a data broker.** This Actor holds no database and sells no list. It reads public filings and listings on demand and writes the result to *your* dataset on *your* account.
- **Not investment, legal or tax advice.** A row is what a company filed or announced, as of its date. Filings can be late, amended or wrong; check the linked document before relying on it.
- **Not affiliated with, endorsed by or sponsored by** the SEC, GlobeNewswire, PR Newswire, Google, or any company named. Names and trademarks are used descriptively.
- **You are responsible for how you use the output**, including any outreach to the companies it names, under the GDPR, the CCPA, ePrivacy, CAN-SPAM and other applicable law.

### Our other Actors

Every Insight Solutions Actor is pay-per-result with no browser, no login and no API key, and every one of them returns free diagnostic rows instead of billing for failures. Prices are per 1,000 results.

**Video, audio & social**

- [YouTube Transcript Scraper & API — Captions to Text, SRT & VTT](https://apify.com/insight.solutions/youtube-transcript-api) — captions as timed segments, text, SRT or VTT, with language fallback and translation.
- [YouTube Comments Scraper — Comments & Replies with Likes](https://apify.com/insight.solutions/youtube-comments-api) — comments and replies with likes, pinned and hearted flags, newest or top sort.
- [YouTube Channel Scraper — Videos, Shorts & Search](https://apify.com/insight.solutions/youtube-channel-api) — a channel's videos, Shorts and live streams, plus YouTube search.
- [Podcast Search, Episodes & Charts API](https://apify.com/insight.solutions/podcast-api) — Apple Podcasts search, charts and full episode feeds.
- [Bluesky Scraper](https://apify.com/insight.solutions/bluesky-scraper) — profiles, posts, followers and follows from the public AT Protocol API.
- [Telegram Channel Scraper — Posts, Views & Stats](https://apify.com/insight.solutions/telegram-channel-scraper) — posts, views and channel stats from public Telegram channels.
- [Substack Scraper](https://apify.com/insight.solutions/substack-scraper) — posts with full free text, comments and publication profiles.
- [Sponsor & Advertiser Finder — YouTube, Podcasts & Newsletters](https://apify.com/insight.solutions/sponsorship-intelligence-api) — which brands sponsor which YouTube channels, podcasts and Substack newsletters, with promo codes, offers and sponsor links, company-level only.
- [Google Ads Transparency Center API — Advertisers & Ads](https://apify.com/insight.solutions/google-ads-transparency-api) — every ad a verified advertiser runs on Google, from the Ads Transparency Center, by brand name, AR id or domain: format, first and last shown, days shown and preview links, individuals excluded.
- [Hacker News API](https://apify.com/insight.solutions/hacker-news-api) — stories, comments, users, front page and a structured "Who is hiring?" parser from the official HN APIs.
- [GitHub Trending & Repo Scraper — Stars, Releases & Search](https://apify.com/insight.solutions/github-repos-api) — repository facts, trending lists, releases and search, no token needed for small runs.
- [Discourse Forum Scraper — Topics, Posts & Categories](https://apify.com/insight.solutions/discourse-forum-api) — topics, posts and categories from any Discourse community via its own JSON endpoints, usernames only.

**News, documents & the web**

- [Google News Scraper — Search, Topics & Real Article URLs](https://apify.com/insight.solutions/google-news-api) — news search and topic feeds with the publisher's real URL decoded.
- [Website to Markdown Converter & API — for LLMs & RAG](https://apify.com/insight.solutions/website-content-extractor) — any site as clean Markdown, text and heading-aware chunks.
- [WordPress Scraper — Posts & Pages from Any WP Site, No Login](https://apify.com/insight.solutions/wordpress-posts-api) — posts and pages from any WordPress site as clean text or Markdown, with categories, tags and images.
- [Website Metadata Extractor — Schema.org, Open Graph & JSON-LD](https://apify.com/insight.solutions/website-metadata-api) — any URL's meta tags, Open Graph, Twitter cards, hreflang, feeds, JSON-LD and microdata, with normalised Product, Article, Event and FAQ entities.
- [Subdomain Finder — Certificate Logs & DNS, No API Key](https://apify.com/insight.solutions/subdomain-finder-api) — every subdomain of a domain from certificate-transparency logs, resolved over DNS, with an optional live HTTP check.
- [Internet Archive Scraper & API — Search, Metadata & Files](https://apify.com/insight.solutions/internet-archive-api) — archive.org search, item metadata, files and reviews.
- [Wayback Machine Scraper — Archived URLs, Snapshots & Diffs](https://apify.com/insight.solutions/wayback-toolkit) — archived URL inventories, snapshots and text diffs between dates.
- [Website Technology Detector — Tech Stack Checker & Lookup](https://apify.com/insight.solutions/website-tech-detector) — the tech stack behind any site, with the evidence for each detection.
- [Domain Lookup API — DNS, WHOIS/RDAP, SSL & Providers](https://apify.com/insight.solutions/domain-intelligence-api) — DNS, RDAP registration, TLS certificate and HTTP facts in one row per domain.
- [SEO Audit Tool — Sitemap Crawl & On-Page Checker](https://apify.com/insight.solutions/seo-page-audit) — sitemap crawl with on-page checks, structured data and broken-link reports.
- [Keyword Suggestions Tool & API — Google, Bing & Amazon](https://apify.com/insight.solutions/keyword-suggestions-api) — Google, YouTube, Bing, Amazon and eBay autocomplete with alphabet and question expansions.
- [Website Contact Scraper — Email, Phone & Socials Extractor](https://apify.com/insight.solutions/website-contact-extractor) — emails, phone numbers and social profiles from any list of websites.
- [Company Email Finder — Published Emails & Phones by Name](https://apify.com/insight.solutions/company-contact-finder) — company names in, each one's verified website with its business emails, phone numbers and social profiles out.
- [Web Search Results API](https://apify.com/insight.solutions/web-search-api) — Bing and DuckDuckGo organic results with snippets, no key, no browser.
- [Company Enrichment API](https://apify.com/insight.solutions/company-enrichment-api) — a domain in, a company profile out: firmographics, contacts, tech stack, DNS and hiring signal.
- [Company Dossier API](https://apify.com/insight.solutions/company-dossier-api) — one company in, twelve sections out: profile, tech, contacts, DNS, open roles, news, SEC filings, federal awards, recalls, YC batch and apps.
- [Press Release Scraper — GlobeNewswire, PR Newswire & More](https://apify.com/insight.solutions/press-releases-api) — GlobeNewswire and PR Newswire releases plus any newsroom feed, by keyword, company, ticker or subject.
- [Federal Register API](https://apify.com/insight.solutions/federal-register-api) — rules, proposed rules, notices and the Public Inspection desk with dockets, comment deadlines and CFR references.
- [Academic Papers Search API](https://apify.com/insight.solutions/academic-papers-api) — OpenAlex, Crossref, arXiv and PubMed in one row per paper: abstract, citations, open-access PDF, authors and venue.
- [RSS & Atom Feed Monitor](https://apify.com/insight.solutions/rss-feed-monitor) — any RSS, Atom or JSON feed (or an OPML file) in, only the new items out, with keyword filters and a webhook.
- [Website Change Monitor](https://apify.com/insight.solutions/website-change-monitor) — watch any pages, diff the text between runs, get change rows with added/removed lines, keyword alerts and a webhook.
- [Wikipedia & Wikidata API](https://apify.com/insight.solutions/wikipedia-api) — article text, search, daily pageviews and Wikidata entity facts, any language edition.

**Business, finance & jobs**

- [Congress Trades Tracker API — STOCK Act PTRs + SEC Form 4](https://apify.com/insight.solutions/congress-insider-trades-api) — STOCK Act periodic transaction reports and SEC Form 4 insider trades in one schema.
- [Federal Contracts, Grants & Lobbying API](https://apify.com/insight.solutions/federal-contracts-grants-api) — SAM.gov opportunities, USAspending awards, Grants.gov notices and Senate lobbying filings in one schema.
- [SEC EDGAR API](https://apify.com/insight.solutions/sec-edgar-api) — filings, XBRL financials and full-text search by ticker or CIK.
- [Litigation Signals API — Lawsuits, Settlements & Investigations](https://apify.com/insight.solutions/litigation-signals-api) — lawsuits, settlements and investigations per public company from SEC 10-K, 10-Q and 8-K disclosures, press wires and SEC, FTC and DOJ notices, company-level only.
- [Clinical Trials & FDA API](https://apify.com/insight.solutions/clinical-trials-fda-api) — ClinicalTrials.gov studies plus openFDA recalls, labels, approvals, 510(k)s and adverse-event reports.
- [Product & Vehicle Recalls API](https://apify.com/insight.solutions/product-recalls-api) — CPSC, NHTSA, FDA and USDA recalls, vehicle complaints and ratings, plus a VIN decoder.
- [YC Companies List & Directory Scraper — Batches & Founders](https://apify.com/insight.solutions/yc-companies-directory) — the YC directory with founders and social links, filterable by batch, industry and hiring status.
- [Job Scraper for Greenhouse, Lever, Ashby & 10+ ATS Career Sites](https://apify.com/insight.solutions/ats-jobs-api) — jobs straight from Greenhouse, Lever, Ashby, Workable and 10+ other ATS career sites.
- [Workday Jobs Scraper — All Postings from Any Workday Site](https://apify.com/insight.solutions/workday-jobs-api) — every posting on any Workday career site, with facets, search, posted dates and full descriptions.
- [Job Postings Monitor — New & Closed Roles, Hiring Alerts](https://apify.com/insight.solutions/job-postings-monitor) — new, closed and changed postings on the career sites you watch.
- [Hiring Signals API — Open Roles & Hiring Surge by Company](https://apify.com/insight.solutions/hiring-signals-api) — one row per company per run: open roles, what opened and closed, department and seniority breakdowns, and a hiring-surge flag.
- [Careers Page Scraper — Open Roles from Any Company's Site](https://apify.com/insight.solutions/careers-page-jobs-api) — open roles from any company's own careers site: domain in, the platform recognised (Eightfold, Phenom, Jibe, iCIMS, Google, Amazon, 14 ATSs) or the site's structured data read, one row per job.
- [Wellfound Jobs Scraper — Startup Roles, Salary & Equity](https://apify.com/insight.solutions/wellfound-jobs-api) — startup jobs from Wellfound's role listings, by role and city or remote: salary and equity as shown, remote policy, experience, and each startup's size, stage and badges, no recruiter contacts.
- [Remote Jobs API](https://apify.com/insight.solutions/remote-jobs-api) — RemoteOK, Remotive, We Work Remotely, Himalayas, Jobicy and more in one schema, deduplicated.
- [Shopify Products Scraper — Catalogue, Prices & Stock](https://apify.com/insight.solutions/shopify-products-api) — any Shopify store's catalogue, variants, prices and stock signals.
- [WooCommerce Products Scraper — Prices, Variants & Stock](https://apify.com/insight.solutions/woocommerce-products-api) — any WooCommerce store's catalogue, prices, variants and stock through its public Store API.
- [Price Tracker & Monitor — Any Retailer's Prices & Stock](https://apify.com/insight.solutions/price-tracker-api) — price, stock, list price and discount from any product URL, read from the page's structured data, with price-drop and restock rows between runs.
- [Rightmove Scraper — UK Listings for Sale & Rent by Area](https://apify.com/insight.solutions/rightmove-property-api) — UK property for sale and to rent by area from Rightmove's own search API: price, bedrooms, type, tenure, size, coordinates, photos, status and the agent branch, one row per listing.
- [Shopify App Store Scraper — Apps, Pricing, Ratings & Reviews](https://apify.com/insight.solutions/shopify-app-store-api) — Shopify App Store listings by category, collection or developer: pricing plans, ratings and merchant reviews.
- [Luma Events Scraper — Events by City, Category & Calendar](https://apify.com/insight.solutions/luma-events-api) — upcoming Luma events by city, category or calendar: dates, venue, price, capacity and organiser calendar, no host names.
- [Eventbrite Scraper — Events by City, Category & Organizers](https://apify.com/insight.solutions/eventbrite-events-api) — upcoming Eventbrite events by city, category, online or organiser, with the organising companies behind them: dates, venue, price, ticket status, followers and website, no browser, individuals never named.
- [Meetup Scraper — Upcoming Events & Group Stats](https://apify.com/insight.solutions/meetup-events-api) — upcoming events of the Meetup groups you name, and the groups themselves: dates, venue, RSVPs, fee, member count, topics and ratings, no member data.
- [Shopify Store Monitor](https://apify.com/insight.solutions/shopify-store-monitor) — price drops, sales, restocks, sell-outs and new products on any Shopify store, one row per change.
- [Shopify Store Finder — Discover & Verify Stores by Niche](https://apify.com/insight.solutions/shopify-store-finder) — Shopify stores by niche and country, each verified on its own storefront, with product count, currency, country, price range and sample products.
- [Public Tenders API](https://apify.com/insight.solutions/public-tenders-api) — EU TED, UK Find a Tender and Contracts Finder notices by keyword, CPV code, country, stage and deadline.
- [Nonprofit Lookup & IRS 990 API — EIN, Financials, NTEE](https://apify.com/insight.solutions/nonprofit-990-api) — search US nonprofits and get EIN, NTEE code and multi-year Form 990 financials.
- [OpenStreetMap Places API](https://apify.com/insight.solutions/osm-places-api) — businesses and points of interest by category and area from OpenStreetMap: name, address, coordinates, website, phone, opening hours.

**Apps & games**

- [App Store & Google Play Reviews Scraper — Ratings & Replies](https://apify.com/insight.solutions/app-reviews-api) — reviews from both stores with ratings, versions and developer replies.
- [App Store Top Charts & App Search API](https://apify.com/insight.solutions/app-charts-api) — Apple top charts by country and genre, plus app search and details.
- [App Store Keyword Rank Tracker](https://apify.com/insight.solutions/app-store-keyword-rank-tracker) — where any app ranks for any keyword on the App Store and Google Play, with rank changes and ASO suggestions.
- [Steam Reviews Scraper — Reviews & Game Details](https://apify.com/insight.solutions/steam-reviews-api) — Steam reviews with playtime, helpfulness and game details.
- [Steam Game Data API](https://apify.com/insight.solutions/steam-store-stats-api) — prices, tags, review scores, live player counts and top charts.
- [Sports Scores & Schedules API](https://apify.com/insight.solutions/sports-scores-api) — scores, schedules, standings, teams and headlines for the NFL, NBA, MLB, NHL, soccer and more, no key.
- [App Store Monitor](https://apify.com/insight.solutions/app-store-monitor) — App Store and Google Play listings watched between runs: new versions with release notes, price, rating and listing changes, one row per change.

# Actor input Schema

## `mode` (type: `string`):

**market** reads every new Form D on EDGAR, the press wires and Google News for the last `days` — who raised money this week, anywhere in the US. **companies** reads the companies in the list below: their Form Ds over the last `months`, and the releases and news that name them.

## `companies` (type: `array`):

One per line: a company name (`Yipio`, `Journify`), a ticker (`TSLA`) or an SEC CIK (`2163386`), up to 500. A CIK is read directly; a ticker or registered name is resolved through SEC's ticker file; any other name through EDGAR full-text search of Form Ds, keeping only an issuer whose name is the company's (an SPV or fund named after it is not the company). A name SEC does not know is still searched on the wires and in Google News, as typed.

## `days` (type: `integer`):

How far back market mode reads, 1–30 days: Form Ds by filing date, releases and articles by publication time. EDGAR's current-filings feed is paged back until the window is covered; a part of the window the feed no longer holds is read through EDGAR full-text search.

## `months` (type: `integer`):

How far back companies mode reads each company's Form Ds, releases and news, 1–120 months.

## `sources` (type: `array`):

`sec-form-d` — SEC Form D notices of exempt offerings, read from EDGAR directly (never through a proxy). `press-release` — GlobeNewswire and PR Newswire keyword search listings, headline and teaser only. `news` — Google News search, headline and publisher only; the article itself is never fetched.

## `excludeFunds` (type: `boolean`):

Form D is also how venture, hedge and real-estate funds, and the SPVs that buy into a startup, notify the SEC — about a third of all Form Ds. On (the default), they are left out: a filing that claims the private-fund exclusions 3(c)(1) or 3(c)(7) is skipped before it is read (free), and one that turns out to be a pooled fund when read is skipped after it (its document row is billed). Off, they come back with `roundType: fund`.

## `includeAmendments` (type: `boolean`):

A D/A updates an earlier Form D — often only the amount sold so far. Left empty, amendments are left out in market mode (they are skipped before reading, free) and kept in companies mode, flagged `isAmendment: true` with `previousAccession`.

## `minAmountUsd` (type: `integer`):

Return only events of at least this many US dollars: the amount sold for a Form D (the amount offered when nothing is sold yet), the amount raised for a release or an article. 0 for no floor. An event with no stated amount does not pass a floor above 0.

## `maxAmountUsd` (type: `integer`):

Return only events of at most this many US dollars. Empty for no ceiling. An event with no stated amount passes.

## `roundTypes` (type: `array`):

Optional filter. Releases and articles: `pre-seed`, `seed`, `series-a` … `series-f`, `growth`, `venture-debt`, `debt`, `grant`, `crowdfunding`, `ipo`, `fund`, `unknown`. Form Ds: `equity-offering`, `debt-offering`, `fund`, `other`. Leave empty for all.

## `industries` (type: `array`):

Optional filter, one per line: `ai`, `software`, `fintech`, `financial-services`, `crypto`, `healthcare`, `biotech`, `medical-devices`, `energy`, `climate`, `real-estate`, `consumer`, `food`, `robotics`, `space`, `defense`, `cybersecurity`, `semiconductors`, `mobility`, `industrial` — or a Form D industry group as SEC writes it (`Biotechnology`, `Other Technology`, `Commercial`).

## `states` (type: `array`):

Optional filter on the issuer's state in its Form D, as two-letter codes (`CA`, `NY`, `TX`). Releases and articles carry no state, so setting this reads Form Ds only.

## `securityTypes` (type: `array`):

Optional filter on what the Form D offers: `equity`, `debt`, `option-warrant`, `pooled-fund`, `other`. Releases and articles carry no security type, so setting this reads Form Ds only.

## `maxEvents` (type: `integer`):

Market mode stops when it has returned this many funding events, 1–5,000. Announcements are written first, then Form Ds, newest first.

## `maxEventsPerCompany` (type: `integer`):

Companies mode stops reading a company when it has returned this many events, 1–500.

## `userAgentContact` (type: `string`):

Your organisation and a working contact address, e.g. 'Acme Research data@acme.com'. The SEC requires every automated request to declare who is making it and how to reach them (sec.gov/os/accessing-edgar-data), and answers HTTP 403 without it. The pre-filled value is the publisher's own contact so the example run works out of the box; please replace it with yours for real use, so the SEC reaches you, not us, about your traffic. An empty value is not replaced by a shared identity: the run stops and says so. Not needed when `sources` leaves out `sec-form-d`.

## `maxConcurrency` (type: `integer`):

How many Form Ds, searches or companies are read at once, 1–8. Every SEC request in the run shares one limit of 8 per second whatever this is set to.

## `maxRunSecs` (type: `integer`):

Wall-clock budget for the whole run. When it is reached the Actor stops reading, keeps — and bills — every row it already wrote, and files a free `timeout` row.

## `proxyConfiguration` (type: `object`):

Used for the GlobeNewswire, PR Newswire and Google News searches only. SEC is always read directly, never through a proxy: SEC counts requests per requester, and a shared exit is the worst address to be counted against.

## Actor input object example

```json
{
  "mode": "market",
  "companies": [
    "Yipio",
    "Journify",
    "2163386"
  ],
  "days": 2,
  "months": 24,
  "sources": [
    "sec-form-d",
    "press-release"
  ],
  "excludeFunds": true,
  "minAmountUsd": 0,
  "roundTypes": [],
  "industries": [],
  "states": [],
  "securityTypes": [],
  "maxEvents": 150,
  "maxEventsPerCompany": 50,
  "userAgentContact": "Insight Solutions austinhughhillis@gmail.com",
  "maxConcurrency": 4,
  "maxRunSecs": 240,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Funding events from SEC Form D, press wires and Google News, in one schema, plus document, company and diagnostic rows. Delivered as JSON items in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "market",
    "days": 2,
    "sources": [
        "sec-form-d",
        "press-release"
    ],
    "excludeFunds": true,
    "maxEvents": 150,
    "userAgentContact": "Insight Solutions austinhughhillis@gmail.com",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("insight.solutions/funding-signals-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "market",
    "days": 2,
    "sources": [
        "sec-form-d",
        "press-release",
    ],
    "excludeFunds": True,
    "maxEvents": 150,
    "userAgentContact": "Insight Solutions austinhughhillis@gmail.com",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("insight.solutions/funding-signals-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "market",
  "days": 2,
  "sources": [
    "sec-form-d",
    "press-release"
  ],
  "excludeFunds": true,
  "maxEvents": 150,
  "userAgentContact": "Insight Solutions austinhughhillis@gmail.com",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call insight.solutions/funding-signals-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,insight.solutions/funding-signals-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/fwda8p2dYYFLQ0X8p/builds/OR0MkkRKxStcJZ9im/openapi.json
