# Company Enrich — Orthogonal API

> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orth.sh/v1/run` · [llms.txt](https://orthogonal.com/llms.txt) · [browse all APIs](https://orthogonal.com/discover)

Comprehensive company and people data enrichment, search, and lead generation API. Enrich company profiles by domain or properties, search companies by industry/location/size/technology, find similar companies, search people by title/company/location, and more.

**Verified:** yes

## Access

**Run API:** `POST https://api.orth.sh/v1/run`
**Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY`
Get an API key at https://orthogonal.com/dashboard/settings/api-keys

Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "<usd>", "data": { ... } }`.

## Endpoints

### Search

Search for companies matching specific criteria. Supports filters for country, industry, employee count, revenue, keywords, technologies, company type, category, founded year, funding, and more. Also supports text search by name/domain and semantic natural language search. Max 10,000 results via page-based pagination. Use the scroll endpoint for larger result sets.

`POST /companies/search`

**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | The page number to return. Must be greater than 0 |
| `pageSize` | integer | Yes | REQUIRED. Number of results per page (1-100). Determines cost: 1 credit ($0.01225) per result returned. Total call cost = pageSize x per-result cost. |
| `lists` | array | No | The list IDs to filter by |
| `semanticQuery` | string | No | The semantic search query to find companies with. More natural language version of the standard query. |
| `semanticWeight` | number | No | The semantic weight to apply to the results. Must be between 0 and 1. 0.7 is default. Larger values will prioritize semantic similarity, smaller values will prioritize traditional search factors. |
| `exclude` | object | No | Exclusion filters to apply on the companies. If a company matches any of the filters here, it will be excluded from the results. |
| `query` | string | No | The search query to apply on the company name and domain |
| `foundedYear` | object | No | The range of years |
| `fundingAmount` | object | No | The funding amount range to filter by |
| `fundingYear` | object | No | The range of years |
| `categoryOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `keywordsOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `technologiesOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `workforceGrowth` | object | No | Filter companies by workforce growth percentage over a selected period and department. |
| `workforceSize` | array | No | Filter companies by absolute workforce headcount. Multiple entries can be provided to filter on different departments simultaneously. |
| `require` | array | No | The features that must exist for the company |
| `regions` | array | No | The region IDs to filter by |
| `countries` | array | No | The 2 letter country codes to filter by |
| `states` | array | No | The state IDs to filter by |
| `cities` | array | No | The city IDs to filter by |
| `type` | array | No | The list of company types to filter by |
| `category` | array | No | The list of company categories to filter by |
| `employees` | array | No | The list of employee counts to filter by |
| `revenue` | array | No | The list of revenue ranges to filter by |
| `naicsCode` | array | No | The NAICS codes to filter by. Can be 2 to 6 digit codes. In case of a 2-5 digit code, all 6 digit codes under it will be included |
| `keywords` | array | No | The keywords to filter by |
| `technologies` | array | No | The technologies to filter by |
| `fundingRounds` | array | No | The funding rounds to filter by |
| `expand` | array | No | Expandable response fields. Repeat the parameter to request multiple expansions.  Supported values: - `workforce`: costs 5 credits per company and adds the `workforce` field to `CompanyInfo`. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/search","query":{"expand":"<array>"},"body":{"page":"<integer>","pageSize":"<integer>","lists":"<array>","semanticQuery":"<string>","semanticWeight":"<number>","exclude":"<object>","query":"<string>","foundedYear":"<object>","fundingAmount":"<object>","fundingYear":"<object>","categoryOperator":"<string>","keywordsOperator":"<string>","technologiesOperator":"<string>","workforceGrowth":"<object>","workforceSize":"<array>","require":"<array>","regions":"<array>","countries":"<array>","states":"<array>","cities":"<array>","type":"<array>","category":"<array>","employees":"<array>","revenue":"<array>","naicsCode":"<array>","keywords":"<array>","technologies":"<array>","fundingRounds":"<array>"}}'
```

### Workforce

Get workforce insights for a company. Returns observed employee count, employee range bucket, and headcounts broken down by department.

`GET /companies/workforce`

**Estimated cost:** $0.06125

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | No | CompanyEnrich company ID. Provide either `id` or `domain`. |
| `domain` | string | No | Company domain. Provide either `id` or `domain`. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/workforce","method":"GET","query":{"id":"<string>","domain":"<string>"}}'
```

### Enrich by domain

Enrich a company by domain name. Returns the full company profile including industry, employee count, revenue, location, funding, technologies, and social links. This is the primary and most reliable way to look up a company. Returns 404 if the domain is not found.

`GET /companies/enrich`

**Estimated cost:** $0.01225

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes |  |
| `expand` | array | No | Expandable response fields. Repeat the parameter to request multiple expansions.  Supported values: - `workforce`: costs 5 credits per company and adds the `workforce` field to `CompanyInfo`. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/enrich","method":"GET","query":{"domain":"<string>","expand":"<array>"}}'
```

