---
title: "Discover portfolio companies"
method: GET
path: "/api/v2/funds/companies"
tags: ["Fund management"]
---

# Discover portfolio companies

`GET /api/v2/funds/companies`

## Request

- Base URL: `https://capitalcompany.ai`
- URL: `https://capitalcompany.ai/api/v2/funds/companies`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Searches the web app company directory. Use bestCompanySourceId as featuredCompany.companySourceId, and confirm the companyLegalName. This endpoint does not create or change a company. Required key scope: funds:read.

## Query parameters

- `query` string, required: Search text. An empty string lists the first available choices.
- `limit` integer, required: Maximum number of discovery results, from 1 through 100. Supply explicitly.
- `offset` integer, required: Zero-based number of discovery results to skip. Increase by the returned count; stop on a short page.

## Response `200`

data is {companies:[{id,bestCompanySourceId,name,companyLegalName,domain}],pagination:{query,limit,offset}}. companyLegalName and domain may be null; confirm the legal name before submitting a featured investment. IDs are raw UUIDs. Stop on a short page.

- CompaniesResponse
  - `success` true, required
  - `data` object, required
    - `companies` object[], required
      - `id` string, uuid, required
      - `bestCompanySourceId` string, uuid, required
      - `name` string, required
      - `companyLegalName` string, nullable, required
      - `domain` string, nullable, required
    - `pagination` object, required
      - `query` string, required
      - `limit` integer, required
      - `offset` integer, required

## Other responses

- `400`: INVALID_JSON, INVALID_PARAMS or VALIDATION_ERROR: field issues include paths. Correct the input and keep the creation key.
- `401`: MISSING_API_KEY or INVALID_API_KEY: missing, invalid or revoked key.
- `403`: INSUFFICIENT_SCOPE or FORBIDDEN: missing scope, unusable acting member or insufficient current permission.
- `404`: FUND_NOT_FOUND: the fund is not accessible to this acting member through this team.
- `409`: CONFLICT or ACTION_REFUSED: operation refused in the current fund state, including terminated funds or incompatible settings.
- `429`: RATE_LIMIT_EXCEEDED: respect Retry-After before retrying.
- `500`: Outcome may be unknown or a post-commit side effect may have failed. For creation retry the same payload with the same creationIdempotencyKey. For updates read Details before deciding whether to retry.

---

[API](https://skmtc.dev/capitalcompany/apis/capital-company-external-api.md) · [All operations](https://skmtc.dev/capitalcompany/apis/capital-company-external-api/llms.txt) · [OpenAPI document](https://skmtc.dev/capitalcompany/apis/capital-company-external-api/revisions/b99bb24f107d?raw)
