Endpoint essentials
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. Research profiles (enabled on
request) add 2 credits. Maximum:
4 credits per profile.
To see the price for your account, open the Pricing tab in the dashboard.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, honors, and
research_profiles are omitted here. They require field-level permission on
your key and otherwise return an error (see the gated examples 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, and
both match case-insensitively.Preview mode (enabled per account on request)
Preview mode (enabled per account on request)
preview: true request returns 400 invalid_request with the message
Preview feature is not available for your account. Please reach out to Crustdata team. The refused call costs 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.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.Research profiles (research_profiles, enabled on request)
Research profiles (research_profiles, enabled on request)
research_profiles in fields to get the person’s matched academic author
profiles in the same enrich call. The section is never returned by
default. It is enabled per account, so ask your Crustdata contact to turn it
on. Without the grant, naming it in fields returns 403 with
Access denied to fields: research_profiles.The value is an array, because one person can hold more than one author
profile. The best match comes first. A profile is linked to a person only after
a confident match. Unmatched or still-under-review profiles never appear. When
the person has no matched profile, the key is absent from person_data. More
than 1.7 million people carry at least one.Each profile carries identity (id, profile_url, name, designation,
affiliated_organisation, verified_email_domain, website,
research_interests, thumbnail), lifetime and recent values of
citations_count, h_index, and i10_index, a citations_timeseries by
year, every publication in articles, every linked co-author in
co_authors, and metadata.last_scraped_source. See the
research_profiles fields
table for types and fill rates.social_handles is left out.articles and co_authors list everything. When you do not
need the publication list, request only the sub-fields you read. This call
returns the name, the profile URL, and the lifetime h-index on their own:research_profiles is enabled per account on API
version 2025-11-01. Contact Crustdata to turn it on. The add-on costs
2 credits per person returned with at least one research profile, on
top of the base enrich pricing. A person with no matched profile is not
charged the add-on. To filter and sort people by citation metrics, use the
research_profiles.* fields on
Person Search.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.