### Find similar

Find companies similar to one or more given companies. Supports additional filters like country, industry, employee count, and revenue to narrow results.

`POST /companies/similar`

**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | No | The domain to find similar companies for. This is deprecated, use `domains` instead. Using `domains` with a single domain acts the same as using the `domain` parameter. |
| `page` | integer | No | The page number to return. Must be greater than 0 |
| `pageSize` | integer | Yes | REQUIRED. Number of results per page (1-100). Determines cost: 5 credits ($0.06125) per result returned. Total call cost = pageSize x per-result cost. |
| `domains` | array | No | The domains to find similar companies for. Up to 10 domains are allowed. |
| `similarityWeight` | number | No | The similarity weight to apply to the results. Must be between -1 and 1. 0 is default. Larger values will prioritize more similar companies, smaller values will prioritize more established companies. |
| `exclude` | object | No | Exclusion filters to apply on the companies. If a company matches any of the filters here, it will be excluded from the results. |
| `query` | string | No | The search query to apply on the company name and domain |
| `foundedYear` | object | No | The range of years |
| `fundingAmount` | object | No | The funding amount range to filter by |
| `fundingYear` | object | No | The range of years |
| `categoryOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `keywordsOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `technologiesOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `workforceGrowth` | object | No | Filter companies by workforce growth percentage over a selected period and department. |
| `workforceSize` | array | No | Filter companies by absolute workforce headcount. Multiple entries can be provided to filter on different departments simultaneously. |
| `require` | array | No | The features that must exist for the company |
| `regions` | array | No | The region IDs to filter by |
| `countries` | array | No | The 2 letter country codes to filter by |
| `states` | array | No | The state IDs to filter by |
| `cities` | array | No | The city IDs to filter by |
| `type` | array | No | The list of company types to filter by |
| `category` | array | No | The list of company categories to filter by |
| `employees` | array | No | The list of employee counts to filter by |
| `revenue` | array | No | The list of revenue ranges to filter by |
| `naicsCode` | array | No | The NAICS codes to filter by. Can be 2 to 6 digit codes. In case of a 2-5 digit code, all 6 digit codes under it will be included |
| `keywords` | array | No | The keywords to filter by |
| `technologies` | array | No | The technologies to filter by |
| `fundingRounds` | array | No | The funding rounds to filter by |
| `expand` | array | No | Expandable response fields. Repeat the parameter to request multiple expansions.  Supported values: - `workforce`: costs 5 credits per company and adds the `workforce` field to `CompanyInfo`. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/similar","query":{"expand":"<array>"},"body":{"domain":"<string>","page":"<integer>","pageSize":"<integer>","domains":"<array>","similarityWeight":"<number>","exclude":"<object>","query":"<string>","foundedYear":"<object>","fundingAmount":"<object>","fundingYear":"<object>","categoryOperator":"<string>","keywordsOperator":"<string>","technologiesOperator":"<string>","workforceGrowth":"<object>","workforceSize":"<array>","require":"<array>","regions":"<array>","countries":"<array>","states":"<array>","cities":"<array>","type":"<array>","category":"<array>","employees":"<array>","revenue":"<array>","naicsCode":"<array>","keywords":"<array>","technologies":"<array>","fundingRounds":"<array>"}}'
```

### Search

Search for people matching specific criteria. Supports filters for company domains, job titles, countries, states, cities, seniority, and more. Max 10,000 results via page-based pagination. Use the scroll endpoint for larger result sets.

`POST /people/search`

