# info.description
Canonical OpenAPI specification for the Fundable API. This file bundles the Deals, Companies, Investors, People, Alerts, Location, and Industry endpoints.

# paths./deals.post.summary
Search and filter funding rounds by company, investor, and round details

# paths./deals.post.description
Retrieve venture capital deals with advanced filtering, pagination, and sorting.

## Request Body Structure
Send a JSON body with up to 4 filter sections plus pagination/sort at the top level:
- `identifiers` - Look up specific deals by UUID
- `deal` - Filter by deal attributes (financing type, size, date)
- `company` - Filter by company attributes (location, industry, size)
- `investors` - Filter by investor participation (firms or people, by UUID)

# paths./deals.post.requestBody.content.application/json.schema.properties.deal.properties.financing_types.description
Financing types with optional modifiers (pre, extension)

# paths./deals.post.requestBody.content.application/json.schema.properties.deal.properties.financing_types.items.properties.pre.description
Pre-round modifier (e.g., Pre-Seed, Pre-Series A)

# paths./deals.post.requestBody.content.application/json.schema.properties.deal.properties.date_start.description
Filter deals announced after this date (ISO 8601)

# paths./deals.post.requestBody.content.application/json.schema.properties.deal.properties.date_end.description
Filter deals announced before this date (ISO 8601)

# paths./deals.post.requestBody.content.application/json.schema.properties.deal.properties.created_start.description
Filter deals added to the system after this date (ISO 8601)

# paths./deals.post.requestBody.content.application/json.schema.properties.deal.properties.created_end.description
Filter deals added to the system before this date (ISO 8601)

# paths./deals.post.requestBody.content.application/json.schema.properties.company.properties.company_ids.description
Company UUIDs - filter deals by specific companies

# paths./deals.post.requestBody.content.application/json.schema.properties.company.properties.locations.description
Location permalinks. Use /location/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./deals.post.requestBody.content.application/json.schema.properties.company.properties.industries.description
Industry permalinks. Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./deals.post.requestBody.content.application/json.schema.properties.company.properties.super_categories.description
Super category permalinks (automatically includes related industries). Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./deals.post.requestBody.content.application/json.schema.properties.company.properties.ipo_status.description
IPO status filter. Valid: public, private

# paths./deals.post.requestBody.content.application/json.schema.properties.investors.description
Filter by investor participation (firms or people)

# paths./deals.post.requestBody.content.application/json.schema.properties.investors.properties.people_ids.description
Person UUIDs — matches deals where any of these people participated as an
**angel investor** OR as a **lead partner** of an investing firm.
Resolve via `/people/{id}`.

# paths./deals.post.responses.200.content.application/json.schema.properties.meta.properties.total_count.description
Total number of deals matching the filter criteria

# paths./deals.post.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./deals.post.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./deals.post.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./deals.post.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./deals.post.responses.400.description
Bad Request - Invalid parameter types or malformed JSON

# paths./deals.post.responses.422.description
Unprocessable Entity - Parameter validation failed

# paths./deals.post.responses.402.description
Insufficient credits to complete request

# paths./deals.post.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./deals/{id}.get.description
Retrieve detailed information about a single venture capital deal by its unique identifier

# paths./deals/{id}.get.parameters[].description
Unique identifier for the deal (UUID format)

# paths./deals/{id}.get.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./deals/{id}.get.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./deals/{id}.get.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./deals/{id}.get.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./deals/{id}.get.responses.400.description
Bad Request - Invalid deal ID format or unsupported query parameters

# paths./deals/{id}.get.responses.400.content.application/json.schema.oneOf[].properties.error.properties.details.properties.help.example
Please provide a valid UUID format for the deal ID

# paths./deals/{id}.get.responses.400.content.application/json.schema.oneOf[].properties.error.properties.message.example
Query parameters are not supported for this endpoint

# paths./deals/{id}.get.responses.400.content.application/json.schema.oneOf[].properties.error.properties.details.properties.help.example
This endpoint only accepts a deal ID in the path. Remove all query parameters.

# paths./deals/{id}.get.responses.402.description
Insufficient credits to complete request

# paths./deals/{id}.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./deals/{id}/investors.get.description
Retrieve detailed investor information for a single deal, including lead status, personnel, and investor profile links.

# paths./deals/{id}/investors.get.parameters[].description
Unique identifier for the deal (UUID format)

# paths./deals/{id}/investors.get.responses.200.content.application/json.schema.properties.data.properties.investors.description
Firm investors on this deal. Angels are surfaced separately in `angel_investors`.

# paths./deals/{id}/investors.get.responses.200.content.application/json.schema.properties.data.properties.angel_investors.description
Angel investors (individuals) on this deal. Empty array when no angels.

# paths./deals/{id}/investors.get.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./deals/{id}/investors.get.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./deals/{id}/investors.get.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./deals/{id}/investors.get.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./deals/{id}/investors.get.responses.402.description
Insufficient credits to complete request

# paths./deals/{id}/investors.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./company.get.summary
Get company details and recent funding by identifier

# paths./company.get.description
Retrieve detailed company information using any supported identifier format.
The API intelligently detects the identifier type and queries accordingly.

Provide ONE of the following query parameters to identify the company:
- `id` - Company UUID
- `domain` - Company domain or full URL (e.g., "stripe.com" or "https://stripe.com")
- `linkedin` - LinkedIn company URL
- `crunchbase` - Crunchbase organization URL

The response includes the company's latest funding round details with participating investors.

# paths./company.get.parameters[].description
Company domain or full URL (e.g., "stripe.com" or "https://stripe.com") — URLs are automatically parsed to extract the domain

# paths./company.get.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./company.get.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./company.get.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./company.get.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./company.get.responses.400.description
Bad request - missing identifier or invalid format

# paths./company.get.responses.400.content.application/json.schema.properties.error.properties.details.properties.help.example
Provide an identifier using one of the query parameters: id, domain, linkedin, or crunchbase

# paths./company.get.responses.402.description
Insufficient credits to complete request

# paths./company.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./company/deals.get.description
Retrieve all deals for a company using any supported identifier format.
The API intelligently detects the identifier type and queries accordingly.

Provide ONE of the following query parameters to identify the company:
- `id` - Company UUID
- `domain` - Company domain or full URL (e.g., "stripe.com" or "https://stripe.com")
- `linkedin` - LinkedIn company URL
- `crunchbase` - Crunchbase organization URL

The response includes the company's deals with pagination. If the identifier matches multiple companies, deals from all matches are returned.

# paths./company/deals.get.parameters[].description
Company domain or full URL (e.g., "stripe.com" or "https://stripe.com") — URLs are automatically parsed to extract the domain

# paths./company/deals.get.responses.200.description
Successful response with deals for the company

# paths./company/deals.get.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./company/deals.get.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./company/deals.get.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./company/deals.get.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./company/deals.get.responses.400.description
Validation error (missing, multiple, or invalid identifier)

# paths./company/deals.get.responses.400.content.application/json.schema.properties.error.properties.details.properties.help.example
Provide one of: domain, linkedin, or crunchbase. Example: ?domain=stripe.com

# paths./company/deals.get.responses.404.description
No company found matching the provided identifier

