# Funding Alert Configurations API
Source: https://docs.tryfundable.ai/api-reference/alerts/configurations
openapi.json GET /alerts/configurations
List the authenticated user's funding alert configurations: filters, frequency, and descriptions.
# Funding Alerts API
Source: https://docs.tryfundable.ai/api-reference/alerts/list
openapi.json GET /alerts
Retrieve saved funding alert data with all matching deals in a date range, newest first.
# Company Funding History API
Source: https://docs.tryfundable.ai/api-reference/companies/deals
openapi.json GET /company/deals
Retrieve a company's complete funding history by any identifier, paginated.
# Company Funding Data API
Source: https://docs.tryfundable.ai/api-reference/companies/get
openapi.json GET /company
Retrieve company data and the latest funding round by UUID, domain, LinkedIn, or Crunchbase.
# Company Search API: Filter Startups
Source: https://docs.tryfundable.ai/api-reference/companies/list
openapi.json POST /companies
Retrieve companies with advanced filtering, pagination, sorting, and optional AI-powered semantic search.
Filtering by location, industry, or round type? Use **exact permalinks** — a wrong
value for `locations`, `industries`, or `super_categories` returns zero results
with no error. Resolve them via [`/location/search`](/api-reference/locations/search)
and [`/industry/search`](/api-reference/industries/search) first. See
[Filtering & Permalinks](/api-reference/filtering).
# Company Search API
Source: https://docs.tryfundable.ai/api-reference/companies/search
openapi.json GET /company/search
Look up a company by name, domain, LinkedIn, or Crunchbase with fuzzy matching.
# Get a Funding Round by ID
Source: https://docs.tryfundable.ai/api-reference/deals/get
openapi.json GET /deals/{id}
Retrieve full details for a single venture capital funding round by its unique ID.
# Funding Round Investors API
Source: https://docs.tryfundable.ai/api-reference/deals/investors
openapi.json GET /deals/{id}/investors
Retrieve the full investor lineup for a funding round: lead status, partners, angels, and links.
# Funding Rounds API: Search VC Deals
Source: https://docs.tryfundable.ai/api-reference/deals/list
openapi.json POST /deals
Retrieve venture capital deals with advanced filtering, pagination, and sorting.
Filtering by location, industry, or round type? Use **exact permalinks** — a wrong
value for `locations`, `industries`, or `super_categories` returns zero results
with no error. Resolve them via [`/location/search`](/api-reference/locations/search)
and [`/industry/search`](/api-reference/industries/search) first. See
[Filtering & Permalinks](/api-reference/filtering).
# Filter Funding Rounds by Industry and Location
Source: https://docs.tryfundable.ai/api-reference/filtering
How to filter by location, industry, and round type without getting empty results
Most "why is my query returning nothing?" problems come from one mistake: filtering
by a **display name** instead of the **canonical permalink** the API expects.
**Locations, industries, and super categories are matched by exact permalink — not
by the name you'd type in a search box.** A wrong permalink is silently ignored:
the filter is dropped and you get **zero or unrelated results with no error**.
Always resolve the permalink first.
| You type | What the API actually wants |
| ----------------- | ------------------------------------------------------------------------------------------- |
| `"San Francisco"` | `"san-francisco-california"` |
| `"fintech"` | `"fintech-e067"` |
| `"AI"` | `"artificial-intelligence"` (industry) or `"artificial-intelligence-e551"` (super category) |
| `"Series A"` | `"SERIES_A"` |
## Resolve, then query
For **locations** and **industries**, never hand-write the permalink — look it up.
Both lookup endpoints are **free (0 credits)** and use fuzzy matching, so a rough
name is fine.
Call the relevant search endpoint with a plain-English name.
```bash Locations theme={null}
curl "https://www.tryfundable.ai/api/v1/location/search?name=san francisco" \
-H "Authorization: Bearer YOUR_API_KEY"
```
```json Response theme={null}
{
"success": true,
"data": {
"locations": [
{ "permalink": "san-francisco-california", "name": "San Francisco", "location_type": "CITY" },
{ "permalink": "san-francisco-bay-area", "name": "San Francisco Bay Area", "location_type": "REGION" },
{ "permalink": "california", "name": "California", "location_type": "STATE" }
]
}
}
```
Pick the row at the level you actually want — a **CITY**, **STATE**, **REGION**,
or **COUNTRY** are all distinct permalinks. Industry search works the same way
via [`GET /industry/search`](/api-reference/industries/search) and returns an
`industry_type` of `INDUSTRY` or `SUPER_CATEGORY`.
Paste the exact `permalink` value into your query.
```json POST /deals theme={null}
{
"company": {
"locations": ["san-francisco-california"],
"industries": ["fintech-e067"]
},
"deal": {
"financing_types": [{ "type": "SERIES_A" }]
}
}
```
## Permalink format
Permalinks are lowercase, kebab-case slugs. Many carry a short **hex disambiguator
suffix** (`fintech-e067`, `artificial-intelligence-e551`) that distinguishes
duplicate names — it is part of the value and must be included **verbatim**.
Don't try to construct a permalink by hand (e.g. guessing `"fintech"` →
`"fintech-e067"`). Always copy it from `/industry/search` or `/location/search`.
### Industry vs. super category
`industries` are specific (e.g. `machine-learning`); `super_categories` are broad
groupings that **automatically include their related industries** (e.g.
`artificial-intelligence-e551` pulls in many AI sub-industries). Use a super
category when you want wide coverage, an industry when you want precision. Both come
from `/industry/search` — check the `industry_type` field to tell them apart.
## Round / financing types
Round types are the exception: there is **no lookup endpoint** because the set is a
fixed enum. Pass them as objects under `deal.financing_types`, using the exact
canonical value — **not** the human label.
Unlike locations and industries, an invalid `financing_types` value **does** return
a `422` error (e.g. `Invalid financing type(s): series-a`). So you'll know
immediately — but you still have to use the canonical form below.
| Round (human) | Canonical value | Round (human) | Canonical value |
| --------------------------- | ------------------ | --------------------- | ----------------------- |
| Seed | `SEED` | Series A–M | `SERIES_A` … `SERIES_M` |
| SAFE | `SAFE` | Convertible Note | `CONVERTIBLE_NOTE` |
| Equity | `EQUITY` | Preferred | `PREFERRED` |
| Secondary Market | `SECONDARY_MARKET` | Debt Financing | `DEBT_FINANCING` |
| Grant | `GRANT` | Non-Equity Assistance | `NON_EQUITY_ASSISTANCE` |
| Crowdfunding | `CROWDFUNDING` | Initial Coin Offering | `INITIAL_COIN_OFFERING` |
| Funding Round (unspecified) | `FUNDING_ROUND` | | |
Pre-rounds and extensions are modifiers on the same value, not separate types:
```json theme={null}
{
"deal": {
"financing_types": [
{ "type": "SEED", "pre": true }, // Pre-Seed
{ "type": "SERIES_A" }, // Series A
{ "type": "SERIES_B", "extension": true } // Series B extension
]
}
}
```
## Common mistakes
| Mistake | Result | Fix |
| ---------------------------------------------------------- | ------------------------------ | ---------------------------------------------------------------- |
| `locations: ["San Francisco"]` | Silent zero results | Resolve via `/location/search` → `"san-francisco-california"` |
| `industries: ["fintech"]` | Silent zero results | Resolve via `/industry/search` → `"fintech-e067"` |
| Dropping the hex suffix (`"fintech"` for `"fintech-e067"`) | Silent zero results | Copy the full permalink verbatim |
| Using an industry where you meant a super category | Narrower results than expected | Check `industry_type`; use `super_categories` for broad coverage |
| `financing_types: ["Series A"]` | `422` error | Use `[{ "type": "SERIES_A" }]` |
The **Alerts** API currently accepts round types as human-readable strings (e.g.
`["Series A"]`) rather than the `SERIES_A` enum used by `/deals` and `/companies`.
This is a known inconsistency — follow the format shown in each endpoint's own
reference.
# Industry Search API
Source: https://docs.tryfundable.ai/api-reference/industries/search
openapi.json GET /industry/search
Look up industries and super categories by name with fuzzy matching. Free, 0 credits.
# Fundable API Reference
Source: https://docs.tryfundable.ai/api-reference/introduction
Full REST reference for the Fundable API: deals, companies, investors, and people endpoints, with parameters and examples.
## Base URL
All API requests use the following base URL:
```
https://www.tryfundable.ai/api/v1
```
The canonical OpenAPI document is available at
[`/openapi.json`](/openapi.json).
## Authentication
All endpoints require Bearer token authentication. See the [Authentication](/authentication) page for details.
## Endpoints
### Deals
* **POST /deals** -- Search and filter funding rounds with pagination and sorting. Combine filters across deal attributes (financing type, size, date), company attributes (location, industry, size), and investor participation (firms or people).
* **GET /deals/** -- Retrieve full details for a single funding round by its UUID.
* **GET /deals//investors** -- Get the full investor lineup for a deal, including lead status, the partners involved, angel investors, and profile links.
### Companies
* **POST /companies** -- Search and filter companies with pagination, sorting, and optional AI-powered semantic search. Filter by company attributes, latest funding round, and investors across all rounds.
* **GET /company** -- Get full company details and the latest funding round (with participating investors) by any identifier -- UUID, domain, LinkedIn, or Crunchbase.
* **GET /company/deals** -- Retrieve a company's complete funding history (paginated) by any identifier.
* **GET /company/search** -- Quick lookup for a company by fuzzy name, domain, LinkedIn, or Crunchbase, with relevance scoring.
### Investors
* **POST /investors** -- List and filter investors with pagination and sorting. Filter by entity attributes (location, size) and by portfolio (industries, deal characteristics, semantic search); portfolio filters return per-investor matched deal and lead counts.
* **GET /investor** -- Get an investor's full profile, statistics, and portfolio summary by any identifier -- UUID, domain, LinkedIn, or Crunchbase.
* **GET /investor/deals** -- Retrieve an investor's complete deal history (paginated) by any identifier.
* **GET /investor/search** -- Quick lookup for an investor by fuzzy name, domain, LinkedIn, or Crunchbase, with relevance scoring.
### People
* **POST /people** -- Search people (founders, executives, investors) with pagination, sorting, and optional semantic search. Filter by person attributes, current employer, and investor activity.
* **GET /person** -- Get full person detail, including complete employment and education history, by any identifier -- UUID, LinkedIn, Crunchbase, or Twitter.
* **GET /person/deals** -- Retrieve every deal a person has participated in as an investor (angel plus lead/firm deals), paginated.
* **GET /person/search** -- Quick lookup for a person by fuzzy name, UUID, LinkedIn, Crunchbase, or Twitter, across both investors and non-investor people.
### Filters
* **GET /industry/search** -- Look up industries and super categories by name with fuzzy matching and relevance scoring; optionally filter by type (`INDUSTRY` or `SUPER_CATEGORY`).
* **GET /location/search** -- Look up locations by name with fuzzy matching and relevance scoring; optionally filter by type (`CITY`, `STATE`, `REGION`, or `COUNTRY`).
`locations`, `industries`, and `super_categories` filters must use **exact
permalinks** — a wrong value is silently ignored and returns zero results. Always
resolve labels via the search endpoints above first. See
[Filtering & Permalinks](/api-reference/filtering) for the full workflow and the
round-type enum values.
### Alerts
* **GET /alerts** -- Retrieve saved alert data with all matching deals in a date range (up to 10 alerts per request). Deals are deduplicated, sorted newest-first, and each includes AI-generated reasoning for why it matched.
* **GET /alerts/configurations** -- List the authenticated user's alert configurations (filters, frequency, descriptions).
Both Alerts endpoints are available on Pro+ and API plans and currently do not consume credits.
## Error Handling
All endpoints return consistent error responses:
| Status Code | Description |
| ----------- | -------------------------------------------------------- |
| **400** | Bad request (invalid parameters) |
| **401** | Unauthorized (missing or invalid API key) |
| **422** | Validation error (unknown parameter, invalid enum value) |
| **429** | Rate limit exceeded |
| **500** | Internal server error |
# Investor Portfolio and Deals API
Source: https://docs.tryfundable.ai/api-reference/investors/deals
openapi.json GET /investor/deals
Retrieve an investor's complete deal history by any identifier, paginated.
# Investor Profile API
Source: https://docs.tryfundable.ai/api-reference/investors/get
openapi.json GET /investor
Retrieve an investor's full profile, stats, and portfolio summary by any identifier.
# Investor Data API: Search VC Firms
Source: https://docs.tryfundable.ai/api-reference/investors/list
openapi.json POST /investors
Retrieve a paginated list of investors with optional filtering.
Filtering by location, industry, or round type? Use **exact permalinks** — a wrong
value for `locations`, `industries`, or `super_categories` returns zero results
with no error. Resolve them via [`/location/search`](/api-reference/locations/search)
and [`/industry/search`](/api-reference/industries/search) first. See
[Filtering & Permalinks](/api-reference/filtering).
# Investor Search API
Source: https://docs.tryfundable.ai/api-reference/investors/search
openapi.json GET /investor/search
Look up a VC firm or investor by name, domain, LinkedIn, or Crunchbase.
# Location Search API
Source: https://docs.tryfundable.ai/api-reference/locations/search
openapi.json GET /location/search
Look up cities, states, regions, and countries by name with fuzzy matching. Free, 0 credits.
# Angel Investor Deals API
Source: https://docs.tryfundable.ai/api-reference/people/deals
openapi.json GET /person/deals
Retrieve every deal a person joined as an angel or lead partner, paginated.
# Person Profile API
Source: https://docs.tryfundable.ai/api-reference/people/get
openapi.json GET /person
Retrieve full person detail including employment and education history by any identifier.
# Founders and Investors API
Source: https://docs.tryfundable.ai/api-reference/people/list
openapi.json POST /people
Retrieve people with advanced filtering, pagination, sorting, and optional AI-powered semantic search.
Filtering by location, industry, or round type? Use **exact permalinks** — a wrong
value for `locations`, `industries`, or `super_categories` returns zero results
with no error. Resolve them via [`/location/search`](/api-reference/locations/search)
and [`/industry/search`](/api-reference/industries/search) first. See
[Filtering & Permalinks](/api-reference/filtering).
# People Search API
Source: https://docs.tryfundable.ai/api-reference/people/search
openapi.json GET /person/search
Look up founders, executives, and investors by name, LinkedIn, Crunchbase, or Twitter.
# Fundable API Authentication and Keys
Source: https://docs.tryfundable.ai/authentication
Authenticate the Fundable API with a Bearer token. Get an API key and start with free credits.
## API Key Authentication
All Fundable API requests require authentication via a Bearer token in the `Authorization` header.
```bash theme={null}
Authorization: Bearer vg_xxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
### Getting Your API Key
API keys are available through your Fundable account. Get your key [here](https://www.tryfundable.ai/api-access/) -- your first 200 credits are free. You can purchase credits directly or through a Fundable subscription.
### Key Format
API keys follow the format: `vg_[12_hex_chars]_[32_base64url_chars]`
### Usage
Include your API key as a Bearer token in every request:
```bash theme={null}
curl -X GET "https://www.tryfundable.ai/api/v1/deals" \
-H "Authorization: Bearer YOUR_API_KEY"
```
# Power an AI Agent with Funding Data
Source: https://docs.tryfundable.ai/guides/ai-agent-funding-data
Give an AI agent controlled access to real-time startup and funding data through typed Fundable REST API tools.
Wrap a small set of Fundable REST API operations as typed tools so an AI agent can
search startup and funding data without handling raw credentials or inventing query
shapes.
This guide covers REST API tool integration. Dedicated Fundable MCP setup will be
documented separately.
## Start with one narrow tool
A useful first tool is `find_funded_companies`. Its server-side implementation calls
`POST /companies` and exposes only the filters your agent needs.
```json Tool schema theme={null}
{
"name": "find_funded_companies",
"description": "Find companies by funding stage, date, industry, and location.",
"parameters": {
"type": "object",
"properties": {
"financing_types": {
"type": "array",
"items": {
"type": "string",
"enum": ["SEED", "SERIES_A", "SERIES_B", "SERIES_C"]
}
},
"date_start": {
"type": "string",
"description": "Earliest funding announcement date in YYYY-MM-DD format."
},
"industry_permalinks": {
"type": "array",
"items": { "type": "string" }
},
"location_permalinks": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["date_start"]
}
}
```
The server translates those arguments into the API request.
```javascript theme={null}
async function findFundedCompanies(args) {
const response = await fetch("https://www.tryfundable.ai/api/v1/companies", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.FUNDABLE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
company: {
industries: args.industry_permalinks,
locations: args.location_permalinks,
},
latest_deal: {
financing_types: args.financing_types?.map((type) => ({ type })),
date_start: args.date_start,
},
page_size: 25,
sort_by: "most_recent_raise",
}),
});
if (!response.ok) {
throw new Error(`Fundable API returned ${response.status}`);
}
return response.json();
}
```
## Resolve names before filtering
Do not let the model guess location or industry permalinks. Give the agent separate
tools backed by [`GET /location/search`](/api-reference/locations/search) and
[`GET /industry/search`](/api-reference/industries/search), then pass the returned
permalinks into `find_funded_companies`.
Round types use fixed enum values such as `SEED` and `SERIES_A`. See
[Filtering and Permalinks](/api-reference/filtering) for the complete rules.
## Add guardrails on the server
* Keep the Fundable API key server-side and out of model context.
* Allowlist filters and round-type enum values.
* Cap `page_size` and the number of automatic pagination requests.
* Return concise records to the model, not an unbounded raw payload.
* Log tool arguments, response status, credits used, and destination user.
* Require confirmation before the agent writes to a CRM or sends outreach.
## Expand by user intent
Add tools only when the agent needs them:
| User intent | Fundable endpoint |
| ----------------------------- | ------------------------------------------------------------- |
| Find funded companies | [`POST /companies`](/api-reference/companies/list) |
| Inspect one company | [`GET /company`](/api-reference/companies/get) |
| Search funding rounds | [`POST /deals`](/api-reference/deals/list) |
| Inspect a round's investors | [`GET /deals/{id}/investors`](/api-reference/deals/investors) |
| Look up founders or investors | [`GET /person/search`](/api-reference/people/search) |
Keeping each tool narrow produces more predictable calls, clearer permissions, and
better audit logs than exposing the entire API through one generic request tool.
# Enrich Your CRM with Funding Data
Source: https://docs.tryfundable.ai/guides/crm-enrichment
Match CRM accounts by domain and add Fundable company details, funding history, investors, and latest-round data.
Use `GET /company` to enrich a CRM account when you already have a domain, LinkedIn
URL, Crunchbase URL, or Fundable UUID. Domain is usually the simplest stable key for
company-level enrichment.
## 1. Normalize the account identifier
Before calling the API, lowercase the domain and remove the protocol, path, query
string, and leading `www.`. Keep your original CRM value unchanged for display.
Examples:
| CRM value | Lookup value |
| --------------------------------- | ----------------- |
| `https://www.example.com/pricing` | `example.com` |
| `EXAMPLE.COM` | `example.com` |
| `https://app.example.com` | `app.example.com` |
## 2. Retrieve the company
Provide exactly one identifier.
```bash theme={null}
curl --get "https://www.tryfundable.ai/api/v1/company" \
--header "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "domain=example.com"
```
If the domain is missing or does not resolve, use
[`GET /company/search`](/api-reference/companies/search) with the company name,
LinkedIn URL, or Crunchbase URL, then save the returned Fundable UUID for future
lookups.
## 3. Map source-owned fields
The company record is returned at `data.company`. Keep Fundable data in dedicated
CRM properties so enrichment does not overwrite values owned by sales or customer
success teams.
| Fundable field | Suggested CRM property |
| ---------------------- | -------------------------------------------------- |
| `id` | `fundable_company_id` |
| `total_raised` | `fundable_total_raised_usd` |
| `num_funding_rounds` | `fundable_funding_round_count` |
| `num_investors` | `fundable_investor_count` |
| `latest_valuation_usd` | `fundable_latest_valuation_usd` |
| `num_employees` | `fundable_employee_range` |
| `latest_deal` | Latest-round fields or a serialized source payload |
Also store an `enriched_at` timestamp and the Fundable UUID. The timestamp supports
freshness policies, and the UUID makes later refreshes independent of domain changes.
## 4. Upsert instead of append
Use the CRM account ID as the destination key and the Fundable UUID as the external
source key. On every sync:
1. Update source-owned enrichment fields.
2. Preserve user-entered CRM fields.
3. Clear a value only when your data policy explicitly treats `null` as authoritative.
4. Log the response's `meta.credits_used` value for cost monitoring.
For lists of target accounts, `POST /companies` can batch lookup up to 100 domains
through `identifiers.domains`.
Retrieve one company's full details and latest round.
Find new accounts before enriching them.
# Build a Funding Alert Workflow
Source: https://docs.tryfundable.ai/guides/funding-alert-workflow
Pull saved Fundable alert matches into a scheduled workflow with UTC checkpoints, deduplication, and retry-safe processing.
The Alerts API lets a scheduled job retrieve the deals matched by your saved
Fundable alerts. A reliable workflow first discovers the available configurations,
then requests matches for a bounded UTC time window.
The Alerts API is available on Pro+ and API plans. Both Alerts endpoints are
currently free and do not consume credits. See [Pricing and Credits](/usage).
## 1. List alert configurations
`GET /alerts/configurations` returns the authenticated user's alert IDs, filters,
frequency, and descriptions. It does not consume usage credits.
```bash theme={null}
curl "https://www.tryfundable.ai/api/v1/alerts/configurations" \
--header "Authorization: Bearer YOUR_API_KEY"
```
Store the alert IDs you want the workflow to process. You can request up to 10 alert
IDs at once.
## 2. Request matching deals
Pass a comma-separated list of alert IDs and an inclusive UTC date range.
```bash theme={null}
curl --get "https://www.tryfundable.ai/api/v1/alerts" \
--header "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "alert_ids=ALERT_UUID_1,ALERT_UUID_2" \
--data-urlencode "start_date=2026-07-20T00:00:00.000Z" \
--data-urlencode "end_date=2026-07-21T00:00:00.000Z"
```
The response returns each alert in `data.alerts` with a flattened `deals` array.
Deals are sorted newest first and deduplicated within the API response. Each match
also includes reasoning that explains why the deal satisfied the alert.
## 3. Process matches safely
Use the deal UUID as the idempotency key in your destination.
1. Read the last successful UTC checkpoint.
2. Request a short overlapping time window.
3. Upsert or skip each deal by UUID.
4. Record per-item failures for retry.
5. Advance the checkpoint only when the complete batch succeeds.
An overlap is safe because the destination deduplicates by UUID. It also protects
against scheduler delays and partial failures.
## 4. Route by alert
Keep `alertId`, `alertName`, and the match reasoning with each downstream record.
Those fields let you route different alerts to different Slack channels, CRM lists,
email sequences, or analyst queues without reimplementing the filter logic.
Review query parameters and the response schema.
Retrieve the alerts available to the authenticated user.
# Track Newly Funded Startups with the API
Source: https://docs.tryfundable.ai/guides/track-newly-funded-startups
Find startups as funding rounds are added to Fundable, then filter by stage, industry, location, and company size.
Use `POST /companies` to build a repeatable feed of newly funded startups. Filter on
`latest_deal.created_start` when you care about when Fundable added a round, or use
`latest_deal.date_start` when you care about the round's announcement date.
For signal-based outbound, `created_start` is usually the better checkpoint. It
catches rounds when they enter Fundable, including older announcements that were
added recently.
## 1. Resolve filter permalinks
Location, industry, and super-category filters require exact permalinks. Resolve
human-readable names with the free [`GET /location/search`](/api-reference/locations/search)
and [`GET /industry/search`](/api-reference/industries/search) endpoints before you
build the company request.
```bash theme={null}
curl --get "https://www.tryfundable.ai/api/v1/industry/search" \
--header "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "name=artificial intelligence"
```
See [Filtering and Permalinks](/api-reference/filtering) for round-type enums and
common filtering mistakes.
## 2. Query companies with newly added rounds
This request returns private Seed and Series A companies whose latest funding round
was added to Fundable on or after July 1, 2026.
```bash theme={null}
curl --request POST "https://www.tryfundable.ai/api/v1/companies" \
--header "Authorization: Bearer YOUR_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"company": {
"locations": ["san-francisco-california"],
"super_categories": ["artificial-intelligence-e551"],
"ipo_status": ["private"]
},
"latest_deal": {
"financing_types": [
{ "type": "SEED" },
{ "type": "SERIES_A" }
],
"created_start": "2026-07-01"
},
"page": 0,
"page_size": 50,
"sort_by": "most_recent_raise"
}'
```
The response places company records in `data.companies` and pagination details in
`meta`. Increase `page` from `0` until you have processed `meta.total_count` results.
The maximum `page_size` is `500`.
## 3. Make the sync idempotent
Use a small overlap between runs so a delayed job does not create a gap.
1. Save the timestamp of the last successful run.
2. Query again from a slightly earlier `created_start` date.
3. Upsert companies by `company.id` and rounds by `company.latest_deal.id`.
4. Advance the checkpoint only after every page succeeds.
This pattern tolerates retries and late-arriving records without sending the same
company through your workflow twice.
## 4. Send qualified records downstream
Common destinations include a CRM, outbound queue, warehouse, or review sheet. Keep
the Fundable company and deal IDs in the destination so later runs can update the
same records.
Review every company and latest-deal filter.
Turn matched companies into durable CRM records.
# Fundable API: Startup and VC Funding Data
Source: https://docs.tryfundable.ai/index
Fundable's REST API for real-time startup funding rounds, VC deals, investors, and people. 150k+ rounds, 200 free credits, native API access.
**Best suited for:**
* **Signal-based outbound:** Spot companies within hours of a raise
* **Market mapping:** Find every funded company in a sector
* **Funding alerts:** Track companies by sector, stage, or use of funds
* **AI agents:** Power tools and workflows with real-time funding data
For AI agents, use [`llms.txt`](https://docs.tryfundable.ai/llms.txt) for a Markdown
index of every page and OpenAPI specification, or
[`llms-full.txt`](https://docs.tryfundable.ai/llms-full.txt) for the complete docs.
## Explore use-case guides
Find companies as funding rounds are added, then filter by stage, industry, and location.
Pull saved alert matches into scheduled workflows without sending duplicates.
Add funding history, investors, and company details to account records.
Give an agent safe, structured access to real-time funding data through the REST API.
## Why Choose Our API
**Real Time Coverage**: We are the quickest to report on funding announcements, enabling GTM workflows that require speed.
**Affordable Pricing**: Start for free and scale on a credit-based model.
**Rich Filtering**: Search across 15+ dimensions like stage, industry, geography, deal size, investor participation, or use semantic search.
## Get started with the Fundable API
**Create an API Key**: Grab an API key [here](https://www.tryfundable.ai/api-access/), your first 200 credits are free.
**Make Your First API Call**: Read our API documentation and view example recipes to understand how the API works. Check out some [example code](https://github.com/Jklionsky/fundable-api-example.git) on how to use the API.
Learn how to authenticate your API requests.
Explore all available endpoints.
Filter by location, industry, and round type using the right permalinks — and avoid empty results.
View example code for using the API.
# Fundable API Pricing and Credits
Source: https://docs.tryfundable.ai/usage
Fundable API pricing: credit cost per endpoint, free search endpoints, and pay-as-you-go credits from $0.05.
## API Pricing
Single-record company, investor, and person lookups cost **1 credit per call**.
List and history endpoints cost **1 credit per row returned**. Search endpoints
cost 0.1 credits per call or are free, as shown below.
| Endpoint | Description | Cost |
| ---------------------------- | ------------------------------------------------------ | ----------------- |
| `POST /deals` | Search and filter funding rounds | 1 credit/row |
| `GET /deals/{id}` | Get a specific funding round by ID | 1 credit/row |
| `GET /deals/{id}/investors` | Get investors for a specific funding round | 1 credit/row |
| `POST /companies` | List and filter companies with recent funding details | 1 credit/row |
| `GET /company` | Get a company by ID, domain, LinkedIn, or Crunchbase | 1 credit/call |
| `GET /company/deals` | Get funding rounds for a specific company | 1 credit/row |
| `GET /company/search` | Search companies by name or domain | 0.1 credit/call |
| `POST /investors` | List and filter investors with matching investments | 1 credit/row |
| `GET /investor` | Get an investor by ID, domain, LinkedIn, or Crunchbase | 1 credit/call |
| `GET /investor/deals` | Get funding rounds for a specific investor | 1 credit/row |
| `GET /investor/search` | Search investors by name or domain | 0.1 credit/call |
| `POST /people` | List and filter people with investment activity | 1 credit/row |
| `GET /person` | Get a person by ID, LinkedIn, Crunchbase, or Twitter | 1 credit/call |
| `GET /person/deals` | Get deals a person participated in as an investor | 1 credit/row |
| `GET /person/search` | Search for a person by name or identifier | 0.1 credit/call |
| `GET /industry/search` | Search industries by name | Free |
| `GET /location/search` | Search locations by name | Free |
| `GET /alerts` | Get alert data with deals | Free — Pro+ / API |
| `GET /alerts/configurations` | Get alert configurations | Free — Pro+ / API |
The Alerts API is available on **Pro+ and API plans**. Both Alerts endpoints are
currently free and do not consume credits.
View current usage, credit balances, and billing details on the
[API Access page](https://www.tryfundable.ai/api-access#usage).
## How Credits Work
Paid endpoints return a `meta` object with credit usage details:
```json theme={null}
{
"success": true,
"data": {
"companies": [
{ "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Acme" }
]
},
"meta": {
"total_count": 1,
"page": 0,
"page_size": 25,
"credits_used": 1,
"credit_source": "monthly",
"monthly_credits_remaining": 199,
"purchased_credits_remaining": 50
}
}
```
| Field | Description |
| ----------------------------- | --------------------------------------------------------------- |
| `total_count` | Total records matching the request |
| `page` | Current page number, starting at `0` |
| `page_size` | Maximum records requested per page |
| `credits_used` | Number of credits consumed by this request |
| `credit_source` | Whether credits came from `monthly` plan or `purchased` balance |
| `monthly_credits_remaining` | Remaining credits from your plan |
| `purchased_credits_remaining` | Remaining individually purchased credits |
* **List and history endpoints** cost **1 credit per row returned**. A request that returns 25 rows costs 25 credits.
* **Single-record lookups** (`/company`, `/investor`, `/person`) cost **1 credit per call**.
* **Company, investor, and person search** cost **0.1 credits per request**, regardless of rows returned.
* **Industry & location search** (`/industry/search`, `/location/search`) are always free and don't return credit fields.
* **Alerts endpoints** are free for Pro+ and API plans.
* Credits come included with your plan. If you don't want a recurring plan, you can buy credits individually for as low as **\$0.05 per credit**.
## Getting Started
Your first **200 credits are free** — no credit card required. Grab your API key [here](https://www.tryfundable.ai/api-access/) and start making requests immediately.