company_data schema as Enrich (the full CompanyAll model), but Identify is designed for entity resolution rather than deep profiling.
Examples on this page show only
basic_info fields for readability. The actual company_data object follows the full CompanyAll schema and may include additional sections.Replace
YOUR_API_KEY in each example with your actual API key. All
requests require the x-api-version: 2025-11-01 header.Identify by domain
Pass a website domain in thedomains array to find the matching company.
Identify by company name
Name-based identification often returns multiple candidates. Checkconfidence_score and primary_domain to pick the right match.
Identify by LinkedIn URL
Identify by Crustdata company ID
Identify vs Enrich
| Identify | Enrich | |
|---|---|---|
| Endpoint | /company/identify | /company/enrich |
| Response schema | CompanyAll (same schema as Enrich) | CompanyAll (full 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 |
crustdata_company_id from the best match into Enrich for the full profile.
Understanding the response
The Identify API returns an object with aresults 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 aconfidence_scoreand acompany_dataobject withbasic_info.
No-match behavior
When no company matches the identifier, current platform behavior returns200 with an empty matches array:
The OpenAPI spec also defines a
404 response for Identify. Current platform behavior returns 200 with empty matches, but integrations should handle both. See Conventions.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 | LinkedIn company 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. |
fields | string[] | No | Field groups to include in company_data. Same values as Enrich fields. |
exact_match | boolean | No | Set to true for strict domain matching. |
Current platform behavior: Submit exactly one identifier type per request.
The Identify request schema is the same as the Enrich request schema —
fields and exact_match are supported.Errors
| Status | Meaning |
|---|---|
400 | Invalid request — missing or multiple identifier types, or malformed input. |
401 | Invalid or missing API key. |
403 | Permission denied or insufficient credits. |
404 | No data found. |
500 | Internal server error. |
400 — Missing identifier
401 — Invalid API key
API reference summary
| Detail | Value |
|---|---|
| Endpoint | POST /company/identify |
| Auth | Bearer token + x-api-version: 2025-11-01 |
| Request | One identifier type: domains, names, crustdata_company_ids, or professional_network_profile_urls. |
| Response | { "results": [{ "matched_on", "match_type", "matches": [{ "confidence_score", "company_data" }] }] } |
| Errors | 400 (bad request), 401 (bad auth), 403 (permission), 404 (no match), 500 (server error) |
What to do next
- Get the full profile — pass the
crustdata_company_idfrom Identify into Enrich for detailed company data. - Search for similar companies — use Company Search to find companies matching the same industry or headcount range.
- See more examples — browse Company Examples for ready-to-copy patterns.

