# Funding Record - SEC Form D, Companies House, Press (`mambalabs/funding-investor-record`) Actor

Returns a company funding record from PRIMARY sources: SEC EDGAR Form D filings, UK Companies House registrations and press coverage, each labelled with where the number came from. A regulatory filing and a press release are never merged into one column. Not Crunchbase, not a resold database.

- **URL**: https://apify.com/mambalabs/funding-investor-record.md
- **Developed by:** [Mamba Labs](https://apify.com/mambalabs) (community)
- **Categories:** Lead generation, News, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.15 / 1,000 company checkeds

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### 🔎 What can Funding Record do?

Give it a company name and domain. It reads **primary sources** and returns a funding record: SEC EDGAR Form D amounts, UK Companies House registration details, and press coverage of funding rounds. One flat row per company.

Every number travels with `source_of_record`, which says whether it came from a legal filing or from a press release.

| 📦 What you get | ⚙️ Features and integrations |
|---|---|
| 📄 **SEC Form D filings**, with the accession number<br>🇬🇧 **UK Companies House registration**, with your own key<br>📰 **Press coverage**, labeled as press and never merged with a filing<br>🧾 **32 flat fields**, `snake_case`, one row per company | 🏛️ **Primary sources only**, not a resold database<br>🎯 **Entity identity gate**, a near name match is rejected and recorded<br>🧮 **Rejection accounting** in `filings_rejected` and `related_entity_note`<br>⬇️ **Export** to JSON, CSV, Excel, HTML or XML |

Bought by teams selling into recently funded companies, investors screening primary filings, and anyone who needs a funding number they can cite to a document.

> 🚫 **This is not Crunchbase and it is not a funding database.** It queries primary sources and returns what they actually say. That means it returns less than a database would, and what it returns has a filing behind it. A company with no Form D on file gets `form_d_filed: false`, not a guess.

### 💡 Why use Funding Record?

**A filing and a press release are not the same kind of fact.** A Form D is submitted to the SEC under penalty. A press figure is what a company told a journalist. Every database that merges them into one "funding" column is quietly asking you to treat them as equivalent. This one refuses to.

**It reads the registers, it does not resell a database.** The accession number is on the row, so you can open the original filing yourself.

**The entity name is on the row and so is the match grade.** EDGAR name search returns near matches. "Stripe Milton LLC" is a real filing and it may or may not be Stripe's. Rather than guess, this actor tells you the name it matched and how strong the match is.

**A rejected filing is counted.** `filings_rejected: 9` and `filings_rejected: 0` mean very different things when the amount column is empty.

**Near matches are leads, never answers.** A registry record that starts with your company name but is not it, such as "Notion Capital VI SCSp" against Notion, goes to the `related_entity_` columns with its amount. It never fills an amount column and it never sets `source_of_record`.

#### 🧭 Three sources, each labelled

1. **SEC EDGAR full text search** for Form D filings, then the filing's own primary document for `totalAmountSold` and `totalOfferingAmount`. US private offerings only. No key needed.
2. **UK Companies House**, with your own free key, for the registration number, incorporation date, status and accounts reference date. UK only.
3. **Press**, from one search restricted to recognized wire and trade publishers. Most recent, least verified, and marked as such on every field it produces.

Every source result passes an entity gate before it ships, and the grade is on the row.

### 📋 What data can Funding Record extract?

Every row carries **32 flat fields**. These are the ones a buyer
actually filters and sorts on.

| Field | Type | Meaning |
|---|---|---|
| `degraded` | boolean | True when this row could not be produced normally, for example the company site was unreachable and no discovery could run. A degraded row is never charged. |
| `degradation_reason` | string | null | Why the row is degraded, in plain words. Null on a normal row. |
| `company_domain` | string | null | The company domain this row is about, normalized. Null when only a handle or a name was supplied. This is the join key across the whole Mamba Labs fleet. |
| `company_name` | string | null | The company name as supplied or derived. Improves search accuracy and is what the identity gate matches against. |
| `source_of_record` | string | null | THE MOST IMPORTANT FIELD ON THIS ROW. Where the strongest number came from: sec\_form\_d (a legal filing made under penalty), companies\_house (a statutory registration), press (a company announcement repeated by a journalist), or multiple. Never compare or sum amounts across rows without reading this first. A filing and a press release are not the same kind of fact. Only a record whose entity name matches this company EXACTLY sets this field: a near match goes to the related\_entity columns and sets nothing here. |
| `form_d_filed` | boolean | null | True when a Form D filing was found for this company inside the lookback window. FALSE means EDGAR was searched and nothing matched, which is a real answer: US private offerings only, so a non US company or a raise structured outside Regulation D is legitimately absent. Null means EDGAR was not queried. |
| `form_d_date` | string | null | Filing date of the most recent matching Form D. |
| `form_d_entity_name` | string | null | The exact entity name on the filing. It ships on the row because it is how you check the match yourself: EDGAR name search returns near matches, and a filing by a similarly named entity is a real filing by a different company. |
| `form_d_entity_match` | string | null | Always "exact" when populated: the filing entity IS this company once corporate suffixes are stripped. A weaker match never populates the amount fields at all, it goes to the related\_entity columns instead, because an amount asserted for the wrong entity is the exact failure this actor exists to prevent. |
| `form_d_accession` | string | null | EDGAR accession number, which is the permanent identifier of the filing and the way to pull the original document yourself. |
| `amount_raised_usd` | integer | null | totalAmountSold from the Form D: what was ACTUALLY raised at the time of filing. This is a regulatory figure. Do not compare it against a press figure without reading source\_of\_record. |
| `total_offering_usd` | integer | null | totalOfferingAmount from the Form D: what the company SAID it was raising. A different number from amount\_raised\_usd and reported separately, because merging an intention with an outcome is the same class of error as merging a filing with a press release. |
| `filings_rejected` | integer | null | How many Form D filings the name search returned that did NOT pass the entity gate. A search that returned nine filings and kept none is a different fact from a search that returned none, and this column is what tells them apart. |
| `uk_company_number` | string | null | Companies House registration number. UK registered companies only; a US or EU company is legitimately absent and that is not a coverage failure. |
| `uk_company_name` | string | null | The registered name as Companies House holds it, so you can check the match yourself, and you should. AN EXACT NAME MATCH IS NOT PROOF OF IDENTITY on a short or common company name: measured 2026-08-22, a search for Notion returns NOTION LIMITED, incorporated 2002, which passes an exact name check and is almost certainly not the US software company. The number, the status and the incorporation date ship on the row precisely so a wrong one is visible in one glance rather than hidden behind a green tick. |
| `uk_company_status` | string | null | active, dissolved, liquidation and so on. A dissolved company sharing a name is exactly what an ungated search returns, so this column is worth reading before the number next to it. |
| `uk_entity_match` | string | null | Always "exact" when populated, graded the same way as the Form D match. A weaker match goes to the related\_entity columns rather than into this row identity fields. |
| `uk_incorporation_date` | string | null | When the UK entity was incorporated. A useful and often overlooked company age signal, and it is a statutory fact rather than a claim. |
| `uk_accounts_reference_date` | string | null | The day and month the company financial year ends, as DD-MM. It tells you when the next set of accounts becomes public, which is when new financial detail on a UK private company actually appears. |
| `press_round_name` | string | null | The round as named in press coverage, for example "Series B". PRESS IS THE LEAST RELIABLE SOURCE HERE and the most recent one. Treat it as a lead, not as a figure. |
| `press_amount` | integer | null | The amount as reported in press coverage, converted from its written form. This is what a company told a journalist. It is NOT a filing and it must never be summed alongside one without reading source\_of\_record. |
| `press_currency` | string | null | The currency symbol as reported. No conversion is performed: converting a press figure at today rate would add a second layer of imprecision to a number that already has one. |
| `press_url` | string | null | The article the press figures came from, so you can read it rather than trust it. Only recognized wire and trade publishers are used; a round reported solely on the company own blog is an announcement, not coverage. |
| `related_entity_name` | string | null | A registry record whose name STARTS with this company name but is not that company once corporate suffixes are stripped. It is reported here and NEVER in the amount columns, because it may be a subsidiary, a holding company, an investment vehicle or an unrelated business that happens to share a first word. Measured examples from one run: "Notion Capital VI SCSp" against Notion (a venture firm, not Notion), "STRIPE ACCOUNTANTS LTD" against Stripe (an accountancy practice), and "MONZO BANK HOLDING GROUP Ltd" against Monzo (almost certainly the right group). No string comparison separates those three, so all three land here and you decide. |
| `related_entity_source` | string | null | Which registry the related entity came from, so you can go and read it. |
| `related_entity_amount_usd` | integer | null | The amount on the related entity filing, where it has one. THIS IS NOT THIS COMPANY CONFIRMED AMOUNT and must never be summed into a funding total. It is a lead worth checking, and it is deliberately in a differently named column so it cannot be mistaken for one. |
| `related_entity_note` | string | null | Plain words on why this record was not accepted as the company itself. |
| `amount_meets_threshold` | boolean | null | True when the strongest amount found is at or above the minAmountUsd threshold you set. FALSE means checked and below it. Null when you set no threshold or no amount was found. |
| `sources_queried` | string | null | Which sources were actually asked, comma separated. A source that was not queried says nothing about the company, and this column is how you tell a genuine absence from a source you switched off or had no key for. |
| `coverage` | number | null | How much of what this actor can return actually came back on this row, from 0 to 1. Computed over this actor value fields only, never over the identity or status columns. Null on a degraded row, where nothing was attempted. This is a reporting field: nothing is dropped for low coverage and no event fires on it. |
| `fetch_status` | string | ok, not\_found, not\_extractable, blocked, identity\_mismatch, auth\_failed or skipped. Read this before reading any value on the row. not\_found means we looked and there is nothing there; blocked and not\_extractable mean we could not look, and they must never be read as an absence. |
| `run_date` | string | ISO 8601 timestamp of this run. Social counts move, so a row without a date is a number with no shelf life. |

> ⚠️ **How to read these values.** `amount_raised_usd` is what was actually sold. `total_offering_usd` is what the company said it was raising. They are frequently different and they are never merged.

### 🛠️ How to find a company funding history from primary sources

1. Put the company name in `company_name` and its domain in `company_domain`. **The name matters most here**: every source is searched by name, and a wrong name is the largest single source of wrong rows.
2. Set `sources` to `regulatory` when the number has to be defensible and `all` when recency matters more.
3. Add a free Companies House key if you care about UK companies.
4. For a list, pass an array of objects with the same fields.

#### 🧪 Using it in Clay

Add an **Enrichment > Apify** column, pick this actor, and map both `company_name` and `company_domain`.

The pattern that matters: **filter on `source_of_record` before you sort on any amount.** A table sorted by amount that mixes filings and press figures is sorted by two different things at once. If you are scoring accounts, treat `sec_form_d` rows as evidence and `press` rows as leads.

### 💵 How much does it cost?

Pay per event. You are charged for output, never for input.

| Event | Fires when | Price |
|---|---|---|
| `company-checked` | Once per company for which the funding record search across the sources you selected completed and a non degraded row was produced, whether or not anything was found. A not\_found row fires this event, because looking and finding nothing is a real answer and it is the work you asked for. A degraded row, where the lookup could not run at all, fires nothing. | $0.0045 |
| `filing-found` | Once per company where a REGULATORY record was found and read: a Form D that passed the entity gate and whose amounts were retrieved, or a Companies House registration that passed the gate. Costs several requests, carries the highest value on the row, and does not fire on a press only result. A filing rejected by the entity gate does not charge: the work was done and the honest answer is that the filing is not this company. | $0.0060 |
| `press-signal-found` | Once per company where a funding round was identified in coverage from a recognized publisher. Does not fire when the press route was not selected and does not fire when the SERP was refused. | $0.0040 |

> 💳 **What you are billed for.** `filing-found` fires only when a regulatory record actually passed the gate and was read. A filing rejected as somebody else's costs nothing beyond the check event.
>
> `press-signal-found` fires only when a round was identified in recognized coverage. The press route is the only one that costs a residential request, so a `regulatory` run is meaningfully cheaper.

**What the same coverage costs bought a la carte:** The category comparison is Crunchbase and PitchBook, which are annual subscriptions rather than per lookup products and which resell a curated database. This actor reads the PRIMARY sources instead: the filing, the register, and the coverage, each labelled. Nothing on the Apify Store takes a company name and returns a Form D amount with its accession number, and no resold database tells you whether the number in front of you is a legal filing or a press release. That distinction is the product.

### ⌨️ Input

| Field | Type | Required | Meaning |
|---|---|---|---|
| `company_domain` | string | no | Bare company domain, for example notion.com. Used to derive a company name when none is given, and carried on the row as the join key. |
| `company_name` | string | no | Strongly recommended here. Every source in this actor is searched by NAME, not by domain, and the name is what the entity gate compares a filing against. A wrong or missing name is the single largest source of wrong rows. |
| `sources` | string | no | Which sources to query. Regulatory sources are filings and are authoritative; press is the most recent and least verified. Choose "regulatory" when a number has to be defensible and "all" when recency matters more. Sent as a string for Clay compatibility. |
| `lookbackMonths` | string | no | How far back to consider a filing. 36 months by default. A Form D from six years ago is a real filing and usually not a current signal, and this is where you say which you mean. Sent as a string for Clay compatibility. |
| `minAmountUsd` | string | no | Sets amount\_meets\_threshold on the row so you can filter to material raises without writing the comparison yourself. It never drops a row and never changes the amount returned. Sent as a string for Clay compatibility. |
| `companiesHouseApiKey` | string | no | YOUR OWN Companies House REST API key, free at developer.company-information.service.gov.uk. OPTIONAL: without one the UK columns report skipped rather than guessing, and the SEC and press sources still run. Marked secret, so the value never renders on this page. |
| `skipCache` | string | no | When "false" (default) a successful lookup is cached for seven days and reused, which costs you nothing on a repeated run. Set "true" to force a fresh fetch. Sent as a string for Clay compatibility. |

```json
{
  "company_domain": "figma.com",
  "company_name": "Figma",
  "sources": "all",
  "lookbackMonths": "36"
}
```

### 📤 Output

Exports to **JSON, CSV, Excel, HTML or XML**. One flat, snake\_case row per
company. No nested objects, so it drops straight into Clay, a spreadsheet or a
warehouse table without a flattening step.

```json
{
  "degraded": false,
  "degradation_reason": null,
  "company_domain": "anthropic.com",
  "company_name": "Anthropic",
  "source_of_record": "multiple",
  "form_d_filed": true,
  "form_d_date": "2026-06-01",
  "form_d_entity_name": "WU Anthropic LP",
  "form_d_entity_match": "exact",
  "form_d_accession": "0002109576-26-000001",
  "amount_raised_usd": 0,
  "total_offering_usd": 0,
  "filings_rejected": 56,
  "uk_company_number": "14604577",
  "uk_company_name": "ANTHROPIC LIMITED",
  "uk_company_status": "active",
  "uk_entity_match": "exact",
  "uk_incorporation_date": "2023-01-19",
  "uk_accounts_reference_date": "31-12",
  "press_round_name": null,
  "press_amount": 65000000000,
  "press_currency": "$",
  "press_url": "https://techcrunch.com/2026/05/28/anthropic-raises-65-billion-nears-1t-valuation-ahead-of-ipo/",
  "related_entity_name": null,
  "related_entity_source": null,
  "related_entity_amount_usd": null,
  "related_entity_note": null,
  "amount_meets_threshold": null,
  "sources_queried": "sec_form_d, companies_house, press",
  "coverage": 0.9,
  "fetch_status": "ok",
  "run_date": "2026-08-23T09:56:16.906Z"
}
```

#### false versus null, and why the difference matters

`false` means we looked and the answer is no. `null` means we could not look,
or the platform withheld it. They are never interchangeable in this output. If
you filter for companies with no presence on this platform, filter on `false`,
because `null` rows are unknown rather than absent and including them will
overstate your list.

### 💡 Tips

- **Always pass `company_name`.** The sources are searched by name and the domain alone produces a weaker search and a weaker gate.
- **Read `form_d_entity_match` before trusting an amount.** `leading_token` means the entity name starts with your company name and continues into something else.
- **`uk_accounts_reference_date` tells you when new financial detail appears** on a UK private company. It is one of the few forward looking fields in this actor.
- **`form_d_filed: false` is not "no funding".** It means no US Regulation D filing inside your lookback window. Non US companies raise without ever touching EDGAR.
- **Use `sources: regulatory` for anything that has to survive scrutiny.**

### ⚠️ Known limits

- **Form D covers US private offerings only.** A non US company, or a US raise structured outside Regulation D, is absent from EDGAR entirely, and that is not a coverage failure.
- **Companies House covers UK registered entities only**, and needs your own free key.
- **Press is the least reliable source in this actor** and is labelled as such on every field it produces. It is included because it is the most recent, not because it is the most accurate.
- **The entity gate cannot resolve genuine ambiguity.** "Stripe Milton LLC" and "MONZO BANK LIMITED" have the same string shape against their parent names. The grade tells you which case you are looking at; it does not decide for you.
- **No investor names from filings.** A Form D lists related persons rather than a clean investor list, and presenting those as investors would be wrong. `press_investors` style data is not returned rather than being fabricated from the filing.
- **No currency conversion.** A press amount ships in the currency it was reported in.
- **An exact name match is not proof of identity on a short or common name.** Measured 2026-08-22: a Companies House search for Notion returns NOTION LIMITED, incorporated in 2002, which passes an exact name check and is almost certainly not the US software company of the same name. Registries hold no website field, so no name based lookup can close this gap. The registered name, number, status and incorporation date are all on the row so a wrong match is visible at a glance, and an incorporation date that predates the company you are researching is the fastest tell.

### ❓ FAQ

**Is this Crunchbase data?**
No. It reads SEC EDGAR, UK Companies House and press coverage directly. Nothing here is a resold database.

**Why is the amount empty when I know the company raised money?**
Read `form_d_filed` and `filings_rejected`. Common causes: the company is not US registered, the raise was outside Regulation D, or the filings found belonged to a differently named entity.

**What does `leading_token` mean?**
The entity name starts with your company name and continues. It is often a subsidiary and occasionally a coincidence, and no string comparison can separate the two, so you get the entity name and the grade rather than a false certainty.

**Do I need any keys?**
Not for SEC or press. Companies House needs your own free key, and without it the UK columns report `skipped`.

**Why are `amount_raised_usd` and `total_offering_usd` different?**
One is what was sold, the other is what was offered. They are different facts and they are reported separately.

### 🧩 Want other GTM data?

Mamba Labs builds a fleet of GTM enrichment actors that share one flat,
Clay-ready output convention, so their rows join on `company_domain` with no
cleaning step:

| | |
|---|---|
| 🕵️ [Agent Accessibility Auditor](https://apify.com/mambalabs/agent-accessibility-auditor) | 🤖 [AI Tooling Detector](https://apify.com/mambalabs/ai-tooling-detector) |
| 📡 [B2B Buying Signals Aggregator](https://apify.com/mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay) | 🚀 [Prospect Engine](https://apify.com/mambalabs/b2b-prospect-engine) |
| 📝 [Publishing Frequency Tracker](https://apify.com/mambalabs/blog-publishing-frequency) | ⏩ [Sequencer Lead Push](https://apify.com/mambalabs/clay-to-instantly-smartlead-push) |
| 🔄 [Company Change-Event Feed](https://apify.com/mambalabs/company-change-event-feed) | 🧭 [Company Discovery List Builder](https://apify.com/mambalabs/company-discovery-list-builder) |
| 🏢 [Company Firmographic Enricher](https://apify.com/mambalabs/company-firmographic-enricher) | 🪪 [Company Identity Resolver](https://apify.com/mambalabs/company-identity-resolver) |
| 🌐 [Company Social Presence Mapper](https://apify.com/mambalabs/company-social-presence-mapper) | 🏷️ [Contact Classifier](https://apify.com/mambalabs/contact-classifier) |
| 📬 [Domain Deliverability Checker](https://apify.com/mambalabs/domain-deliverability-checker) | 🔗 [Domain to LinkedIn URL Resolver](https://apify.com/mambalabs/domain-to-linkedin-url-resolver) |
| ✉️ [Work Email Waterfall Finder](https://apify.com/mambalabs/email-waterfall-orchestrator) | 🎪 [Event Presence Index](https://apify.com/mambalabs/event-presence-index) |
| 💰 [Funding and Press Signal Scanner](https://apify.com/mambalabs/funding-press-signal-scanner) | 🧑‍💼 [GTM Hiring Signal Scraper](https://apify.com/mambalabs/gtm-hiring-signal-scraper) |
| 📋 [Job Posting Monitor](https://apify.com/mambalabs/gtm-job-discovery) | 🧱 [Tech Stack Detector](https://apify.com/mambalabs/gtm-tech-stack-signal-scraper) |
| 🎯 [ICP Fit Scorer](https://apify.com/mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay) | 🔑 [Job Board Keyword Scanner](https://apify.com/mambalabs/job-board-keyword-signal-scanner) |
| ⚖️ [Legal Entity Resolver](https://apify.com/mambalabs/legal-entity-resolver) | 💼 [LinkedIn Company Page Mapper](https://apify.com/mambalabs/linkedin-company-presence-mapper) |
| 💬 [LinkedIn Post Tracker and Comment Capture](https://apify.com/mambalabs/linkedin-post-engager-capture) | 📸 [Instagram and Facebook Brand Mapper](https://apify.com/mambalabs/meta-brand-presence-mapper) |
| 📮 [Outbound Stack Detector](https://apify.com/mambalabs/outbound-infrastructure-fingerprint) | 📄 [Page Finder and Extractor](https://apify.com/mambalabs/page-finder-extractor) |
| 👤 [People Finder and Email Verifier](https://apify.com/mambalabs/people-finder) | 📌 [Pinterest Brand Presence Mapper](https://apify.com/mambalabs/pinterest-brand-presence-mapper) |
| 🏛️ [Government Contract Award Monitor](https://apify.com/mambalabs/public-award-monitor) | 📅 [Public Company Reporting Window Finder](https://apify.com/mambalabs/public-company-reporting-window-finder) |
| 👥 [Team Page People Extractor](https://apify.com/mambalabs/team-page-people-extractor) | 🎵 [TikTok Brand Presence Mapper](https://apify.com/mambalabs/tiktok-brand-presence-mapper) |
| 🏅 [Workplace Program Detector](https://apify.com/mambalabs/workplace-program-detector) | ▶️ [YouTube Channel Stats Extractor](https://apify.com/mambalabs/youtube-channel-transcript-extractor) |

> Every actor in the suite takes a domain or a company and returns one flat row,
> so they stack in the same Clay table without reshaping anything.

> 🛠️ **Need something custom built for you or your team?** Tell us what you are
> trying to find and we will build it. [Talk to Mamba Labs](https://mambabuilt.com/contact).

### 🆘 Support

Issues, field requests and bug reports: open an issue on the actor's Issues tab.
Mamba Labs reads every one.

> ℹ️ **Sourcing and legal.** Filing fields come from SEC EDGAR and, with your own key, UK Companies House, both public registries. Press fields come from public coverage and are labeled as press. A regulatory filing and a press release are never merged into one column. `source_of_record` names which source a row's headline number came from.

Built by [Mamba Labs](https://apify.com/mambalabs).

# Actor input Schema

## `company_domain` (type: `string`):

Bare company domain, for example notion.com. Used to derive a company name when none is given, and carried on the row as the join key.

## `company_name` (type: `string`):

Strongly recommended here. Every source in this actor is searched by NAME, not by domain, and the name is what the entity gate compares a filing against. A wrong or missing name is the single largest source of wrong rows.

## `sources` (type: `string`):

Which sources to query. Regulatory sources are filings and are authoritative; press is the most recent and least verified. Choose "regulatory" when a number has to be defensible and "all" when recency matters more. Sent as a string for Clay compatibility.

## `lookbackMonths` (type: `string`):

How far back to consider a filing. 36 months by default. A Form D from six years ago is a real filing and usually not a current signal, and this is where you say which you mean. Sent as a string for Clay compatibility.

## `minAmountUsd` (type: `string`):

Sets amount\_meets\_threshold on the row so you can filter to material raises without writing the comparison yourself. It never drops a row and never changes the amount returned. Sent as a string for Clay compatibility.

## `companiesHouseApiKey` (type: `string`):

YOUR OWN Companies House REST API key, free at developer.company-information.service.gov.uk. OPTIONAL: without one the UK columns report skipped rather than guessing, and the SEC and press sources still run. Marked secret, so the value never renders on this page.

## `skipCache` (type: `string`):

When "false" (default) a successful lookup is cached for seven days and reused, which costs you nothing on a repeated run. Set "true" to force a fresh fetch. Sent as a string for Clay compatibility.

## `source_tag` (type: `string`):

Internal attribution tag set by Mamba Labs on published task examples. Not required, and nothing depends on it. Leave it empty.

## Actor input object example

```json
{
  "company_domain": "notion.com",
  "company_name": "Notion",
  "sources": "all",
  "lookbackMonths": "36",
  "minAmountUsd": "none",
  "skipCache": "false"
}
```

# Actor output Schema

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

Dataset of one flat row per company, with per platform status so a blocked fetch never reads as a zero.

# 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 = {
    "company_domain": "notion.com",
    "company_name": "Notion"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mambalabs/funding-investor-record").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 = {
    "company_domain": "notion.com",
    "company_name": "Notion",
}

# Run the Actor and wait for it to finish
run = client.actor("mambalabs/funding-investor-record").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 '{
  "company_domain": "notion.com",
  "company_name": "Notion"
}' |
apify call mambalabs/funding-investor-record --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mambalabs/funding-investor-record"
        }
    }
}

```

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/OFS4Mt1gyYNtGfUbE/builds/QQkUwAHkK9IY4bAr9/openapi.json
