Person Enrichment API

Person Enrichment Crustdata v3 API

Enrich one person from a LinkedIn profile URL or a business email: profile, headline, location, skills, current and past roles with the employer's domain, education, social handles, and GitHub profiles. Contact details are sold separately by Contact Enrichment - Crustdata v3.

$96.00/1k req, pay per request, no subscription.

What the API returned
{
"personId": "crd3_pr_501847",
"name": "Devon Okafor",
"firstName": "Devon",
"lastName": "Okafor",
"headline": "Staff Software Engineer at Meridian Health",
"jobTitle": "Staff Software Engineer",
"summary": "Backend engineer focused on claims processing systems. Previously built payments infrastructure at Brightline.",
"image": "https://media.licdn.com/dms/image/devon-okafor.jpg",
... 14 more fields
}
Uptime
100.00%
30d · 9 calls
Requests
10
30d · weekly, last 12 wks
Response
1.7s
median · 30d

Pricing

Person Enrichment Crustdata v3 API pricing

You pay
$960.00
$96.00/1k req, only for what you use. No monthly plan.
Your first 1 requests are free with the $0.10 starting balance.

Call it

Get Person Enrichment crustdata v3 in one request

import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/person_enrichment.crustdata_v3",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={},
)
print(res.json())
Open in
Get a free key
Sample response

This sample shows 25 of 69 fields. See every field