# paths./company/deals.get.responses.404.content.application/json.schema.properties.error.properties.message.example
No company found matching the provided identifier

# paths./company/deals.get.responses.402.description
Insufficient credits to complete request

# paths./company/deals.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./company/search.get.summary
Search for a company by name, domain, LinkedIn, or Crunchbase

# paths./company/search.get.description
Look up companies using one of four search methods. Exactly one parameter must be provided.

**Search types:**
- `name` — Fuzzy name search with relevance scoring
- `domain` — Company domain or full URL
- `linkedin` — LinkedIn company URL
- `crunchbase` — Crunchbase organization URL

Examples:
- `?linkedin=https://linkedin.com/company/stripe`
- `?crunchbase=https://crunchbase.com/organization/notion`

# paths./company/search.get.parameters[].description
Company domain or full URL (e.g., "stripe.com" or "https://stripe.com") — URLs are automatically parsed to extract the domain

# paths./company/search.get.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./company/search.get.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./company/search.get.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./company/search.get.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./company/search.get.responses.400.description
Validation error (missing, multiple, or invalid parameters)

# paths./company/search.get.responses.400.content.application/json.schema.properties.error.properties.message.example
Only one search parameter is allowed at a time

# paths./company/search.get.responses.400.content.application/json.schema.properties.error.properties.details.properties.help.example
You provided: name, domain. Please use only one of: name, domain, linkedin, or crunchbase

# paths./company/search.get.responses.402.description
Insufficient credits to complete request

# paths./company/search.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./companies.post.summary
Search and filter companies with recent funding details

# paths./companies.post.description
Retrieve companies with advanced filtering, pagination, sorting, and optional AI-powered semantic search.

## Request Body Structure
Send a JSON body with up to 4 filter sections plus pagination/sort at the top level:
- `identifiers` - Look up specific companies by UUID, domain, LinkedIn, or Crunchbase
- `company` - Filter by company attributes (search, location, industry, size, etc.)
- `latest_deal` - Filter by latest funding round attributes (type, size, date, investors)
- `investors` - Filter by investors (firms or people) across all rounds

# paths./companies.post.requestBody.content.application/json.schema.properties.identifiers.description
Look up specific companies by identifier

# paths./companies.post.requestBody.content.application/json.schema.properties.company.properties.search_query.description
AI-powered semantic search — a flexible replacement for an industry tag. Use it to target a niche industry or specific product type by describing what the company does — its product, technology, or business model (e.g. "AI-powered medical imaging diagnostics" or "vertical SaaS for dental practices"). Best for product/category targeting the fixed industry list can't capture. Do NOT use it for other attributes like stage, location, funding, or employee count — apply those with the dedicated filter fields instead. Results include a similarity score and are sorted by relevance.

# paths./companies.post.requestBody.content.application/json.schema.properties.company.properties.search_query.example
AI-powered medical imaging diagnostics software

# paths./companies.post.requestBody.content.application/json.schema.properties.company.properties.min_relevance.description
Minimum similarity threshold (0-1). Only applies with search_query.

# paths./companies.post.requestBody.content.application/json.schema.properties.company.properties.locations.description
Location permalinks. Use /location/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./companies.post.requestBody.content.application/json.schema.properties.company.properties.industries.description
Industry permalinks. Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./companies.post.requestBody.content.application/json.schema.properties.company.properties.super_categories.description
Super category permalinks (automatically includes related industries). Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./companies.post.requestBody.content.application/json.schema.properties.company.properties.ipo_status.description
IPO status filter. Valid: public, private

# paths./companies.post.requestBody.content.application/json.schema.properties.latest_deal.properties.financing_types.description
Financing types with optional modifiers (pre, extension)

# paths./companies.post.requestBody.content.application/json.schema.properties.latest_deal.properties.financing_types.items.properties.pre.description
Pre-round modifier (e.g., Pre-Seed, Pre-Series A)

# paths./companies.post.requestBody.content.application/json.schema.properties.latest_deal.properties.created_start.description
Latest deal record added to the system on or after this date (ISO 8601). Filters by ingestion date (`created_at`), not the announcement date — useful for finding rounds newly added to Fundable.

# paths./companies.post.requestBody.content.application/json.schema.properties.latest_deal.properties.created_end.description
Latest deal record added to the system on or before this date (ISO 8601). Filters by ingestion date (`created_at`), not the announcement date.

# paths./companies.post.requestBody.content.application/json.schema.properties.latest_deal.properties.investor_ids.description
Filter by investors who participated in the latest deal only

# paths./companies.post.requestBody.content.application/json.schema.properties.investors.description
Filter by investors (firms or people) across all funding rounds

# paths./companies.post.requestBody.content.application/json.schema.properties.investors.properties.investor_ids.description
Investor UUIDs — matches companies where these investors participated in any round ever

# paths./companies.post.requestBody.content.application/json.schema.properties.investors.properties.people_ids.description
Person UUIDs — matches companies where any of these people participated in any round
as an **angel investor** OR as a **lead partner** of an investing firm.
Resolve via `/people/{id}`.

# paths./companies.post.requestBody.content.application/json.schema.properties.sort_by.description
Sort order. Ignored when search_query is provided (sorted by relevance).

# paths./companies.post.responses.200.content.application/json.schema.properties.meta.properties.total_count.description
Total number of companies matching the filter criteria

# paths./companies.post.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./companies.post.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./companies.post.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./companies.post.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./companies.post.responses.422.description
Unprocessable Entity - Unknown parameter provided

# paths./companies.post.responses.402.description
Insufficient credits to complete request

# paths./companies.post.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./investors.post.description
Retrieve a paginated list of investors with optional filtering.

## Request Body Structure
Send a JSON body with up to 3 filter sections plus pagination/sort at the top level:
- `identifiers` - Look up specific investors by UUID, domain, LinkedIn, or Crunchbase
- `investor` - Filter by investor entity attributes (location, employee count)
- `company_investments` - Filter by portfolio (industries, deal characteristics, etc.). Supports semantic search via `search_query` + `min_relevance`.

When `company_investments` filters are active, each investor in the response includes `filtered_deal_count` and `filtered_lead_count`.

# paths./investors.post.requestBody.content.application/json.schema.properties.investor.properties.locations.description
Investor HQ location permalinks. Use /location/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.description
Portfolio filters (filter by companies the investor has invested in)

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.search_query.description
AI-powered semantic search matched against each investor's
portfolio companies — a flexible replacement for an industry tag.
Use it to target a niche industry or specific product type by
describing what those companies do — their product, technology, or
business model (e.g. "climate-focused carbon capture hardware"). Do
NOT use it for other attributes like stage, location, or funding —
apply those with the dedicated `company_investments` and `investor`
filter fields instead. When provided, results are ranked by how
closely an investor's portfolio matches the query rather than the
default sort.

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.min_relevance.description
Minimum relevance score threshold (0–1) for the portfolio-based
semantic search. Only applies when `search_query` is provided.
Investors whose portfolio match score falls below this threshold
are excluded. Defaults to 0 (return all results).

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.locations.description
Portfolio company location permalinks. Use /location/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.industries.description
Portfolio company industry permalinks. Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.super_categories.description
Broad industry super-category permalinks. Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.total_raised_min.description
Minimum total raised by portfolio companies (USD)

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.total_raised_max.description
Maximum total raised by portfolio companies (USD)

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.financing_types.description
Financing types with optional modifiers (pre, extension)

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.financing_types.items.properties.pre.description
Pre-round modifier (e.g., Pre-Seed, Pre-Series A)

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.deal_start_date.description
Filter deals on or after this date (ISO 8601)

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.deal_end_date.description
Filter deals on or before this date (ISO 8601)

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.only_lead_deals.description
When true, only count deals where investor was lead

