People — Enrich

Enrich a person

POST/people/enrich
from $0.02/calljson responserest · mcp
01// about this endpoint

Enrich 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.

02// code samples

Call it over REST

Authenticate with a bearer token against https://api.superagnt.com. Swap the placeholders for your key and parameter values.

curlbash
curl -s -X POST "https://api.superagnt.com/people/enrich" \
  -H "Authorization: Bearer <YOUR_AGNTDATA_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{ "identifiers": {} }'
03// give it to your agent

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.

agent prompttext
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
mcp tool definitionjson
{
  "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"
    ]
  }
}
04// parameters
NameInTypeRequiredDescription
identifiersbodyobjectrequiredUnique 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.
fieldsbodyarrayoptionalFields 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_centsbodynumberoptional
05// responses

Person enrichment result.

200json
{
  "type": "object",
  "required": [
    "success",
    "data"
  ],
  "properties": {
    "success": {
      "type": "boolean",
      "enum": [
        true
      ]
    },
    "data": {
      "$ref": "#/components/schemas/PeopleEnrichResponse"
    },
    "meta": {
      "$ref": "#/components/schemas/AgntMeta"
    }
  }
}
06// pricing
from $0.02per successful request

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.

08// more from Lead APIs

start calling

Point your client at https://mcp.superagnt.com/mcp and your agent has this endpoint, plus every other source on one balance.

Start free→
person enrichment APIpeople data APIprofile enrichmentB2B contact enrichmentlead enrichment APIemail finder APIemail verifier API