Skip to content
TruePointTruePointData

API reference

Enrich a person

Resolve a partial identifier — a work email, a profile URL, or a name plus a company — to a full person record with per-field provenance.

Planned — not callable yet
POST/api/v1/public/person/enrich

Three credits on a successful match; two more if a verified business email is requested. A no-match costs nothing. A person who has opted out is not returned by any endpoint. The call answers as a no-match and is not billed. There is no flag to include them. NOT CALLABLE YET, and the blocker is compliance rather than effort: a public read of the person graph has no suppression-list coverage today, so serving people before that is reconciled would risk serving someone who has opted out. The company endpoints ship first because organization facts carry no such obligation.

Parameters

NameTypeDescription
emailstringOptionalA work email address. The strongest identifier — prefer it when you have one.
profile_urlstringOptionalA public professional profile URL used as an addressing key.
namestringOptionalFull name. Must be sent together with `company_domain` — a name alone is not resolvable.
company_domainstringOptionalThe employer's primary domain, used to disambiguate a name.
verify_emailbooleanOptionalRequest a deliverability check on the returned work address. Adds two credits, and only when an address is actually returned.

Returns

FieldTypeDescription
idstringStable TruePoint person id. Safe to store and re-query.
full_namestringCurrent full name.
titlestringCurrent job title. Carries provenance.
companyobjectThe current employer, as a company summary object.
work_emailstring | nullVerified business email. Null when none met the confidence bar. Carries provenance.
employment_historyarrayPrior roles with company, title and date range where known.
field_provenanceobjectPer-field source class, last-seen timestamp and corroboration count. Read this before acting on a field. Carries provenance.

Example

bash
curl -X POST https://api.truepoint.in/api/v1/public/person/enrich \
  -H "Authorization: Bearer $TRUEPOINT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Priya Nair","company_domain":"acme.com","verify_email":true}'
json
{
  "id": "prs_7f3a91c2",
  "full_name": "Priya Nair",
  "title": "VP Revenue Operations",
  "company": { "id": "cmp_2b81", "name": "Acme", "domain": "acme.com" },
  "work_email": "priya.nair@acme.com",
  "employment_history": [
    { "company": "Acme", "title": "VP Revenue Operations", "from": "2024-03" }
  ],
  "field_provenance": {
    "title":      { "sources": 3, "class": "corroborated", "last_seen": "2026-08-14" },
    "work_email": { "sources": 2, "class": "verified",     "last_seen": "2026-08-19" }
  },
  "credits_charged": 5
}

Errors

StatusTypeMeaning
422validation_errorThe request failed validation — a missing identifier, or a value we could not parse. 422 rather than 400: the request was well-formed, its contents were not.
401invalid_tokenMissing, malformed, unknown or revoked API key. All four answer identically on purpose — the endpoint must not confirm which keys exist.
403insufficient_scopeThe key is valid but was not minted with the scope this endpoint requires.
402insufficient_creditsThe balance cannot cover this call. Nothing was charged and nothing was returned. Carries `balance` and `required`.
429rate_limitedToo many requests for this key. Carries `retryAfterSeconds`. Retries are safe and are not billed.
500internalSomething failed on our side. Nothing was charged. Retry with backoff.