---
title: "Enrich person profiles from cached dataset"
method: POST
path: "/person/enrich"
tags: ["Person APIs", "Enrich APIs"]
---

# Enrich person profiles from cached dataset

`POST /person/enrich`

Enrich person records using the Crustdata cached dataset. Provide either a profile URL or a business email
to retrieve detailed person data including employment history, education, skills, contact information, and developer platform data when available.
Exactly one identifier type must be provided per request. Supports batch enrichment of up to 25 profiles at once.
<Note>
    Default `rate-limit` is 15 requests per minute. Send an email to [gtm@crustdata.co](mailto:gtm@crustdata.co) to discuss higher limits if needed for your use case.
</Note>

## Headers

- `x-api-version` '2025-11-01', required

## Request body

- union — Request body for /person/enrich and /person/professional_network/enrich/live. Submit exactly one identifier type per request — professional_network_profile_urls or business_emails.
  - object
    - `professional_network_profile_urls` string[], required — Array of professional-network profile URLs (max 25).
    - `business_emails` string[] — Business email of the person to lookup
    - `fields` string[] — Fields to include in the response. Valid field groups for enrich: basic_profile, professional_network, skills, contact, social_handles, experience, education, certifications, honors, dev_platform_profiles. Use dot-notation for nested fields (e.g., "basic_profile.name", "experience.employment_details"). If omitted, a default set (basic_profile, social_handles) is returned — request additional groups explicitly. Some groups (for example certifications and honors) require field-level permission on your API key.
    - `min_similarity_score` number, nullable — Minimum similarity score for email matching
    - `preview` boolean — Preview mode returns only basic profile fields and charges 0 credits. Cannot be combined with enrich_realtime.
  - object
    - `professional_network_profile_urls` string[] — Array of professional-network profile URLs (max 25).
    - `business_emails` string[], required — Business email of the person to lookup
    - `fields` string[] — Fields to include in the response. Valid field groups for enrich: basic_profile, professional_network, skills, contact, social_handles, experience, education, certifications, honors, dev_platform_profiles. Use dot-notation for nested fields (e.g., "basic_profile.name", "experience.employment_details"). If omitted, a default set (basic_profile, social_handles) is returned — request additional groups explicitly. Some groups (for example certifications and honors) require field-level permission on your API key.
    - `min_similarity_score` number, nullable — Minimum similarity score for email matching
    - `preview` boolean — Preview mode returns only basic profile fields and charges 0 credits. Cannot be combined with enrich_realtime.

## Response `200`

Enriched person profiles

