> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crustdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Company Identify

> Resolve a company from partial information — a name, domain, profile URL, or Crustdata company ID — and get back matched company records ranked by confidence.

**Use this when** you have partial company information and need to resolve it
to a specific Crustdata company record — for CRM deduplication, lead routing,
entity resolution, or pre-enrichment matching.

The Company Identify API takes an identifier you have — a website domain, a
profile URL, a company name, or a Crustdata company ID — and returns one or
more matched companies ranked by confidence score. Identify is designed for
entity resolution rather than deep profiling.

<Note>
  This page documents the live Identify response directly. Current platform
  behavior returns match metadata plus `company_data.basic_info`. If you
  need the broader company sections used in full profiles, see
  [Enrich reference](/company-docs/enrichment/reference).
</Note>

Every request goes to the same endpoint:

```
POST https://api.crustdata.com/company/identify
```

<Note>
  Replace `YOUR_API_KEY` in each example with your actual API key. All
  requests require the `x-api-version: 2025-11-01` header.
</Note>

### Request body

| Parameter                                                                           | Type    | Required       | Description                               |
| ----------------------------------------------------------------------------------- | ------- | -------------- | ----------------------------------------- |
| `domains` / `professional_network_profile_urls` / `names` / `crustdata_company_ids` | array   | Yes — one only | Submit exactly one identifier type.       |
| `exact_match`                                                                       | boolean | No             | Set to `true` for strict domain matching. |

### Response body

The response is a top-level array. Each entry corresponds to one input
identifier.

| Field                        | Type   | Description                                                                  |
| ---------------------------- | ------ | ---------------------------------------------------------------------------- |
| `matched_on`                 | string | The input identifier you submitted                                           |
| `match_type`                 | string | `domain`, `name`, `crustdata_company_id`, `professional_network_profile_url` |
| `matches`                    | array  | Candidate matches ranked by relevance. Empty for no-match inputs.            |
| `matches[].confidence_score` | number | Higher is better.                                                            |
| `matches[].company_data`     | object | Match metadata plus `basic_info`.                                            |

### Rate limits and pricing

<Callout icon="gift" color="#16a34a">
  <strong>Pricing:</strong> <code>Free</code>.
</Callout>

* **Rate limits:** For current plan-specific limits, see
  [Rate limits](/general/rate-limits).

<Info>
  Use Identify first when your input is ambiguous. You can resolve the right
  company for free, then call [Enrich](/company-docs/enrichment/introduction) only for
  the records you want in full detail.
</Info>

<CardGroup cols={2}>
  <Card title="Examples" icon="fingerprint" href="/company-docs/identify/examples">
    Identify by name, profile URL, or Crustdata company ID.
  </Card>

  <Card title="Reference" icon="book" href="/company-docs/identify/reference">
    Request parameters, validation, no-match behavior, errors.
  </Card>
</CardGroup>

***

## Your first identification: look up a company by domain

Pass a website domain in the `domains` array to find the matching company.

<CodeGroup>
  ```bash Request theme={"theme":"vitesse-black"}
  curl --request POST \
    --url https://api.crustdata.com/company/identify \
    --header 'authorization: Bearer YOUR_API_KEY' \
    --header 'content-type: application/json' \
    --header 'x-api-version: 2025-11-01' \
    --data '{
      "domains": ["serverobotics.com"]
    }'
  ```

  ```json Response theme={"theme":"vitesse-black"}
  [
      {
          "matched_on": "serverobotics.com",
          "match_type": "domain",
          "matches": [
              {
                  "confidence_score": 1.0,
                  "company_data": {
                      "crustdata_company_id": 628895,
                      "basic_info": {
                          "crustdata_company_id": 628895,
                          "name": "Serve Robotics",
                          "primary_domain": "serverobotics.com",
                          "all_domains": ["serverobotics.com"],
                          "website": "https://www.serverobotics.com/",
                          "professional_network_url": "https://www.linkedin.com/company/serverobotics",
                          "professional_network_id": "72049930",
                          "profile_name": "Serve Robotics",
                          "employee_count_range": "51-200",
                          "industries": [
                              "Technology, Information and Internet",
                              "Technology, Information and Media"
                          ]
                      }
                  }
              }
          ]
      }
  ]
  ```
</CodeGroup>

### Understanding the response

<Note>
  **Current platform behavior:** The live Identify endpoint returns a
  top-level array, not an object with a `results` wrapper.
</Note>

The Identify API returns a top-level array — one entry per identifier you
submitted. Each entry has three fields:

* **`matched_on`** — the identifier you submitted (the domain, URL, name, or ID).
* **`match_type`** — which identifier type was used. Values: `domain`, `name`, `crustdata_company_id`, `professional_network_profile_url`.
* **`matches`** — an array of candidate companies ranked by relevance. Each
  match includes a `confidence_score` and a `company_data` object. Current
  platform behavior returns `basic_info` here.

For detailed behavior when no identifier matches, see
[No-match behavior](/company-docs/identify/reference#no-match-behavior).

***

## Identify vs Enrich

|              | Identify                                     | Enrich                         |
| ------------ | -------------------------------------------- | ------------------------------ |
| **Endpoint** | `/company/identify`                          | `/company/enrich`              |
| **Pricing**  | **Free**                                     | **2 credits per record**       |
| **Response** | Match results with `company_data.basic_info` | Full company profile           |
| **Best for** | Matching, deduplication, entity resolution   | Research, scoring, diligence   |
| **Use when** | You need to resolve "which company is this?" | You need detailed company data |

**Common pattern:** Use Identify to resolve ambiguous inputs, then pass the
`crustdata_company_id` from the best match into
[Enrich](/company-docs/enrichment/introduction) for the full profile.

***

## What to do next

* **Identify by other inputs** — see [Examples](/company-docs/identify/examples) for name, profile URL, and company ID examples.
* **Look up request/response details** — see [Identify reference](/company-docs/identify/reference).
* **Get the full profile** — pass the `crustdata_company_id` from Identify into [Enrich](/company-docs/enrichment/introduction) for detailed company data.
* **Search for similar companies** — use [Company Search](/company-docs/search/introduction) to find companies matching the same industry or headcount range.
