---
title: "Enrich profile"
method: POST
path: "/v1/enrich"
tags: ["Enrich"]
---

# Enrich profile

`POST /v1/enrich`

## Request

- Base URL: `https://api.talktohumans.app`
- URL: `https://api.talktohumans.app/v1/enrich`
- Auth: HTTP bearer

Enriches a LinkedIn profile and its primary company.

## Request body

- union: Provide exactly one target: `contact_id`, `provider_participant_id`, `linkedin_url`, or `public_identifier`.
  - object
    - `account_id` string: LinkedIn account ID returned by `GET /v1/accounts`. Required when the organization has multiple LinkedIn accounts.
    - `contact_id` string, required: Contact ID returned by `GET /v1/contacts`.
    - `provider_participant_id` string: LinkedIn participant ID, such as `urn:li:fsd_profile:abc`.
    - `linkedin_url` string, uri: LinkedIn profile URL.
    - `public_identifier` string: LinkedIn public identifier from a profile URL.
    - `force` boolean: Refresh cached enrichment data even when fresh data is already available.
  - object
    - `account_id` string: LinkedIn account ID returned by `GET /v1/accounts`. Required when the organization has multiple LinkedIn accounts.
    - `contact_id` string: Contact ID returned by `GET /v1/contacts`.
    - `provider_participant_id` string, required: LinkedIn participant ID, such as `urn:li:fsd_profile:abc`.
    - `linkedin_url` string, uri: LinkedIn profile URL.
    - `public_identifier` string: LinkedIn public identifier from a profile URL.
    - `force` boolean: Refresh cached enrichment data even when fresh data is already available.
  - object
    - `account_id` string: LinkedIn account ID returned by `GET /v1/accounts`. Required when the organization has multiple LinkedIn accounts.
    - `contact_id` string: Contact ID returned by `GET /v1/contacts`.
    - `provider_participant_id` string: LinkedIn participant ID, such as `urn:li:fsd_profile:abc`.
    - `linkedin_url` string, uri, required: LinkedIn profile URL.
    - `public_identifier` string: LinkedIn public identifier from a profile URL.
    - `force` boolean: Refresh cached enrichment data even when fresh data is already available.
  - object
    - `account_id` string: LinkedIn account ID returned by `GET /v1/accounts`. Required when the organization has multiple LinkedIn accounts.
    - `contact_id` string: Contact ID returned by `GET /v1/contacts`.
    - `provider_participant_id` string: LinkedIn participant ID, such as `urn:li:fsd_profile:abc`.
    - `linkedin_url` string, uri: LinkedIn profile URL.
    - `public_identifier` string, required: LinkedIn public identifier from a profile URL.
    - `force` boolean: Refresh cached enrichment data even when fresh data is already available.

## Response `200`

LinkedIn profile and primary company enrichment data.

