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
1 credit. Developer
platform data adds 1 credit. Maximum:
2 credits per profile.Reference
fields values,
person_data sections, advanced flags, errors.Your first enrichment: look up a profile
The simplest enrichment takes a single profile URL and returns the person’s cached profile. Pass the URL in theprofessional_network_profile_urls
array.
Understanding the response
The Enrich API returns an array — one entry per identifier you submitted. Each entry has three fields:matched_on— the profile URL you submitted.match_type—professional_network_profile_url.matches— an array of candidate profiles. Each match includes aconfidence_score(0 to 1) and the fullperson_dataobject.
confidence_score of 1.0, because the URL is a direct identifier.
Need fresh data from the web?
If the cached enrich response is missing a recent update or you need real-time retrieval from the web, use Person Live Enrich. That endpoint is designed for fresh profile retrieval when cached enrich is not enough.Examples
Worked recipes you can copy, paste, and adapt.Selecting fields: education, employers, and more
Request any of these sections (or dot-paths within them) infields:
experience, education, skills, and professional_network are part of
the base profile (1 credit) — requesting them adds no extra credits.
dev_platform_profiles costs more. See Pricing and the full
field catalog.Employment history — all current and past employers
Employment history — all current and past employers
experience to get each role’s company, crustdata_company_id, title, and dates.Education background
Education background
education for each school, degree, and field of study.Request all available fields
Request all available fields
experience, education, skills,
and professional_network are part of the base profile (no extra credits).
dev_platform_profiles adds a credit. certifications and honors are
omitted here — they require field-level permission on your key and otherwise
return an error (see the gated example below).certifications and honors, your API key needs
field-level permission — contact Crustdata to enable them. skills and
dev_platform_profiles may be empty for some profiles.Specific nested fields only
Specific nested fields only
Get the profile URLs — vanity and permanent (URN)
Get the profile URLs — vanity and permanent (URN)
social_handles section to get the person’s canonical profile
URLs — useful for keying records or linking out to the profile.profile_url— the canonical vanity URL. The slug can change if the person edits it.urn_url— the permanent URN-based URL, which never changes. Use it (orcrustdata_person_id) as a stable per-person key.
urn_url requires field-level permission on your API key and is absent
from the response by default — contact support to enable it. Both URL forms
are accepted as input identifiers in professional_network_profile_urls.Preview mode — basic profile at 0 credits
Preview mode — basic profile at 0 credits
preview: true to get a lightweight response at 0 credits: the
crustdata_person_id, basic_profile, social_handles.professional_network_identifier,
and the person’s connection count and profile picture. Any fields you pass are
ignored in preview mode, and preview cannot be combined with enrich_realtime.400 invalid_request with the message Preview feature is not available for your account. Please reach out to Crustdata team.Developer platform profile (extra credit)
Developer platform profile (extra credit)
dev_platform_profiles returns developer platform context (repos, orgs,
activity) and adds +1 credit./person/enrich does not
accept dev-platform URLs as identifiers (the legacy endpoint did). Use the
Dev Platform API —
POST /dev_platform/enrich takes profile_url: "https://github.com/<handle>" or a crustdata_person_id directly.Profile authenticity (assessment, gated, needs field permission)
Profile authenticity (assessment, gated, needs field permission)
assessment in fields to get Crustdata’s computed view of how well the
profile stands up to verification. It is never returned by default, and it
costs nothing extra on top of the base enrich charge. See the
assessment field list.The section arrives under matches[].person_data.assessment. verdict is one
of clearly_genuine, probably_genuine, cannot_verify,
probably_fabricated, or clearly_fabricated. tier runs from 0 (most
trusted) to 9 (least trusted). Either can be null."fields": ["basic_profile.name", "assessment.authenticity.verdict"] returns
assessment.authenticity.verdict on its own.assessment is returned only by /person/enrich. On /person/search you can
filter on assessment.authenticity.tier and assessment.authenticity.verdict,
and sort on tier (ascending puts the most trusted first), but neither is
returned in search results. Naming one in that endpoint’s fields returns
400 with Invalid fields: assessment.authenticity.tier. Use the filter to
screen profiles before you spend an enrich credit:assessment requires field-level permission on your API key.
Without it, the enrich call returns 403 with
{"error": {"type": "permission_error", "message": "Access denied to fields: assessment. ..."}}
and x-credits-used: 0. Contact Crustdata to enable it for your key. The
search filter above works without the grant.Certifications and honors (gated — needs field permission)
Certifications and honors (gated — needs field permission)
certifications and honors require field-level permission on your API key.
Without it, the request returns a permission error — contact Crustdata to enable
them for your key.More recipes
Handle no-match results
Handle no-match results
matches array is empty.matched_on tells you
which input had no match. This makes it easy to track which lookups
succeeded and which need a different approach.Batch enrichment — look up multiple people at once
Batch enrichment — look up multiple people at once
- The maximum batch size is 25 identifiers per request.
- 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
matchesarray will be empty, but the request still succeeds for the others.
Workflow — Search then Enrich
Workflow — Search then Enrich
What to do next
- Look up request/response details — see Enrich reference for parameters, valid
fieldsvalues,person_datasections, and errors. - Search first, then enrich — use Person Search to find people by name, title, company, or location, then enrich the results.
- Fetch fresh data from the web — use Person Live Enrich when cached enrich is not enough.