**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | The page number to return. Must be greater than 0 |
| `pageSize` | integer | Yes | REQUIRED. Number of results per page (1-100). Determines cost: 2 credits ($0.0245) per result returned. Total call cost = pageSize x per-result cost. |
| `companyFilter` | object | No | The filters to be applied on the companies to find people for |
| `query` | string | No | The search query to apply on the company name and domain |
| `positionQuery` | array | No | The list of search queries to apply on the person's current job position/title |
| `atCurrentCompanyAfter` | string | No | Filter by current company join date - only include people who joined after this UTC date |
| `atCurrentCompanyBefore` | string | No | Filter by current company join date - only include people who joined before this UTC date |
| `atCurrentPositionAfter` | string | No | Filter by current position start date - only include people who started after this UTC date |
| `atCurrentPositionBefore` | string | No | Filter by current position start date - only include people who started before this UTC date |
| `exclude` | object | No | Exclusion filters to apply on the people. If a person matches any of the filters here, it will be excluded from the results. |
| `countries` | array | No | The 2 letter country codes to filter by |
| `domains` | array | No | The domains to find people for. Up to 100 domains are allowed. |
| `seniority` | array | No | The seniorities to filter by |
| `department` | array | No | The departments to filter by |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/people/search","body":{"page":"<integer>","pageSize":"<integer>","companyFilter":"<object>","query":"<string>","positionQuery":"<array>","atCurrentCompanyAfter":"<string>","atCurrentCompanyBefore":"<string>","atCurrentPositionAfter":"<string>","atCurrentPositionBefore":"<string>","exclude":"<object>","countries":"<array>","domains":"<array>","seniority":"<array>","department":"<array>"}}'
```

### Get by ID

Get a company's full profile by its CompanyEnrich ID. Returns name, domain, industry, employee count, revenue, location, funding, social links, and more.

`GET /companies`

**Estimated cost:** $0.01225

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes |  |
| `expand` | array | No | Expandable response fields. Repeat the parameter to request multiple expansions.  Supported values: - `workforce`: costs 5 credits per company and adds the `workforce` field to `CompanyInfo`. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies","method":"GET","query":{"id":"<string>","expand":"<array>"}}'
```

### Autocomplete

Autocomplete company domain names. Returns up to 10 matching companies for a partial domain string. Useful for typeahead UIs or resolving a partial domain before enriching.

`GET /companies/autocomplete`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | The query to autocomplete |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/autocomplete","method":"GET","query":{"query":"<string>"}}'
```

### Lookup person

Look up a person by their email address. Resolves the company from the email domain, then matches the person. Returns the best matching person profile.

`POST /people/lookup`

**Estimated cost:** $0.06125

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `email` | string | Yes | The email address of the person to look up |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/people/lookup","body":{"email":"<string>"}}'
```

### Get by ID

Get a person's full profile by their CompanyEnrich ID. Returns name, title, company, location, social links, and more.

`GET /people`

**Estimated cost:** $0.0245

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | integer | Yes | The CompanyEnrich ID of the person |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/people","method":"GET","query":{"id":"<integer>"}}'
```

### Email (BETA)

Resolve a work email address for a person. If domain is omitted, the person's current experience domains are tried automatically in seniority order. Beta endpoint.

`GET /people/email`

**Estimated cost:** $0.1225

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | The CompanyEnrich person ID |
| `domain` | string | No | Optional company domain to resolve the email on. If omitted, current experience domains are tried automatically. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/people/email","method":"GET","query":{"id":"<string>","domain":"<string>"}}'
```

### List industries

List all available company industries. Use these as values for the industries filter in company search.

`GET /industries`

**Cost:** Free

_No parameters required._

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/industries","method":"GET"}'
```

### Search cities

Search for cities by name or country. Returns up to 100 cities per page. Use this to get valid city IDs for company and people search filters.

`POST /geo/cities`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | No |  |
| `countryCodes` | array | No |  |
| `page` | integer | No |  |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/geo/cities","body":{"query":"<string>","countryCodes":"<array>","page":"<integer>"}}'
```

### Search states

Search for states or provinces by name or country. Returns up to 100 per page. Use this to get valid state IDs for search filters.

`POST /geo/states`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | No |  |
| `countryCodes` | array | No |  |
| `page` | integer | No |  |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/geo/states","body":{"query":"<string>","countryCodes":"<array>","page":"<integer>"}}'
```

### Lookup positions

Autocomplete job positions and titles. Returns matching positions for a partial string. Use this to find valid values for the positions filter in people search.

`GET /positions/autocomplete`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes |  |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/positions/autocomplete","method":"GET","query":{"query":"<string>"}}'
```

### Lookup technologies

Autocomplete technology names. Returns matching technologies for a partial string. Use this to find valid values for the technologies filter in company search.

`GET /technologies/autocomplete`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes |  |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/technologies/autocomplete","method":"GET","query":{"query":"<string>"}}'
```

### Lookup keywords

Autocomplete company keywords. Returns matching keywords for a partial string. Use this to find valid values for the keywords filter in company search.

`GET /keywords/autocomplete`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes |  |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/keywords/autocomplete","method":"GET","query":{"query":"<string>"}}'
```

### Count

Get the total count of companies matching search criteria without returning results. Accepts the same filters as /companies/search. Use this to check result volume before running a full search.

