Recent Funding API
A read-only JSON API of recently funded startups: funding rounds with a source link for every amount, investors, founders, accelerators, acquisitions and new VC funds.
https://recentfunding.com/api/v1Format JSONAuth API keyOpenAPI · Markdown · llms.txtUpdated The Recent Funding API gives you the data behind recentfunding.com as JSON: startups and their funding rounds, investors, founders, accelerators, acquisitions and new VC funds. Every amount links to the page it came from.
It's a plain REST API. Every endpoint is a GET that returns JSON, and every request needs an API key. A key is free and takes only an email. For the new rounds every day, use Pro.
Quickstart
1. Get a key. Sign in on your dashboard with your email. Your key is created there and shown once.
Sign in with your email (we send a one-time code). Your key is created on your dashboard and shown once.
2. Make a request.
export RF_KEY=rf_live_…
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/companies?limit=5"
3. Read the response. Lists come back as an array plus a next_offset for the next page:
{"companies": [{"slug": "…", "name": "…", "stage": "seed", "amount_usd": "…", "announced_at": "…", "raise_source_url": "https://…"}], "count": 5, "next_offset": 5}
A few more requests to try:
# Seed-stage AI agent companies, largest round first
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/companies?stage=seed&industry=ai-agents&sort=raise"
# One company and all its rounds
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/companies/shepherd"
# Crypto rounds since September 1, 2026
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/rounds?crypto=true&since=2026-09-01"
Track your requests, errors and keys on your dashboard.
Authentication
Send your key in the Authorization header:
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/companies?limit=5"
X-API-Key: rf_live_… works too. For tools that can't set headers, add ?api_key=rf_live_… to the URL. Prefer a header, since URLs end up in logs.
- A key is shown once. We store only a hash, so a lost key can't be recovered: create a new one.
- Manage keys (create, name, revoke) on your dashboard.
- A missing key returns
401 api_key_required. An unknown or revoked key returns401 invalid_api_key. - Keep keys out of front-end code anyone can read.
Plans and limits
| Free | Pay as you go | Pro | Max | |
|---|---|---|---|---|
| Price | No card | Ten cents a call, prepaid | 49 dollars a month | 150 dollars a month |
| Calls | 50 a day | Your balance, up to 500 a day | 1,000 a month | 5,000 a month |
| Data | 14+ days old | Live | Live | Live |
| Stealth startups | No | Yes | Yes | Yes |
| MCP and live feed | No | No | Yes | Yes |
Which plan? If you're building anything that needs the new funding rounds every day across the industry (a deal-flow feed, a CRM sync, an alerting bot, an AI agent), choose Pro. It gets every new round and stealth startup as it lands, with MCP and the live feed. For occasional live lookups, pay as you go costs less under about 490 calls a month; above that, Pro costs less. Free is for trying the API on older data.
Pay as you go is a prepaid balance: top up 10, 25 or 50 dollars on your dashboard for 100, 250 or 500 calls. Your first top-up adds 100 free calls. Credits never expire. When the balance runs out, your keys are on Free again. Pro and Max quotas are per month across all your keys, reset on the 1st (UTC), and MCP tool calls count like API calls.
Pro and Max start with a 7-day free trial. Start your Pro trial or compare pricing.
Free keys allowed 100 requests a day until 2026-10-30; they now allow 50.
On Free, answers leave out companies and rounds newer than 14 days and stealth companies. Each answer then includes an access object saying how many were left out and how to get live data. Asking for one such company returns 403 plan_required. On pay as you go, every answer carries an X-RecentFunding-Balance header with the calls left.
Every response tells you where you stand:
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Requests your key may make in the current window: today, or this month on Pro and Max |
X-RateLimit-Remaining | Requests left today |
X-RateLimit-Reset | When the count resets (Unix seconds: midnight UTC, or the 1st of next month on Pro and Max) |
Past a daily limit, requests return 429 rate_limited. Past a monthly quota, they return 429 monthly_quota_exceeded with resets_at and a Retry-After header. Checking your own usage (GET /api/v1/usage) is free and never counts.
Pagination
List endpoints take limit and offset and return next_offset. Pass it back as offset until it is null.
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/companies?limit=500&offset=0"
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/companies?limit=500&offset=500"
The maximum limit is shown in each endpoint's parameter table. New companies appear at the top of the default sort, so for a stable export use sort=oldest.
Errors
Errors use standard HTTP status codes and one JSON shape:
{"error": {"status": 400, "code": "invalid_parameter", "message": "\"sort\" must be one of: newest, oldest, raise, announced, name.", "param": "sort"}}
| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_parameter | A value is out of range or badly formatted |
| 400 | unknown_parameter | The endpoint doesn't take that parameter (check for typos) |
| 401 | api_key_required | No API key was sent |
| 401 | invalid_api_key | The key is unknown or revoked |
| 403 | plan_required | The record needs a live plan (Pro or Max) |
| 404 | not_found | Unknown slug, key or endpoint |
| 405 | method_not_allowed | Only GET, HEAD and OPTIONS are allowed |
| 429 | rate_limited | The key used its requests for today |
| 503 | unavailable | Temporarily unavailable; retry with backoff |
Companies
GET/api/v1/companies
Lists startups, newest first by default. Amount filters and sort=raise use the company's latest round.
| Parameter | Values | Default | Description |
|---|---|---|---|
limit | integer 1–2000 | 100 | Page size. |
offset | integer 0–1000000 | 0 | Rows to skip. Use the previous response's next_offset. |
stage | string | Company stage, e.g. pre-seed, seed, series-a, series-b+, stealth, unknown. | |
industry | string | Industry slug, e.g. ai, ai-agents, infra-devtools, defi. See /api/v1/stats for the current list. | |
city | string | Headquarters city, matched exactly in any case; a comma-separated list covers a metro, e.g. New York,New York City,Brooklyn. Each company has hq_city and hq_country. | |
crypto | true false | true for crypto companies only, false to exclude them. | |
accelerator | yc speedrun yzi pioneer alliance finc orange outlier pnp csx and 54 more | Backed by an accelerator, detected from investor names and from the name or description (for example "(YC S26)"). any matches every listed accelerator plus investors whose names contain "accelerator" or "incubator". | |
q | string | Case-insensitive search over name, industry, subcategory, sector, description, city, country, and investor names. Every word must appear (in any order), so a longer query narrows the results. Up to 200 characters; longer is a 400. | |
min_raise | string | Minimum amount of the latest round, in USD (plain digits, e.g. 5000000). Companies with no known amount are excluded. | |
sort | newest oldest raise announced name team_size days_early | newest | newest (first seen, default), oldest, raise (largest latest round first, unknown last), announced (latest round date, unknown last), name (A to Z), team_size (largest team first, unknown last), days_early (each largest first, unknown last). |
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/companies?stage=seed&sort=announced&limit=20"
Returns {"companies": [Company], "count", "next_offset"}. See Company.
GET/api/v1/companies/{slug}
One company with every funding round on record, newest first, and the people behind it.
| Parameter | Values | Default | Description |
|---|---|---|---|
slug (path) | string | The company's slug from a list response. |
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/companies/shepherd"
Returns {"company": Company, "rounds": [CompanyRound], "founders": [...]}. An unknown slug returns 404.
Rounds
GET/api/v1/rounds
Funding rounds with a known amount, most recently announced first.
| Parameter | Values | Default | Description |
|---|---|---|---|
limit | integer 1–500 | 100 | Page size. |
offset | integer 0–1000000 | 0 | Rows to skip. Use the previous response's next_offset. |
since | string | Only rounds announced on or after this date. | |
stage | string | Round stage, e.g. pre-seed, seed, series-a, series-b+, unknown. | |
min_amount | string | Minimum round amount in USD (plain digits). | |
crypto | true false | true for crypto companies only, false to exclude them. |
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/rounds?since=2026-10-01&limit=50"
Returns {"rounds": [Round], "count", "next_offset"}. See Round.
Investors
GET/api/v1/investors
Investors ranked by deals in the last 12 months (default), portfolio size, round capital or most recent deal. round_capital is the size of the rounds an investor joined, not its own check.
| Parameter | Values | Default | Description |
|---|---|---|---|
q | string | Search by name, ignoring case and punctuation; also matches spellings merged into the investor ("Sequoia Capital" finds Sequoia). Every word must appear, in any order. With q, type defaults to all. Up to 200 characters; longer is a 400. | |
sort | deals_12m companies capital recent | deals_12m | |
type | funds angels corporates accelerators all | funds | funds (default; venture firms), angels (individual investors), corporates (companies investing directly or through a corporate venture arm), accelerators, or all. A search covers every type unless one is given. Labels for unnamed investors ("Angel Investors") are not investors and never listed. |
limit | integer 1–500 | 100 | |
offset | integer 0–1000000 | 0 | |
active | 0 1 | 0 | 1: only investors actively deploying capital, with a deal in a round announced in the last 90 days. Default 0 (all). |
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/investors?type=funds&active=1&limit=25"
GET/api/v1/investors/{slug}
One investor: its portfolio (latest deal first), top categories, deals by stage and year, and frequent co-investors. Where researched, it also has the team, disclosed limited partners and disclosed positions, each with a source_url.
| Parameter | Values | Default | Description |
|---|---|---|---|
slug (path) | string | An investor slug from /api/v1/investors. |
Founders
GET/api/v1/founders
People at active companies, one row per person and company, with role, picture, links and the page that names them. Email addresses and phone numbers are never published.
| Parameter | Values | Default | Description |
|---|---|---|---|
scope | all crypto founders | all | |
team | any solo duo trio more | any | Size of the founding team at the person's company, counted from the people on record as founders: solo, duo, trio, more (four or more), or any. |
q | string | Case-insensitive search over the person's name, company name, and role. Every word must appear, in any order ("jane acme" finds Jane at Acme). Up to 200 characters; longer is a 400. | |
role | all founder ceo cto | all | The person's role at the company: founder (a role naming a founder), ceo, cto, or all. scope=founders is the same as role=founder. |
profile | true false 1 0 | true: only people with a researched founder profile (see profile_url). | |
archetype | young-outlier capital-allocator quant-trader technical-builder domain-operator repeat-founder researcher community-builder | The primary archetype of a researched profile. | |
stage | pre-seed seed series-a series-b+ | Stage of the company's latest round. | |
category | string | The company's category key, as in GET /api/v1/categories (ai-agents, stablecoins, fintech…). | |
crypto | true false 1 0 | true: only people at crypto companies (the same as scope=crypto). | |
photo | true false 1 0 | true: only people with a picture (avatar). | |
raised | integer 1–3650 | Only people whose company's latest round was announced in the last this many days (the page offers 30 and 90). | |
country | string | The company's headquarters country, as a slug: united-states, united-kingdom, india… | |
serial | true false 1 0 | true: only serial founders, people on record at two or more companies. | |
sort | newest raised name latest_raise profile | newest | newest: the company newest on record first; raised: most raised (sourced rounds); name; latest_raise: the company's latest round first; profile: people with a researched profile first, then by latest round. |
limit | integer 1–2000 | 100 | |
offset | integer 0–1000000 | 0 |
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/founders?scope=founders&team=solo&limit=50"
Accelerators
GET/api/v1/accelerators
Every accelerator program with its company count, batches and what its companies raised.
| Parameter | Values | Default | Description |
|---|---|---|---|
sort | raised companies recent | raised |
GET/api/v1/accelerators/{key}
One program, its batches and its companies, newest batch first.
| Parameter | Values | Default | Description |
|---|---|---|---|
key (path) | string | A program key from /api/v1/accelerators. | |
limit | integer 1–2000 | 500 | |
offset | integer 0–1000000 | 0 |
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/accelerators/yc?limit=100"
Categories and markets
GET/api/v1/categories
Every category (finer than industry, such as prediction-markets) with company counts, sourced capital and the latest raise. No parameters.
GET/api/v1/categories/{key}
The companies in one category, with sourced capital, first raise and latest raise.
| Parameter | Values | Default | Description |
|---|---|---|---|
key (path) | string | A category key from /api/v1/categories. | |
sort | raised first latest | raised | |
crypto | true false any | any | |
limit | integer 1–500 | 100 | |
offset | integer 0–1000000 | 0 |
GET/api/v1/market-map
Capital raised by industry over a recent window against the window before, the stage mix and the top companies. Only rounds with a known amount count.
| Parameter | Values | Default | Description |
|---|---|---|---|
window_days | integer 30–365 | 90 | Length of the recent comparison window, from 30 to 365 days. |
history_years | integer 1–10 | 5 | Number of calendar years in each industry history, from 1 to 10. |
crypto | any true false | any | Scope: any, true, or false. |
stage_group | all early series-a series-b+ unknown | all | Funding-round stage scope. early includes pre-seed and seed, so later rounds do not dominate the market signal. |
GET/api/v1/market-map/companies
The companies behind one market-map figure, most capital first.
| Parameter | Values | Default | Description |
|---|---|---|---|
industry | string | Market-map industry slug, such as other or ai. Omit it to rank companies across every industry. | |
window_days | integer 30–365 | 90 | Length of the selected window, from 30 to 365 days. |
stage_group | all early series-a series-b+ unknown | all | all, early (pre-seed + seed), series-a, series-b+, or unknown. |
crypto | any true false | any | Scope: any, true, or false. |
limit | integer 1–250 | 100 | Page size, from 1 to 250. |
offset | integer 0–1000000 | 0 | Page offset. |
GET/api/v1/landscapes
Each market landscape with its segments, company counts and sourced capital. No parameters.
GET/api/v1/landscapes/{key}
Every company in a landscape, each in one segment, with its rounds.
| Parameter | Values | Default | Description |
|---|---|---|---|
key (path) | prediction-markets | A landscape key from /api/v1/landscapes. | |
segment | exchange sports infrastructure analytics trading-tools social sports-betting | Only this segment. |
Acquisitions and private equity
GET/api/v1/acquisitions
Startup acquisitions, most recently announced first. Acquisitions are never counted as funding.
| Parameter | Values | Default | Description |
|---|---|---|---|
since | string | Only deals announced on or after this date. | |
scope | all startups | all | all (the default): every deal. startups: startup acquisitions only, those where the acquired company is one Recent Funding tracks or had raised venture funding (pre-seed through late-stage rounds); each deal's startup field says which it is. |
buyer | any pe | any | any (the default): every buyer. pe: only deals of private equity buyers, on evidence: the buyer is a firm of the Fundraising Fox Open Dataset matched by its website or exact name, a firm Recent Funding checked by hand, or a buyer whose own website or public description calls it a private equity firm; and add-ons, deals by a private equity firm's portfolio company (a headline about the deal says the buyer is backed by the firm, or the firm's purchase of the buyer is on record). Each deal's buyer_type and acquirer.pe_sponsor say which; the firms are at /api/v1/pe-firms. |
deal_type | any take_private | any | any (the default): every deal. take_private: only take-privates, a listed company bought and delisted, on evidence: a headline about the deal says so ("take private", "go-private", "delist"), or a private equity buyer (or its portfolio company) bought a company whose listing a headline gives (a per-share price, a tender offer, its ticker) or its listing on record together with an article about the deal that confirms it. Each deal's deal_type says which. |
q | string | Words that must all appear in the acquirer's or the acquired company's name, case-insensitive. | |
limit | integer 1–500 | 100 | Page size. |
offset | integer 0–1000000 | 0 | Rows to skip. Use the previous response's next_offset. |
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/acquisitions?scope=startups&limit=50"
Fields worth knowing:
price_usdis set only withprice_source_url, the article that states it. Otherwise it isnull.price_estimateis our estimated range for an undisclosed deal. It is never a price (method).buyer_typeispefor a private equity buyer.deal_typeistake_privatefor a listed company taken private.
GET/api/v1/pe-firms
Private equity firms with their acquisitions, add-ons and take-privates, most recent deal first.
| Parameter | Values | Default | Description |
|---|---|---|---|
q | string | Words that must all appear in the firm's name, headquarters or sectors, case-insensitive. | |
sort | recent deals_12m aum name | recent | recent (the default): latest acquisition first, firms without one after. deals_12m: most acquisitions in the last 12 months. aum: largest assets under management first, firms without a figure after. name: A to Z. |
acquired | 0 1 | 0 | 1: only firms with an acquisition on Recent Funding. |
limit | integer 1–500 | 100 | Page size. |
offset | integer 0–1000000 | 0 | Rows to skip. Use the previous response's next_offset. |
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/pe-firms?sort=deals_12m&acquired=1&limit=20"
aum_usd always comes with aum_source_url: an SEC Form ADV filing for US firms, or the firm's own published figure.
GET/api/v1/pe-firms/{slug}
One firm, every acquisition it made and similar firms.
| Parameter | Values | Default | Description |
|---|---|---|---|
slug (path) | string | A firm slug from /api/v1/pe-firms. |
Funds
GET/api/v1/funds
New venture capital funds, most recently announced first. The list is compiled by Shai Goldman and credited in every response. Funds are never counted as startup rounds.
| Parameter | Values | Default | Description |
|---|---|---|---|
since | string | Only funds announced on or after this date. | |
q | string | Words that must all appear in the fund's name, its firm's name or its location, case-insensitive. | |
year | integer 1990–2100 | Only funds announced in this year. | |
limit | integer 1–500 | 100 | Page size. |
offset | integer 0–1000000 | 0 | Rows to skip. Use the previous response's next_offset. |
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/funds?year=2026&limit=50"
amount_usd is set only with amount_source_url.
Stats and rankings
GET/api/v1/stats
Totals by stage, industry and source. No parameters.
GET/api/v1/leaderboard
Companies ranked on one metric, highest first. Ties share a rank.
| Metric | Value |
|---|---|
raised_ytd | Total of the company's sourced rounds announced in year; each round in rounds has its source_url |
gained_ytd | Rise in stated valuation between its last two sourced valuations; both have a source link |
| Parameter | Values | Default | Description |
|---|---|---|---|
metric | raised_ytd gained_ytd | raised_ytd: capital raised in the year, summing only rounds with an amount and a source URL. gained_ytd: rise in stated valuation over the year - the valuation at the year's last round less the valuation at the round before it, both needing a source URL. | |
year | integer 2000– | Calendar year, from 2000 to the current year. Defaults to the current year; for the current year the period runs to today. | |
limit | integer 1–500 | 25 | Rows to return, highest first. |
crypto | true false any | true | true (default) ranks crypto companies only, false only the others, any all companies. |
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/leaderboard?metric=raised_ytd&limit=10"
GET/api/v1/usage
Your key's requests today and over the last 30 days, by endpoint. Free: it never counts against your limit.
curl -H "Authorization: Bearer $RF_KEY" "https://recentfunding.com/api/v1/usage"
Live feed
New funding rounds pushed over a WebSocket as they are added. Messages have the same fields as [/api/v1/rounds](#get-api-v1-rounds) plus added_at. Available on Pro and Max.
const ws = new WebSocket("wss://vc-radar-production.up.railway.app/v1/stream?api_key=" + RF_KEY + "&stage=seed&min_amount=1000000");
ws.onmessage = e => {
const m = JSON.parse(e.data);
if (m.type === "round") console.log(m.name, m.stage, m.amount_usd, m.source_url);
};
- Filters:
stage,min_amount,crypto.backlog(0 to 100, default 10) replays the latest matching rounds first. - The first message is
{"type": "hello"}. The server pings every 30 seconds; reconnect when the socket closes. - Close codes:
4001invalid key,4003plan required,4029too many connections (five per key).
Contacts
The people to talk to at a company, with confirmed work emails: the founders we list, then decision makers (founders, C-level, VPs, directors), and the addresses the company publishes on its site.
GET https://recentfunding.com/api/v1/companies/{slug}/contacts
- Each person has
name,title,email(a work address confirmed by checking the mailbox, or null),email_status,linkedinandsource. Personal Gmail or Yahoo addresses are never returned. - One lookup is one company for your account. Looking the same company up again within 30 days is free.
- Pro includes 50 lookups a month and Max 100. A free key gets 3 in total. After that, each company uses 10 credits (one dollar) from a pay as you go balance; without one the answer is 402
contacts_quota. - In MCP the tool is
get_company_contacts. - Use them for relevant business outreach only, and stop when someone asks you to. Anyone can remove their address with
POST /api/v1/contacts/opt-outand{"email": "..."}, or by emailing hello@recentfunding.com.
MCP
Use Recent Funding from Claude, Cursor and other MCP clients. The server is https://recentfunding.com/mcp (Streamable HTTP). Every endpoint is a tool with the same parameters (list_companies, get_company, list_rounds and so on).
claude mcp add --transport http recent-funding https://recentfunding.com/mcp --header "Authorization: Bearer $RF_KEY"
Calling tools needs Pro or Max. Tool calls count toward your daily limit.
Objects
Image fields (logo, company_logo, avatar) are absolute URLs. Records are identified by slug (companies, investors) or key (categories, accelerators). A null amount means unknown, not zero.
Company
| Field | Type | Description |
|---|---|---|
slug | string | Stable identifier; use it with /api/v1/companies/{slug}. |
name | string | |
stage | string | pre-seed, seed, series-a, series-b+, stealth, or unknown. |
industry | string | null | Industry slug, e.g. ai-agents. |
subcategory | string | null | |
sector | string | null | |
description | string | null | |
crypto | boolean | null | Whether the company is a crypto company. null when the evidence can't settle it: such companies are left out of crypto-only lists and totals (crypto=true) and of crypto=false ones. |
first_seen_at | string (date-time) | When Recent Funding first discovered the company. |
website | string | null | |
x_handle | string | null | Primary X (Twitter) handle, without @. |
followers | integer | null | X follower count at the last enrichment. |
logo | string | null (uri) | Logo image as an absolute URL (https://recentfunding.com/logo/... for the copies we keep, else the source's own https URL); null when there is none. The legacy /api/vc keeps the site-relative path (/logo/...). |
amount_usd | string | null | Latest round amount in USD as a decimal string (e.g. "1700000.00"); null when unknown. |
announced_at | string | null (date-time) | Latest round date (midnight UTC). |
raise_source_url | string | null | Where the latest round's amount came from: the enrichment article, else the scan's source page. |
raise_publisher | string | null | Publisher of the enrichment article, when enriched. |
raise_provider | string | null | How the amount was found: scan (the source listing itself), google-news, website, agent-review (confirmed in manual review), press (a press article an import matched the round to), or the news source an import read it from (e.g. fundraisingfox, startupintros). Null when there is no amount or the source is unknown. |
sources | string[] | Discovery sources, e.g. accel:yc, dropstab, coincarp. |
source_links | object | Source name to the page where it listed the company; null when that listing has no public link. |
investors | string[] | |
flagged | boolean | A source flagged the company before a round was announced. |
flagged_at | string | null (date) | Earliest date a stealth-tracking source flagged the company. |
x_created_at | string | null (date) | X account creation date. |
domain_created_at | string | null (date) | Website domain registration date. |
team_size | integer | null | People listed on the company's own team/about page (distinct LinkedIn profile links). Estimate; see team_source_url. |
team_source_url | string | null | Page the team_size count came from. |
smart_follows | integer | null | Number of tracked investor and founder accounts following the company's X account, as the stealth-tracking source reports it. |
days_early | integer | null | Days the company was flagged before its raise became public. |
new_follows_7d | integer | null | New follows from those tracked accounts in the last 7 days. |
trending_rank | integer | null | Position in the stealth-tracking source's trending list, when present (1 = top). |
hq_city | string | null | City the company is based in, as its accelerator lists it. |
hq_country | string | null | Country the company is based in. |
founded_year | integer | null | Year founded, as its accelerator lists it. |
categories | string[] | Up to three category keys (see /api/v1/categories). |
CompanyRound
| Field | Type | Description |
|---|---|---|
stage | string | |
kind | string | null | What a round without a venture stage was, when its source says: debt, grant, secondary, public-offering, token-sale, crowdfunding, convertible-note, strategic or growth. A strategic round of 100 million USD or more, and every growth round, also has stage series-b+. |
amount_usd | string | null | Decimal string in USD; null when undisclosed or unknown. |
valuation_usd | string | null | The company valuation reported with this round, as a decimal string in USD; null when none was stated. Read from the same source as the amount, so it is the figure that source gave. |
announced_at | string | null (date-time) | |
source_url | string | null | |
source_publisher | string | null | |
source_provider | string | null | How the amount was found: scan (the source listing itself), google-news, website, agent-review (confirmed in manual review), press (a press article an import matched the round to), or the news source an import read it from (e.g. fundraisingfox, startupintros). Null when the source is unknown. |
Round
| Field | Type | Description |
|---|---|---|
slug | string | The company's slug. |
name | string | The company's name. |
industry | string | null | |
crypto | boolean | null | Whether the company is a crypto company. null when the evidence can't settle it: such companies are left out of crypto-only lists and totals (crypto=true) and of crypto=false ones. |
stage | string | The round's stage. |
amount_usd | string | Decimal string in USD. |
valuation_usd | string | null | The company valuation reported with this round, as a decimal string in USD; null when none was stated. Read from the same source as the amount, so it is the figure that source gave. |
announced_at | string | null (date-time) | |
source_url | string | null | Where the amount came from. |
source_publisher | string | null | |
source_provider | string | null | How the amount was found: scan (the source listing itself), google-news, website, agent-review (confirmed in manual review), press (a press article an import matched the round to), or the news source an import read it from (e.g. fundraisingfox, startupintros). Null when the source is unknown. |
investors | string[] | Investors linked to this round. |
Acquisition
| Field | Type | Description |
|---|---|---|
acquirer | object | The buyer: name, slug (its Recent Funding company profile, or null), investor_slug (its investor profile, or null), pe_firm_slug (its private equity firm profile, or null), pe_sponsor (the private equity firm whose portfolio company it is, for an add-on, or null) and logo. |
acquired | object | The acquired company: name, slug (its Recent Funding company profile, or null), logo, and for a take-private its ticker and exchange when known. |
announced_on | string | null (date) | The day the deal was announced (for news, the day the article was published). |
completed_on | string | null (date) | The day the deal closed, when known. |
price_usd | string | null | The price as a decimal string in USD, converted at the rate of the announcement day when stated in another currency. Null when no press source disclosed it. |
price_currency | string | null | The currency the price was stated in (ISO code). |
price_original | string | null | The price as stated, in price_currency, when that is not USD. |
price_source_url | string | null | The article that states the price. Always set when price_usd is. |
price_estimate | object | null | No announced price: Recent Funding's estimate of the deal's size, kept apart from price_usd (which stays null) and shown on the site as a range marked "*" (Estimate, not announced). low and high in USD (high null for an open range such as "at least what it raised"; low equals high for a take-private's equity value derived from its per-share price and SEC-reported shares outstanding), basis how it was estimated, method (per_share, revenue, headcount or funding) and sources, the public inputs. Null when there is too little data. Method: https://recentfunding.com/acquisitions/#estimates |
source_url | string | null | An announcement or press article about the deal. |
source_publisher | string | null | The publisher of source_url. |
category | string | null | The acquired company's industry, e.g. ai, fintech, infra-devtools. |
startup | boolean | Whether this is a startup acquisition: the acquired company is one Recent Funding tracks, or had raised venture funding. scope=startups returns only these. |
category_from | string | null | Where category comes from: acquired (the acquired company's own industry) or buyer (the buyer's, when the acquired company has none). Null when there is no category. |
buyer_type | string | null | pe when the buyer is a private equity firm, growth a growth equity firm (a firm of the Fundraising Fox Open Dataset matched by the buyer's website or exact name, or for pe a firm Recent Funding checked by hand or a buyer whose own website or public description calls it one); null otherwise or when unknown. An add-on (a PE firm's portfolio company buying) has buyer_type null and acquirer.pe_sponsor set. buyer=pe returns both. |
deal_type | string | null | take_private when a listed company was bought and delisted (see the deal_type parameter for the evidence it takes); null otherwise or when unknown. |
ai_thesis | object | null | For a take-private: an article about the deal says the buyer plans to rebuild the company around AI ("an AI-first company", "accelerate its AI strategy"). quote is the article's sentence and source_url the article. Null when no article about the deal says so. |
PeFirm
| Field | Type | Description |
|---|---|---|
slug | string | The firm's slug (/api/v1/pe-firms/{slug}, /pe-firms/{slug}/). |
name | string | |
website | string | null (uri) | The firm's website. |
logo | string | null | Logo URL, when one is known. |
hq_city | string | null | Headquarters city. |
hq_country | string | null | Headquarters country (ISO 3166-1 alpha-2). |
founded_year | integer | null | The year the firm was founded. |
stages | string[] | The stages it invests at, as the dataset gives them. |
sectors | string[] | The sectors it invests in, as the dataset gives them. |
check_min_usd | string | null | Smallest check, in USD (decimal string). Set only with profile_source.url, its source. |
check_max_usd | string | null | Largest check, in USD (decimal string). Set only with profile_source.url, its source. |
aum_usd | string | null | The firm's assets under management in USD, always with aum_source_url: for a US firm the regulatory AUM its main SEC-registered adviser reports on Form ADV; otherwise the figure the firm publishes, converted at the ECB rate of its date. Null when neither can be had. aum gives the details. |
aum_source_url | string | null (uri) | The source of aum_usd: the adviser's SEC Investment Adviser Public Disclosure page, or the firm's own release or page. |
aum | object | null | aum_usd in detail: usd, original and currency (as the firm states it), fx_rate (USD per unit), as_of, source_url, method (form_adv or firm_published), adviser (name, crd, for Form ADV) and quote (the firm's own words, for a published figure). |
portfolio_count | integer | null | Portfolio companies, as the dataset counts them. |
exit_count | integer | null | Exits, as the dataset counts them. |
profile_source | object | null | Where the firm's profile comes from, for a firm of the dataset: name (Fundraising Fox Open Dataset), url (its page for the firm), license (CC BY 4.0) and version. Null for a firm the dataset lacks, whose profile is its own public facts (name, website, headquarters). |
investor_slug | string | null | The firm's investor slug when it is also an investor on Recent Funding (/api/v1/investors/{slug}), else null. |
acquisitions | integer | Acquisitions by the firm on Recent Funding. |
acquisitions_12m | integer | Of those, announced in the last 12 months. |
acquisitions_90d | integer | Of those, announced in the last 90 days. |
latest_acquisition | object | null | The most recently announced: name, slug (its company profile, or null) and announced_on. |
top_categories | object[] | The categories of the companies it bought, most first: key, label, acquisitions. |
url | string (uri) | The firm's page on Recent Funding. |
website_says | object | null | For a firm the dataset lacks that Recent Funding found through its own website: quote, the website's words that describe it as a private equity firm, and url. Null otherwise. |
addons | integer | Of acquisitions: add-ons, bought by the firm's portfolio companies. |
take_privates | integer | Of acquisitions: take-privates, listed companies bought and delisted. |
Fund
| Field | Type | Description |
|---|---|---|
fund_name | string | The fund as the list or the announcement names it, misspellings fixed from its own source. |
firm | string | The firm the fund belongs to ("Antler US Fund" is Antler's). |
fund_number | string | null | The fund's number as a roman numeral ("I" for a firm's first fund); null when the list gives none or a source contradicts it. |
first_fund | boolean | Whether this is the firm's first fund (Fund I). |
amount_usd | string | null | The fund's size in US dollars, as a string, as its source states it; null when no source states a figure in dollars. Set only with amount_source_url. |
amount_currency | string | null | "USD" when amount_usd is set. |
amount_source_url | string | null (uri) | The source of the size: the article that states it, or the public fund list. |
amount_source | string | null | Its publisher, or "Shai Goldman's fund list". |
amount_via | string | null | press: an article or post states the size. fund-list: the list itself is the only public source. |
amount_note | string | null | first close or interim close when the size the source states is a close before the fund's final one; null for a final size. |
announced_on | string | null (date) | When the fund was announced (the first of the month or year when date_precision says so). |
date_precision | string | null | How precise announced_on is. |
year | integer | null | The year the fund was announced. |
location | string | null | Where the firm is based, as the list gives it. |
regions | string[] | The /funds/ location filters the location falls in (bay-area, new-york, israel, ...). |
announcement_url | string | null (uri) | The announcement the list cites, when it is not already amount_source_url. |
investor_slug | string | null | The firm's investor page on Recent Funding (/investors/<slug>/), when it has one. |
Stats
| Field | Type | Description |
|---|---|---|
companies | integer | Active companies. |
with_amount | integer | Companies whose latest round has a known amount. |
crypto | integer | |
latest_first_seen_at | string | null (date-time) | |
by_stage | Count[] | Largest first. |
by_industry | Count[] | |
by_source | Count[] | A company found by several sources counts once per source. |
LeaderboardEntry
| Field | Type | Description |
|---|---|---|
rank | integer | 1 is the highest. Ties share a rank. |
slug | string | |
name | string | |
logo | string | null (uri) | Logo image as an absolute URL (https://recentfunding.com/logo/... for the copies we keep, else the source's own https URL); null when there is none. |
website | string | null | |
x_handle | string | null | |
industry | string | null | |
stage | string | null | The company's stage. |
value | string | The metric, as a decimal string in USD: capital raised (raised_ytd) or the valuation gained (gained_ytd). |
source_url | string | null | gained_ytd only: where the year's valuation came from (the same as to_source_url). |
round_count | integer | raised_ytd only: rounds in the total. |
rounds | object[] | raised_ytd only: the rounds summed, oldest first, each with its source_url. |
from_valuation | string | null | Valuation at the round before the year's last, as a decimal string in USD (gained_ytd). |
from_date | string | null | Date of that earlier round (gained_ytd). |
from_source_url | string | null | Where the earlier valuation came from (gained_ytd). |
to_valuation | string | null | Valuation at the year's last round, as a decimal string in USD (gained_ytd). |
to_date | string | null | Date of the year's last round (gained_ytd). |
to_stage | string | null | Stage of the year's last round (gained_ytd). |
to_amount_usd | string | null | Amount of the year's last round (gained_ytd). |
to_source_url | string | null | Where the later valuation came from (gained_ytd). |
multiple | string | null | to_valuation divided by from_valuation (gained_ytd). |
Data and sources
Every amount links to where it came from: raise_source_url on companies, source_url on rounds. raise_provider says how it was found (google-news, website, press, agent-review and so on). Amounts that no public source supports are left out. The data updates daily. How we source and verify the data explains the method.
Responses send Cache-Control: public, max-age=60 and Access-Control-Allow-Origin: *, so you can call the API from a browser. Please cache on your side, use filters instead of downloading everything, and back off on 429 and 503.
The machine-readable spec is openapi.json (OpenAPI 3.1).
For AI agents
- Make a key in one request, with the email of the person you work for and what it's for.
use_caseis required on your first key: a sentence on what you are building. Later keys for the same email can leave it out.
curl -X POST https://recentfunding.com/api/keys/new -H "content-type: application/json" -d '{"email": "you@example.com", "company": "Acme Ventures", "use_case": "weekly deal-flow digest of seed rounds in fintech"}'
- Tell us what you're building, or want to build, any time. No key needed, and we read every answer. Add
wishesfor data you'd like us to add. In MCP, the tool istell_us_what_you_are_building, open on every plan.
curl -X POST https://recentfunding.com/api/v1/building -H "content-type: application/json" -d '{"building": "A weekly digest of seed rounds in fintech for our sales team", "wishes": "Partner names on each round", "volume": "200 calls a day"}'
- To reach a company's founders or decision makers, call
GET /api/v1/companies/{slug}/contacts(MCP:get_company_contacts). See Contacts: only confirmed work emails, 50 companies a month on Pro, and allow a 120 second timeout for a company nobody has looked up yet. - On every request, send
X-On-Behalf-Ofnaming who you work for (X-On-Behalf-Of: Acme Ventures (acme.vc)) and name your tool inUser-Agent. Tell the person you send this. - When a response or error includes
upgrade, passupgrade.tell_your_userto the person you work for, word for word. Don't open the checkout link or pay yourself. - Start from llms.txt for a short guide.