# paths./investors.post.requestBody.content.application/json.schema.properties.company_investments.properties.min_matching_deals.description
Minimum number of deals matching the portfolio filters

# paths./investors.post.requestBody.content.application/json.schema.properties.sort_by.description
Sort order for results.
- **most_recent_deal** — Date of most recent investment (newest first)
- **recent_deals** — Deals in last 12 months (highest first)
- **deals_led_ltm** — Lead deals in last 12 months (highest first)
- **total_deals** — All-time deal count (highest first)
- **matching_deals** — Deals matching portfolio filters (highest first)

# paths./investors.post.requestBody.content.application/json.examples.filter_only.summary
Investors in SF investing in AI Series A/B rounds

# paths./investors.post.requestBody.content.application/json.examples.semantic_search.summary
Semantic search for climate-focused investors with AI portfolio

# paths./investors.post.requestBody.content.application/json.examples.lead_investors_recent.summary
Active lead investors with at least 3 matching deals

# paths./investors.post.responses.200.description
Successful response with paginated investor list

# paths./investors.post.responses.200.content.application/json.schema.properties.meta.properties.total_count.description
Total number of investors matching filters

# paths./investors.post.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./investors.post.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./investors.post.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./investors.post.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./investors.post.responses.402.description
Insufficient credits to complete request

# paths./investors.post.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./investor.get.summary
Get investor details and statistics by identifier

# paths./investor.get.description
Retrieve detailed investor information using any supported identifier format.
The API intelligently detects the identifier type and queries accordingly.

Provide ONE of the following query parameters to identify the investor:
- `id` - Investor UUID
- `domain` - Investor domain or full URL (e.g., "sequoiacap.com" or "https://sequoiacap.com")
- `linkedin` - LinkedIn company URL
- `crunchbase` - Crunchbase organization URL

The response includes the investor's statistics, portfolio summary, and profile links.

# paths./investor.get.parameters[].description
Investor domain or full URL (e.g., "sequoiacap.com" or "https://sequoiacap.com") — URLs are automatically parsed to extract the domain

# paths./investor.get.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./investor.get.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./investor.get.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./investor.get.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./investor.get.responses.400.description
Validation error (missing or invalid identifier)

# paths./investor.get.responses.402.description
Insufficient credits to complete request

# paths./investor.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./investor/deals.get.description
Retrieve all deals for an investor using any supported identifier format.
The API intelligently detects the identifier type and queries accordingly.

Provide ONE of the following query parameters to identify the investor:
- `id` - Investor UUID
- `domain` - Investor domain or full URL (e.g., "sequoiacap.com" or "https://sequoiacap.com")
- `linkedin` - LinkedIn company URL
- `crunchbase` - Crunchbase organization URL

The response includes the investor's deals with pagination. If the identifier matches multiple investors (e.g., a16z has multiple firms), deals from all matches are returned together.

# paths./investor/deals.get.parameters[].description
Investor domain or full URL (e.g., "sequoiacap.com" or "https://sequoiacap.com") — URLs are automatically parsed to extract the domain

# paths./investor/deals.get.responses.200.description
Successful response with deals for the investor

# paths./investor/deals.get.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./investor/deals.get.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./investor/deals.get.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./investor/deals.get.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./investor/deals.get.responses.400.description
Validation error (missing, multiple, or invalid identifier)

# paths./investor/deals.get.responses.400.content.application/json.schema.properties.error.properties.details.properties.help.example
Provide one of: domain, linkedin, or crunchbase. Example: ?domain=sequoiacap.com

# paths./investor/deals.get.responses.404.description
No investor found matching the provided identifier

# paths./investor/deals.get.responses.404.content.application/json.schema.properties.error.properties.message.example
No investor found matching the provided identifier

# paths./investor/deals.get.responses.402.description
Insufficient credits to complete request

# paths./investor/deals.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./investor/search.get.summary
Search investors by name, domain, LinkedIn, or Crunchbase

# paths./investor/search.get.description
Look up investors using one of four search methods. Exactly one parameter must be provided.

**Search types:**
- `name` — Fuzzy name search with relevance scoring
- `domain` — Investor domain or full URL
- `linkedin` — LinkedIn company URL
- `crunchbase` — Crunchbase organization URL

Identifier lookups (`domain`, `linkedin`, `crunchbase`) return `relevance_score: 1`.
Examples:
- `?linkedin=https://linkedin.com/company/sequoia-capital`
- `?crunchbase=https://crunchbase.com/organization/sequoia-capital`

# paths./investor/search.get.parameters[].description
Investor name (fuzzy search with relevance scoring)

# paths./investor/search.get.parameters[].description
Investor domain or full URL (e.g., "sequoiacap.com" or "https://sequoiacap.com") — URLs are automatically parsed to extract the domain

# paths./investor/search.get.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./investor/search.get.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./investor/search.get.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./investor/search.get.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./investor/search.get.responses.200.content.application/json.example.data.investors[].description
Early-stage venture capital firm focused on AI startups

# paths./investor/search.get.responses.400.content.application/json.schema.properties.error.properties.message.example
At least one search parameter is required

# paths./investor/search.get.responses.400.content.application/json.schema.properties.error.properties.details.properties.help.example
Provide one of: name, domain, linkedin, or crunchbase. Example: ?name=sequoia or ?domain=sequoiacap.com

# paths./investor/search.get.responses.402.description
Insufficient credits to complete request

# paths./investor/search.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./people.post.summary
Search people with cross-type filters and optional semantic search

# paths./people.post.description
Retrieve people with advanced filtering, pagination, sorting, and optional AI-powered semantic search.

## Request Body Structure
Send a JSON body with up to 4 filter sections plus pagination/sort at the top level:
- `identifiers` - Look up specific people by UUID, LinkedIn, Crunchbase, or Twitter
- `person` - Filter by person attributes (role, contact info, job title, education, prior employers)
- `company` - Filter by current employer attributes (industry, location, funding, IPO status, etc.)
- `investor` - Filter by investor activity (firm, deal characteristics, portfolio companies)

# paths./people.post.requestBody.content.application/json.schema.properties.person_type.description
Restrict results to one population. `company` returns only people with a
current employer (founders, executives, employees). `investor` returns only
people who invest. `any` (default) returns the union — anyone matching the
other filter blocks regardless of population.

# paths./people.post.requestBody.content.application/json.schema.properties.person.properties.linkedin_companies.description
Filter by previous/current employer LinkedIn company IDs