`POST /companies/search/count`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `lists` | array | No | The list IDs to filter by |
| `semanticQuery` | string | No | The semantic search query to find companies with. More natural language version of the standard query. |
| `semanticWeight` | number | No | The semantic weight to apply to the results. Must be between 0 and 1. 0.7 is default. Larger values will prioritize semantic similarity, smaller values will prioritize traditional search factors. |
| `exclude` | object | No | Exclusion filters to apply on the companies. If a company matches any of the filters here, it will be excluded from the results. |
| `query` | string | No | The search query to apply on the company name and domain |
| `foundedYear` | object | No | The range of years |
| `fundingAmount` | object | No | The funding amount range to filter by |
| `fundingYear` | object | No | The range of years |
| `categoryOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `keywordsOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `technologiesOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `workforceGrowth` | object | No | Filter companies by workforce growth percentage over a selected period and department. |
| `workforceSize` | array | No | Filter companies by absolute workforce headcount. Multiple entries can be provided to filter on different departments simultaneously. |
| `require` | array | No | The features that must exist for the company |
| `regions` | array | No | The region IDs to filter by |
| `countries` | array | No | The 2 letter country codes to filter by |
| `states` | array | No | The state IDs to filter by |
| `cities` | array | No | The city IDs to filter by |
| `type` | array | No | The list of company types to filter by |
| `category` | array | No | The list of company categories to filter by |
| `employees` | array | No | The list of employee counts to filter by |
| `revenue` | array | No | The list of revenue ranges to filter by |
| `naicsCode` | array | No | The NAICS codes to filter by. Can be 2 to 6 digit codes. In case of a 2-5 digit code, all 6 digit codes under it will be included |
| `keywords` | array | No | The keywords to filter by |
| `technologies` | array | No | The technologies to filter by |
| `fundingRounds` | array | No | The funding rounds to filter by |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/search/count","body":{"lists":"<array>","semanticQuery":"<string>","semanticWeight":"<number>","exclude":"<object>","query":"<string>","foundedYear":"<object>","fundingAmount":"<object>","fundingYear":"<object>","categoryOperator":"<string>","keywordsOperator":"<string>","technologiesOperator":"<string>","workforceGrowth":"<object>","workforceSize":"<array>","require":"<array>","regions":"<array>","countries":"<array>","states":"<array>","cities":"<array>","type":"<array>","category":"<array>","employees":"<array>","revenue":"<array>","naicsCode":"<array>","keywords":"<array>","technologies":"<array>","fundingRounds":"<array>"}}'
```

### Search countries

Search for countries by name. Returns up to 100 countries per page. Use this to look up valid country codes for search filters.

`POST /geo/countries`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | No |  |
| `page` | integer | No |  |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/geo/countries","body":{"query":"<string>","page":"<integer>"}}'
```

### Get country by code

Get a country by its ISO 3166-1 alpha-2 code (e.g., US, GB, DE).

`GET /geo/countries/{countryCode}`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `countryCode` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {countryCode} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/geo/countries/{countryCode}","method":"GET"}'
```

### Get regions

List all available geographic regions. Use region IDs as values for the regions filter in company and people search.

`GET /geo/regions`

**Cost:** Free

_No parameters required._

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/geo/regions","method":"GET"}'
```

### Enrich by properties

Enrich a company by its properties when you don't have a domain. Requires at least one of: name, LinkedIn URL, LinkedIn ID, Twitter URL, Facebook URL, or Instagram URL. Returns the best matching company profile. Prefer the GET /companies/enrich endpoint with a domain when possible, as it's more precise.

`POST /companies/enrich`

**Estimated cost:** $0.01225

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | No | The name of the company to enrich |
| `linkedinUrl` | string | No | The LinkedIn URL of the company to enrich |
| `linkedinId` | string | No | The LinkedIn ID of the company to enrich |
| `twitterUrl` | string | No | The Twitter URL of the company to enrich |
| `facebookUrl` | string | No | The Facebook URL of the company to enrich |
| `instagramUrl` | string | No | The Instagram URL of the company to enrich |
| `youTubeUrl` | string | No | The YouTube URL of the company to enrich |
| `expand` | array | No | Expandable response fields. Repeat the parameter to request multiple expansions.  Supported values: - `workforce`: costs 5 credits per company and adds the `workforce` field to `CompanyInfo`. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/enrich","query":{"expand":"<array>"},"body":{"name":"<string>","linkedinUrl":"<string>","linkedinId":"<string>","twitterUrl":"<string>","facebookUrl":"<string>","instagramUrl":"<string>","youTubeUrl":"<string>"}}'
```

### Count

Get the total count of similar companies without returning results. Accepts the same parameters as /companies/similar. Use this to check volume before running the full query.

