> ## Documentation Index
> Fetch the complete documentation index at: https://retention.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Enrichment APIs

> The full set of identity-resolution and enrichment endpoints.

These endpoints turn an identifier - an email or  HEM (hashed email), a LinkedIn slug - and turn them into enriched profiles and attributes to make them more actionable and valuable.

For every identifier you put in; get a rich set of attributes back

## Core Identity — start with Identity

The three **Identity** endpoints are Core Identity: one input, three shapes of person data behind it. Each takes the same input — an MD5 (or plaintext email) — and differs only by **what slice of data it returns**.

> [card] [Universal](https://retention.mintlify.site/api-reference/identity/universal.md)
>
> `POST /api/v1/identity/person` — everything we have, in one call.

> [card] [Personal Identity](https://retention.mintlify.site/api-reference/identity/personal-identity-b2c.md)
>
> `POST /api/v1/identity/consumer` — consumer attributes, location, recency.

> [card] [Professional Identity](https://retention.mintlify.site/api-reference/identity/professional-identity-b2b.md)
>
> `POST /api/v1/identity/business` — firmographic and professional context, plus MAIDs.

> [!NOTE]
>
> The Identity endpoints are **not** one API orchestrating calls to the others. Each reads the same underlying tables the standalone lookups read — it reproduces those fields, it doesn't proxy their calls. The route you call decides what comes back; the hash you send never changes.

## Authentication

Every endpoint requires an account API key, sent in a request header. Any of these are accepted:

```bash theme={null}
Api-Key: YOUR_API_KEY
# or
X-Api-Key: YOUR_API_KEY
# or
Authorization: Bearer YOUR_API_KEY
```

A missing or malformed key returns `401`. A key whose plan doesn't include the service returns `403`. Check your balance any time with [Credits](https://retention.mintlify.site/api-reference/other/credits.md).

## Shared behavior

* **Input:** Most endpoints take a HEM (`md5`) — a 32-character hashed email — or a plaintext `email`, which is normalized and hashed for you. IP and LinkedIn endpoints take an `ip_address` or `linkedin_slug`/`linkedin_url` instead.
* **Hit:** `200` with the data, wrapped in `result` (single) or `results`.
* **Miss:** `404` (HEM/identity endpoints) or `200` with an empty payload (LinkedIn/IP endpoints), and zero credits charged.
* **Batch:** Identity endpoints and `email_to_activity` accept arrays (max 1,000) and return `match_count`, `credits_charged`, and `credits_exhausted` alongside `results`. Order is preserved after de-dup; misses are omitted.
* **Anonymization:** When you look up by HEM, email fields come back MD5-hashed by default. Pass `skip_anonymize=true` (where supported) for plaintext.
* **Validation:** Every `4xx` is a no-op — no lookups, no charge.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.