# paths./people.post.requestBody.content.application/json.schema.properties.company.description
Current-employer attribute filters. Setting any field implicitly requires the person to have a current employer.

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.search_query.description
AI-powered semantic search against the person's current employer — a flexible replacement for an industry tag. Use it to target a niche industry or specific product type by describing what that company does — its product, technology, or business model (e.g. "climate tech carbon accounting software"). Do NOT use it for other attributes like stage, location, or funding — apply those with the dedicated filter fields instead. Overrides explicit sort_by — results are ordered by relevance.

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.min_relevance.description
Minimum similarity threshold (0-1). Only applies with search_query.

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.locations.description
Location permalinks. Use /location/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.industries.description
Industry permalinks. Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.super_categories.description
Super category permalinks (auto-includes related industries). Use /industry/search to find permalinks. A value that is not an exact permalink is silently ignored (returns zero results, no error).

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.total_raised_min.description
Minimum total raised by current employer (USD)

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.total_raised_max.description
Maximum total raised by current employer (USD)

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.investor_people_ids.description
Person UUIDs — filter to people whose current employer has ever raised
from any of these people as an **angel investor** OR as a **lead partner**
of an investing firm. Resolve via `/people/{id}`.

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.latest_deal.description
Nested. Filters on the current employer's most recent funding round.

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.latest_deal.properties.financing_types.description
Financing types with optional modifiers (pre, extension)

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.latest_deal.properties.investor_ids.description
Filter to deals where these investor UUIDs participated

# paths./people.post.requestBody.content.application/json.schema.properties.company.properties.latest_deal.properties.investor_locations.description
Filter to deals with investors HQ'd in these locations

# paths./people.post.requestBody.content.application/json.schema.properties.investor.description
Filters on the investor entity (firm) and on the person's deal activity.
Setting any field (including any nested `deals.*` field) implicitly requires
the person to be an investor.

# paths./people.post.requestBody.content.application/json.schema.properties.investor.properties.deals.properties.search_query.description
AI-powered semantic search against the person's portfolio companies — a flexible replacement for an industry tag. Use it to target a niche industry or specific product type by describing what those companies do — their product, technology, or business model (e.g. "AI infrastructure for model training"). Do NOT use it for other attributes like stage, location, or funding — apply those with the dedicated filter fields instead. Overrides explicit sort_by — results are ordered by relevance.

# paths./people.post.requestBody.content.application/json.schema.properties.investor.properties.deals.properties.min_relevance.description
Minimum similarity threshold (0-1). Only applies with search_query.

# paths./people.post.requestBody.content.application/json.schema.properties.investor.properties.deals.properties.investment_type.description
Filter by whether the person invests as an angel, under a firm, or both

# paths./people.post.requestBody.content.application/json.schema.properties.investor.properties.deals.properties.only_lead_deals.description
Only count deals where the person/firm was a lead investor

# paths./people.post.requestBody.content.application/json.schema.properties.investor.properties.deals.properties.min_matching_deals.description
Require at least this many deals to match the deal filters

# paths./people.post.requestBody.content.application/json.schema.properties.investor.properties.deals.properties.financing_types.description
Financing types for the person's investment activity

# paths./people.post.requestBody.content.application/json.schema.properties.investor.properties.deals.properties.size_min.description
Minimum deal size (USD) for the person's deal activity

# paths./people.post.requestBody.content.application/json.schema.properties.investor.properties.deals.properties.size_max.description
Maximum deal size (USD) for the person's deal activity

# paths./people.post.requestBody.content.application/json.schema.properties.investor.properties.deals.properties.total_raised_min.description
Minimum total raised by the portfolio company (USD)

# paths./people.post.requestBody.content.application/json.schema.properties.investor.properties.deals.properties.total_raised_max.description
Maximum total raised by the portfolio company (USD)

# paths./people.post.requestBody.content.application/json.schema.properties.sort_by.description
Sort order. All values are universally accepted — non-applicable values (e.g. `lead_deal_count`
when no investor filter is set) resolve to 0 / null via COALESCE and naturally sort to the bottom (DESC).
Ignored when `company.search_query` or `investor.deals.search_query` is set (results are then
ordered by semantic relevance).

# paths./people.post.requestBody.content.application/json.examples.filter_only.summary
Founders at private financial-services companies

# paths./people.post.requestBody.content.application/json.examples.angel_investors_active_2024.summary
People who made at least 3 angel investments in 2024

# paths./people.post.responses.200.content.application/json.schema.properties.message.description
Optional friendly message (e.g. "No people found matching your filters" when empty)

# paths./people.post.responses.200.content.application/json.schema.properties.meta.properties.total_count.description
Total number of people matching the filter criteria

# paths./people.post.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request

# paths./people.post.responses.200.content.application/json.schema.properties.meta.properties.credit_source.description
Source of credits used (only included for non-API tier keys)

# paths./people.post.responses.200.content.application/json.schema.properties.meta.properties.monthly_credits_remaining.description
Remaining monthly credits (only included for non-API tier keys)

# paths./people.post.responses.200.content.application/json.schema.properties.meta.properties.purchased_credits_remaining.description
Remaining purchased credits (only included for non-API tier keys)

# paths./people.post.responses.400.description
Validation error (invalid types, dates, enums, or empty `search_query`)

# paths./people.post.responses.402.description
Insufficient credits to complete request

# paths./people.post.responses.422.description
Unknown parameter (per-block whitelist enforced)

# paths./people.post.responses.429.description
Two distinct cases share this status:
- `RATE_LIMIT_EXCEEDED` — per-minute API rate limit
- `USAGE_LIMIT_EXCEEDED` — semantic-search monthly usage limit (only when `company.search_query` or `investor.deals.search_query` was set)

# paths./people.post.responses.429.headers.Retry-After.description
Seconds to wait before retrying (sent for `RATE_LIMIT_EXCEEDED` only)

# paths./people.post.responses.504.description
Semantic search timed out (only when `company.search_query` or `investor.deals.search_query` was set)

# paths./person.get.description
Retrieve detailed person information using any supported identifier format.
The API intelligently detects the identifier type and queries accordingly.

Provide ONE of the following query parameters to identify the person:
- `id` - Person UUID
- `linkedin` - LinkedIn person URL
- `crunchbase` - Crunchbase person URL
- `twitter` - Twitter/X URL

Returns the same constant unified shape as the list endpoint, with **full**
employment and education history (no per-section limit).

# paths./person.get.responses.400.description
Missing or invalid identifier (no query param provided, or invalid UUID / URL)

# paths./person.get.responses.402.description
Insufficient credits to complete request

# paths./person/email.get.summary
Unlock a person's verified email by identifier

# paths./person/email.get.description
Return a verified email for a person identified by UUID, LinkedIn, Crunchbase,
or Twitter/X. Provide one identifier. If multiple identifiers are supplied, the
endpoint uses the first non-empty value in this order: `id`, `linkedin`,
`crunchbase`, `twitter`.

A newly created unlock costs 5 credits. Repeating the request for an email the
same user already unlocked costs 0 credits. Unlock ownership persists across API
keys belonging to that user. Provider attribution is internal and is not returned.

Available on non-trial Pro+, Enterprise, and API plans.

# paths./person/email.get.parameters[].description
LinkedIn person URL, slug, or supported normalized identifier

# paths./person/email.get.parameters[].description
Crunchbase person URL or supported normalized identifier