`POST /companies/similar/count`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domains` | array | No | The domains to find similar companies for. Up to 10 domains are allowed. |
| `similarityWeight` | number | No | The similarity weight to apply to the results. Must be between -1 and 1. 0 is default. Larger values will prioritize more similar companies, smaller values will prioritize more established companies. |
| `exclude` | object | No | Exclusion filters to apply on the companies. If a company matches any of the filters here, it will be excluded from the results. |
| `query` | string | No | The search query to apply on the company name and domain |
| `foundedYear` | object | No | The range of years |
| `fundingAmount` | object | No | The funding amount range to filter by |
| `fundingYear` | object | No | The range of years |
| `categoryOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `keywordsOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `technologiesOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `workforceGrowth` | object | No | Filter companies by workforce growth percentage over a selected period and department. |
| `workforceSize` | array | No | Filter companies by absolute workforce headcount. Multiple entries can be provided to filter on different departments simultaneously. |
| `require` | array | No | The features that must exist for the company |
| `regions` | array | No | The region IDs to filter by |
| `countries` | array | No | The 2 letter country codes to filter by |
| `states` | array | No | The state IDs to filter by |
| `cities` | array | No | The city IDs to filter by |
| `type` | array | No | The list of company types to filter by |
| `category` | array | No | The list of company categories to filter by |
| `employees` | array | No | The list of employee counts to filter by |
| `revenue` | array | No | The list of revenue ranges to filter by |
| `naicsCode` | array | No | The NAICS codes to filter by. Can be 2 to 6 digit codes. In case of a 2-5 digit code, all 6 digit codes under it will be included |
| `keywords` | array | No | The keywords to filter by |
| `technologies` | array | No | The technologies to filter by |
| `fundingRounds` | array | No | The funding rounds to filter by |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/similar/count","body":{"domains":"<array>","similarityWeight":"<number>","exclude":"<object>","query":"<string>","foundedYear":"<object>","fundingAmount":"<object>","fundingYear":"<object>","categoryOperator":"<string>","keywordsOperator":"<string>","technologiesOperator":"<string>","workforceGrowth":"<object>","workforceSize":"<array>","require":"<array>","regions":"<array>","countries":"<array>","states":"<array>","cities":"<array>","type":"<array>","category":"<array>","employees":"<array>","revenue":"<array>","naicsCode":"<array>","keywords":"<array>","technologies":"<array>","fundingRounds":"<array>"}}'
```

### Batch enrich

Enrich multiple companies by domain in a single request. Accepts 1 to 50 domains. Use this instead of multiple single-enrich calls for better performance and rate limit efficiency.

`POST /companies/enrich/batch`

**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domains` | array | Yes | A list of domains to enrich. Up to 50 domains can be provided in a single request. |
| `expand` | array | No | Expandable response fields. Repeat the parameter to request multiple expansions.  Supported values: - `workforce`: costs 5 credits per company and adds the `workforce` field to `CompanyInfo`. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/enrich/batch","query":{"expand":"<array>"},"body":{"domains":"<array>"}}'
```

### Preview

Free preview of people search results. Returns the top 10 matches. Accepts the same filters as /people/search. Use this to validate criteria before committing to a paid full search.

`POST /people/search/preview`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `companyFilter` | object | No | The filters to be applied on the companies to find people for |
| `query` | string | No | The search query to apply on the company name and domain |
| `positionQuery` | array | No | The list of search queries to apply on the person's current job position/title |
| `atCurrentCompanyAfter` | string | No | Filter by current company join date - only include people who joined after this UTC date |
| `atCurrentCompanyBefore` | string | No | Filter by current company join date - only include people who joined before this UTC date |
| `atCurrentPositionAfter` | string | No | Filter by current position start date - only include people who started after this UTC date |
| `atCurrentPositionBefore` | string | No | Filter by current position start date - only include people who started before this UTC date |
| `exclude` | object | No | Exclusion filters to apply on the people. If a person matches any of the filters here, it will be excluded from the results. |
| `countries` | array | No | The 2 letter country codes to filter by |
| `domains` | array | No | The domains to find people for. Up to 100 domains are allowed. |
| `seniority` | array | No | The seniorities to filter by |
| `department` | array | No | The departments to filter by |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/people/search/preview","body":{"companyFilter":"<object>","query":"<string>","positionQuery":"<array>","atCurrentCompanyAfter":"<string>","atCurrentCompanyBefore":"<string>","atCurrentPositionAfter":"<string>","atCurrentPositionBefore":"<string>","exclude":"<object>","countries":"<array>","domains":"<array>","seniority":"<array>","department":"<array>"}}'
```

