---
title: "Reveal entity depth"
method: POST
path: "/reveal"
---

# Reveal entity depth

`POST /reveal`

## Request

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

Unmask one or more entities from search results. 3 credits per newly
revealed entity (cached reveals are free). Accepts both slugs and UUIDs.

## Request body

- object
  - `entity_type` 'company' | 'investor', required
  - `id` string: Single entity slug or UUID
  - `ids` string[]: Batch of entity slugs/UUIDs. Max per call: Free 5, Silver 5, Gold 10, Platinum 25, Enterprise 50.

## Response `200`

Reveal results

- object
  - `data` RevealResult[], required
    - `id` string, required: Entity identifier (UUID if input was UUID, slug if input was slug)
    - `entity_type` 'company' | 'investor', required
    - `status` 'revealed' | 'cached' | 'insufficient_credits' | 'not_found', required
    - `credits_charged` integer, required
    - `data` union: Full entity data (present when status is revealed or cached). Entity type determines the shape.
      - CompanyProfile: Shape varies by depth parameter (slim/standard/full)
        - `id` string, uuid, required
        - `name` string, required
        - `slug` string, required
        - `data_as_of` string, date-time, nullable: Last verified enrichment timestamp; null when unknown.
        - `logo_url` string, nullable
        - `website` string, nullable
        - `short_description` string, nullable
        - `long_description` string, nullable
        - `industries` string[], nullable
        - `hq_city` string, nullable
        - `hq_state` string, nullable
        - `hq_country` string, nullable
        - `employee_count_range` string, nullable
        - `total_funding_raised` integer, nullable: Whole USD. Sum of disclosed itemized funding rounds at confidence 50+: equity rounds, notes, SAFEs, equity crowdfunding and grants. Grants are included; debt, IPOs, acquisitions and secondaries are not. Null when no counted round has a disclosed amount.
        - `operating_status` string, nullable
        - `founded_year` integer, nullable
        - `last_valuation` integer, nullable: Null at slim/standard depth or when undisclosed.
        - `last_valuation_date` string, date, nullable: Null at slim/standard depth or when unknown.
        - `load_states` object
          - `relationships` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
          - `acquisitions` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
          - `acquirer` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
          - `parent_company` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
          - `valuation_events` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
          - `technologies` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
          - `app_stack` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
        - `acquirer` NullableCompanyReference, nullable: Visible parent or acquirer identity; null when no visible reference is recorded.
          - `id` string, uuid
          - `name` string
          - `slug` string
          - `logo_url` string, nullable
        - `parent_company` NullableCompanyReference, nullable: Visible parent or acquirer identity; null when no visible reference is recorded.
          - `id` string, uuid
          - `name` string
          - `slug` string
          - `logo_url` string, nullable
        - `owners` CompanyRelationship[]: depth=standard and full. Companies that own this one, from reviewed, sourced relationships: its controlling parent (subsidiary, brand or division), or its joint-venture owners. This and subsidiaries share a bounded set of up to 200 relationships ordered by child name; empty means none in that returned set.
          - `relationship_type` 'subsidiary' | 'brand' | 'division' | 'joint_venture'
          - `ownership_pct` number, nullable: Stated ownership percentage when a source gives it
          - `started_on` string, date, nullable
          - `company` object
            - `id` string, uuid
            - `slug` string
            - `name` string
            - `logo_url` string, nullable
        - `subsidiaries` CompanyRelationship[]: depth=standard and full. Companies this one owns (subsidiaries, brands, divisions, joint ventures), from the same bounded set of up to 200 relationships as owners, ordered by child name.
          - `relationship_type` 'subsidiary' | 'brand' | 'division' | 'joint_venture'
          - `ownership_pct` number, nullable: Stated ownership percentage when a source gives it
          - `started_on` string, date, nullable
          - `company` object
            - `id` string, uuid
            - `slug` string
            - `name` string
            - `logo_url` string, nullable
        - `acquisitions` object[]: depth=full only. Up to 100 visible acquisitions, most recent first; a bounded subset, not a complete acquisition history.
          - `id` string, uuid
          - `name` string
          - `slug` string
          - `logo_url` string, nullable
          - `website` string, nullable
          - `short_description` string, nullable
          - `industries` string[], nullable
          - `hq_city` string, nullable
          - `hq_country` string, nullable
          - `acquisition_date` string, date, nullable
          - `acquisition_price_usd` integer, nullable
        - `valuation_events` object[]: Only present at depth=full
          - `id` string, uuid
          - `event_type` string
          - `amount_raised_usd` integer, nullable
          - `announced_date` string, date, nullable
          - `participants` object[]
            - `is_lead` boolean
            - `investor` object
              - …
        - `technologies` object[]: Only present at depth=full
          - `technology_name` string
          - `category` string, nullable
          - `stack_type` 'tech'
        - `app_stack` object[]: Only present at depth=full
          - `technology_name` string
          - `category` string, nullable
          - `stack_type` 'app'
      - InvestorProfile: Shape varies by depth parameter (slim/standard/full)
        - `id` string, uuid, required
        - `name` string, required
        - `slug` string, required
        - `data_as_of` string, date-time, nullable: Last verified enrichment timestamp; null when unknown.
        - `logo_url` string, nullable
        - `website` string, nullable
        - `investor_type` string, nullable
        - `description` string, nullable
        - `hq_city` string, nullable
        - `hq_country` string, nullable
        - `total_investments_count` integer, nullable
        - `portfolio_company_count` integer, nullable
        - `total_capital_deployed` integer, nullable: Null at slim/standard depth or when undisclosed.
        - `avg_check_size` integer, nullable: Null at slim/standard depth or when undisclosed.
        - `typical_check_size_min` integer, nullable: Null at slim/standard depth or when undisclosed.
        - `typical_check_size_max` integer, nullable: Null at slim/standard depth or when undisclosed.
        - `load_states` object
          - `portfolio` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
          - `investments` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
          - `family` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
          - `co_investors` ProfileLoadState: Section read status, not a claim of historical data completeness. Full-record delivery rejects unsuccessful tracked section reads.
            - `status` 'ok' | 'partial' | 'unavailable' | 'failed', required
            - `cause` 'outage' | 'defect': Present only for unsuccessful reads.
        - `portfolio_companies` object[]: Only present at depth=full
          - `company_name` string
          - `company_slug` string
          - `company_logo_url` string, nullable
          - `industries` string[]
          - `hq_country` string, nullable
        - `investments` object[]: Only present at depth=full
          - `company_name` string
          - `company_slug` string
          - `event_type` string
          - `date` string, date, nullable
          - `amount` integer, nullable
          - `is_lead` boolean
        - `sub_funds` object[]: Only present at depth=full
          - `id` string, uuid
          - `name` string
          - `slug` string
  - `summary` RevealSummary, required
    - `total_requested` integer, required
    - `total_revealed` integer, required
    - `total_cached` integer, required
    - `total_failed` 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`: Data or credit service unavailable. DATA_UNAVAILABLE means requested entity preparation failed before charging; retry later. SYSTEM_ERROR may have an unknown billing outcome after a lost deduction response; check credit usage before retrying.

---

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