Skip to main content
Use this when you already know the company and want its full profile — for research, scoring, personalization, or diligence. The Company Enrich API takes an identifier you already have — a website domain, a profile URL, a company name, or a Crustdata company ID — and returns a detailed company profile with headcount, funding, industry, hiring, and more. The same endpoint supports both single-company lookups and multi-company requests. This page covers the basics (your first enrichment and the response shape) plus worked example recipes. For the request/response schema and errors, 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

Looking for the list of sections you can request? See Valid fields values for the full table of section group names you can pass to fields.

Response body

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

Rate limits and pricing

Pricing: 2 credits per record. Requesting technographics adds +2 credits per company that returns technographics data.
  • Rate limit: 15 requests per minute.
If you only need lightweight discovery, start with Company Search, then enrich the companies you want in full detail.

Reference

Request parameters, response fields, valid fields values, company_data sections, validation, errors.

Your first enrichment: look up a company by domain

The simplest enrichment takes a website domain and returns matching company profiles. Pass the domain in the domains array.
description in basic_info is truncated in this snippet for readability. Other fields reflect the default response — when fields is omitted, company_data only contains crustdata_company_id and basic_info. Request additional sections such as headcount, funding, or people explicitly via fields (see Using the fields parameter).

Understanding the response

The Enrich 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. Possible values: domain, name, crustdata_company_id, professional_network_profile_url.
  • matches — an array of candidate companies. Each match includes a confidence_score and the full company_data object.
Domain lookups may return multiple matches if the domain is ambiguous. The highest confidence_score indicates the best match. Use exact_match: true to restrict results to companies whose primary_domain exactly matches your input (see the exact match recipe below).

How to interpret results

  • Multiple matches: If matches contains more than one entry, check confidence_score — the highest score is the best match. Use primary_domain to verify.
  • Empty matches array: The identifier did not match any company. Check for typos or try a different identifier type.
  • confidence_score: Higher is better. A score of 1.0 is common for direct identifier lookups such as profile URLs or company IDs.

Examples

Worked recipes you can copy, paste, and adapt. Each example is a full working request. For the full list of request and response fields, see Enrich reference.
If you have a company profile URL, pass it in professional_network_profile_urls. This gives you a direct match.
Response trimmed for clarity.
Profile URL lookups are direct matches — they typically return a single match with high confidence.
You can also enrich by company name. This is useful when you only have a name from a form submission or event badge scan.
Name-based enrichment may return multiple candidates. Check confidence_score and primary_domain to pick the right match.
If you already have a Crustdata company ID (from a previous search call), pass it in crustdata_company_ids for an exact lookup.
Company ID lookups typically return a single exact match, making this the most precise enrichment method.
By default, domain-based enrichment can return multiple candidates. Set exact_match: true to restrict results to companies whose primary_domain exactly matches your input.
Response trimmed for clarity.
With exact_match: true, results are limited to records whose primary_domain exactly matches your input. You may still receive multiple matches when more than one company record shares that same domain.
The same endpoint supports multiple identifiers in a single request, so multi-company enrich stays on this page rather than as a separate API.

Multi-company enrich tips

  • Submit one identifier type per request. Mixing identifier types (e.g., sending both domains and names) is not supported.
  • Each entry in the response corresponds to the input at the same position, so you can match results back to your input list by index.
  • If some identifiers fail to match, their matches array will be empty, but the request still succeeds for the others.
Each identifier type has trade-offs in precision and convenience.
The most powerful pattern combines Company Search with Company Enrich. Search finds companies matching your criteria; Enrich gets the full profile for each match.Step 1: Search for well-funded software companies.
Step 2: Take the crustdata_company_id values from the search results and pass them in crustdata_company_ids to enrich.
This two-step pattern is the foundation for sales, research, and investment workflows. Search narrows the universe; Enrich fills in the details. Because crustdata_company_ids is an array, the same endpoint works for one company or many companies.
Request every standard section in one call to build a complete profile — the equivalent of the legacy endpoint’s return-everything default. Omitted sections come back as null placeholders, so list each section you want.
Response trimmed for clarity — only a few of the requested sections are shown. The full response also includes per-section timeseries, role/region breakdowns, and people.decision_makers and people.cxos arrays. Each entry in fields is a section group — see Valid fields values. Add-on sections such as technographics require a field grant on your account.
/company/enrich keys the headcount growth maps by period alias (mom, qoq, six_months, yoy, two_years), whereas /company/search uses 1m, 3m, 6m, 12m. The values are equivalent; map the keys explicitly.
The product-and-review intelligence formerly returned as a separate analyst dataset is now the market_intel field group. It includes products, categories, and detailed reviews.
Response trimmed for clarity. Each review also carries rating breakdowns, purchase reasons, and competitors considered.
Product-launch data (launches, makers, ratings, and reviews) is now the public_launches field group.
Response trimmed for clarity.
The technographics field group returns the technologies detected for a company — a count, the most notable names, and the full list with categories and detection sources. It is never included by default: request it explicitly via fields. It also requires field-level permission on your account — contact Crustdata to enable it.
Response trimmed for clarity — technologies contains one entry per detected technology (total_technologies of them). Each entry has a name, a category, and sources — where the signal was detected: "web signals" (the company’s web presence) or "job posting" (the company’s job postings). See technographics fields for the full field reference.
Add-on pricing: requesting technographics adds +2 credits per company that returns technographics data, on top of the endpoint’s base cost. Companies with no technographics data are not charged the add-on. The same add-on pricing applies to Batch Company Enrich.
Company Search can filter on technographics (technographics.total_technologies, technographics.technologies.name, and more) but does not return technographics values in its responses — filter with Company Search, then enrich the matches here to get the values.
The locations section returns the headquarters as a raw string and as parsed country / state / street_address fields, plus every office address.
Response trimmed for clarity.
Request the full section name ("locations") to get the parsed fields. Requesting only a subfield (for example "locations.headquarters") returns the sibling keys (country, state, street_address) as null — they are placeholders, not missing data. The same applies to every other section: pass the section name from the field reference to get all of its fields populated.

What to do next

  • Look up request/response details and fields — see Enrich reference for request parameters, company_data sections, valid fields values, validation, and errors.
  • Search for companies first — use Company Search to find companies by industry, funding, headcount, and more, then enrich the matches.
  • Discover filter values — use Company Autocomplete to find valid values before building search filters.