### Scroll

Search companies with cursor-based pagination for large result sets. Accepts the same filters as /companies/search. No 10,000 result limit unlike the standard search endpoint.

`POST /companies/search/scroll`

**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `pageSize` | integer | Yes | REQUIRED. Number of results per page (1-100). Determines cost: 1 credit ($0.01225) per result returned. Total call cost = pageSize x per-result cost. |
| `cursor` | string | No | The cursor to use for pagination. This is used for cursor based pagination. If this is set, Page will be ignored. |
| `lists` | array | No | The list IDs to filter by |
| `semanticQuery` | string | No | The semantic search query to find companies with. More natural language version of the standard query. |
| `semanticWeight` | number | No | The semantic weight to apply to the results. Must be between 0 and 1. 0.7 is default. Larger values will prioritize semantic similarity, smaller values will prioritize traditional search factors. |
| `exclude` | object | No | Exclusion filters to apply on the companies. If a company matches any of the filters here, it will be excluded from the results. |
| `query` | string | No | The search query to apply on the company name and domain |
| `foundedYear` | object | No | The range of years |
| `fundingAmount` | object | No | The funding amount range to filter by |
| `fundingYear` | object | No | The range of years |
| `categoryOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `keywordsOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `technologiesOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `workforceGrowth` | object | No | Filter companies by workforce growth percentage over a selected period and department. |
| `workforceSize` | array | No | Filter companies by absolute workforce headcount. Multiple entries can be provided to filter on different departments simultaneously. |
| `require` | array | No | The features that must exist for the company |
| `regions` | array | No | The region IDs to filter by |
| `countries` | array | No | The 2 letter country codes to filter by |
| `states` | array | No | The state IDs to filter by |
| `cities` | array | No | The city IDs to filter by |
| `type` | array | No | The list of company types to filter by |
| `category` | array | No | The list of company categories to filter by |
| `employees` | array | No | The list of employee counts to filter by |
| `revenue` | array | No | The list of revenue ranges to filter by |
| `naicsCode` | array | No | The NAICS codes to filter by. Can be 2 to 6 digit codes. In case of a 2-5 digit code, all 6 digit codes under it will be included |
| `keywords` | array | No | The keywords to filter by |
| `technologies` | array | No | The technologies to filter by |
| `fundingRounds` | array | No | The funding rounds to filter by |
| `expand` | array | No | Expandable response fields. Repeat the parameter to request multiple expansions.  Supported values: - `workforce`: costs 5 credits per company and adds the `workforce` field to `CompanyInfo`. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/search/scroll","query":{"expand":"<array>"},"body":{"pageSize":"<integer>","cursor":"<string>","lists":"<array>","semanticQuery":"<string>","semanticWeight":"<number>","exclude":"<object>","query":"<string>","foundedYear":"<object>","fundingAmount":"<object>","fundingYear":"<object>","categoryOperator":"<string>","keywordsOperator":"<string>","technologiesOperator":"<string>","workforceGrowth":"<object>","workforceSize":"<array>","require":"<array>","regions":"<array>","countries":"<array>","states":"<array>","cities":"<array>","type":"<array>","category":"<array>","employees":"<array>","revenue":"<array>","naicsCode":"<array>","keywords":"<array>","technologies":"<array>","fundingRounds":"<array>"}}'
```

### Scroll

Find similar companies with cursor-based pagination for large result sets. Accepts the same parameters as /companies/similar.

`POST /companies/similar/scroll`