# paths./person/email.get.responses.400.content.application/json.example.error.details.help
Provide id, linkedin, crunchbase, or twitter.

# paths./person/email.get.responses.402.description
Insufficient credits or monthly email-unlock allowance

# paths./person/email.get.responses.403.description
Current subscription or trial status cannot unlock emails

# paths./person/email.get.responses.403.content.application/json.example.error.message
Email unlocks require a Pro+, Enterprise, or API plan.

# paths./person/email.get.responses.404.description
Person not found or no verified email available

# paths./person/email.get.responses.404.content.application/json.examples.email_not_found.value.error.message
No verified email was found for this person

# paths./person/deals.get.summary
Get deals a person participated in (as an investor) by identifier

# paths./person/deals.get.description
Retrieve all deals a person has participated in as an investor (angel deals + lead/firm deals)
using any supported identifier format. The API intelligently detects the identifier type and queries accordingly.

Provide ONE of the following query parameters to identify the person:
- `id` - Person UUID
- `linkedin` - LinkedIn person URL
- `crunchbase` - Crunchbase person URL
- `twitter` - Twitter/X URL

The response includes the person's investment deals with pagination.

# paths./person/deals.get.responses.200.description
Successful response with the person's deals

# paths./person/deals.get.responses.200.content.application/json.schema.properties.data.properties.deals.items.description
Deal record (same shape as deals returned by `/api/v1/company/deals`)

# paths./person/deals.get.responses.200.content.application/json.schema.properties.data.properties.deals.items.properties.articles.description
Related articles/sources for this deal. Always included; empty when no sources exist.

# paths./person/deals.get.responses.200.content.application/json.schema.properties.data.properties.deals.items.properties.articles.items.properties.is_primary.description
Whether this is a primary source article for the canonical deal

# paths./person/deals.get.responses.400.description
Validation error (missing or invalid identifier)

# paths./person/deals.get.responses.404.description
No person found matching the provided identifier

# paths./person/deals.get.responses.402.description
Insufficient credits to complete request

# paths./person/deals.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./person/search.get.summary
Search for a person by name or identifier

# paths./person/search.get.description
Look up people using one of five search methods. Exactly one parameter must be provided.

**Search types:**
- `name` — Fuzzy name search across both investors AND non-investor people (founders, employees). Returns up to 10 results.
- `id` — Person UUID lookup (returns 0 or 1)
- `linkedin` — LinkedIn person URL or slug
- `crunchbase` — Crunchbase person URL or slug
- `twitter` — Twitter/X URL or handle

`person_type` on each result indicates which pool the row came from
(`investor` wins when a person is in both). For full person detail, use `/person`.

# paths./person/search.get.parameters[].description
Optional filter restricting results to one pool. `investor` keeps only
people tracked as investors/angels; `company` keeps only non-investor
people (founders, CEOs, employees). Omit to search both. Applies to
both name and identifier modes — identifier lookups return empty if
the resolved person doesn't match the requested type.

# paths./person/search.get.responses.200.content.application/json.schema.properties.data.properties.people.items.properties.person_type.description
Which pool the result came from. Mirrors the request-body discriminator on POST /people.

# paths./person/search.get.responses.400.description
Validation error (missing or multiple parameters)

# paths./person/search.get.responses.402.description
Insufficient credits to complete request

# paths./person/search.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./alerts.get.description
Retrieve saved alert data including all deals that matched the alert criteria within the specified date range.
Results include a flattened array of deals sorted by date (newest first) with duplicates removed.

Available on Pro+, Enterprise, and API plans. This endpoint does not consume credits.

**Multiple Alerts Support:**
- Query multiple alerts in a single request (up to 10)
- Each alert returns its own flattened deals array
- Different alerts can have different frequencies (e.g., one daily, one weekly)
- Successful requests report `credits_used: 0`, regardless of deal count

**Important Notes:**
- All alert_ids must belong to alerts you have access to
- Deals are flattened from all time periods and sorted by date DESC (newest first)
- Duplicate deals are automatically removed
- Each deal includes AI-generated reasoning for why it matched the alert criteria
- Deal structure is simplified with flattened company information for easier integration

# paths./alerts.get.parameters[].description
Comma-separated list of alert UUIDs (up to 10 alerts per request).
All alerts must be associated with your API key's account.
Example: "uuid1,uuid2,uuid3"

# paths./alerts.get.parameters[].description
Start date for the alert data range (ISO 8601 format).
Results will include deals from this date onwards.

# paths./alerts.get.parameters[].description
End date for the alert data range (ISO 8601 format).
Results will include deals up to and including this date.

**Note:** All dates are processed in UTC timezone. Deals are grouped into time periods based on UTC date boundaries.

# paths./alerts.get.responses.200.description
Successful response with alert data organized by time periods

# paths./alerts.get.responses.200.content.application/json.schema.properties.data.properties.alerts.description
Array of alert configurations with their timeline data

# paths./alerts.get.responses.200.content.application/json.schema.properties.meta.properties.page.description
Current page number (always 0 for alerts endpoint)

# paths./alerts.get.responses.200.content.application/json.schema.properties.meta.properties.page_size.description
Number of alerts queried in this request

# paths./alerts.get.responses.200.content.application/json.examples.multipleAlerts.summary
Multiple alerts with different frequencies

# paths./alerts.get.responses.200.content.application/json.examples.multipleAlerts.value.data.alerts[].deals[].deal_long_description
Acme AI Corp raised $25M in Series A funding

# paths./alerts.get.responses.200.content.application/json.examples.multipleAlerts.value.data.alerts[].deals[].reasoning
Matches AI startups criteria with focus on artificial intelligence

# paths./alerts.get.responses.200.content.application/json.examples.multipleAlerts.value.data.alerts[].deals[].reasoning
Machine learning focus aligns with your alert criteria

# paths./alerts.get.responses.200.content.application/json.examples.multipleAlerts.value.data.alerts[].deals[].deal_long_description
HealthTech Startup raised $5M in seed funding

# paths./alerts.get.responses.200.content.application/json.examples.multipleAlerts.value.data.alerts[].deals[].reasoning
Healthcare focus matches your seed round criteria

# paths./alerts.get.responses.200.content.application/json.examples.noDealsFound.summary
Valid alert IDs but no deals in date range

# paths./alerts.get.responses.400.description
Bad Request - Invalid parameters or validation failed

# paths./alerts.get.responses.400.content.application/json.examples.missingParameters.value.error.details.help
Please provide all required parameters: alert_ids, start_date, end_date

# paths./alerts.get.responses.400.content.application/json.examples.invalidAlertId.value.error.message
Invalid alert ID(s): not-a-uuid, invalid-id. All alert IDs must be valid UUIDs.

# paths./alerts.get.responses.400.content.application/json.examples.invalidAlertId.value.error.details.help
Please provide valid UUID format for all alert IDs

# paths./alerts.get.responses.400.content.application/json.examples.dateRangeTooLarge.value.error.details.help
Please reduce the date range to 1 year or less

# paths./alerts.get.responses.400.content.application/json.examples.futureStartDate.value.error.details.help
Please provide a start date that is not in the future

# paths./alerts.get.responses.403.description
A Pro+, Enterprise, or API plan is required

