> ## 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 reference

> Reference for Company Identify: request parameters, validation rules, no-match behavior, and error responses.

Reference material for [Company Identify](/company-docs/identify/introduction): the full
list of request parameters, validation rules, no-match behavior, and error
responses.

For walk-through examples, see [Company Identify](/company-docs/identify/introduction) and
[Examples](/company-docs/identify/examples).

***

## Request parameter reference

| Parameter                           | Type       | Required                             | Description                               |
| ----------------------------------- | ---------- | ------------------------------------ | ----------------------------------------- |
| `domains`                           | string\[]  | Exactly one identifier type required | Website domains to identify.              |
| `professional_network_profile_urls` | string\[]  | Exactly one identifier type required | Company profile URLs to identify.         |
| `names`                             | string\[]  | Exactly one identifier type required | Company names to identify.                |
| `crustdata_company_ids`             | integer\[] | Exactly one identifier type required | Crustdata company IDs to identify.        |
| `exact_match`                       | boolean    | No                                   | Set to `true` for strict domain matching. |

<Note>
  **Current platform behavior:** Submit exactly one identifier type per
  request.
</Note>

<Note>
  **Current platform behavior:** `exact_match: true` enforces strict domain
  matching, but it can still return multiple matches when more than one
  company record shares that same domain.
</Note>

<Note>
  The OpenAPI model currently reuses the Enrich request schema, but this
  reference documents the live Identify behavior. Use
  [Enrich](/company-docs/enrichment/introduction) when you need the broader profile
  sections.
</Note>

***

## No-match behavior

When no company matches the identifier, current platform behavior returns
`200` with an empty `matches` array:

```json theme={"theme":"vitesse-black"}
[
    {
        "matched_on": "thisdomaindoesnotexist12345xyz.com",
        "match_type": "domain",
        "matches": []
    }
]
```

<Note>
  The OpenAPI spec also defines a `404` response for Identify. Current
  platform behavior returns `200` with empty `matches`, but integrations
  should handle both.
</Note>

***

## Errors

| Status | Meaning                                                                     |
| ------ | --------------------------------------------------------------------------- |
| `400`  | Invalid request — missing or multiple identifier types, or malformed input. |
| `401`  | Invalid or missing API key.                                                 |
| `403`  | Permission denied or endpoint unavailable for your account.                 |
| `404`  | No data found.                                                              |
| `500`  | Internal server error.                                                      |

```json 400 — Missing identifier theme={"theme":"vitesse-black"}
{
    "error": {
        "type": "invalid_request",
        "message": "Exactly one identifier must be provided: crustdata_company_ids, names, domains, or professional_network_profile_urls",
        "metadata": []
    }
}
```

```json 401 — Invalid API key theme={"theme":"vitesse-black"}
{
    "message": "Invalid API key in request"
}
```

***

## API reference summary

| Detail       | Value                                                                                                                              |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| **Endpoint** | `POST /company/identify`                                                                                                           |
| **Auth**     | Bearer token + `x-api-version: 2025-11-01`                                                                                         |
| **Pricing**  | Free                                                                                                                               |
| **Request**  | One identifier type: `domains`, `names`, `crustdata_company_ids`, or `professional_network_profile_urls`. Optional: `exact_match`. |
| **Response** | `[{ "matched_on", "match_type", "matches": [{ "confidence_score", "company_data" }] }]`                                            |
| **Errors**   | `400` (bad request), `401` (bad auth), `403` (permission), `404` (no match), `500` (server error)                                  |

See the [full API reference](/openapi-specs/2025-11-01/introduction) for the
complete OpenAPI schema.