**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `pageSize` | integer | Yes | REQUIRED. Number of results per page (1-100). Determines cost: 5 credits ($0.06125) per result returned. Total call cost = pageSize x per-result cost. |
| `cursor` | string | No | The cursor to use for pagination. This is used for cursor based pagination. If this is set, Page will be ignored. |
| `domains` | array | No | The domains to find similar companies for. Up to 10 domains are allowed. |
| `similarityWeight` | number | No | The similarity weight to apply to the results. Must be between -1 and 1. 0 is default. Larger values will prioritize more similar companies, smaller values will prioritize more established companies. |
| `exclude` | object | No | Exclusion filters to apply on the companies. If a company matches any of the filters here, it will be excluded from the results. |
| `query` | string | No | The search query to apply on the company name and domain |
| `foundedYear` | object | No | The range of years |
| `fundingAmount` | object | No | The funding amount range to filter by |
| `fundingYear` | object | No | The range of years |
| `categoryOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `keywordsOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `technologiesOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `workforceGrowth` | object | No | Filter companies by workforce growth percentage over a selected period and department. |
| `workforceSize` | array | No | Filter companies by absolute workforce headcount. Multiple entries can be provided to filter on different departments simultaneously. |
| `require` | array | No | The features that must exist for the company |
| `regions` | array | No | The region IDs to filter by |
| `countries` | array | No | The 2 letter country codes to filter by |
| `states` | array | No | The state IDs to filter by |
| `cities` | array | No | The city IDs to filter by |
| `type` | array | No | The list of company types to filter by |
| `category` | array | No | The list of company categories to filter by |
| `employees` | array | No | The list of employee counts to filter by |
| `revenue` | array | No | The list of revenue ranges to filter by |
| `naicsCode` | array | No | The NAICS codes to filter by. Can be 2 to 6 digit codes. In case of a 2-5 digit code, all 6 digit codes under it will be included |
| `keywords` | array | No | The keywords to filter by |
| `technologies` | array | No | The technologies to filter by |
| `fundingRounds` | array | No | The funding rounds to filter by |
| `expand` | array | No | Expandable response fields. Repeat the parameter to request multiple expansions.  Supported values: - `workforce`: costs 5 credits per company and adds the `workforce` field to `CompanyInfo`. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/similar/scroll","query":{"expand":"<array>"},"body":{"pageSize":"<integer>","cursor":"<string>","domains":"<array>","similarityWeight":"<number>","exclude":"<object>","query":"<string>","foundedYear":"<object>","fundingAmount":"<object>","fundingYear":"<object>","categoryOperator":"<string>","keywordsOperator":"<string>","technologiesOperator":"<string>","workforceGrowth":"<object>","workforceSize":"<array>","require":"<array>","regions":"<array>","countries":"<array>","states":"<array>","cities":"<array>","type":"<array>","category":"<array>","employees":"<array>","revenue":"<array>","naicsCode":"<array>","keywords":"<array>","technologies":"<array>","fundingRounds":"<array>"}}'
```

### Preview

Free preview of similar companies. Returns the top 25 matches. Accepts the same parameters as /companies/similar. Use this to validate results before committing to a paid full query.

`POST /companies/similar/preview`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domains` | array | No | The domains to find similar companies for. Up to 10 domains are allowed. |
| `similarityWeight` | number | No | The similarity weight to apply to the results. Must be between -1 and 1. 0 is default. Larger values will prioritize more similar companies, smaller values will prioritize more established companies. |
| `exclude` | object | No | Exclusion filters to apply on the companies. If a company matches any of the filters here, it will be excluded from the results. |
| `query` | string | No | The search query to apply on the company name and domain |
| `foundedYear` | object | No | The range of years |
| `fundingAmount` | object | No | The funding amount range to filter by |
| `fundingYear` | object | No | The range of years |
| `categoryOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `keywordsOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `technologiesOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `workforceGrowth` | object | No | Filter companies by workforce growth percentage over a selected period and department. |
| `workforceSize` | array | No | Filter companies by absolute workforce headcount. Multiple entries can be provided to filter on different departments simultaneously. |
| `require` | array | No | The features that must exist for the company |
| `regions` | array | No | The region IDs to filter by |
| `countries` | array | No | The 2 letter country codes to filter by |
| `states` | array | No | The state IDs to filter by |
| `cities` | array | No | The city IDs to filter by |
| `type` | array | No | The list of company types to filter by |
| `category` | array | No | The list of company categories to filter by |
| `employees` | array | No | The list of employee counts to filter by |
| `revenue` | array | No | The list of revenue ranges to filter by |
| `naicsCode` | array | No | The NAICS codes to filter by. Can be 2 to 6 digit codes. In case of a 2-5 digit code, all 6 digit codes under it will be included |
| `keywords` | array | No | The keywords to filter by |
| `technologies` | array | No | The technologies to filter by |
| `fundingRounds` | array | No | The funding rounds to filter by |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/similar/preview","body":{"domains":"<array>","similarityWeight":"<number>","exclude":"<object>","query":"<string>","foundedYear":"<object>","fundingAmount":"<object>","fundingYear":"<object>","categoryOperator":"<string>","keywordsOperator":"<string>","technologiesOperator":"<string>","workforceGrowth":"<object>","workforceSize":"<array>","require":"<array>","regions":"<array>","countries":"<array>","states":"<array>","cities":"<array>","type":"<array>","category":"<array>","employees":"<array>","revenue":"<array>","naicsCode":"<array>","keywords":"<array>","technologies":"<array>","fundingRounds":"<array>"}}'
```

### Scroll

Search people with cursor-based pagination for large result sets. Accepts the same filters as /people/search. No 10,000 result limit unlike the standard search endpoint.

`POST /people/search/scroll`

**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `pageSize` | integer | Yes | REQUIRED. Number of results per page (1-100). Determines cost: 2 credits ($0.0245) per result returned. Total call cost = pageSize x per-result cost. |
| `cursor` | string | No | The cursor to use for pagination. This is used for cursor based pagination. If this is set, Page will be ignored. |
| `companyFilter` | object | No | The filters to be applied on the companies to find people for |
| `query` | string | No | The search query to apply on the company name and domain |
| `positionQuery` | array | No | The list of search queries to apply on the person's current job position/title |
| `atCurrentCompanyAfter` | string | No | Filter by current company join date - only include people who joined after this UTC date |
| `atCurrentCompanyBefore` | string | No | Filter by current company join date - only include people who joined before this UTC date |
| `atCurrentPositionAfter` | string | No | Filter by current position start date - only include people who started after this UTC date |
| `atCurrentPositionBefore` | string | No | Filter by current position start date - only include people who started before this UTC date |
| `exclude` | object | No | Exclusion filters to apply on the people. If a person matches any of the filters here, it will be excluded from the results. |
| `countries` | array | No | The 2 letter country codes to filter by |
| `domains` | array | No | The domains to find people for. Up to 100 domains are allowed. |
| `seniority` | array | No | The seniorities to filter by |
| `department` | array | No | The departments to filter by |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/people/search/scroll","body":{"pageSize":"<integer>","cursor":"<string>","companyFilter":"<object>","query":"<string>","positionQuery":"<array>","atCurrentCompanyAfter":"<string>","atCurrentCompanyBefore":"<string>","atCurrentPositionAfter":"<string>","atCurrentPositionBefore":"<string>","exclude":"<object>","countries":"<array>","domains":"<array>","seniority":"<array>","department":"<array>"}}'
```

