---
title: "Identify a company from name, domain, ID, or profile URL"
method: POST
path: "/company/identify"
tags: ["Company APIs", "Identify APIs"]
---

# Identify a company from name, domain, ID, or profile URL

`POST /company/identify`

Match a company by name, website domain, profile URL, or Crustdata company ID.
Returns one or more matches ranked by confidence score. This endpoint is useful
for entity resolution before enrichment.

The API returns a top-level array with one result per submitted
identifier. Each match currently includes `company_data.crustdata_company_id` and
`company_data.basic_info`.

Exactly one identifier type must be provided per request.

<Note>
    Default `rate-limit` is 30 requests per minute. Send an email to [gtm@crustdata.co](mailto:gtm@crustdata.co) to discuss higher limits if needed for your use case.
</Note>

## Headers

- `x-api-version` '2025-11-01', required

## Request body

- union — Company identifiers plus optional field selection and exact_match. Provide exactly one identifier type (names, domains, crustdata_company_ids, or professional_network_profile_urls); each may contain one or more values.
  - object
    - `names` string[], nullable, required
    - `domains` string[], nullable
    - `crustdata_company_ids` integer[], nullable
    - `professional_network_profile_urls` string[], nullable
    - `fields` string[] — Field groups to include in `company_data`. When `fields` is omitted, only `crustdata_company_id` and `basic_info` are returned — sections such as `headcount`, `funding`, `people`, and `hiring` must be listed explicitly. Valid field groups for enrich: basic_info, revenue, headcount, funding, hiring, web_traffic, seo, competitors, employee_reviews, people, locations, taxonomy, followers, news, software_reviews, social_profiles, reviews, public_launches, market_intel, metadata, crustdata_company_id, updated_at, indexed_at. Not valid for enrich: roles, skills (search-only fields).
    - `exact_match` boolean, nullable — Whether to use exact matching (null means auto-detect)
  - object
    - `names` string[], nullable
    - `domains` string[], nullable, required
    - `crustdata_company_ids` integer[], nullable
    - `professional_network_profile_urls` string[], nullable
    - `fields` string[] — Field groups to include in `company_data`. When `fields` is omitted, only `crustdata_company_id` and `basic_info` are returned — sections such as `headcount`, `funding`, `people`, and `hiring` must be listed explicitly. Valid field groups for enrich: basic_info, revenue, headcount, funding, hiring, web_traffic, seo, competitors, employee_reviews, people, locations, taxonomy, followers, news, software_reviews, social_profiles, reviews, public_launches, market_intel, metadata, crustdata_company_id, updated_at, indexed_at. Not valid for enrich: roles, skills (search-only fields).
    - `exact_match` boolean, nullable — Whether to use exact matching (null means auto-detect)
  - object
    - `names` string[], nullable
    - `domains` string[], nullable
    - `crustdata_company_ids` integer[], nullable, required
    - `professional_network_profile_urls` string[], nullable
    - `fields` string[] — Field groups to include in `company_data`. When `fields` is omitted, only `crustdata_company_id` and `basic_info` are returned — sections such as `headcount`, `funding`, `people`, and `hiring` must be listed explicitly. Valid field groups for enrich: basic_info, revenue, headcount, funding, hiring, web_traffic, seo, competitors, employee_reviews, people, locations, taxonomy, followers, news, software_reviews, social_profiles, reviews, public_launches, market_intel, metadata, crustdata_company_id, updated_at, indexed_at. Not valid for enrich: roles, skills (search-only fields).
    - `exact_match` boolean, nullable — Whether to use exact matching (null means auto-detect)
  - object
    - `names` string[], nullable
    - `domains` string[], nullable
    - `crustdata_company_ids` integer[], nullable
    - `professional_network_profile_urls` string[], nullable, required
    - `fields` string[] — Field groups to include in `company_data`. When `fields` is omitted, only `crustdata_company_id` and `basic_info` are returned — sections such as `headcount`, `funding`, `people`, and `hiring` must be listed explicitly. Valid field groups for enrich: basic_info, revenue, headcount, funding, hiring, web_traffic, seo, competitors, employee_reviews, people, locations, taxonomy, followers, news, software_reviews, social_profiles, reviews, public_launches, market_intel, metadata, crustdata_company_id, updated_at, indexed_at. Not valid for enrich: roles, skills (search-only fields).
    - `exact_match` boolean, nullable — Whether to use exact matching (null means auto-detect)

## Response `200`

Identified company matches returned as a top-level array

- IdentifyResult[] — Top-level array returned by /company/identify with one entry per submitted identifier.
  - `matched_on` string — The specific input value (e.g., 'google.com')
  - `match_type` 'name' | 'domain' | 'crustdata_company_id' | 'professional_network_profile_url'
  - `matches` IdentifyMatch[]
    - `confidence_score` number, float
    - `company_data` CompanyIdentify — Basic company fields returned inside identify matches.
      - `crustdata_company_id` integer
      - `basic_info` object
        - `crustdata_company_id` integer
        - `name` string, nullable
        - `primary_domain` string, nullable
        - `all_domains` string[], nullable
        - `website` string, nullable
        - `professional_network_url` string, nullable
        - `professional_network_id` string, nullable
        - `profile_name` string, nullable
        - `logo_permalink` string, nullable
        - `description` string, nullable
        - `company_type` string, nullable
        - `year_founded` integer, nullable
        - `employee_count_range` string, nullable
        - `markets` string[], nullable
        - `industries` string[], nullable
      - `social_profiles` object
        - `professional_network` string, nullable — Profile URL for the company. Same value also surfaced at basic_info.professional_network_url.

## Other responses

- `400` — Invalid request parameters
- `401` — Unauthorized - invalid or missing API key
- `403` — Identify not allowed for this account
- `404` — No data found
- `500` — Internal server error

---

[API](https://skmtc.dev/crustdata/apis/batch-api.md) · [All operations](https://skmtc.dev/crustdata/apis/batch-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/crustdata/batch-api/revisions/581689e66ae7/schema)
