Enrich a person
/people/enrichEnrich a person with normalized profile fields (email, job title, company, LinkedIn URL, location, …). Pass any combination of identifiers and an optional `fields[]` selector. superagnt runs a field-aware waterfall cheapest first, skips any source that would push spend past your `max_cost_cents` budget, and stops as soon as every requested field is filled.
Call it over REST
Authenticate with a bearer token against https://api.superagnt.com. Swap the placeholders for your key and parameter values.
curl -s -X POST "https://api.superagnt.com/people/enrich" \
-H "Authorization: Bearer <YOUR_AGNTDATA_API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "identifiers": {} }'Copy-paste prompt
Paste this into a coding agent. It connects the superagnt MCP server, finds the tool data_agnt_people_enrich, and runs a first call — with the REST fallback if MCP is unavailable.
You are wiring up the superagnt "Lead APIs" API to use this endpoint: Enrich a person.
1. CONNECT over MCP (preferred). No token to paste either way.
On Claude (claude.ai, the desktop app, or Claude Code signed in with a Claude
account), the server is a connector: give the user this link, they click Add
and approve:
https://claude.ai/customize/connectors/yours?modal=add-custom-connector&connectorName=superagnt&connectorUrl=https%3A%2F%2Fmcp.superagnt.com%2Fmcp&open_in_browser=1
Any other MCP client (or Claude Code signed in with an API key): add the server
and let the client run the browser sign-in:
claude mcp add --scope user --transport http superagnt https://mcp.superagnt.com/mcp
claude mcp login superagnt
MCP endpoint: https://mcp.superagnt.com/mcp
After connecting, the tool you want is named exactly:
data_agnt_people_enrich
Call agnt_tools_search or agnt_tools_list_enabled to confirm it is available.
2. REST fallback (if you are not using MCP):
POST https://api.superagnt.com/people/enrich
Header: Authorization: Bearer <YOUR_AGNTDATA_API_KEY>
Required parameters:
- identifiers (object, required) — Unique handles used to resolve a person upstream. Provide AT LEAST ONE of `email` or `linkedin_url`. Name + company are NOT accepted here — for that flow, call `/people/email-finder` first to obtain an email. A lookup that matches nothing is not an error: it returns the identifiers you sent with every other field null with `meta.empty: true` and is not charged. Retrying the same input will not find it.
Optional parameters:
- fields (array, optional) — Fields to fill. The waterfall stops calling providers once all of them are filled. Omit for the core set: email, full_name, job_title, company_name, company_domain, linkedin_url, location. Every other field (work_email, verified_email, twitter_url, first_name, last_name, seniority, department) is looked up only when named here. verified_email is filled only for a valid email: a risky or invalid one ends the search with it unfilled. personal_email is not available here, and a mobile number comes from /people/find-mobile.
- max_cost_cents (number, optional)
3. COST & KEY. This endpoint is metered — pricing varies by request, from $0.02 per call. Only successful calls are charged.
Get a superagnt API key at https://app.superagnt.com.
4. TEST. Connect the server (or set the key), discover the tool
(data_agnt_people_enrich), run one minimal call with just the required parameters,
and report back the shape of the JSON response (top-level fields).
Reference (machine-readable variant): https://www.superagnt.com/docs/apis/lead/agnt/endpoints/people_enrich.md{
"name": "people_enrich",
"description": "Enrich a person with normalized fields (email, mobile, job title, company, LinkedIn URL, location, …). REQUIRES a `identifiers` object containing ONLY `email` and/or `linkedin_url` — these are the unique handles we use to resolve the person upstream. `first_name`, `last_name`, `domain`, `company`, etc. are NOT accepted here and will return a VALIDATION_ERROR. If you only have a name + company, call `/people/email-finder` first to obtain an email, then pass that email here. Optional `fields[]` narrows the waterfall to only fetch the fields you care about. agntdata runs a field-aware waterfall: it stops once all requested fields are filled or your `max_cost_cents` budget is exhausted.",
"parameters": {
"type": "object",
"properties": {
"identifiers": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "Work or personal email address."
},
"linkedin_url": {
"type": "string",
"format": "uri",
"description": "Full LinkedIn profile URL (e.g. https://www.linkedin.com/in/satyanadella/)."
}
},
"additionalProperties": false,
"description": "Unique handles used to resolve a person upstream. Provide AT LEAST ONE of `email` or `linkedin_url`. Name + company are NOT accepted here — for that flow, call `/people/email-finder` first to obtain an email. A lookup that matches nothing is not an error: it returns the identifiers you sent with every other field null with `meta.empty: true` and is not charged. Retrying the same input will not find it."
},
"fields": {
"type": "array",
"items": {
"type": "string",
"enum": [
"email",
"work_email",
"personal_email",
"verified_email",
"mobile",
"linkedin_url",
"twitter_url",
"full_name",
"first_name",
"last_name",
"job_title",
"seniority",
"department",
"company_name",
"company_domain",
"location"
]
},
"description": "Fields to fill. The waterfall stops calling providers once all of them are filled. Omit for the core set: email, full_name, job_title, company_name, company_domain, linkedin_url, location. Every other field (work_email, verified_email, twitter_url, first_name, last_name, seniority, department) is looked up only when named here. verified_email is filled only for a valid email: a risky or invalid one ends the search with it unfilled. personal_email is not available here, and a mobile number comes from /people/find-mobile."
},
"max_cost_cents": {
"type": "number",
"minimum": 0
}
},
"required": [
"identifiers"
]
}
}| Name | In | Type | Required | Description |
|---|---|---|---|---|
identifiers | body | object | required | Unique handles used to resolve a person upstream. Provide AT LEAST ONE of `email` or `linkedin_url`. Name + company are NOT accepted here — for that flow, call `/people/email-finder` first to obtain an email. A lookup that matches nothing is not an error: it returns the identifiers you sent with every other field null with `meta.empty: true` and is not charged. Retrying the same input will not find it. |
fields | body | array | optional | Fields to fill. The waterfall stops calling providers once all of them are filled. Omit for the core set: email, full_name, job_title, company_name, company_domain, linkedin_url, location. Every other field (work_email, verified_email, twitter_url, first_name, last_name, seniority, department) is looked up only when named here. verified_email is filled only for a valid email: a risky or invalid one ends the search with it unfilled. personal_email is not available here, and a mobile number comes from /people/find-mobile. |
max_cost_cents | body | number | optional |
Person enrichment result.
{
"type": "object",
"required": [
"success",
"data"
],
"properties": {
"success": {
"type": "boolean",
"enum": [
true
]
},
"data": {
"$ref": "#/components/schemas/PeopleEnrichResponse"
},
"meta": {
"$ref": "#/components/schemas/AgntMeta"
}
}
}Metered endpoint — the exact cost depends on the request. Credits are deducted per successful call; failed requests (4xx/5xx) are not charged.
Get started at app.superagnt.com.
start calling
Point your client at https://mcp.superagnt.com/mcp and your agent has this endpoint, plus every other source on one balance.