# paths./alerts.get.responses.404.description
Alert ID not found or access denied.

**Note:** If alert IDs are valid but have no deals in the date range, the endpoint returns 200 with an empty `alerts` array.
404 is only returned when the alert IDs don't exist or you lack permission to access them.

# paths./alerts.get.responses.404.content.application/json.schema.properties.error.properties.message.example
Alert(s) not found or you do not have permission to access them

# paths./alerts.get.responses.404.content.application/json.schema.properties.error.properties.details.properties.help.example
Please verify the alert IDs belong to your account

# paths./alerts.get.responses.404.content.application/json.examples.alertNotFound.value.error.message
Alert(s) not found or you do not have permission to access them

# paths./alerts.get.responses.404.content.application/json.examples.alertNotFound.value.error.details.help
Please verify the alert IDs exist and belong to your account. If IDs are valid but have no deals, you'll receive a 200 response with empty alerts array.

# paths./alerts.get.responses.422.description
Unprocessable Entity - Parameter validation failed

# paths./alerts.get.responses.422.content.application/json.examples.unknownParameter.value.error.details.errors[].message
Unknown parameter: invalidParam. Allowed parameters: alert_ids, start_date, end_date

# paths./alerts.get.responses.422.content.application/json.examples.unknownParameter.value.error.details.help
Please check your request parameters and ensure they meet the required format and constraints.

# paths./alerts.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./alerts/configurations.get.summary
Get alert configurations for authenticated user

# paths./alerts/configurations.get.description
Retrieve all alert configurations for the authenticated user (identified by API key).
Returns configuration metadata including filters, frequency, and descriptions.

Available on Pro+, Enterprise, and API plans. This endpoint does not consume credits.

**Important Notes:**
- This endpoint does NOT consume usage credits (actualUsageCount: 0)
- Returns only configuration metadata, not deal data
- Does not require any query parameters - user is identified by API key
- All configurations for the authenticated user are returned (no pagination)

**Authentication:**
- User identity is automatically determined from the API key
- No email or user_id parameter needed

**Use Cases:**
- Look up what alerts are configured for the authenticated user
- Retrieve alert filter settings for external integrations
- Audit alert configurations programmatically

# paths./alerts/configurations.get.responses.200.description
Successful response with alert configurations

# paths./alerts/configurations.get.responses.200.content.application/json.schema.properties.data.properties.configurations.description
Array of alert configurations for this email

# paths./alerts/configurations.get.responses.200.content.application/json.schema.properties.meta.properties.page.description
Current page number (always 0 for this endpoint)

# paths./alerts/configurations.get.responses.200.content.application/json.examples.withConfigurations.value.data.configurations[].description
Track AI and ML startups raising Series A funding

# paths./alerts/configurations.get.responses.200.content.application/json.examples.withConfigurations.value.data.configurations[].description
Daily alerts for healthcare seed funding

# paths./alerts/configurations.get.responses.200.content.application/json.examples.withConfigurations.value.data.configurations[].description
Monthly roundup of fintech funding activity

# paths./alerts/configurations.get.responses.403.description
A Pro+, Enterprise, or API plan is required

# paths./alerts/configurations.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./location/search.get.summary
Search locations by name and optionally filter by type

# paths./location/search.get.description
Look up locations (cities, states, countries, regions) by name with fuzzy matching. The `name` parameter is required; `type` is optional.

**Search types:**
- `name` — Fuzzy name search with relevance scoring (required)
- `type` — Optional filter by location type: `CITY`, `STATE`, `REGION`, or `COUNTRY`
- `location_type` — Alias for `type`

Examples:
- `?name=san francisco`
- `?name=california&type=STATE`

# paths./location/search.get.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request (always 0 for search endpoints)

# paths./location/search.get.responses.200.content.application/json.examples.all_types.description
Returns all location types matching the search term

# paths./location/search.get.responses.200.content.application/json.examples.cities_only.description
Returns only cities matching the search term

# paths./location/search.get.responses.400.content.application/json.schema.properties.error.properties.details.properties.help.example
Provide a name parameter. Example: ?name=san+francisco

# paths./location/search.get.responses.400.content.application/json.examples.missing_params.value.error.details.help
Provide a name parameter. Example: ?name=san+francisco

# paths./location/search.get.responses.400.content.application/json.examples.invalid_location_type.value.error.message
Invalid location type. Must be one of: CITY, STATE, REGION, COUNTRY

# paths./location/search.get.responses.400.content.application/json.examples.invalid_location_type.value.error.details.help
Provided type: 'INVALID'. Valid types are: CITY, STATE, REGION, COUNTRY

# paths./location/search.get.responses.400.content.application/json.examples.multiple_location_type_params.value.error.message
Cannot specify both type and location_type parameters

# paths./location/search.get.responses.400.content.application/json.examples.multiple_location_type_params.value.error.details.help
Use either type or location_type parameter, not both

# paths./location/search.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# paths./industry/search.get.summary
Search industries and super categories by name

# paths./industry/search.get.description
Look up industries and super categories by name with fuzzy matching. The `name` parameter is required; `type` is optional.

**Search types:**
- `name` — Fuzzy name search with relevance scoring (required)
- `type` — Optional filter by industry type: `INDUSTRY` or `SUPER_CATEGORY`
- `industry_type` — Alias for `type`

Examples:
- `?name=artificial intelligence`
- `?name=fintech&type=INDUSTRY`

# paths./industry/search.get.responses.200.content.application/json.schema.properties.meta.properties.credits_used.description
Number of credits consumed by this request (always 0 for search endpoints)

# paths./industry/search.get.responses.200.content.application/json.examples.all_types.description
Returns both industries and super categories matching the search term

# paths./industry/search.get.responses.200.content.application/json.examples.industries_only.description
Returns only industries matching the search term

# paths./industry/search.get.responses.400.content.application/json.examples.invalid_industry_type.value.error.message
Invalid industry type. Must be one of: INDUSTRY, SUPER_CATEGORY

# paths./industry/search.get.responses.400.content.application/json.examples.invalid_industry_type.value.error.details.help
Provided type: 'INVALID'. Valid types are: INDUSTRY, SUPER_CATEGORY

# paths./industry/search.get.responses.400.content.application/json.examples.multiple_industry_type_params.value.error.message
Cannot specify both type and industry_type parameters

# paths./industry/search.get.responses.400.content.application/json.examples.multiple_industry_type_params.value.error.details.help
Use either type or industry_type parameter, not both

# paths./industry/search.get.responses.429.headers.Retry-After.description
Number of seconds to wait before retrying

# components.schemas.Deal.properties.pre.description
Whether this is a pre-round (e.g., Pre-Series A)

# components.schemas.Deal.properties.investor_ids.description
UUIDs of firm investors participating in this deal. Angels are surfaced separately in `angel_investor_ids`.

# components.schemas.Deal.properties.angel_investor_ids.description
UUIDs of angel investors (people) who participated in this deal. Resolve via `/people/{id}`. Empty array when no angels.

# components.schemas.Deal.properties.financings.description
Detailed financing information for deals that have multiple financing types

# components.schemas.Deal.properties.articles.description
Related articles/sources for this deal.
Always included for every API tier. Empty when the deal has no related sources.

