Indexed Investors API
The Investors API from Indexed — 2 operation(s) for investors.
The Investors API from Indexed — 2 operation(s) for investors.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/indexed-vc:indexed-vc-investors-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Indexed.vc Investors API
version: 1.0.0
description: 'Company intelligence API providing comprehensive data on private companies,
funding history, and investor relationships.'
contact:
name: Indexed.vc Support
url: https://indexed.vc
license:
name: Proprietary
servers:
- url: https://indexed.vc/api/v1
description: Production
security:
- ApiKeyAuth: []
tags:
- name: Investors
paths:
/investors:
get:
operationId: searchInvestors
summary: Search investors
description: Search and filter investors. Free within the daily quota; paid plans spend 1 credit per nonempty page afterward. Free stops at its daily quota.
parameters:
- name: q
in: query
schema:
type: string
maxLength: 200
- name: types
in: query
schema:
type: string
description: 'Comma-separated: vc, pe, angel, cvc, accelerator, family_office, etc.'
- name: stages
in: query
schema:
type: string
description: 'Comma-separated: seed, series_a, series_b, etc.'
- name: industries
in: query
schema:
type: string
description: Comma-separated industry preferences
- name: countries
in: query
schema:
type: string
- name: minAum
in: query
schema:
type: integer
minimum: 0
- name: maxAum
in: query
schema:
type: integer
minimum: 0
- name: minCompleteness
in: query
schema:
type: integer
minimum: 0
maximum: 64
description: Minimum data_completeness_score — skip thin records
- name: updated_since
in: query
schema:
type: string
format: date-time
description: 'Incremental sync: only records modified at/after this ISO date or timestamp (updated_at watermark). Combine with cursor pagination for drift-free delta pulls.'
- name: sort
in: query
schema:
type: string
enum:
- name
- aum
- portfolio_count
- total_investments
- last_investment_date
- data_completeness_score
- name: order
in: query
schema:
type: string
enum:
- asc
- desc
- name: page
in: query
schema:
type: integer
minimum: 1
default: 1
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 25
- name: cursor
in: query
schema:
type: string
description: Paid plans only. Keyset cursor for sequential bulk pulls. Free keys use page=1 through page=3. Pass meta.next_cursor from the prior page; ignores page/sort.
- name: reveal_status
in: query
schema:
type: string
enum:
- all
- revealed
- unrevealed
default: all
responses:
'200':
description: Search results (full public cards with reveal flags)
headers:
X-Request-Id:
schema:
type: string
format: uuid
X-Credits-Cost:
schema:
type: integer
content:
application/json:
schema:
type: object
required:
- data
- meta
properties:
data:
type: array
items:
$ref: '#/components/schemas/InvestorCard'
meta:
$ref: '#/components/schemas/SearchPageMeta'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/AuthError'
'402':
$ref: '#/components/responses/PaymentRequired'
'429':
$ref: '#/components/responses/RateLimited'
tags:
- Investors
/investors/{slug}:
get:
operationId: getInvestor
summary: Get investor by slug
description: 'Fetch a single investor profile. Same depth pricing as companies:
slim (1), standard (2), full (3 credits).
Full includes portfolio_companies, investments, and sub_funds.'
parameters:
- name: slug
in: path
required: true
schema:
type: string
pattern: ^[a-z0-9][a-z0-9-]*[a-z0-9]$
- name: depth
in: query
schema:
type: string
enum:
- slim
- standard
- full
default: standard
responses:
'200':
description: Investor profile
headers:
X-Request-Id:
schema:
type: string
format: uuid
X-Credits-Cost:
schema:
type: integer
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/InvestorProfile'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/AuthError'
'404':
$ref: '#/components/responses/NotFoundError'
'503':
description: Credit service or prior-charge cache unavailable (SYSTEM_ERROR). Cache-read failures do not charge. A lost deduction response can have an unknown billing outcome; check credit usage before retrying.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
tags:
- Investors
components:
schemas:
InvestorProfile:
type: object
required:
- id
- name
- slug
description: Shape varies by depth parameter (slim/standard/full)
properties:
id:
type: string
format: uuid
name:
type: string
slug:
type: string
data_as_of:
type:
- string
- 'null'
format: date-time
description: Last verified enrichment timestamp; null when unknown.
logo_url:
type:
- string
- 'null'
website:
type:
- string
- 'null'
investor_type:
type:
- string
- 'null'
description:
type:
- string
- 'null'
hq_city:
type:
- string
- 'null'
hq_country:
type:
- string
- 'null'
total_investments_count:
type:
- integer
- 'null'
portfolio_company_count:
type:
- integer
- 'null'
total_capital_deployed:
type:
- integer
- 'null'
description: Null at slim/standard depth or when undisclosed.
avg_check_size:
type:
- integer
- 'null'
description: Null at slim/standard depth or when undisclosed.
typical_check_size_min:
type:
- integer
- 'null'
description: Null at slim/standard depth or when undisclosed.
typical_check_size_max:
type:
- integer
- 'null'
description: Null at slim/standard depth or when undisclosed.
portfolio_companies:
type: array
description: Only present at depth=full
items:
type: object
properties:
company_name:
type: string
company_slug:
type: string
company_logo_url:
type:
- string
- 'null'
industries:
type: array
items:
type: string
hq_country:
type:
- string
- 'null'
investments:
type: array
description: Only present at depth=full
items:
type: object
properties:
company_name:
type: string
company_slug:
type: string
event_type:
type: string
date:
type:
- string
- 'null'
format: date
amount:
type:
- integer
- 'null'
is_lead:
type: boolean
sub_funds:
type: array
description: Only present at depth=full
items:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
slug:
type: string
ApiError:
type: object
required:
- error
- code
properties:
error:
type: string
description: Human-readable error message
code:
type: string
description: Machine-readable error code
reason:
type: string
enum:
- credits_exhausted
- overage_cap_reached
- no_active_period
remaining:
type: integer
minimum: 0
top_up_url:
type: string
format: uri
top_up_pack:
type: object
properties:
id:
type: string
example: pack_5k
credits:
type: integer
example: 5000
price_cents:
type: integer
example: 20000
request_id:
type: string
format: uuid
description: Correlation ID (also in X-Request-Id header)
details:
type: array
description: Present for validation errors
items:
type: object
properties:
field:
type: string
message:
type: string
InvestorCard:
type: object
required:
- id
- name
- slug
- _revealed
properties:
id:
type: string
format: uuid
name:
type: string
slug:
type: string
logo_url:
type:
- string
- 'null'
website:
type:
- string
- 'null'
investor_type:
type:
- string
- 'null'
enum:
- vc
- pe
- growth_equity
- hedge_fund
- cvc
- family_office
- sovereign_wealth
- accelerator
- incubator
- angel_group
- angel
- individual
- bank
- other
- null
hq_city:
type:
- string
- 'null'
hq_country:
type:
- string
- 'null'
total_investments_count:
type:
- integer
- 'null'
_revealed:
type: boolean
description: true when this account has unlocked the entity's depth within 12 months
SearchPageMeta:
type: object
required:
- total
- page
- limit
- hasMore
- revealed_count
- unrevealed_count
- search_quota
properties:
total:
type: integer
description: Total matches (always full count, regardless of reveal_status filter)
page:
type: integer
limit:
type: integer
hasMore:
type: boolean
revealed_count:
type: integer
unrevealed_count:
type: integer
all_revealed:
type: boolean
description: Present when reveal_status=unrevealed but all matches are already revealed
next_cursor:
type:
- string
- 'null'
description: Opaque continuation token for a paid key; null means the final page. Pass it as the cursor query parameter.
search_quota:
type: object
required:
- per_day
- used_today
- remaining_today
- resets_at
properties:
per_day:
type: integer
used_today:
type: integer
remaining_today:
type: integer
resets_at:
type: string
format: date-time
note:
type: string
description: Present when this page used paid credits beyond the daily quota
depth:
type: object
description: Only present while this page contains unrevealed results; points to the full-record endpoint
required:
- endpoint
- cost_credits
- unlocks
- docs
properties:
endpoint:
type: string
cost_credits:
type: integer
unlocks:
type: array
items:
type: string
docs:
type: string
format: uri
free_plan:
type: object
description: Present when the key's plan does not have full API access
required:
- credits_per_month
- full_records_per_month
properties:
credits_per_month:
type: integer
full_records_per_month:
type: integer
alternate_entities:
type: array
description: Identity-only investor pointers when an exact company-domain lookup belongs to an investor; no private data
items:
type: object
required:
- entity_type
- id
- name
- slug
- website
- investor_type
- profile_path
properties:
entity_type:
type: string
const: investor
id:
type: string
format: uuid
name:
type: string
slug:
type: string
website:
type: string
format: uri
investor_type:
type:
- string
- 'null'
profile_path:
type: string
alternate_entities_truncated:
type: boolean
resolved_filters:
type: object
description: 'Echo of resolved filter values (e.g., industries: ai-ml → AI/ML). Only present when filters are applied.'
additionalProperties: true
responses:
ValidationError:
description: Invalid request parameters
headers:
X-Request-Id:
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
AuthError:
description: Missing, invalid, or insufficient API key
headers:
X-Request-Id:
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
RateLimited:
description: Rate limit exceeded (code RATE_LIMITED). Back off and retry after Retry-After.
headers:
X-Request-Id:
schema:
type: string
format: uuid
X-RateLimit-Limit:
schema:
type: integer
X-RateLimit-Remaining:
schema:
type: integer
Retry-After:
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
NotFoundError:
description: Entity not found
headers:
X-Request-Id:
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
PaymentRequired:
description: '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.
'
headers:
X-Request-Id:
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: API key in format `idx_<32chars>`. Available on every plan; entity detail and reveal spend credits on every plan, while bulk enrichment, webhooks, scheduled exports and listing/sorting require a paid plan (Silver+).
x-provenance:
method: harvested
publisher: Indexed
source: https://indexed.vc/openapi.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)