Enrich: turn an email or a name into a full profile

One record in, one record out. The three modes, what each costs, and every error you can hit.

Search answers 'who matches this shape'. Enrichment answers a different question: 'I already have this one record, tell me everything about it'. That is the enrich endpoint. It takes one address, one person, or one company at a time, and it is the call to wire into a form handler, a CRM sync, or an agent that just received a name.

POST https://app.argorant.com/api/v1/enrich

Authenticate with an API key from Home as a bearer token, or with your signed-in session if you are calling it from the app.

Mode 1: an email address into a person

Send an address on its own and you get the person behind it: name, job title, seniority, department, company, company domain, location, industry, and company size.

curl -X POST https://app.argorant.com/api/v1/enrich \
  -H "Authorization: Bearer $ARGORANT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "alex@evenito.com"}'
{
  "found": true,
  "type": "person",
  "person_id": "p_8d4ba3d46cc885007c38e437",
  "person": {
    "full_name": "Alex Schneider",
    "title": "VP of Sales",
    "seniority": "VP",
    "departments": ["Sales"],
    "email": "alex@evenito.com",
    "current_company_name": "Evenito",
    "current_company_domain": "evenito.com",
    "country": "Switzerland"
  },
  "charged": 1,
  "already_revealed": false,
  "deliverable": true,
  "verification": "valid"
}

Mode 2: a name plus a company domain into a verified email

You know who you want and where they work, but not how to reach them. Send both and Argorant finds the record and reveals the work email, verified at that moment.

curl -X POST https://app.argorant.com/api/v1/enrich \
  -H "Authorization: Bearer $ARGORANT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Alex Schneider", "domain": "evenito.com"}'

A name without a domain is not enough, because names are not unique. Pair them, or use mode 1.

Mode 3: a domain into a company profile

Send a domain on its own and you get the company: name, domain, industry, and location. No contact details, and no credits.

curl -X POST https://app.argorant.com/api/v1/enrich \
  -H "Authorization: Bearer $ARGORANT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "evenito.com"}'
{
  "found": true,
  "type": "company",
  "charged": 0,
  "company": {
    "company": "Evenito",
    "company_domain": "evenito.com",
    "industry": "Software Development",
    "country": "Switzerland"
  }
}

What it costs

Every response carries a charged field, so the bill is never a guess. The rules are the reveal rules, unchanged:

  • A person match costs 1 credit. Modes 1 and 2 are billed exactly like revealing that contact anywhere else in Argorant.
  • You pay once per contact, forever. Enriching the same person again returns the same profile with charged: 0 and already_revealed: true, whether the second call comes from the API, the CLI, an agent, or the app.
  • A miss is free. No match returns {"found": false, "type": "person", "charged": 0} and costs nothing.
  • An address that is not deliverable is free. The email is verified live at the moment of enrichment. If it does not pass, the address is withheld and nothing is charged.
  • Company enrichment is free. Mode 3 uses zero contact credits, like counts and previews.

The not-deliverable case answers with the reason, so an agent can log it instead of retrying:

This email didn't pass live verification, so it wasn't charged — you only pay for deliverable contacts.

That response still has found: true, but deliverable: false and charged: 0, and the email fields are empty. Branch on deliverable, not on found, when what you need is a sendable address.

When it does not work

Every failure is a plain status code with a message you can act on.

400: nothing usable was sent

Pass {email}, {name+domain}, or {domain} for a company.

The body was empty, or it carried a name with no domain. Send one of the three shapes.

401: the key was not accepted

Not authenticated

The key is missing, mistyped, or revoked. Create a fresh one on Home and remember that a key is shown once, at creation.

402: not enough credits

Revealing an email costs 1 credit, and you don't have enough. Add credits or upgrade.

Only person modes can hit this. Top up on Home or check Profile then Billing. Company enrichment keeps working with an empty balance.

403: the key is not allowed to reveal contacts

This Argorant connector is not allowed to use that action

Person enrichment needs the contact-reveal scope, because it hands over contact data. Company enrichment does not. A deliberately read-only key will do mode 3 and refuse modes 1 and 2, which is the design working.

429: too fast

You're moving faster than expected. Limits reset automatically — try again shortly.

Space the calls out. Enrichment is a per-record call, so a large list is better served by an export than by a loop.

From the CLI and from an agent

The same three modes exist in the CLI, and a miss exits with code 1, so a script can branch without reading the payload:

npx argorant enrich --email alex@evenito.com --json
npx argorant enrich --name "Alex Schneider" --domain evenito.com
npx argorant enrich --domain evenito.com

Agents connected over MCP get the same thing as the argorant_enrich tool, with the billing rules written into the tool description, so the agent knows a company lookup is free before it asks.

Screenshot: The Home page API key panel, where the bearer key for enrichment is created

One last framing that saves credits: enrichment is for records you already have. If you are trying to find people who match a shape, count and preview first, then export. Looping enrichment over a list you could have exported costs the same per contact but takes far longer.

Still stuck? support@argorant.com