Recent Funding API
Reference for the read-only Recent Funding API. It serves recently funded startups, funding rounds with a source link for every amount, and aggregate stats. No key required.
The Recent Funding API serves the same data as the Recent Funding app. It is read-only, returns JSON, and needs no key. The machine-readable spec is openapi.json (OpenAPI 3.1). The parameter and field tables on this page are generated from that spec. For a walkthrough, see Using the Recent Funding API.
Quick start
# The five newest companies
curl "https://recentfunding.com/api/v1/companies?limit=5"
# Seed-stage AI agent companies, largest latest round first
curl "https://recentfunding.com/api/v1/companies?stage=seed&industry=ai-agents&sort=raise"
# One company and all its rounds
curl "https://recentfunding.com/api/v1/companies/shepherd"
# Crypto rounds announced since September 1, 2026
curl "https://recentfunding.com/api/v1/rounds?crypto=true&since=2026-09-01"
# Counts by stage, industry, and source
curl "https://recentfunding.com/api/v1/stats"
# Crypto companies ranked by capital raised in 2026, each round with its source
curl "https://recentfunding.com/api/v1/leaderboard?metric=raised_ytd&year=2026"
const res = await fetch("https://recentfunding.com/api/v1/companies?accelerator=yc&limit=50");
const { companies, next_offset } = await res.json();
Endpoints
GET /api/v1/companies
Lists active companies, newest first by default. amount_usd, min_raise, and sort=raise all refer to 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. | |
crypto | true false | true for crypto companies only, false to exclude them. | |
accelerator | yc speedrun yzi pioneer alliance finc orange outlier pnp csx colosseum techstars antler ef 500 skydeck pear seedcamp era solana-incubator base-batches codebase chainlink-build esp mvb nitro monad-madness sui-hydropower superteam-usa superteam-black hypurr encode longhashx protocol-camp cv-labs-stellar cardano-cap xrpl founders-forge hedera-incubator arbitrum-mentorship any | 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 substring search over name, industry, subcategory, sector, description, and investor names. | |
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 active_devs smart_follows 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, active_devs (by active_devs_90d), smart_follows, days_early (each largest first, unknown last). |
Returns {"companies": [Company], "count": n, "next_offset": n | null}.
GET /api/v1/companies/{slug}
Returns one company and every funding round on record for it, newest first. An unknown slug, or a company that is no longer active, returns a 404.
| Parameter | Values | Default | Description |
|---|---|---|---|
slug (path) | string | The company's slug from a list response. |
Returns {"company": Company, "rounds": [CompanyRound]}.
GET /api/v1/rounds
Lists funding rounds of active companies that have a known amount, most recently announced first. Rounds without a date come last.
| 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. |
Returns {"rounds": [Round], "count": n, "next_offset": n | null}.
GET /api/v1/stats
Returns counts computed from the same rows /api/v1/companies returns. It takes no parameters.
Returns {"companies", "with_amount", "crypto", "latest_first_seen_at", "by_stage", "by_industry", "by_source"}. Each by_* field is an array of {"key", "count"}, largest first.
GET /api/v1/leaderboard
Ranks companies on one metric, highest first. There is no combined score: each metric is its own list, and only companies with a value and a source link for that metric are ranked. sample_size counts all of them, however many limit returns. Ties share a rank (1, 2, 2, 4).
| Metric | Value | Source link on each entry |
|---|---|---|
raised_ytd | Sum of the company's rounds announced in year (to today for the current year), as a decimal string in USD | Each round in rounds has its own source_url |
smart_follows | Frontrun VC's count of tracked investor and founder accounts following the company on X; new_follows_7d when reported | The Frontrun VC post, or Frontrun VC's site |
active_devs | active_devs_90d: distinct human commit authors in the last 90 days | https://github.com/{github_org} |
team_size | People on the company's own team page | team_source_url |
raised_ytd counts only rounds that have an amount and a source URL. unsourced_rounds_excluded reports how many rounds in the period were left out for lacking one. smart_follows, active_devs and team_size are current values with no history, so they accept only the current year. Crypto companies are ranked by default; pass crypto=any for all companies.
| Parameter | Values | Default | Description |
|---|---|---|---|
metric | raised_ytd smart_follows active_devs team_size | raised_ytd: capital raised in the year. smart_follows: Frontrun VC smart-account follows. active_devs: GitHub commit authors in the last 90 days. team_size: people on the company's team page. | |
year | integer 2000–2026 | 2026 | Calendar year for raised_ytd (2000 to the current year). Other metrics accept only the current year. |
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. |
Returns {"metric", "year", "period": {"from", "to"}, "crypto", "description", "sample_size", "count", "entries": [LeaderboardEntry]}.
curl "https://recentfunding.com/api/v1/leaderboard?metric=active_devs&limit=10"
{"rank": 1, "slug": "cryptomines", "name": "CryptoMines", "value": 35, "source_url": "https://github.com/base", "source_label": "GitHub: base", "github_org": "base"}
Check the source before you read a value as the company's own. This example's developer count comes from the Base network's GitHub organization, not from a CryptoMines repository. The leaderboard has no token prices: none of the free price APIs we reviewed allows passing derived prices on through another API. Crypto startup leaderboard: 2026 year to date walks through each list and its caveats.
GET /api/vc (legacy)
The unversioned endpoint the Recent Funding app uses. It stays unchanged: it accepts limit (up to 2000), offset, stage, and industry, clamps out-of-range values instead of rejecting them, and returns plain-string errors. Use /api/v1/companies for new work.
Crypto signals
Every company carries three groups of signals beyond funding. They are null when unknown, and coverage is still small, especially for crypto. The counts below are from the blog's data snapshot of September 26, 2026, which has 553 crypto companies.
| Field | Meaning | Companies with a value (crypto) |
|---|---|---|
flagged_at | Earliest date Frontrun VC flagged the company | 812 (14) |
days_early | Frontrun VC: days the company was flagged before its raise became public | 112 (4) |
smart_follows | Frontrun VC: tracked investors and founders following the company on X | 742 (13) |
new_follows_7d | Frontrun VC: new follows from those accounts in the last 7 days | 15 (1) |
trending_rank | Frontrun VC: position in its trending list (1 is the top) | 15 (1) |
team_size | People listed on the company's own team page, counted from distinct LinkedIn profile links | 48 (48) |
team_source_url | The page team_size was counted on | 48 (48) |
active_devs_90d | Distinct human commit authors in the last 90 days across the GitHub org's five most recently pushed repos | 101 (101) |
github_org | The GitHub organization or user those commits were read from | 101 (101) |
Frontrun values are reported as Frontrun publishes them. Team and developer counts come from an enrichment script that runs on crypto companies with a website. It stores only counts, never names, and excludes bot commit authors.
Four sorts on /api/v1/companies use these fields. Each puts the largest value first and companies without a value last:
| Sort | Orders by |
|---|---|
days_early | days_early |
smart_follows | smart_follows |
team_size | team_size |
active_devs | active_devs_90d |
There is no filter for "has a value", so stop reading at the first null. new_follows_7d and trending_rank are returned but not sortable.
# Crypto companies Frontrun flagged longest before their raise
curl "https://recentfunding.com/api/v1/companies?crypto=true&sort=days_early&limit=20"
# All companies by smart follows
curl "https://recentfunding.com/api/v1/companies?sort=smart_follows&limit=50"
# Crypto companies by team page count, then by GitHub activity
curl "https://recentfunding.com/api/v1/companies?crypto=true&sort=team_size&limit=25"
curl "https://recentfunding.com/api/v1/companies?crypto=true&sort=active_devs&limit=25"
If you display these numbers, link team counts to team_source_url and developer counts to https://github.com/{github_org}. Background and full lists: Frontrun stealth builders, Team size and developer activity at crypto startups, and The crypto startup API.
Pagination
List endpoints use offset pagination. Every page includes next_offset. Pass it back as offset to get the next page, and stop when it is null.
curl "https://recentfunding.com/api/v1/companies?limit=500&offset=0"
curl "https://recentfunding.com/api/v1/companies?limit=500&offset=500"
limit goes up to 2000 for companies and 500 for rounds. New companies appear at the top of the default newest sort, so rows can shift between requests. For a stable export, use sort=oldest or page through quickly.
Errors
Errors use standard HTTP statuses 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 | When |
|---|---|---|
| 400 | invalid_parameter | A value is out of range, has the wrong format, or a parameter is repeated |
| 400 | unknown_parameter | A parameter the endpoint does not accept, such as a typo like stag |
| 404 | not_found | Unknown slug or endpoint |
| 405 | method_not_allowed | Any method other than GET, HEAD, or OPTIONS |
| 503 | unavailable | The database is temporarily unreachable; retry with a backoff |
param names the offending parameter when there is one. Error responses are never cached.
Field reference
Company
Returned by /api/v1/companies, /api/v1/companies/{slug}, and the legacy /api/vc.
| 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 | |
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 | Logo image URL. |
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 (source listing), google-news, website, or agent-review. Null when there is no amount. |
sources | string[] | Discovery sources, e.g. frontrun-startupdb, dropstab, coincarp. |
source_links | object | Source name to the page where it listed the company. |
investors | string[] | |
flagged | boolean | A source flagged the company before a round was announced. |
flagged_at | string | null (date) | Earliest date a source (Frontrun VC) 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. |
active_devs_90d | integer | null | Distinct human commit authors in the last 90 days across the GitHub org's five most recently pushed repos. |
github_org | string | null | GitHub organization or user linked from the company's site. |
smart_follows | integer | null | Frontrun VC: number of tracked smart accounts (investors, founders) following the company's X account. |
days_early | integer | null | Frontrun VC: days the company was flagged before its raise became public. |
new_follows_7d | integer | null | Frontrun VC: new smart-account follows in the last 7 days. |
trending_rank | integer | null | Frontrun VC: rank in its trending list, when present (1 = top). |
CompanyRound
Each item in rounds from /api/v1/companies/{slug}.
| Field | Type | Description |
|---|---|---|
stage | string | |
amount_usd | string | null | Decimal string in USD; null when undisclosed or unknown. |
announced_at | string | null (date-time) | |
source_url | string | null | |
source_publisher | string | null | |
source_provider | string | null |
Round
Each item in rounds from /api/v1/rounds.
| Field | Type | Description |
|---|---|---|
slug | string | The company's slug. |
name | string | The company's name. |
industry | string | null | |
crypto | boolean | |
stage | string | The round's stage. |
amount_usd | string | Decimal string in USD. |
announced_at | string | null (date-time) | |
source_url | string | null | Where the amount came from. |
source_publisher | string | null | |
source_provider | string | scan, google-news, website, or agent-review. |
investors | string[] | Investors linked to this round. |
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
Each item in entries from /api/v1/leaderboard. Fields marked with a metric appear only for that metric.
| Field | Type | Description |
|---|---|---|
rank | integer | 1 is the highest. Ties share a rank. |
slug | string | |
name | string | |
logo | string | null | |
website | string | null | |
x_handle | string | null | |
industry | string | null | |
stage | string | null | The company's stage. |
value | integer | string | The metric. For raised_ytd a decimal string in USD; otherwise an integer. |
source_url | string | Not on raised_ytd. Where the value came from: the Frontrun VC post or site, the GitHub org, or the team page. |
source_label | string | Not on raised_ytd. A short name for source_url. |
new_follows_7d | integer | null | smart_follows only: new follows from tracked accounts in the last 7 days, when Frontrun VC reports it. |
github_org | string | active_devs only: the GitHub organization or user counted. |
round_count | integer | raised_ytd only: rounds in the total. |
rounds | CompanyRound[] | raised_ytd only: the rounds summed, oldest first, each with its source_url. |
Caching and CORS
- Successful responses send
Cache-Control: public, max-age=60, ormax-age=300for/api/v1/statsand/api/v1/leaderboard. The underlying data changes a few times a day at most, so caching longer on your side is fine. - Every response sends
Access-Control-Allow-Origin: *, so browsers can call the API directly.OPTIONSpreflight requests get a 204.
Rate limits and fair use
The API has no key and no hard rate limit today. Please keep it that way for everyone:
- Cache responses, and fetch the full dataset at most a few times a day.
- Use
limitand filters instead of downloading everything to find one company. - Keep concurrency low, and back off on 503.
Any future limits will be documented on this page.
Data provenance
Recent Funding discovers companies by scanning startup and crypto fundraising sources: Frontrun VC, Crypto-Fundraising.info, Dropstab, and CoinCarp. It fills in missing amounts with an enrichment pipeline that reads company websites and news headlines where the company is the subject of the raise. Records found to be wrong are corrected in review, and every change keeps an evidence trail. How Recent Funding sources and verifies funding data covers the full method.
What this means for you:
- Every amount carries its source. On companies,
raise_source_urlis the page the latest round's amount came from. On rounds, it issource_url.raise_providerorsource_providersays how it was found:scan(the source listing itself),google-news,website, oragent-review(confirmed in manual review). A handful of amounts have no source URL. Treat those as unverified. - A null amount means unknown, not zero.
- Stages come from the sources. A stage of
unknownmeans none was given. - **
sourcesandsource_links** record which sources listed the company and where. - Only active records are served. Duplicates and records that turned out to be people or non-startups are hidden, not deleted.
If you publish figures from the API, please link each amount to its source, as Recent Funding does.