{
  "found": true,
  "data": {
    "personId": "crd3_pr_501847",
    "name": "Devon Okafor",
    "firstName": "Devon",
    "lastName": "Okafor",
    "headline": "Staff Software Engineer at Meridian Health",
    "jobTitle": "Staff Software Engineer",
    "summary": "Backend engineer focused on claims processing systems. Previously built payments infrastructure at Brightline.",
    "image": "https://media.licdn.com/dms/image/devon-okafor.jpg",
    "languages": [
      "English",
      "French"
    ],
    "location": {
      "city": "Denver",
      "state": "Colorado",
      "country": "United States",
      "continent": "North America",
      "label": "Denver, Colorado, United States"
    },
    "linkedinUrl": "https://www.linkedin.com/in/devonokafor",
    "twitterHandle": "devonbuilds",
    "githubUrl": "https://github.com/devonokafor",
    "connections": 1980,
    "followers": 2410,
    "skills": [
      "Go",
      "PostgreSQL",
      "Distributed Systems",
      "Kafka",
      "gRPC"
    ],
    "yearsOfExperience": 11,
    "matchConfidence": 0.95
  }
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

One request, one response shape.

Every field you send and every field you get back, each with a real example.

Last verified 2026-11-01 · uptime and latency measured over 30d

Request body

JSON, posted to this endpoint.

  • emailstring

    The person's business email address.

  • linkedinUrlstring

    https://www.linkedin.com/in/devonokafor

    LinkedIn profile URL, e.g. https://www.linkedin.com/in/satyanadella. Send exactly one of linkedinUrl or email.

  • minSimilarityScorenumber

    For an email lookup, the lowest match similarity from 0 to 1 to accept. Leave unset to use Crustdata's default.

You send. A small JSON body. The values shown are examples to replace with your own.

Response

JSON, one example value per field.

datadata

The enriched person, or null when nothing matched.

  • connectionsinteger

    1980

    LinkedIn connection count.

  • firstNamestring

    Devon

    First name.

  • followersinteger

    2410

    LinkedIn follower count.

  • githubUrlstring

    https://github.com/devonokafor

    GitHub profile URL linked from the profile.

  • headlinestring

    Staff Software Engineer at Meridian Health

    LinkedIn headline.

  • imagestring

    https://media.licdn.com/dms/image/devon-okafor.jpg

    Profile photo URL.

  • jobTitlestring

    Staff Software Engineer

    Current job title.

  • languagesstring[]

    Languages the person lists.

  • lastNamestring

    Okafor

    Last name.

  • linkedinUrlstring

    https://www.linkedin.com/in/devonokafor

    LinkedIn profile URL.

  • matchConfidencenumber

    0.95

    Confidence from 0 to 1 that the returned person is the one asked for.

  • namestring

    Devon Okafor

    Full name.

  • personIdstring

    crd3_pr_501847

    Crustdata person id.

  • skillsstring[]

    Skills the person lists on LinkedIn.

  • summarystring

    Backend engineer focused on claims processing systems. Previously built payments infrastructure at Brightline.

    Profile summary.

  • twitterHandlestring

    devonbuilds

    X (Twitter) handle.

  • yearsOfExperienceinteger

    11

    Total years of work experience.

each currentPositiondata.currentPositions[]

Roles the person holds now.

  • companyDomainstring

    Employer website domain.

  • companyIdstring

    Employer Crustdata company id, usable as companyId in Company Identify - Crustdata v3.

  • companyLinkedinUrlstring

    Employer LinkedIn company page URL.

  • companyNamestring

    Employer name.

  • descriptionstring

    Role description.

  • employmentTypestring

    Employment type, e.g. Full-time.

  • endedUtcnumber

    When the role ended. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.

  • functionCategorystring

    Job function.

  • locationstring

    Where the role is based.

  • senioritystring

    Seniority level, e.g. CXO.

  • startedUtcnumber

    When the role started. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.

  • titlestring

    Job title.

each educationdata.education[]

Schools attended.

  • degreestring

    Degree.

  • descriptionstring

    Notes on the course of study.

  • endYearinteger

    Year finished.

  • fieldOfStudystring

    Field of study.

  • schoolstring

    School name.

  • startYearinteger

    Year started.

each githubProfiledata.githubProfiles[]

GitHub accounts matched to the person, each with its own match confidence.

  • biostring

    Profile bio.

  • companystring

    Company as written on the profile.

  • confidenceScorenumber

    Confidence from 0 to 1 that this account belongs to the person.

  • followersinteger

    Follower count.

  • followinginteger

    Accounts followed.

  • locationstring

    Location as written on the profile.

  • namestring

    Display name.

  • profileUrlstring

    GitHub profile URL.

  • publicRepoCountinteger

    Public repository count.

locationdata.location

Where the person is based.

  • citystring

    Denver

    City.

  • continentstring

    North America

    Continent.

  • countrystring

    United States

    Country.

  • labelstring

    Denver, Colorado, United States

    Location as written on the profile.

  • statestring

    Colorado

    State or region.

each pastPositiondata.pastPositions[]

Roles the person held before.

  • companyDomainstring

    Employer website domain.

  • companyIdstring

    Employer Crustdata company id, usable as companyId in Company Identify - Crustdata v3.

  • companyLinkedinUrlstring

    Employer LinkedIn company page URL.

  • companyNamestring

    Employer name.

  • descriptionstring

    Role description.

  • employmentTypestring

    Employment type, e.g. Full-time.

  • endedUtcnumber

    When the role ended. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.

  • functionCategorystring

    Job function.

  • locationstring

    Where the role is based.

  • senioritystring

    Seniority level, e.g. CXO.

  • startedUtcnumber

    When the role started. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.

  • titlestring

    Job title.

top level
  • foundboolean

    true

    False when no person matched the LinkedIn URL or email.

  • reason"not_found"

    Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.

You get back. Named, typed fields in the same shape whichever source answers.

FAQ

About the Person Enrichment Crustdata v3 API

The AnyAPI Person Enrichment Crustdata v3 API returns Person Enrichment crustdata v3 data as normalized JSON from one POST call to /v1/run/person_enrichment.crustdata_v3. Enrich one person from a LinkedIn profile URL or a business email: profile, headline, location, skills, current and past roles with the employer's domain, education, social handles, and GitHub profiles. Contact details are sold separately by Contact Enrichment - Crustdata v3. AnyAPI returns one normalized schema whichever source serves it. It costs from $96 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of Person Enrichment crustdata v3 calls through AnyAPI succeeded, with a median response time of 1.7 seconds across 9 measured calls.

It costs from $96 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet and each call draws it down. Some failed wallet-funded requests incur processing charges that we pass through at cost, with no markup; the error response shows the amount charged.

Enrich one person from a LinkedIn profile URL or a business email: profile, headline, location, skills, current and past roles with the employer's domain, education, social handles, and GitHub profiles. Contact details are sold separately by Contact Enrichment - Crustdata v3. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 100.0% of Person Enrichment crustdata v3 calls through AnyAPI succeeded, with a median response time of 1.7 seconds across 9 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

Yes. A new AnyAPI account starts with $0.10 of free balance and no card required, which covers 1 Person Enrichment Crustdata v3 calls at $0.096 each.

Send a POST request to https://api.getanyapi.com/v1/run/person_enrichment.crustdata_v3 with your AnyAPI key in an "Authorization: Bearer" header and the input as a JSON body. The same key and the same wallet work on every AnyAPI endpoint.

No. You add US dollars to one prepaid AnyAPI balance and each request draws it down. There is no monthly plan and no minimum, and the same balance pays for every AnyAPI endpoint.

Yes. Install @getanyapi/sdk from npm for TypeScript or getanyapi from pip for Python. Both call every AnyAPI endpoint with the same key, and any HTTP client works too.

Yes. An agent can connect to the AnyAPI MCP server at https://api.getanyapi.com/mcp, or create its own free-trial key with one unauthenticated POST to https://api.getanyapi.com/agent/signup and call this endpoint over HTTP.