canonical: https://jentic.com/apis/fullcontact.com/fullcontact

# FullContact Enrich API

Jentic publishes the only available OpenAPI specification for FullContact Enrich API, keeping it validated and agent-ready. Resolve fragmented person and company identifiers - emails, phones, names, addresses, social profiles, or MAIDs - into unified contact records with demographics, employment history, and social data. The Identity Graph maps and resolves disparate customer touchpoints to a single PersonID, enabling cross-channel identity resolution across 9 endpoints.

## For AI agents

Enrich person records from email, phone, or social identifiers and resolve fragmented customer identities into unified profiles with demographics, employment, and social data.

## Scope

Does not handle email discovery, logo retrieval, or marketing automation - use for contact and company enrichment and identity resolution only.

## Capabilities

- Enrich person profiles from email, phone, name, social handle, or mobile ad ID inputs
- Look up company firmographics including employee count, industry, and founding year from a domain
- Resolve fragmented customer identifiers into a unified PersonID across the Identity Graph
- Map and merge customer records from multiple touchpoints into a single identity
- Tag customer records with custom key-value labels for segmentation and tracking
- Retrieve all associated identifiers (emails, phones, social profiles) for a resolved identity

## Use cases

### AI Agent Contact Enrichment via Jentic

AI agents processing inbound leads can enrich sparse contact data by querying FullContact through Jentic. The agent passes an email address and receives a full profile including name, job title, company, social links, and demographics - enabling instant lead scoring and routing without manual research.

Example prompt: Search Jentic for 'enrich person by email', load the FullContact person.enrich schema, and submit a POST with email 'jane@example.com' to retrieve her full profile

### Cross-Channel Identity Resolution

Marketing platforms receiving customer interactions across email, phone, web, and mobile need to unify those touchpoints into a single customer view. FullContact's identity.mapResolve endpoint combines mapping and resolution in one call, returning a stable PersonID with all associated identifiers so teams can deduplicate records and personalise outreach.

Example prompt: POST to /identity.mapResolve with recordId 'crm-12345', email 'jane@example.com', and phone '+14155551234' to get the unified PersonID and all linked identifiers

### Company Enrichment for Account-Based Marketing

Sales teams targeting specific accounts enrich company records by domain to get firmographic data including industry, employee count, founding year, location, and social profiles. This powers account scoring and helps reps tailor outreach to the prospect's company context.

Example prompt: POST to /company.enrich with domain 'hubspot.com' and retrieve the company name, employee count, industry, and LinkedIn profile

### Customer Record Tagging for Segmentation

CRM and CDP platforms tag resolved customer records with custom labels for audience segmentation. FullContact's tags endpoints let you attach, retrieve, and remove key-value tags on any customer recordId, enabling dynamic segment membership without modifying the core identity data.

Example prompt: POST to /tags.create with recordId 'crm-12345' and tags [{"key": "segment", "value": "enterprise"}, {"key": "lifecycle", "value": "qualified"}]

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /person.enrich | Enrich person data from multi-field identifiers |
| POST | /company.enrich | Enrich company data by domain |
| POST | /identity.map | Map customer identifiers to the Identity Graph |
| POST | /identity.resolve | Resolve identifiers to a PersonID with all linked data |
| POST | /identity.mapResolve | Map and resolve in a single call |
| POST | /identity.delete | Delete a mapped customer record from the graph |
| POST | /tags.create | Create key-value tags on a customer record |

## Key resources

- **Person Enrichment** — Enrich person profiles using email, phone, name, social handles, or mobile ad IDs
- **Company Enrichment** — Look up company data including name, industry, employee count, and location by domain
- **Identity Resolution** — Map, resolve, and delete customer identity records in the Identity Graph
- **Tags** — Attach, retrieve, and remove custom key-value labels on customer records

## Why Jentic

- **Setup:** Wiring FullContact by hand means passing your API key as a bearer token in the Authorization header on every call to api.fullcontact.com and posting the right JSON body to each enrich and identity route yourself. Through Jentic you install once, import FullContact from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** FullContact takes its target in the request body on routes like /person.enrich and /identity.map, so you limit the agent to the operations it needs, such as enriching a person or mapping an identity. You choose which operations it may call, so /identity.delete is not included unless you add it.
- **Credential handling:** Your FullContact token is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'enrich a person from their email' or 'resolve an identity', and Jentic returns the matching POST /person.enrich or POST /identity.resolve operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Clearbit Logo API** — Retrieves company logos by domain to visually enrich contact cards alongside FullContact profile data
- **People Data Labs API** — Large-scale person and company enrichment with SQL-like search queries across a 3+ billion record dataset
- **Hunter API** — Finds and verifies professional email addresses for a domain, which can feed into FullContact enrichment

## FAQ

### Why is there no official OpenAPI spec for FullContact Enrich API?

FullContact does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call FullContact Enrich API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the FullContact Enrich API use?

The API uses a Bearer token in the Authorization header. Your FullContact API key is passed as 'Bearer {api_key}' on every request. Through Jentic, this token is stored encrypted in the credential vault and injected automatically - agents never see the raw key.

### Can I enrich a person from just a phone number with the FullContact API?

Yes. The /person.enrich endpoint accepts a phone or phones field as an identifier. International numbers require country codes. You can combine phone with other identifiers (email, name, social profiles) for higher match rates - up to 25 emails and 25 phones per request.

### What is the difference between identity.map and identity.resolve?

The /identity.map endpoint adds identifiers to the Identity Graph under a client-provided recordId. The /identity.resolve endpoint looks up a record and returns all associated identifiers and PersonIDs. Use /identity.mapResolve to do both in a single call.

### How do I enrich a contact through Jentic?

Install the SDK with pip install jentic, then search for 'enrich person by email'. Jentic returns the FullContact /person.enrich operation schema. POST with your identifier (email, phone, or social profile) and Jentic handles auth and returns the enriched profile.

### What data does the person enrichment response include?

The response returns fullName, ageRange, gender, location, job title, organization, Twitter handle, LinkedIn URL, bio, and avatar. With Insights Bundles enabled, you also get detailed demographics, full employment history, education, interests, and associated URLs.

### Can I limit what my agent is allowed to do with the FullContact API?

Yes. Because Jentic One is self-hosted, you set the rules that decide which FullContact operations and credentials your agent may use. FullContact passes its target in the request body on routes like /person.enrich and /identity.map, so you can allow just the operations the agent needs, such as enriching a person or mapping an identity, and leave out /identity.delete unless you explicitly add it. Your bearer token is held by your own instance and injected only when a permitted operation runs.