# components.schemas.DealInvestor.description
A firm investor on a deal. Angels are returned separately in the `angel_investors` array on /deals/{id}/investors.

# components.schemas.DealInvestor.properties.id.description
Unique identifier for the firm investor (parent_investor UUID)

# components.schemas.DealInvestor.properties.personnel.description
Key personnel (partners) at this firm involved in this deal. Each entry is a person record joinable to /people/{id}.

# components.schemas.DealInvestor.properties.financing_type.description
The financing type this investor participated in

# components.schemas.PersonnelMember.description
A person (partner) at a firm investor associated with a deal.

# components.schemas.AngelInvestor.description
An angel (individual) investor on a deal. Returned in the `angel_investors` array on /deals/{id}/investors.

# components.schemas.AngelInvestor.properties.id.description
Person UUID for the angel. Resolves via /people/{id}.

# components.schemas.AngelInvestor.properties.financing_type.description
The financing type this angel participated in.

# components.schemas.DealArticle.properties.is_primary.description
Whether this is the primary source article for the deal

# components.schemas.Financing.properties.currency.description
Currency of the original financing amount

# components.schemas.AuthError.properties.error.properties.details.properties.help.example
Please provide your API key in the Authorization header

# components.schemas.RateLimitError.properties.error.properties.message.example
Rate limit exceeded. Maximum 200 requests per minute.

# components.schemas.RateLimitError.properties.error.properties.details.properties.help.example
Please reduce your request frequency and try again.

# components.schemas.InsufficientCreditsError.properties.error.properties.message.example
Not enough credits to complete this request. Visit https://www.tryfundable.ai/api-access to purchase more.

# components.schemas.InsufficientCreditsError.properties.error.properties.details.properties.credits_needed.description
Number of credits required (included when known post-execution)

# components.schemas.InsufficientCreditsError.properties.error.properties.details.properties.help.example
Purchase additional credits at https://www.tryfundable.ai/api-access or upgrade your plan.

# components.schemas.ValidationError.properties.error.properties.details.properties.errors.items.properties.field.description
The parameter name that failed validation

# components.schemas.ValidationError.properties.error.properties.details.properties.errors.items.properties.message.example
Invalid financing type(s): series-a. Valid options are: SERIES_A, SERIES_B, SEED, ...

# components.schemas.ValidationError.properties.error.properties.details.properties.errors.items.properties.validOptions.description
List of valid values for enum parameters

# components.schemas.ValidationError.properties.error.properties.details.properties.help.example
Please check your request parameters and ensure they meet the required format and constraints.

# components.schemas.ServerError.properties.error.properties.details.description
Error details (only in development mode)

# components.schemas.CompanyDetails.description
Full company details returned by the /company endpoint

# components.schemas.CompanyDetails.properties.long_description.description
Full description of the company. Available on /company endpoint; may be null on /companies list endpoint.

# components.schemas.CompanyDetails.properties.all_investor_ids.description
UUIDs of all parent investors across all funding rounds for this company

# components.schemas.CompanyDetails.properties.similarity.description
Semantic similarity score (0-1). Only present when using search_query parameter.

# components.schemas.CompanyListItem.description
Company object returned by the /companies list endpoint. Same shape as CompanyDetails.

# components.schemas.LatestDeal.description
Details of the company's most recent funding round

# components.schemas.LatestDeal.properties.pre.description
Whether this is a pre-round (e.g., Pre-Series A)

# components.schemas.LatestDeal.properties.investors.description
UUIDs of firm investors participating in this deal. Angels are surfaced separately in `angel_investor_ids`.

# components.schemas.LatestDeal.properties.angel_investor_ids.description
UUIDs of angel investors (people) on this latest deal. Resolve via `/people/{id}`. Empty array when no angels.

# components.schemas.LatestDeal.properties.financings.description
Individual financing tranches in this deal

# components.schemas.LatestDeal.properties.articles.description
Related articles/sources for the latest deal. Always included; empty when no sources exist.

# components.schemas.CompanySearchResult.properties.short_description.example
AI-powered solutions for modern enterprises

# components.schemas.CompanyDeal.description
Deal returned by the /company/deals endpoint. Same shape as the Deal schema in the Deals API.

# components.schemas.CompanyDeal.properties.investor_ids.description
UUIDs of firm investors participating in this deal. Angels are surfaced separately in `angel_investor_ids`.

# components.schemas.CompanyDeal.properties.angel_investor_ids.description
UUIDs of angel investors (people) on this deal. Resolve via `/people/{id}`. Empty array when no angels.

# components.schemas.CompanyDeal.properties.articles.description
Related articles/sources for this deal. Always included; empty when no sources exist.

# components.schemas.CompaniesValidationError.properties.error.properties.details.properties.errors.items.properties.field.description
The parameter name that failed validation

# components.schemas.CompaniesValidationError.properties.error.properties.details.properties.errors.items.properties.message.example
Invalid financing type(s): series-a. Valid options are: SERIES_A, SERIES_B, SEED, ...

# components.schemas.CompaniesValidationError.properties.error.properties.details.properties.errors.items.properties.validOptions.description
List of valid values for enum parameters

# components.schemas.CompaniesValidationError.properties.error.properties.details.properties.help.example
Please check your request parameters and ensure they meet the required format and constraints.

# components.schemas.NotFoundError.properties.error.properties.details.properties.help.example
Please check the company identifier (ID, domain, LinkedIn URL, or Crunchbase URL) and try again

# components.schemas.InvestorListItem.description
Investor with optional portfolio filter counts, returned from the POST /investors endpoint

# components.schemas.InvestorListItem.allOf[].properties.filtered_deal_count.description
Number of deals matching portfolio filters (present when portfolio filters are active)

# components.schemas.InvestorListItem.allOf[].properties.filtered_lead_count.description
Number of lead deals matching portfolio filters (present when portfolio filters are active)

# components.schemas.InvestorDeal.description
Deal returned by the /investor/deals endpoint. Same shape as the Deal schema in the Deals API.

# components.schemas.InvestorDeal.properties.investor_ids.description
UUIDs of firm investors participating in this deal. Angels are surfaced separately in `angel_investor_ids`.

# components.schemas.InvestorDeal.properties.angel_investor_ids.description
UUIDs of angel investors (people) on this deal. Resolve via `/people/{id}`. Empty array when no angels.

# components.schemas.InvestorDeal.properties.articles.description
Related articles/sources for this deal. Always included; empty when no sources exist.

# components.schemas.InvestorSearchResult.properties.description.example
Early-stage venture capital firm focused on AI startups

# components.schemas.InvestorsNotFoundError.properties.error.properties.details.properties.help.example
Please check the investor identifier (ID, domain, LinkedIn URL, or Crunchbase URL) and try again

# components.schemas.PersonSearchResult.description
Constant unified person shape — every row carries every field. Investor aggregates live
under `investor_highlights` (null for non-investors); discriminator flags `is_investor` /
`is_angel` / `has_led_deal` and `investment_firms` stay top-level. `employment_history`
and `education_history` are capped at 3 in the search response; the detail endpoint
returns the full lists.

# components.schemas.PersonSearchResult.properties.employment_history.description
Recent employment (max 3 items in search; full list on detail endpoint)

