---
title: "Search investors"
method: GET
path: "/investors"
---

# Search investors

`GET /investors`

## Request

- Base URL: `https://indexed.vc/api/v1`
- URL: `https://indexed.vc/api/v1/investors`
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/indexed/apis/indexed-vc-api/docs/investors/get.ts> (a function with typed inputs; its response is checked against the schema)

Search and filter investors. Free within the daily quota; paid plans spend 1 credit per nonempty page afterward. Free stops at its daily quota. Empty data pages consume no delivered-search quota or credits even when meta.total is positive.

## Query parameters

- `q` string
- `domain` string
- `types` string
- `stages` string
- `industries` string
- `countries` string
- `geographicFocus` string
- `minCheckSize` integer
- `maxCheckSize` integer
- `minAum` integer
- `maxAum` integer
- `minCompleteness` integer
- `updated_since` string, date-time
- `sort` 'name' | 'aum' | 'portfolio_count' | 'total_investments' | 'last_investment_date' | 'data_completeness_score'
- `order` 'asc' | 'desc'
- `page` integer
- `limit` integer
- `cursor` string
- `reveal_status` 'all' | 'revealed' | 'unrevealed'

## Response `200`

Search results (full public cards with reveal flags)

- object
  - `data` InvestorCard[], required
    - `id` string, uuid, required
    - `name` string, required
    - `slug` string, required
    - `logo_url` string, nullable
    - `website` string, nullable
    - `investor_type` 'vc' | 'pe' | 'growth_equity' | 'hedge_fund' | 'cvc' | 'family_office' | 'sovereign_wealth' | 'accelerator' | 'incubator' | 'angel_group' | 'angel' | 'individual' | 'bank' | 'other' | 'null', nullable
    - `hq_city` string, nullable
    - `hq_country` string, nullable
    - `total_investments_count` integer, nullable
    - `_revealed` boolean, required: true when this account has unlocked the entity's depth within 12 months
  - `meta` SearchPageMeta, required
    - `total` integer, required: Matching total before reveal_status filtering; approximate when total_is_estimate is true. Use hasMore or next_cursor for pagination.
    - `total_is_estimate` boolean: True for a planner estimate or an observed lower bound when the count timed out. Rows and pagination remain verified independently.
    - `page` integer, required
    - `limit` integer, required
    - `hasMore` boolean, required
    - `revealed_count` integer, required
    - `unrevealed_count` integer, required
    - `all_revealed` boolean: Present only when reveal_status=unrevealed and the first noncursor page verifies the complete nonempty match set is already revealed. Empty partial, cursor or later pages do not establish this; absence does not imply unrevealed matches exist.
    - `next_cursor` string, nullable: Opaque continuation token for a paid key; null means the final page. Pass it as the cursor query parameter.
    - `search_quota` object, required
      - `per_day` integer, required
      - `used_today` integer, required
      - `remaining_today` integer, required
      - `resets_at` string, date-time, required
      - `note` string: Present when this page used paid credits beyond the daily quota
    - `depth` object: Only present while this page contains unrevealed results; points to the full-record endpoint
      - `endpoint` string, required
      - `cost_credits` integer, required
      - `unlocks` string[], required
      - `docs` string, uri, required
      - `free_plan` object: Present when the key's plan does not have full API access
        - `credits_per_month` integer, required
        - `full_records_per_month` integer, required
    - `alternate_entities` object[]: Identity-only investor pointers when an exact company-domain lookup belongs to an investor; no private data
      - `entity_type` 'investor', required
      - `id` string, uuid, required
      - `name` string, required
      - `slug` string, required
      - `website` string, uri, required
      - `investor_type` string, nullable, required
      - `profile_path` string, required
    - `alternate_entities_truncated` boolean
    - `investor_lookup` string: Relative investor-domain API lookup for an exact company-domain miss with a visible investor owner
    - `resolved_filters` object: Echo of resolved filter values (e.g., industries: ai-ml → AI/ML). Only present when filters are applied.

## Other responses

- `400`: Invalid request parameters
- `401`: Missing, invalid, or insufficient API key
- `402`: Credits exhausted, no active credit period, or overage cap reached (code CREDIT_LIMIT_REACHED). This is a billing state, not a rate limit — do not retry. Follow top_up_url to repurchase the returned top_up_pack.
- `429`: Rate limit exceeded (code RATE_LIMITED). Back off and retry after Retry-After.

---

[API](https://skmtc.dev/indexed/apis/indexed-vc-api.md) - [All operations](https://skmtc.dev/indexed/apis/indexed-vc-api/llms.txt) - [OpenAPI document](https://skmtc.dev/indexed/apis/indexed-vc-api/revisions/c111a32d9c0c?raw)