- PersonEnrichResult[] — Response from /person/enrich. Returns a top-level array with one entry per submitted identifier.
  - `matched_on` string — The specific input value (e.g., 'someone@company.com')
  - `match_type` 'professional_network_profile_url' | 'business_email'
  - `matches` PersonEnrichMatch[]
    - `confidence_score` number, float
    - `person_data` PersonEnrich — Fully-enriched person profile with basic profile, skills, social handles, experience, education, certifications, and contact.
      - `crustdata_person_id` integer
      - `basic_profile` object
        - `name` string
        - `headline` string
        - `first_name` string
        - `last_name` string
        - `current_title` string
        - `professional_network_name` string, nullable — Display name on the person's professional-network profile.
        - `normalized_title` object, nullable — Job Title Normalization (JTN, beta) — structured representation of the person's current title mapped to Crustdata's proprietary taxonomy (20 departments, 226 sub-departments). See https://docs.crustdata.com/guides/job-title-normalization.
          - `matched_title` string, nullable — Canonical normalized title matched to the person's current title.
          - `department` string, nullable — High-level department the normalized title maps to.
          - `sub_department` string, nullable — More granular classification within the department.
          - `similarity` number, nullable — Similarity score between the raw title and the matched normalized title, from 0 to 1.
          - `confident` boolean, nullable — Whether the normalized-title match is considered confident.
        - `summary` string
        - `languages` string[]
        - `last_updated` string, date-time, nullable
        - `profile_picture_permalink` string, nullable
        - `location` object, nullable
          - `city` string, nullable
          - `state` string, nullable
          - `country` string, nullable
          - `continent` string, nullable
          - `raw` string, nullable
      - `professional_network` object
        - `profile_picture_url` string
        - `profile_picture_permalink` string
        - `name` string
        - `pronoun` string
        - `headline` string
        - `current_title` string
        - `summary` string
        - `location` object
          - `city` string, nullable
          - `state` string, nullable
          - `country` string, nullable
          - `continent` string, nullable
          - `raw` string, nullable
        - `connections` integer, nullable
        - `followers` integer, nullable
        - `joined_date` string, nullable
        - `verifications` string[]
        - `open_to_cards` string[] — Open-to signal codes declared on the profile. Filter with the `in` operator using one or more of the closed enum values below. Human-readable strings like `"open_to_work"` are not indexed and return zero results. | Code | Meaning | | ------------------ | ------------------------------------------------ | | `CAREER_INTEREST` | Profile is open to new career opportunities | | `HIRING_MANAGER` | Profile is actively hiring | | `VOLUNTEERING` | Profile is open to volunteer work |
        - `metadata` object
          - `last_scraped_source` string, date-time, nullable
      - `skills` PersonSkills — Skill signals from a person profile.
        - `professional_network_skills` string[]
      - `contact` PersonEnrichContact — Contact details (emails, phone numbers) returned in person enrich responses.
        - `business_emails` object[]
          - `email` string
          - `status` 'verified' | 'unverified'
          - `last_updated` string, date-time, nullable
          - `crustdata_company_id` integer, nullable
        - `personal_emails` object[]
          - `email` string
          - `status` 'verified' | 'unverified'
          - `last_updated` string, date-time, nullable
        - `phone_numbers` string[]
        - `websites` string[]
      - `social_handles` object
        - `professional_network_identifier` object
          - `profile_url` string
        - `dev_platform_identifier` object
          - `profile_url` string, nullable
        - `twitter_identifier` object
          - `slug` string
      - `dev_platform_profiles` PersonDevPlatformProfile[], nullable
        - `account_type` string, nullable
        - `profile_url` string, nullable
        - `name` string, nullable
        - `email` string, nullable
        - `location` object, nullable
          - `raw` string, nullable
        - `company_text` string, nullable
        - `bio` string, nullable
        - `website_url` string, nullable
        - `profile_picture_url` string, nullable
        - `is_hireable` boolean, nullable
        - `is_site_admin` boolean, nullable
        - `confidence_score` number, double, nullable
        - `public_repo_count` integer, nullable
        - `followers` integer, nullable
        - `following` integer, nullable
        - `declared_handles` object[], nullable
          - `provider` string, nullable
          - `url` string, nullable
          - `created_at` string, date-time, nullable
          - `last_updated` string, date-time, nullable
        - `org_memberships` object[], nullable
          - `organization_id` integer, nullable
          - `organization_github_id` integer, nullable
          - `organization_login` string, nullable
          - `created_at` string, date-time, nullable
          - `last_updated` string, date-time, nullable
        - `metadata` object, nullable
          - `created_at` string, date-time, nullable
          - `last_scraped_source` string, date-time, nullable
          - `last_updated` string, date-time, nullable
      - `experience` object
        - `employment_details` object
          - `current` PersonEmploymentDetails[]
            - `name` string, nullable
            - `professional_network_id` string, nullable
            - `title` string, nullable
            - `description` string, nullable
            - `location` object, nullable
              - …
            - `employment_type` string, nullable
            - `start_date` string, nullable
            - `end_date` string, nullable
            - `is_default` boolean, nullable
            - `crustdata_company_id` integer, nullable
            - `company_website_domain` string, nullable
            - `company_profile_picture_permalink` string, nullable — Stable Crustdata-hosted permalink to the company logo, suitable for rendering in your own interface.
            - `company_professional_network_profile_url` string, nullable
            - `seniority_level` string, nullable
            - `function_category` string, nullable
            - `years_at_company` string, nullable
            - `years_at_company_raw` number, nullable
            - `company_headcount_latest` integer, nullable
            - `company_headcount_range` string, nullable
            - `company_industries` string[], nullable
            - `company_professional_network_industry` string, nullable
            - `company_type` string, nullable
            - `company_website` string, nullable
            - `company_headquarters_country` string, nullable
            - `company_hq_location` string, nullable
            - `company_hq_location_address_components` string[], nullable
            - `position_id` integer, nullable
            - `business_email_verified` boolean, nullable
          - `past` PersonEmploymentDetails[]
            - `name` string, nullable
            - `professional_network_id` string, nullable
            - `title` string, nullable
            - `description` string, nullable
            - `location` object, nullable
              - …
            - `employment_type` string, nullable
            - `start_date` string, nullable
            - `end_date` string, nullable
            - `is_default` boolean, nullable
            - `crustdata_company_id` integer, nullable
            - `company_website_domain` string, nullable
            - `company_profile_picture_permalink` string, nullable — Stable Crustdata-hosted permalink to the company logo, suitable for rendering in your own interface.
            - `company_professional_network_profile_url` string, nullable
            - `seniority_level` string, nullable
            - `function_category` string, nullable
            - `years_at_company` string, nullable
            - `years_at_company_raw` number, nullable
            - `company_headcount_latest` integer, nullable
            - `company_headcount_range` string, nullable
            - `company_industries` string[], nullable
            - `company_professional_network_industry` string, nullable
            - `company_type` string, nullable
            - `company_website` string, nullable
            - `company_headquarters_country` string, nullable
            - `company_hq_location` string, nullable
            - `company_hq_location_address_components` string[], nullable
            - `position_id` integer, nullable
            - `business_email_verified` boolean, nullable
      - `certifications` PersonCertification[] — Certifications on the person profile. Requires field-level permission on your API key.
        - `name` string
        - `issuing_organization` string
        - `issue_date` string, nullable
        - `expiration_date` string, nullable
        - `credential_id` string, nullable
        - `credential_url` string, nullable
        - `source` string
      - `honors` PersonHonor[] — Honors and awards on the person profile. Requires field-level permission on your API key.
        - `title` string, nullable
        - `issued_date` string, nullable
        - `description` string, nullable
        - `issuer` string, nullable
        - `media_urls` string[], nullable
        - `associated_organization` string, nullable
        - `associated_organization_professional_network_id` string, nullable
      - `education` object
        - `schools` PersonEducation[]
          - `school` string — Name of the educational institution.
          - `degree` string, nullable — Degree earned at the institution.
          - `field_of_study` string, nullable — Primary field of study.
          - `description` string, nullable — Free-text description of the education entry as it appears on the profile. May be an empty string when no description is provided.
          - `location` object, nullable — Geographic location of the institution, resolved into structured components.
            - `raw` string, nullable — Location string as it appears on the profile.
            - `city` string, nullable — City component of the institution location.
            - `state` string, nullable — State or region component of the institution location.
            - `country` string, nullable — Country component of the institution location.
            - `continent` string, nullable — Continent component of the institution location.
          - `start_year` integer, nullable — Year the person started at the institution.
          - `end_year` integer, nullable — Year the person finished at the institution.
          - `activities_and_societies` string, nullable — Activities and societies the person participated in.
          - `institute_logo_permalink` string, nullable — Stable Crustdata-hosted permalink to the institution logo, suitable for rendering in your own interface.
          - `institute_logo_url` string, nullable — Source URL of the institution logo, when available.
          - `professional_network_id` string, nullable — Identifier of the institution on the professional network.
      - `updated_at` string, date-time, nullable

## Other responses

- `400` — Invalid request parameters
- `401` — Unauthorized - invalid or missing API key
- `403` — Permission denied or insufficient credits
- `404` — No data found
- `500` — Internal server error

---

[API](https://skmtc.dev/crustdata/apis/batch-api.md) · [All operations](https://skmtc.dev/crustdata/apis/batch-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/crustdata/batch-api/revisions/581689e66ae7/schema)
