Skip to main content
Reference material for Person Enrich: request parameters, response fields, valid fields values, person_data section catalog, advanced refresh flags, and errors. For walk-through examples, see Person Enrich and Identifiers.

Request parameter reference

ParameterTypeRequiredDefaultDescription
professional_network_profile_urlsstring[]One of professional_network_profile_urls or business_emailsProfile URLs to enrich. Max 25.
business_emailsstring[]One of professional_network_profile_urls or business_emailsBusiness emails for reverse lookup. Max 25.
fieldsstring[]NoAll fieldsSpecific field paths or section groups to return.
min_similarity_scorenumber (0–1)NoNoneMinimum confidence threshold for email reverse lookup matches.
force_fetchbooleanNofalseAdvanced flag accepted by the API to request a fresh fetch path when supported.
enrich_realtimebooleanNofalseAdvanced flag accepted by the API to request realtime enrich behavior when supported.

Response fields reference

Each item in the response array contains:
FieldTypeDescription
matched_onstringThe input identifier (profile URL or email)
match_typestringprofessional_network_profile_url or business_email
matchesarrayArray of candidate matches (may be empty for no-match)
matches[].confidence_scorenumber0 to 1. How confident the match is. 1.0 = exact match.
matches[].person_dataobjectFull enriched profile. See person_data sections below.

Using the fields parameter

By default, the API returns all available data. Use the fields parameter to request just the sections or dot-paths you need.
curl --request POST \
  --url https://api.crustdata.com/person/enrich \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "professional_network_profile_urls": [
      "https://www.linkedin.com/in/dvdhsu/"
    ],
    "fields": [
      "basic_profile.summary",
      "contact",
      "dev_platform_profiles"
    ]
  }'
Field pathWhat it returns
basic_profile.summaryThe person’s summary or about text
contactContact section with email records, phone numbers, and websites when available
contact.business_emailsBusiness email records when available
contact.personal_emailsPersonal email records when available
contact.phone_numbersPhone numbers when available
contact.websitesPersonal or company-linked websites
dev_platform_profilesDeveloper platform profiles when available
social_handles.dev_platform_identifier.profile_urlCanonical developer platform profile URL when available
experience.employment_details.current.company_nameThe person’s current company name
Use contact when you want contact-ready records and dev_platform_profiles when you want developer platform context in the same enrich response.

person_data sections

The person_data object contains the following sections. Pass any of these names to fields to include that section, or use dot-paths like basic_profile.summary to request a specific sub-field.
SectionKey fieldsDescription
basic_profilename, headline, current_title, summary, location, languages, last_updatedCore identity and role
professional_networkprofile_picture_permalink, connections, followers, open_to_cardsProfile metadata when available
social_handlesavailable social identifiers such as twitter_identifier.slugAvailable social identifiers
experienceemployment_details.current[], employment_details.past[]Full employment history
educationschools[]Education background
skillsprofessional_network_skills[]Professional skills
contactbusiness_emails[], personal_emails[], phone_numbers[], websites[]Contact data such as websites, phones, or email records
dev_platform_profilesdeveloper platform profile objectsDeveloper platform data when available

Advanced refresh flags

The API currently accepts two advanced refresh flags on /person/enrich:
FlagTypeWhat it does
force_fetchbooleanRequest a fresh fetch path when supported.
enrich_realtimebooleanRequest realtime enrich behavior when supported.
Current platform behavior: both flags are accepted on /person/enrich and return the standard enrich response envelope. Their exact effect can vary by cache state and account access, so confirm the behavior you need before relying on either flag in production.
Advanced refresh example
curl --request POST \
  --url https://api.crustdata.com/person/enrich \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "professional_network_profile_urls": [
      "https://www.linkedin.com/in/abhilashchowdhary/"
    ],
    "force_fetch": true
  }'
If cached enrich is not enough, use Person Live Enrich — it is designed for fresh profile retrieval from the web.

Errors

StatusMeaning
400Invalid request — missing or wrong identifier type, or malformed body.
401Invalid or missing API key.
403Permission denied or insufficient credits.
500Internal server error.
400 — Bad request
{
    "error": {
        "type": "invalid_request",
        "message": "Exactly one identifier type must be provided.",
        "metadata": []
    }
}
401 — Invalid API key
{
    "message": "Invalid API key in request"
}

API reference summary

DetailValue
EndpointPOST /person/enrich
AuthBearer token + x-api-version: 2025-11-01
RequestOne of professional_network_profile_urls or business_emails (max 25). Optional: fields, min_similarity_score, force_fetch, enrich_realtime.
ResponseTop-level array: [{ matched_on, match_type, matches: [{ confidence_score, person_data }] }]
No match200 with empty matches: [] for unmatched identifiers.
Errors400 (bad request), 401 (bad auth), 403 (permission/credits), 500 (server error)
See the full API reference for the complete OpenAPI schema.