### Preview

Free preview of company search results. Returns the top 25 matches. Accepts the same filters as /companies/search. Use this to validate search criteria before committing to a paid full search.

`POST /companies/search/preview`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `lists` | array | No | The list IDs to filter by |
| `semanticQuery` | string | No | The semantic search query to find companies with. More natural language version of the standard query. |
| `semanticWeight` | number | No | The semantic weight to apply to the results. Must be between 0 and 1. 0.7 is default. Larger values will prioritize semantic similarity, smaller values will prioritize traditional search factors. |
| `exclude` | object | No | Exclusion filters to apply on the companies. If a company matches any of the filters here, it will be excluded from the results. |
| `query` | string | No | The search query to apply on the company name and domain |
| `foundedYear` | object | No | The range of years |
| `fundingAmount` | object | No | The funding amount range to filter by |
| `fundingYear` | object | No | The range of years |
| `categoryOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `keywordsOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `technologiesOperator` | string | No | The operator to apply to the filters. Defaults to And. |
| `workforceGrowth` | object | No | Filter companies by workforce growth percentage over a selected period and department. |
| `workforceSize` | array | No | Filter companies by absolute workforce headcount. Multiple entries can be provided to filter on different departments simultaneously. |
| `require` | array | No | The features that must exist for the company |
| `regions` | array | No | The region IDs to filter by |
| `countries` | array | No | The 2 letter country codes to filter by |
| `states` | array | No | The state IDs to filter by |
| `cities` | array | No | The city IDs to filter by |
| `type` | array | No | The list of company types to filter by |
| `category` | array | No | The list of company categories to filter by |
| `employees` | array | No | The list of employee counts to filter by |
| `revenue` | array | No | The list of revenue ranges to filter by |
| `naicsCode` | array | No | The NAICS codes to filter by. Can be 2 to 6 digit codes. In case of a 2-5 digit code, all 6 digit codes under it will be included |
| `keywords` | array | No | The keywords to filter by |
| `technologies` | array | No | The technologies to filter by |
| `fundingRounds` | array | No | The funding rounds to filter by |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"company-enrich","path":"/companies/search/preview","body":{"lists":"<array>","semanticQuery":"<string>","semanticWeight":"<number>","exclude":"<object>","query":"<string>","foundedYear":"<object>","fundingAmount":"<object>","fundingYear":"<object>","categoryOperator":"<string>","keywordsOperator":"<string>","technologiesOperator":"<string>","workforceGrowth":"<object>","workforceSize":"<array>","require":"<array>","regions":"<array>","countries":"<array>","states":"<array>","cities":"<array>","type":"<array>","category":"<array>","employees":"<array>","revenue":"<array>","naicsCode":"<array>","keywords":"<array>","technologies":"<array>","fundingRounds":"<array>"}}'
```

---

Full details and an interactive quickstart: https://orthogonal.com/discover/company-enrich
