---
title: "Resolve up to 100 investor domains or names"
method: POST
path: "/investors/lookup"
---

# Resolve up to 100 investor domains or names

`POST /investors/lookup`

## Request

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

Supply 1 to 100 combined domains and names. Domains are processed first,
then names; each list is normalized and deduplicated in first-seen order.
Exact held names, sourced aliases and public website owners are eligible.
A parent, arm or similarly named organization is never chosen arbitrarily.
Each uniquely resolved, delivered public card costs 1 credit, like company
batch lookup. Misses and ambiguous identity-only candidates are free.
The ordinary API-key access and rate limits apply; this per-hit batch does
not consume a free delivered-search page quota. Depth remains on the
investor detail endpoint. A queued miss means recorded for review, not admission.

## Request body

- union
  - object
    - `domains` string[], required
    - `names` string[]
  - object
    - `domains` string[]
    - `names` string[], required

## Response `200`

Ordered hit, miss, ambiguity or insufficient-credit results

- object
  - `data` InvestorLookupItem[], required
    - union
      - object
        - `domain` string, required
        - `name` string
        - `status` 'hit' | 'miss' | 'ambiguous' | 'insufficient_credits', required
        - `credits_charged` integer, required
        - `data` InvestorCard
          - `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
        - `coverage_requested` boolean: A miss was durably recorded for review; never a promise of admission.
        - `coverage_status` 'queued' | 'not_queued'
        - `total_matches` integer
        - `has_more` boolean: More than five identity candidates exist.
        - `next_action` 'refine_domain_or_name'
        - `matches` object[]
          - `id` string, uuid, required
          - `slug` string, required
          - `name` string, required
          - `investor_type` string, nullable, required
          - `hq_country` string, nullable, required
          - `profile_path` string, required
      - object
        - `domain` string
        - `name` string, required
        - `status` 'hit' | 'miss' | 'ambiguous' | 'insufficient_credits', required
        - `credits_charged` integer, required
        - `data` InvestorCard
          - `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
        - `coverage_requested` boolean: A miss was durably recorded for review; never a promise of admission.
        - `coverage_status` 'queued' | 'not_queued'
        - `total_matches` integer
        - `has_more` boolean: More than five identity candidates exist.
        - `next_action` 'refine_domain_or_name'
        - `matches` object[]
          - `id` string, uuid, required
          - `slug` string, required
          - `name` string, required
          - `investor_type` string, nullable, required
          - `hq_country` string, nullable, required
          - `profile_path` string, required
  - `summary` InvestorLookupSummary, required
    - `total_requested` integer, required
    - `total_hits` integer, required
    - `total_misses` integer, required
    - `total_ambiguous` integer, required
    - `total_insufficient_credits` integer, required
    - `total_credits_charged` integer, required

## 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.
- `503`: Identity/card preparation or the credit service is unavailable. Preparation failures are not charged; an uncertain deduction requires checking usage before retry.

---

[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)
