# 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. **Plan requirement:** Available on Pro+ and Enterprise plans. This endpoint does not consume credits. # Funding Alerts API Source: https://docs.tryfundable.ai/api-reference/alerts/list openapi.json GET /alerts Retrieve saved funding alert data with matching deals, reasoning, and source articles in a date range. **Plan requirement:** Available on Pro+ and Enterprise plans. This endpoint does not consume credits. # Startup Funding History Source: https://docs.tryfundable.ai/api-reference/companies/deals openapi.json GET /company/deals Retrieve a company's complete funding history and source articles by any identifier, paginated. # Startup by ID Source: https://docs.tryfundable.ai/api-reference/companies/get openapi.json GET /company Retrieve company data, the latest funding round, and its source articles by UUID, domain, LinkedIn, or Crunchbase. # Startup Search API Source: https://docs.tryfundable.ai/api-reference/companies/list openapi.json POST /companies Retrieve companies and latest-deal source articles with advanced filtering, pagination, sorting, and 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). # Startup Lookup 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. # Funding Round by ID Source: https://docs.tryfundable.ai/api-reference/deals/get openapi.json GET /deals/{id} Retrieve full details and source articles for a venture capital funding round by its unique ID. # Investors by Funding Round ID 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 Round Search API Source: https://docs.tryfundable.ai/api-reference/deals/list openapi.json POST /deals Retrieve venture capital deals and source articles 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 Lookup 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 Choose the collection endpoint based on the entity the response should contain. `POST /companies` is the default for most company-sourcing workflows. Use `POST /deals` when the result should be funding rounds or when round filters must match historical deals rather than only each company's latest deal. Use `POST /investors` for firms and `POST /people` for individuals. ### Deals * **POST /deals** -- Search rounds across complete company histories. Use it for round-level analysis where filters must match any historical deal. Deal records include full round details and reference related entities by ID. * **GET /deals/** -- Retrieve full details and related source articles for a single known funding round by UUID. * **GET /deals//investors** -- Resolve a deal's investor IDs into the full lineup, including firms, associated partners, angel investors, lead status, and profile links. ### Companies * **POST /companies** -- Default endpoint for company discovery. It returns company metadata and the full latest deal. `latest_deal` filters apply only to the most recent round; investor filters can match across all rounds. * **GET /company** -- Get full company details and the latest funding round by UUID, domain, LinkedIn, or Crunchbase. Pass a known domain or LinkedIn URL directly instead of searching first. * **GET /company/deals** -- Retrieve a company's complete funding history, including related source articles for every deal, by any identifier. * **GET /company/search** -- Resolve a fuzzy company name or uncertain identifier. Skip it when a reliable domain or LinkedIn URL is already available. ### Investors * **POST /investors** -- Discover investor firms. Investment filters identify qualifying portfolio companies and deals, then return participating firms. `filtered_deal_count` and `filtered_lead_count` count only deals matching those filters. * **GET /investor** -- Get an investor firm's full profile, statistics, and portfolio summary by UUID, domain, LinkedIn, or Crunchbase. Pass a known domain or LinkedIn URL directly. * **GET /investor/deals** -- Retrieve an investor's complete deal history, including related source articles for every deal, by any identifier. * **GET /investor/search** -- Resolve a fuzzy firm name or uncertain identifier. Skip it when a reliable domain or LinkedIn URL is already available. ### People * **POST /people** -- Discover individuals. Company mode returns founders or employees and can filter on the current employer's latest round without returning that funding data. Investor mode returns angels or lead partners attached to firms. * **GET /person** -- Get full person detail by UUID, LinkedIn, Crunchbase, or Twitter. Pass a known LinkedIn URL directly instead of searching first. * **GET /person/email** -- Unlock a person's verified email by UUID, LinkedIn, Crunchbase, or Twitter. Available on non-trial Pro+ and Enterprise plans. New unlocks consume 5 credits; previously unlocked emails consume 0 credits. * **GET /person/deals** -- Retrieve every deal a person has participated in as an investor (angel plus lead/firm deals), including related source articles. * **GET /person/search** -- Resolve a fuzzy person name or uncertain identifier across both investors and non-investors. Skip it when a reliable LinkedIn URL is already available. ### 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. Use semantic `search_query` only when the industry taxonomy cannot express the requested niche; semantic results are capped at 150 matches. See [Endpoint and Filter Selection](/guides/endpoint-and-filter-selection) for complete route-selection rules, filter guidance, and common multi-endpoint workflows. ### Alerts * **GET /alerts** -- Retrieve saved alert data with all matching deals in a date range (up to 10 alerts per request). Available on Pro+ and Enterprise plans. * **GET /alerts/configurations** -- List the authenticated user's alert configurations (filters, frequency, descriptions). Available on Pro+ and Enterprise plans. Both alert endpoints return `credits_used: 0`; they do not consume API credits. ## Error Handling All endpoints return consistent error responses: | Status Code | Description | | ----------- | -------------------------------------------------------- | | **400** | Bad request (invalid parameters) | | **401** | Unauthorized (missing or invalid API key) | | **402** | Insufficient credits | | **422** | Validation error (unknown parameter, invalid enum value) | | **429** | Rate limit exceeded | | **500** | Internal server error | # Investor Portfolio by ID Source: https://docs.tryfundable.ai/api-reference/investors/deals openapi.json GET /investor/deals Retrieve an investor's complete deal history and source articles by any identifier, paginated. # Investor by ID 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 Search API 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 Lookup 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 Lookup 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. # Person Investments by ID 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, including source articles, paginated. # Person Email by ID Source: https://docs.tryfundable.ai/api-reference/people/email openapi.json GET /person/email Unlock a person's verified email by UUID, LinkedIn, Crunchbase, or Twitter identifier. **Plan requirement:** Available on non-trial Pro+ and Enterprise plans. A new email unlock costs **5 credits**; requesting an email the same user has already unlocked costs **0 credits**. # Person by ID 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. # People Search 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). # Person Lookup 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" ``` # Fundable MCP: Private-Market Research in Your AI Assistant Source: https://docs.tryfundable.ai/fundable-mcp Connect Fundable to an MCP-compatible AI assistant to source companies, research investors, map markets, and build prospect lists with private-market data. Fundable MCP lets an AI assistant research private companies, funding rounds, investors, founders, and verified contact information using Fundable's private-market dataset. Describe the outcome you want in plain language; the assistant can explore the dataset, run read-only queries, and—with your approval—export results or unlock emails. Turn an investment thesis or ideal customer profile into a qualified company list. Analyze funding activity, competitive landscapes, investors, and syndicates. ## What you can do ### Venture and growth-equity sourcing Turn an investment thesis into a targeted sourcing pipeline using sector, geography, stage, funding, investor, and company-maturity signals. ```text Example prompt theme={null} Find private companies that match this investment thesis: [sector or business model], [target geography], [funding stage or company maturity], and [other investment criteria]. Explain why each company fits, summarize its funding history, identify its founders, and retrieve available contact information. ``` ### GTM lead generation and sales prospecting Build prospect lists for B2B products and services using funding events, company stage, location, industry, and organizational information as buying signals. ```text Example prompt theme={null} We sell [product or service] to [ideal customer profile]. Find companies at [target stage or maturity] in [target region] that show relevant buying signals. Identify the founders or likely decision-makers, retrieve available contact information, and draft personalized outbound messages. ``` ### Investor discovery for founders Identify firms, angels, and partner-level professionals using sector, stage, geography, round size, and evidence from previous investments. ```text Example prompt theme={null} Using this company description, website, or fundraising deck, find angel investors, venture firms, and relevant investment partners that could be a fit for our next round. Explain why each investor matches, show relevant prior investments, and retrieve available contact information. ``` ### Venture and private-market landscape research Compare funding activity across sectors, stages, geographies, and time periods to identify active companies, investors, emerging categories, and shifts in momentum. ```text Example prompt theme={null} Analyze funding activity in [sector] across [stages], [locations], and [time period]. Show changes in deal volume and capital invested, identify active companies and investors, and summarize the most important market trends. ``` ### Co-investor and syndicate research Map disclosed investors, recurring co-investment relationships, partner-level professionals, and other deals where relevant investors participated together. ```text Example prompt theme={null} Find the disclosed investors and co-investors associated with [company, investor, sector, or group of deals]. Identify recurring investment relationships, relevant partners at each firm, and other deals where these investors participated together. ``` ### Market mapping and competitive landscapes Organize private companies by maturity, funding, geography, business model, customer segment, and specialization to expose crowded categories and potential market gaps. ```text Example prompt theme={null} Map the [market or industry] landscape. Find relevant private companies funded during [time period] and organize them by stage, funding, geography, customer focus, business model, and domain specialization. Identify mature platforms, emerging specialists, crowded segments, and potential market gaps. ``` ## Connect Fundable MCP Fundable MCP uses remote OAuth, so you do not need to install a local server or copy an API key into your AI assistant. 1. Open the MCP or integrations settings in your MCP-compatible assistant. 2. Add a custom remote MCP server using this URL: ```text Fundable MCP server URL theme={null} https://mcp.tryfundable.ai/ ``` 3. Follow the browser prompt to sign in to Fundable and authorize the connection. 4. Start a new conversation and ask what Fundable tools are available. MCP access requires an active Pro+ or Enterprise plan. [View Fundable pricing](https://www.tryfundable.ai/home/#pricing). ## Available tools | Tool | What it does | Cost and limits | | -------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | `getDatasetContext` | Explains the dataset, business rules, and common joins. | Free | | `listDatasetTables` | Lists the available dataset tables. | Free | | `getTableDetails` | Returns the columns and constraints for one table. | Free | | `getQueryExamples` | Returns example queries by research category. | Free | | `previewData` | Runs a read-only SQL query for analysis and previews. | Free; up to 15 rows per response and 1,000 preview rows in a rolling 24-hour period | | `exportData` | Creates a downloadable CSV from a read-only query. | 1 credit per exported row; up to 1,000 rows | | `unlockPersonEmail` | Retrieves a verified email for one person when available. | Up to 5 credits; repeat unlocks for the same account cost 0 | | `unlockPersonEmails` | Retrieves verified emails for an explicitly bounded batch of 1–20 people. | Up to 5 credits per new email; free outcomes use 0 | ## Previews, exports, and approval Fundable separates research from paid retrieval: * Analytical previews are free and return at most 15 rows at a time. * Preview queries are read-only and cannot modify the dataset. * A CSV export happens only after you explicitly request a file or download and approve a maximum credit amount. * Exports support up to 1,000 rows, 25 columns, 4,096 bytes per cell, and 10 MB per file. A result above your approved ceiling or a file limit is rejected without a charge. * Retrying identical export SQL within 15 minutes recovers the same export without a second charge. * Email unlocks require explicit approval. Missing emails, invalid identifiers, duplicates, and emails previously unlocked by the same account use 0 credits. Begin broad research with a free preview. Ask for a CSV only after the filters and columns look right. ## A reliable workflow 1. Ask the assistant to understand the Fundable dataset and your research goal. 2. Refine names, sectors, locations, stages, and time periods with a small preview. 3. Review the matches and adjust your criteria. 4. Ask for a CSV or verified contact information only when you want a paid action. 5. Confirm the scope and maximum credit amount before the assistant proceeds. ## Troubleshooting ### The connection says I do not have access Confirm that you signed in with the Fundable account attached to an active Pro+ or Enterprise plan. You can manage your plan from [Fundable billing](https://www.tryfundable.ai/billing). ### A query returns too few results Ask the assistant to inspect the dataset schema, validate exact filter values, and run a small diagnostic query. Avoid guessing internal identifiers or category names. ### The assistant will not export or unlock an email Paid actions require an explicit request and a bounded credit approval. State that you want the file or email, identify the intended scope, and approve the maximum number of credits. For help connecting Fundable MCP, contact [jacob@tryfundable.ai](mailto:jacob@tryfundable.ai). # 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. # Endpoint and Filter Selection Source: https://docs.tryfundable.ai/guides/endpoint-and-filter-selection Choose the right Fundable endpoints and filters for company, funding-round, investor, and people workflows. Fundable's collection endpoints can apply similar filters while returning different entity types. Choose the endpoint based first on the result you need, then on whether funding-round filters should apply only to a company's latest round or to its complete history. ## Choose the result type first | Requested result | Default endpoint | Selection rule | | -------------------------------------------- | -------------------------------------------------- | -------------------------------------------------------------------------------------- | | Companies | [`POST /companies`](/api-reference/companies/list) | Default for most sourcing workflows; returns company metadata and the full latest deal | | Funding rounds | [`POST /deals`](/api-reference/deals/list) | Use for deal analysis across complete company histories | | Investor firms | [`POST /investors`](/api-reference/investors/list) | Finds matching investments and returns the participating firms | | Founders, employees, or individual investors | [`POST /people`](/api-reference/people/list) | Returns people rather than companies, rounds, or firms | ## Choose companies or deals Use `POST /companies` for most company discovery. Each result includes company metadata such as its name and domain plus the full details of its latest funding round. Filters inside `latest_deal` apply only to that most recent round. Filters inside `investors` can match investor participation across all rounds. > **Example:** "Find AI companies in San Francisco whose latest round was Seed" should > use `POST /companies` with company industry and location filters plus a > `latest_deal.financing_types` filter. Use `POST /deals` when the requested result is a set of rounds or the analysis must include historical rounds even when they are no longer a company's latest. > **Example:** "Analyze every Seed round announced last year" should use `POST /deals`. > A company that later raised Series A still belongs in this result. Deal responses contain full round details, but related companies and investors are represented primarily by IDs. Follow a returned company ID with [`GET /company`](/api-reference/companies/get). Follow a deal ID with [`GET /deals/{id}/investors`](/api-reference/deals/investors) to retrieve firm investors, associated partners, angels, lead status, and profile links. ## Choose investor firms or people Use `POST /investors` when the desired output is investor firms. Conceptually, its `company_investments` filters identify qualifying portfolio companies and deals, then return the firms that participated in them. > **Example:** "Find San Francisco-based investors that participated in a Seed round > during the last year" should use `POST /investors`. Put firm location filters under > `investor` and round filters under `company_investments`. When `company_investments` filters are active: * `filtered_deal_count` is the number of deals that matched those filters. * `filtered_lead_count` is the number of those matching deals the firm led. Use `POST /people` when the desired output is individuals: * `person_type: company` returns founders, executives, and employees based on their current employer. `company.latest_deal` filters apply only to the employer's latest round, but the returned person record does not include the employer's funding data. * `person_type: investor` applies investment filters similarly to `POST /investors`, but returns individual angels or lead partners attached to their firms. > **Example:** "Find founders of AI companies in San Francisco whose latest round was > Series A" should use `POST /people` with `person_type: company`, a founder role, > current-employer filters, and `company.latest_deal.financing_types`. ## Skip search when a stable identifier is known A domain or LinkedIn URL is usually a stronger identifier than a name. Pass it directly to a detail endpoint instead of searching first: | Known entity | Full detail | Name or uncertain identifier | | ------------- | ----------------------------------------------- | --------------------------------------------------------- | | Company | [`GET /company`](/api-reference/companies/get) | [`GET /company/search`](/api-reference/companies/search) | | Investor firm | [`GET /investor`](/api-reference/investors/get) | [`GET /investor/search`](/api-reference/investors/search) | | Person | [`GET /person`](/api-reference/people/get) | [`GET /person/search`](/api-reference/people/search) | For batch lookup, pass arrays of known identifiers to the corresponding collection endpoint. Use the singular `/search` routes primarily for fuzzy name resolution or when an identifier might be ambiguous. ## Resolve filters before discovery Do not guess location or industry permalinks. 1. Resolve a location label with [`GET /location/search`](/api-reference/locations/search). 2. Resolve an industry or super category with [`GET /industry/search`](/api-reference/industries/search). 3. Pass the selected exact permalinks to the collection endpoint. See [Filtering & Permalinks](/api-reference/filtering) for permalink behavior and round-type enum values. ## When to use semantic search Semantic search is a fallback for category intent that Fundable's industry taxonomy cannot express precisely. It matches the meaning of a company's product, technology, or business model rather than treating the query as a literal keyword filter. Use this decision sequence: 1. Call [`GET /industry/search`](/api-reference/industries/search) with the user's category. 2. If the taxonomy contains an appropriate industry or super category, use its permalink in the structured filter. 3. If no taxonomy result captures the requested niche, use `search_query`. 4. Apply location, stage, round date, funding, employee count, and other structured requirements through their dedicated fields alongside the semantic query. | Endpoint and mode | Semantic-search field | What it matches | | ----------------------------- | ---------------------------------- | ---------------------------------------- | | `POST /companies` | `company.search_query` | What the returned companies do | | `POST /investors` | `company_investments.search_query` | What the firms' portfolio companies do | | `POST /people`, company mode | `company.search_query` | What each person's current employer does | | `POST /people`, investor mode | `investor.deals.search_query` | What companies the person invested in do | **Use a taxonomy filter:** "AI companies in San Francisco" maps cleanly to an AI industry permalink plus a San Francisco location permalink. **Use semantic search:** "Infrastructure that reduces the cost of training foundation models" describes a specific product and technology niche that may not have an exact industry permalink. Semantic searches return at most 150 matches. Results are relevance-ranked, and an optional `min_relevance` threshold from 0 to 1 can exclude weaker matches. On `POST /companies` and `POST /people`, semantic search overrides an explicit `sort_by`; `POST /investors` ranks firms by how closely their portfolios match the query. Do not include structured requirements such as "Seed," "San Francisco," "raised last year," or "11-50 employees" inside `search_query`. Doing so makes the request less predictable and bypasses filters designed for those constraints. ## Common endpoint sequences | Goal | Sequence | | -------------------------------------------------- | ------------------------------------------------------------- | | Source companies | Resolve location and industry → `POST /companies` | | Analyze historical rounds | Resolve location and industry → `POST /deals` | | Inspect investors in returned rounds | `POST /deals` → `GET /deals/{id}/investors` | | Find firms by investment history | Resolve filters → `POST /investors` | | Find founders by employer and latest round | Resolve filters → `POST /people` with `person_type: company` | | Find angels or lead partners by investment history | Resolve filters → `POST /people` with `person_type: investor` | # 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. `GET /alerts` and `GET /alerts/configurations` are available on Pro+ and Enterprise plans. Both endpoints consume zero 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 and an `articles` array containing its related sources. Use narrower date ranges or fewer alert IDs to keep response payloads smaller and downstream processing faster. ## 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 Research companies, investors, markets, and contacts directly from an MCP-compatible AI assistant. 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. Select and combine the right company, deal, investor, people, and filter endpoints. ## 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/email` | Unlock a verified email for a person | 5 credits/new unlock; repeat unlocks free | | `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 | | `GET /alerts/configurations` | Get alert configurations | Free | ## Plan-gated endpoints * `GET /person/email` is available on non-trial Pro+ and Enterprise plans. * `GET /alerts` and `GET /alerts/configurations` are available on Pro+ and Enterprise plans. * Alert requests 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. * **Person email unlocks** (`/person/email`) cost **5 credits for a new unlock** and **0 credits when the same user already unlocked that email**. * **Alert endpoints** (`/alerts`, `/alerts/configurations`) consume **0 credits**. * 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.