- EnrichProfileEnvelope
  - `data` EnrichProfileResponse, required
    - `linkedin_enrichment` LinkedInEnrichment, required: LinkedIn profile enrichment data. The profile is enriched first, then the current primary company is enriched when available.
      - `profile` EnrichedParticipantSnapshot
        - `participant` EnrichedParticipant, required
          - `provider` string, required
          - `provider_participant_id` string, required
          - `kind` string, required: Participant kind, usually `member` or `company`.
          - `public_identifier` string, nullable
          - `profile_url` string, uri, nullable
          - `first_name` string, nullable
          - `last_name` string, nullable
          - `full_name` string, nullable
          - `headline` string, nullable
          - `avatar_url` string, uri, nullable
          - `background_cover_url` string, uri, nullable
          - `headcount` string, nullable
          - `employee_count` integer, nullable
          - `founding_date` string, nullable
          - `website_url` string, uri, nullable
          - `profile_action_label` string, nullable
          - `profile_action_url` string, uri, nullable
          - `follower_count` integer, nullable
          - `connections_count` integer, nullable
          - `primary_company` ParticipantKey, nullable
            - `provider` string, required
            - `provider_participant_id` string, required
          - `primary_company_name` string, nullable
          - `primary_role_title` string, nullable
          - `about` string, nullable
          - `profile_fetched_at` string, date-time, nullable
          - `updated_at` string, date-time, required
        - `languages` EnrichedLanguage[], required
          - `language` string, required
          - `metadata_json` string, nullable
        - `experiences` EnrichedExperience[], required
          - `company` ParticipantKey, nullable
            - `provider` string, required
            - `provider_participant_id` string, required
          - `company_name` string, nullable
          - `title` string, nullable
          - `employment_type` string, nullable
          - `location` string, nullable
          - `start_at` string, nullable
          - `end_at` string, nullable
          - `is_current` boolean, required
          - `description` string, nullable
          - `metadata_json` string, nullable
        - `educations` EnrichedEducation[], required
          - `school` ParticipantKey, nullable
            - `provider` string, required
            - `provider_participant_id` string, required
          - `school_name` string, nullable
          - `degree` string, nullable
          - `field_of_study` string, nullable
          - `start_at` string, nullable
          - `end_at` string, nullable
          - `description` string, nullable
          - `metadata_json` string, nullable
        - `locations` EnrichedLocation[], required
          - `source` string, required
          - `sort_order` integer, required
          - `is_primary` boolean, required
          - `is_headquarter` boolean, required
          - `linkedin_text` string, nullable
          - `display_text` string, nullable
          - `country_code` string, nullable
          - `region_code` string, nullable
          - `country` string, nullable
          - `country_full` string, nullable
          - `state` string, nullable
          - `city` string, nullable
          - `geographic_area` string, nullable
          - `line1` string, nullable
          - `line2` string, nullable
          - `postal_code` string, nullable
          - `description` string, nullable
          - `metadata_json` string, nullable
        - `industries` EnrichedIndustry[], required
          - `sort_order` integer, required
          - `industry_urn` string, nullable
          - `provider_industry_id` string, nullable
          - `name` string, nullable
          - `title` string, nullable
          - `hierarchy` string, nullable
          - `metadata_json` string, nullable
      - `company` EnrichedParticipantSnapshot
        - `participant` EnrichedParticipant, required
          - `provider` string, required
          - `provider_participant_id` string, required
          - `kind` string, required: Participant kind, usually `member` or `company`.
          - `public_identifier` string, nullable
          - `profile_url` string, uri, nullable
          - `first_name` string, nullable
          - `last_name` string, nullable
          - `full_name` string, nullable
          - `headline` string, nullable
          - `avatar_url` string, uri, nullable
          - `background_cover_url` string, uri, nullable
          - `headcount` string, nullable
          - `employee_count` integer, nullable
          - `founding_date` string, nullable
          - `website_url` string, uri, nullable
          - `profile_action_label` string, nullable
          - `profile_action_url` string, uri, nullable
          - `follower_count` integer, nullable
          - `connections_count` integer, nullable
          - `primary_company` ParticipantKey, nullable
            - `provider` string, required
            - `provider_participant_id` string, required
          - `primary_company_name` string, nullable
          - `primary_role_title` string, nullable
          - `about` string, nullable
          - `profile_fetched_at` string, date-time, nullable
          - `updated_at` string, date-time, required
        - `languages` EnrichedLanguage[], required
          - `language` string, required
          - `metadata_json` string, nullable
        - `experiences` EnrichedExperience[], required
          - `company` ParticipantKey, nullable
            - `provider` string, required
            - `provider_participant_id` string, required
          - `company_name` string, nullable
          - `title` string, nullable
          - `employment_type` string, nullable
          - `location` string, nullable
          - `start_at` string, nullable
          - `end_at` string, nullable
          - `is_current` boolean, required
          - `description` string, nullable
          - `metadata_json` string, nullable
        - `educations` EnrichedEducation[], required
          - `school` ParticipantKey, nullable
            - `provider` string, required
            - `provider_participant_id` string, required
          - `school_name` string, nullable
          - `degree` string, nullable
          - `field_of_study` string, nullable
          - `start_at` string, nullable
          - `end_at` string, nullable
          - `description` string, nullable
          - `metadata_json` string, nullable
        - `locations` EnrichedLocation[], required
          - `source` string, required
          - `sort_order` integer, required
          - `is_primary` boolean, required
          - `is_headquarter` boolean, required
          - `linkedin_text` string, nullable
          - `display_text` string, nullable
          - `country_code` string, nullable
          - `region_code` string, nullable
          - `country` string, nullable
          - `country_full` string, nullable
          - `state` string, nullable
          - `city` string, nullable
          - `geographic_area` string, nullable
          - `line1` string, nullable
          - `line2` string, nullable
          - `postal_code` string, nullable
          - `description` string, nullable
          - `metadata_json` string, nullable
        - `industries` EnrichedIndustry[], required
          - `sort_order` integer, required
          - `industry_urn` string, nullable
          - `provider_industry_id` string, nullable
          - `name` string, nullable
          - `title` string, nullable
          - `hierarchy` string, nullable
          - `metadata_json` string, nullable

## Other responses

- `400`: Invalid request parameters.
- `401`: Missing, malformed, invalid, or retired local API key.
- `403`: API access is not enabled for the organization, the API key cannot resolve to an active organization user, or the credential cannot access the requested LinkedIn account.
- `404`: Requested resource was not found.
- `429`: Rate limit exceeded. Public routes allow 50 requests per 10 seconds per IP and endpoint.
- `500`: Unexpected server error.
- `502`: Upstream provider request failed.

---

[API](https://skmtc.dev/talktohumans/apis/talktohumans-public-api.md) · [All operations](https://skmtc.dev/talktohumans/apis/talktohumans-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/talktohumans/apis/talktohumans-public-api/revisions/4551ad2f26af?raw)
