Skip to main content
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.
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.
Every request goes to the same endpoint:
Replace YOUR_API_KEY in each example with your actual API key. All requests require the x-api-version: 2025-11-01 header.

Request body

Response body

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

Rate limits and pricing

Pricing: Free.
  • Rate limits: For current plan-specific limits, see Rate limits.
Use Identify first when your input is ambiguous. You can resolve the right company for free, then call Enrich only for the records you want in full detail.

Reference

Request parameters, validation, no-match behavior, errors.

Your first identification: look up a company by domain

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

Understanding the response

The live Identify endpoint returns a top-level array, not an object with a results wrapper.
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.

Identify vs Enrich

Common pattern: Use Identify to resolve ambiguous inputs, then pass the crustdata_company_id from the best match into Enrich for the full profile.

Examples

Worked recipes you can copy, paste, and adapt. Each example is a full working request you can copy, paste, and adapt.
Replace YOUR_API_KEY in each example with your actual API key. All requests require the x-api-version: 2025-11-01 header.
Name-based identification often returns multiple candidates. Check confidence_score and primary_domain to pick the right match.
When multiple matches are returned, use primary_domain and employee_count_range to disambiguate. The first match is not always the right one for name-based lookups.
If you have a company profile URL, pass it in professional_network_profile_urls. Profile URL lookups are direct matches — they typically return a single match with high confidence.
Pass a Crustdata company ID (for example, from a previous search call) to crustdata_company_ids for an exact lookup.
Company ID lookups return an exact match.
An inbound lead arrives from a known domain. Use Identify to resolve the domain to a company record, then use Search to find similar companies for prospecting.

Step 1: Identify the inbound company

Extract: Take response[0].matches[0].company_data.basic_info.industries[0]"Software Development" and employee_count_range"201-500".

Step 2: Search for similar companies

Extract: Take companies[].crustdata_company_id values and pass them to Enrich for full profiles of promising matches.If empty: If companies is [], broaden your filters (for example, wider headcount range or more industries). Use Autocomplete to verify valid filter values.
Name-based identification supports two matching modes. With exact_match: true, the input must match the stored name character for character (case-insensitive) — and the stored name is not always how the company is commonly written. For example, “Tomo Credit” is stored as "TomoCredit" (no space), so an exact lookup for the spaced form returns no matches.exact_match: true with a space → no match:
exact_match: false (default) tolerates the variation → matches:
Recommended fallback: try exact_match: true first; if matches is empty, retry with exact_match: false; then verify the returned name or primary_domain before using the result. Identify is free, so this two-step resolution costs nothing.

Reference

Reference material for Company Identify: the full list of request parameters, validation rules, no-match behavior, and error responses.

Request parameter reference

Submit exactly one identifier type per request.
exact_match: true enforces strict domain matching, but it can still return multiple matches when more than one company record shares that same domain.
The OpenAPI model currently reuses the Enrich request schema, but this reference documents the live Identify behavior. Use Enrich when you need the broader profile sections.

No-match behavior

When no company matches the identifier, current platform behavior returns 200 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.

Errors

400 — Missing identifier
401 — Invalid API key

API reference summary

See the full API reference for the complete OpenAPI schema.

What to do next

  • Get the full profile — pass the crustdata_company_id from Identify into Enrich for detailed company data.
  • Search for similar companies — use Company Search to find companies matching the same industry or headcount range.
  • Verify valid filter values — use Autocomplete to check filter values before searching.