# components.schemas.PersonSearchResult.properties.education_history.description
Education records (max 3 items in search; full list on detail endpoint)

# components.schemas.PersonSearchResult.properties.is_investor.description
Whether the person has any tracked investment activity

# components.schemas.PersonSearchResult.properties.is_angel.description
Whether the person makes angel investments

# components.schemas.PersonSearchResult.properties.investment_firms.description
Firms the person invests under (empty for pure angels)

# components.schemas.PersonSearchResult.properties.investor_highlights.description
Aggregated investor activity. Null when `is_investor` is false.

# components.schemas.PersonSearchResult.properties.filtered_deal_count.description
Count of deals matching the `investor.deals.*` filters. Populated only when any `investor.deals.*` filter is present; otherwise null.

# components.schemas.PersonSearchResult.properties.filtered_lead_count.description
Of the matching deals, how many the person/firm led. Populated only when any `investor.deals.*` filter is present.

# components.schemas.PersonSearchResult.properties.filtered_most_recent_date.description
Most recent matching-deal date. Populated only when any `investor.deals.*` filter is present.

# components.schemas.PersonDetail.allOf[].description
Detail endpoint returns the same shape as search but with full (unbounded) employment and education history.

# components.schemas.PersonEmailResponse.properties.data.properties.already_unlocked.description
True when this user previously unlocked the same email.

# components.schemas.PersonEmailResponse.properties.meta.properties.credits_used.description
Five for a new unlock; zero when already unlocked.

# components.schemas.PersonCurrentCompany.description
Current employer summary. Null when the person has no current employer.

# components.schemas.Firm.description
Firm (parent investor) the person invests under

# components.schemas.Firm.properties.deal_count.description
Number of deals this person has done under this firm

# components.schemas.InvestorHighlights.description
Aggregated investor activity. Counts dedupe by deal across angel + firm contributions.

# components.schemas.InvestorHighlights.properties.top_industries.description
Top portfolio industries by deal count (max 5)

# components.schemas.InvestorHighlights.properties.top_locations.description
Top portfolio company cities by deal count (max 5)

# components.schemas.InvestorHighlights.properties.top_round_types.description
Top financing round types by deal count (max 5)

# components.schemas.PeopleRateLimitError.properties.error.properties.message.example
Rate limit exceeded. Maximum 200 requests per minute.

# components.schemas.SemanticUsageLimitError.description
Monthly semantic-search usage limit exceeded. Only returned when the request included
`company.search_query` or `investor.deals.search_query`.

# components.schemas.SemanticUsageLimitError.properties.error.properties.details.properties.failed_block.description
Which semantic call hit the limit. Optional — only present on the unified people endpoint, which can issue two semantic calls per request.

# components.schemas.SemanticUsageLimitError.properties.error.properties.details.properties.limit.description
Monthly semantic-search ceiling for this API key tier

# components.schemas.SemanticUsageLimitError.properties.error.properties.details.properties.help.example
You have reached your search usage limit. Upgrade your plan or wait for the next cycle.

# components.schemas.SemanticTimeoutError.description
Semantic search timed out. Only returned when the request included
`company.search_query` or `investor.deals.search_query`.

# components.schemas.SemanticTimeoutError.properties.error.properties.message.example
The semantic search operation timed out. Please try a simpler query.

# components.schemas.AlertConfiguration.description
Alert configuration metadata including filters and settings

# components.schemas.AlertConfiguration.properties.configuration_id.description
Unique identifier for the alert configuration

# components.schemas.AlertConfiguration.properties.description.description
Alert description combining custom, alert, and semantic descriptions

# components.schemas.AlertConfiguration.properties.description.example
Track AI and ML startups raising Series A funding

# components.schemas.AlertConfiguration.properties.filters.properties.industries.description
Industry permalinks to filter by. Use /industry/search to find permalinks; a value that is not an exact permalink is silently ignored.

# components.schemas.AlertConfiguration.properties.filters.properties.super_categories.description
Super category permalinks to filter by. Use /industry/search to find permalinks; a value that is not an exact permalink is silently ignored.

# components.schemas.AlertConfiguration.properties.filters.properties.locations.description
Location permalinks to filter by. Use /location/search to find permalinks; a value that is not an exact permalink is silently ignored.

# components.schemas.AlertConfiguration.properties.filters.properties.financing_types.description
Types of financing rounds to include. NOTE: the Alerts API accepts human-readable round names here (e.g. "Series A", "Seed"), which differs from /deals and /companies — those use the canonical enum (e.g. SERIES_A, SEED).

# components.schemas.Alert.properties.alertId.description
Unique identifier for the alert configuration

# components.schemas.Alert.properties.deals.description
Array of deals that matched the alert criteria (flattened from all time periods, sorted by date DESC)

# components.schemas.SimplifiedDeal.description
Simplified deal structure optimized for API consumption.
Flattens company information and removes nested structures for easier integration.
Deals are sorted by date descending (newest first) and duplicates are removed.

# components.schemas.SimplifiedDeal.properties.date.description
Date of the funding round (ISO 8601 format)

# components.schemas.SimplifiedDeal.properties.total_round_raised.description
Total amount raised in the round (USD $M)

# components.schemas.SimplifiedDeal.properties.deal_long_description.example
Company raised $25M in Series A funding led by Acme Ventures

# components.schemas.SimplifiedDeal.properties.reasoning.description
AI-generated reasoning for why this deal matched the alert criteria

# components.schemas.SimplifiedDeal.properties.reasoning.example
This deal matches your AI startups criteria with focus on machine learning

# components.schemas.SimplifiedDeal.properties.articles.items.properties.is_primary.description
Whether this is the primary article for the deal

# components.schemas.SimplifiedDeal.properties.articles.items.properties.publishedDate.description
Article publication date (ISO 8601 format)

# components.schemas.SimplifiedDeal.example.deal_long_description
Company raised $25M in Series A funding led by Acme Ventures

# components.schemas.SimplifiedDeal.example.reasoning
This deal matches your AI startups criteria with focus on machine learning and enterprise software

# components.schemas.TierAccessError.properties.error.properties.message.example
This endpoint requires a Pro+, Enterprise, or API plan.

# components.schemas.TierAccessError.properties.error.properties.details.properties.help.example
Upgrade to Pro+, Enterprise, or API to access this endpoint.

# components.schemas.AlertsValidationError.properties.error.properties.details.properties.errors.items.properties.field.description
The parameter name that failed validation

# components.schemas.AlertsValidationError.properties.error.properties.details.properties.help.example
Please check your request parameters and ensure they meet the required format and constraints.

# components.schemas.MissingParametersError.properties.error.properties.details.properties.help.example
Please provide all required parameters: alert_ids, start_date, end_date

# components.schemas.IndustrySearchResult.properties.permalink.description
Industry or super category permalink identifier

# components.schemas.OtherAuthError.properties.error.properties.details.properties.help.example
Please provide your API key in the Authorization header

# components.schemas.OtherAuthError.properties.error.properties.details.properties.documentation.example
Visit our documentation for more information about authentication

# tags[].description
Company data, search, and discovery operations

# tags[].description
Saved alert configurations and deal data

# tags[].description
Industry and super category search operations