docs · everything you need to ship

Documentation.

60 seconds to your first call. Then everything you need to ship a real agent on top.

Quickstart

Three steps. No demo call. No credit card.

1. Get an API key

terminal
curl -X POST https://api.agentenrich.com/signup \
  -d '{"email":"[email protected]"}'

# Check inbox, click verify, save the ae_live_... key.

2. Make your first call

curl
curl -X POST https://api.agentenrich.com/v1/enrich \
  -H "Authorization: Bearer ae_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "linkedin",
    "linkedinUrl": "https://www.linkedin.com/in/satyanadella"
  }'

3. Or install the MCP server

mcp
export AGENTENRICH_API_KEY=ae_live_...
npx @agentenrich/mcp

# Your agent gets 12 tools instantly. No adapter code.

Pick the right endpoint

A decision guide. Tell us what you're trying to do.

"I have a LinkedIn URL. I want everything."

Use /v1/prospect-package. One call. Email, phone, peers, hooks. 12 cr flat.

"I just want the verified email."

Use /v1/find-email. SMTP-verified with MX check. 2 cr.

"I have a company. I want the head of growth."

Use /v1/find-decision-maker. Top 3 ranked. 4 cr per resolved.

"I want the whole buying committee."

Use /v1/buying-committee. Pick deal type. 3 cr per resolved.

"Brief me on this account."

Use /v1/bundles/sales-deck. Full account research. 25 cr flat.

"Show me who just changed jobs."

Use /v1/congrats-trigger. With the LinkedIn post they wrote. 2 cr per resolved.

"Did any of my customers change jobs?"

Use /v1/champion-just-moved. Cross-references your list. 2 cr per match.

"Companies like my best customers."

Use /v1/lookalike-accounts. Up to 5 seed domains. 0.6 cr per result.

"Funded AND hiring AND in my ICP."

Use /v1/funded-and-hiring. Triple trigger. 10 cr per resolved.

"Re-run my saved ICP."

Use /v1/saved-icps/:id/run. 1 base + 0.5 per result.

See all 35 endpoints


Why this vs the alternatives

Common questions builders ask us. Here are the honest answers.

vs ZoomInfo / Apollo / Outreach

They sell seats to humans. We sell API calls to agents. They start at $20k/yr with a 12-month contract and a demo. We start at $0 with a credit card. If you need a CRM-attached sales workbench, they win. If you're shipping an agent, we win.

vs Clay (no-code workflow tool)

Clay is great for one-offs. Build a workflow, run it once, get a CSV. When you want to run it every day, every signup, every signal, you need an API. We're the API. More here.

vs Hunter / Findymail / RocketReach

They do one thing: find emails. We do that too, with the same SMTP validation. Plus reverse lookup, mobile phones, buying committees, signals, and bundles. One key, one bill.

vs Champify / UserGems (champion tracking)

They're priced for enterprise ($30k-50k/yr) with a managed UI. We give you the same data at $99/mo via /v1/champion-just-moved. You assemble the alerts yourself. Their UI is nicer. Ours is way cheaper and lives in your agent.

vs building it yourself with Claude Code

You can. You shouldn't. Three weeks on caching, identity resolution, signal correlation, rate limits, GDPR unmasking, vendor contracts. Then you own the maintenance forever. We did this work once for everyone.


Authentication

All /v1/* endpoints require a Bearer token:

http
Authorization: Bearer ae_live_xxxxxxxxxxxxxxxxxxxxxxxx

Get a key at /signup. Keys never expire unless you revoke them in /app/keys.

Idempotency

Agents retry. We dedupe.

Send Idempotency-Key: <uuid> as a header on any POST. If we've already processed that key in the last 24 hours for your account, we return the same response and don't charge again.

retry-safe
curl -X POST .../v1/enrich \
  -H "Authorization: Bearer ae_live_..." \
  -H "Idempotency-Key: 7f3c8e2a-..." \
  -d '{...}'

Response shape

Every endpoint returns this base envelope plus its specific payload.

response.json
{
  "found": true,
  "person": { ... },
  "confidence": 0.95,
  "sources": ["primary"],
  "cost": { "credits": 1, "balance_remaining": 4999 },
  "cached": "profile-db",
  "latency_ms": 180,
  "request_id": "abc123"
}

Response headers

HeaderWhat it means
X-AgentEnrich-Request-IdUnique ID for support tickets. Save it if something looks off.
X-AgentEnrich-Credits-RemainingYour wallet balance after the call. Same as cost.balance_remaining.
X-AgentEnrich-Cachehot, profile-db, or miss.

Errors

CodeMeaningWhat to do
400Invalid input. See details.Fix the request body.
401Missing or invalid API key.Check the Authorization header.
402Insufficient credits.Top up at /pricing.
403Endpoint not in your plan.Upgrade. Free tier is restricted.
404Person or company not found.You're not charged. Try a fallback identifier.
429Rate limit hit.Check Retry-After header.
5xxUpstream issue.Retry safe with Idempotency-Key.

Webhooks

For bulk jobs and watch list events.

Bulk endpoints accept webhook_url + webhook_secret. We POST a signed payload when the job completes. Verify the HMAC signature:

node
import crypto from "node:crypto";

const hmac = crypto.createHmac("sha256", secret)
  .update(rawBody).digest("hex");

if (hmac !== req.headers["x-agentenrich-signature"])
  throw new Error("invalid signature");

Rate limits

PlanPer minuteDaily cap
Free1050 credits/day
Starter60none (wallet-capped)
Growth120none
Scale240none
Enterprise1,000+none

SDKs and integrations

TypeScript / JavaScript

npm install @agentenrich/sdk

Typed bindings, idempotency baked in.

Python

pip install agentenrich

async + sync clients.

MCP server

npx @agentenrich/mcp

Claude Desktop, Cursor, Windsurf. Setup.

Frameworks

Vercel AI SDK · LangChain · CrewAI

All MIT. Steal them.

Endpoint reference

Every endpoint with a working curl + sample response. Base URL: https://api.agentenrich.com. All POST endpoints accept Content-Type: application/json. All endpoints return JSON. Replace ae_live_... with your real key from /app/keys.

Resolve · person + company lookup

POST /v1/enrich · 1 credit

Resolve a person from any identifier: LinkedIn URL, email, phone, or name+company.

request
curl -X POST https://api.agentenrich.com/v1/enrich \
  -H "Authorization: Bearer ae_live_..." \
  -H "Content-Type: application/json" \
  -d '{"kind":"linkedin","linkedinUrl":"https://www.linkedin.com/in/satyanadella"}'
200 OK
{
  "found": true,
  "person": {
    "fullName": "Satya Nadella",
    "title": "Chairman and CEO",
    "linkedinUrl": "https://www.linkedin.com/in/satyanadella",
    "email": "[email protected]",
    "company": { "name": "Microsoft", "domain": "microsoft.com" }
  },
  "confidence": 0.95,
  "cost": { "credits": 1, "balance_remaining": 64999 },
  "cached": "profile-db",
  "latency_ms": 180,
  "request_id": "req_abc123"
}

POST /v1/companies · 1 credit

Resolve a company from domain, LinkedIn URL, or name.

request
curl -X POST https://api.agentenrich.com/v1/companies \
  -H "Authorization: Bearer ae_live_..." \
  -H "Content-Type: application/json" \
  -d '{"domain":"vercel.com"}'
200 OK
{
  "found": true,
  "company": {
    "name": "Vercel", "domain": "vercel.com",
    "industry": "software development",
    "employeeCount": 650, "foundedYear": 2015,
    "hqCountry": "United States",
    "technologies": ["Next.js", "Edge Functions", "TypeScript"]
  },
  "cost": { "credits": 1, "balance_remaining": 64998 }
}

POST /v1/verify-email · 0.5 credit

Real-time SMTP verification with MX + catch-all + role-account detection.

request
curl -X POST https://api.agentenrich.com/v1/verify-email \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{"email":"[email protected]"}'
200 OK
{
  "email": "[email protected]",
  "valid": true, "mx_found": true,
  "smtp_check": "deliverable",
  "disposable": false, "role_account": false, "catch_all": false,
  "cost": { "credits": 0.5, "balance_remaining": 64997.5 }
}

Find · contact information

POST /v1/find-email · 2 credits

Verified business email from a LinkedIn URL or (firstName, lastName, companyDomain).

request
curl -X POST https://api.agentenrich.com/v1/find-email \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{"linkedinUrl":"https://www.linkedin.com/in/satyanadella"}'
200 OK
{
  "found": true,
  "email": "[email protected]",
  "email_verified": true, "mx_found": true,
  "provider": "microsoft", "free_provider": false, "generic": false,
  "cost": { "credits": 2, "balance_remaining": 64995.5 }
}

POST /v1/find-phone · 12 credits

Carrier-verified mobile phone from (domain + name). Premium endpoint.

request
curl -X POST https://api.agentenrich.com/v1/find-phone \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{"domain":"microsoft.com","firstName":"Satya","lastName":"Nadella"}'
200 OK
{
  "found": true,
  "phone": "+14254450068",
  "line_type": "mobile", "carrier": "Verizon",
  "cost": { "credits": 12, "balance_remaining": 64983.5 }
}

POST /v1/reverse-email · 1 credit

Reverse: email address → full person record.

request + response
# Request
curl -X POST https://api.agentenrich.com/v1/reverse-email \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{"email":"[email protected]"}'

# Response
{
  "found": true,
  "person": { "fullName": "Satya Nadella", "title": "Chairman and CEO", "company": { "name": "Microsoft" } },
  "confidence": 0.96,
  "cost": { "credits": 1, "balance_remaining": 64982.5 }
}

POST /v1/reverse-phone · 2 credits

Reverse: phone number → full person record + carrier metadata.

request + response
curl -X POST https://api.agentenrich.com/v1/reverse-phone \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{"phone":"+14254450068"}'

# 200 OK
{
  "found": true, "input_phone": "+14254450068",
  "person": { "fullName": "Satya Nadella", "company": { "name": "Microsoft" } },
  "line_type": "mobile", "carrier": "Verizon",
  "cost": { "credits": 2, "balance_remaining": 64980.5 }
}

Search · ICP filters across 500M people, 70M companies

POST /v1/search/people · 1 + 1/result

Filter by title, seniority, department, skills, industry, location, employee size, keywords. Up to 25,000 results per call.

request + response
curl -X POST https://api.agentenrich.com/v1/search/people \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{
    "titles": ["VP of Marketing"],
    "seniority": ["vp"], "departments": ["marketing"],
    "industries": ["b2b_software"],
    "employeeMin": 50, "employeeMax": 500,
    "locations": ["United States"],
    "limit": 3
  }'

# 200 OK
{
  "total": 12847,
  "page": 1,
  "results": [
    { "fullName": "Sarah Chen", "title": "VP of Marketing", "company": { "name": "Linear" }, "linkedinUrl": "linkedin.com/in/example-sc" },
    { "fullName": "Marcus Lee", "title": "VP Marketing", "company": { "name": "Vercel" } },
    { "fullName": "Priya Shah", "title": "VP of Marketing", "company": { "name": "Cluely" } }
  ],
  "cost": { "credits": 4, "balance_remaining": 64976.5 }
}

POST /v1/search/companies · 1 + 0.5/result

Filter by industry, technology stack, keywords, location, employee size.

request + response
curl -X POST https://api.agentenrich.com/v1/search/companies \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "technologies": ["Snowflake"], "employeeMin": 200, "limit": 3 }'

# 200 OK
{
  "total": 3408,
  "results": [
    { "name": "Notion", "domain": "notion.so", "employeeCount": 650, "industry": "software" },
    { "name": "Linear", "domain": "linear.app", "employeeCount": 180 },
    { "name": "Cluely", "domain": "cluely.com", "employeeCount": 75 }
  ],
  "cost": { "credits": 2.5, "balance_remaining": 64974 }
}

Signals · real-time triggers (refreshed every 60s)

GET /v1/signals?kind={funding|acquisition|hiring|job-change} · included on Pro+

Live signal feed. Filter by kind, industry, country, days_window.

request + response
curl "https://api.agentenrich.com/v1/signals?kind=funding&limit=2" \
  -H "Authorization: Bearer ae_live_..."

# 200 OK
{
  "success": true,
  "data": [
    {
      "signalId": "f_2026_05_19_01",
      "signalType": "funding_round",
      "companyName": "Cluely", "companyWebsite": "cluely.com",
      "round": "Series A", "amount_usd": 15000000,
      "lead_investor": "Andreessen Horowitz",
      "occurredAt": "2026-05-19T13:42:00Z",
      "sourceUrl": "https://techcrunch.com/..."
    }
  ]
}

Combo · one call, multi-step internally

POST /v1/find-decision-maker · 4 cr / resolved

Top 3 candidates matching a role at a company. Internally maps freeform roles to seniority + department + title filters.

request + response
curl -X POST https://api.agentenrich.com/v1/find-decision-maker \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "company_domain": "vercel.com", "role": "VP of Engineering" }'

# 200 OK
{
  "results": [
    { "fullName": "Jane Marquez", "title": "VP of Engineering", "linkedinUrl": "linkedin.com/in/example-jm", "seniority_score": 0.94 },
    { "fullName": "Marcus Chen", "title": "Director of Engineering", "seniority_score": 0.82 },
    { "fullName": "Sam Patel", "title": "Head of Platform Engineering", "seniority_score": 0.78 }
  ],
  "cost": { "credits": 12, "balance_remaining": 64962 }
}

POST /v1/buying-committee · 3 cr / resolved

Full org map for a deal type (security, data_infra, sales_ops, exec, marketing, engineering). Returns 5-15 people across decision/influencer/user roles.

request + response
curl -X POST https://api.agentenrich.com/v1/buying-committee \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "company_domain": "stripe.com", "deal_type": "security" }'

# 200 OK
{
  "company_domain": "stripe.com", "deal_type": "security",
  "total_people": 4,
  "committee": {
    "CISO": [{ "fullName": "Alex Rivera", "title": "Chief Information Security Officer" }],
    "VP Security": [{ "fullName": "Dana Patel" }],
    "Security Engineer": [{ "fullName": "Sam Okoye" }],
    "Head of InfoSec": [{ "fullName": "Jamie Lee" }]
  },
  "cost": { "credits": 12, "balance_remaining": 64950 }
}

POST /v1/prospect-package · 12 credits

Everything about a person in one call: verified email + mobile phone + 3 peers at the company + 4 personalization hooks.

request + response
curl -X POST https://api.agentenrich.com/v1/prospect-package \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{"linkedinUrl":"https://www.linkedin.com/in/satyanadella"}'

# 200 OK
{
  "person": { "fullName": "Satya Nadella", "email": "[email protected]", "phone": "+14254450068" },
  "peers_at_company": [
    { "fullName": "Amy Hood", "title": "Executive VP and CFO" },
    { "fullName": "Brad Smith", "title": "Vice Chair and President" },
    { "fullName": "Kevin Scott", "title": "EVP and CTO" }
  ],
  "personalization_hooks": [
    "Headline: Chairman and CEO at Microsoft",
    "LinkedIn Influencer (11.8M followers)",
    "Recent post: AI infrastructure investment",
    "Conference speaker: Microsoft Build 2026"
  ],
  "cost": { "credits": 12, "balance_remaining": 64938 }
}

POST /v1/congrats-trigger · 2 cr / resolved

Recent job changes WITH the actual LinkedIn post they wrote announcing the move. Unique to AgentEnrich. 5x reply rates over cold cold-email.

request + response
curl -X POST https://api.agentenrich.com/v1/congrats-trigger \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "new_role": "Head of Sales", "days_window": 14, "limit": 1 }'

# 200 OK
{
  "count": 1, "resolved": 1,
  "results": [{
    "person_unmasked": { "fullName": "Alex Rivera", "linkedinUrl": "linkedin.com/in/example-ar" },
    "new_role": "Head of Sales at Linear",
    "announcement_post_url": "linkedin.com/feed/example",
    "announcement_text": "Thrilled to join Linear as Head of Sales. After 5 years scaling GTM at Figma, I'm excited to build the team that brings Linear to every product org.",
    "occurred_at": "2026-05-18T09:14:00Z",
    "verified_email": "[email protected]"
  }],
  "cost": { "credits": 2, "balance_remaining": 64936 }
}

POST /v1/funding-radar · 3 cr / resolved

Recently funded companies + the decision maker matching your role spec at each.

request + response
curl -X POST https://api.agentenrich.com/v1/funding-radar \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "rounds": ["series_a","series_b"], "days_window": 30, "decision_maker_title": "VP of Engineering", "limit": 1 }'

# 200 OK
{
  "results": [{
    "company": { "name": "Cluely", "domain": "cluely.com" },
    "funding": { "round": "Series A", "amount_usd": 15000000, "date": "2026-05-08", "lead_investor": "Andreessen Horowitz" },
    "decision_maker": { "fullName": "Priya Shah", "title": "VP of Engineering", "email": "[email protected]" }
  }],
  "cost": { "credits": 3, "balance_remaining": 64933 }
}

POST /v1/funded-and-hiring · 10 cr / resolved

Companies funded AND actively hiring AND matching your ICP. The triple-trigger signal.

request
curl -X POST https://api.agentenrich.com/v1/funded-and-hiring \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "icp_industries": ["saas","fintech"], "icp_size": ["50-200"], "limit": 25 }'

POST /v1/hiring-intent · 8 cr / resolved

Companies hiring for X role + the relevant decision maker.

request
curl -X POST https://api.agentenrich.com/v1/hiring-intent \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "role_being_hired": "SDR", "days_window": 7, "decision_maker_title": "VP of Sales" }'

POST /v1/tech-stack-targets · 4 cr / resolved

Companies using a specific technology + the decision maker for it.

request
curl -X POST https://api.agentenrich.com/v1/tech-stack-targets \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "technologies": ["Snowflake","dbt"], "decision_maker_title": "VP Data" }'

POST /v1/lookalike-accounts · 0.6 cr / result

Companies similar to up to 5 source domains.

request
curl -X POST https://api.agentenrich.com/v1/lookalike-accounts \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "seed_domains": ["stripe.com","square.com"], "limit": 25 }'

POST /v1/find-similar-people · 1 + 0.8/result

People similar to a source person, at other companies.

request
curl -X POST https://api.agentenrich.com/v1/find-similar-people \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "source_linkedinUrl": "linkedin.com/in/example", "exclude_same_company": true, "limit": 8 }'

POST /v1/champion-just-moved · 2 cr / matched

Cross-reference your contact list against the live job-change feed. Re-pitch at the new company.

request
curl -X POST https://api.agentenrich.com/v1/champion-just-moved \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "watch_list_id": "wl_abc123", "days_window": 30 }'

POST /v1/low-competition-hires · 1 cr / result

Open jobs with fewer than 25 applicants. Winnable outreach.

request
curl -X POST https://api.agentenrich.com/v1/low-competition-hires \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "role": "Senior Backend Engineer", "max_applicants": 25 }'

POST /v1/job-change-radar · 2 cr / resolved

Real-time job changes unmasked from GDPR-safe signals.

request
curl -X POST https://api.agentenrich.com/v1/job-change-radar \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "days_window": 7, "departments": ["sales","marketing"], "limit": 50 }'

Niche combos · lists nobody else can build

POST /v1/local-business-owners · 3 cr / resolved

SMB owner + verified mobile + email by (industry, city, size). Plumbers in Tampa. Med spas in Austin. Roofers in Denver.

request + response
curl -X POST https://api.agentenrich.com/v1/local-business-owners \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "industry":"plumbing","city":"Tampa","state":"FL","size":"5-50","limit":2 }'

# 200 OK
{
  "query": { "industry": "plumbing", "city": "Tampa" },
  "total": 2,
  "results": [
    { "business": { "name": "Bay Area Plumbing Co", "location": "Tampa, FL" },
      "owner": { "fullName": "Carlos Rodriguez", "phone": "+18135550199", "email": "[email protected]" } }
  ],
  "cost": { "credits": 6, "balance_remaining": 64927 }
}

POST /v1/just-funded-smb-leaders · 6 cr / resolved

Local businesses funded in the last 30 days + owner contact. Triggers × local-business combo.

POST /v1/competitor-talent-leaving · 3 cr / resolved

People who left a target competitor in the last 30 days + verified contact.

POST /v1/silent-promoter-radar · 2 cr / matched

People in your CRM who got promoted in the last 90 days.

POST /v1/hiring-velocity · 5 cr / resolved

Companies hiring 5+ roles in the same department this quarter. Expansion signal.

POST /v1/just-acquired-buyers · 4 cr / resolved

Companies acquired in the last 30 days + decision maker at the acquiring entity.

POST /v1/buyer-budget-window · 6 cr / resolved

Companies funded 6-18 months ago × hiring × your ICP. Peak budget window.

POST /v1/multi-source-phone · 14 cr / resolved

Phone waterfall across multiple upstream providers. 40-60% higher hit rate than single-source.

POST /v1/smb-buying-committee · 4 cr / resolved

SMB stakeholder map: owner, manager, dispatcher, ops lead.

POST /v1/funded-and-using-tech · 7 cr / resolved

Funded × specific tech stack × decision maker. Triple filter.

POST /v1/quiet-power-users · 2 cr / matched

Watch your champion list. Get notified on job change OR title bump OR LinkedIn engagement spike.

POST /v1/local-service-by-revenue · 4 cr / resolved

SMBs sized by revenue band + owner contact. "All HVAC companies in FL doing $1M to $5M revenue."

Bundles · premium flat-rate research

POST /v1/bundles/sales-deck · 25 credits

Full account brief: company + decision maker + committee + recent funding + recent moves + lookalikes.

request
curl -X POST https://api.agentenrich.com/v1/bundles/sales-deck \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "company_domain": "vercel.com" }'

POST /v1/bundles/recruiter-pack · 30 credits

Candidate + 8 similar candidates at other companies + contact info.

POST /v1/bundles/founder-research · 20 credits

Company + founders + funding history + tech stack.

POST /v1/bundles/competitive-intel · 25 credits

Competitor leadership + recent movements + tech stack + lookalike TAM.

POST /v1/bundles/relationship-graph · 15 credits

Person + past coworkers + where they are now. Warm-intro path finder.

Ad audiences + ML

POST /v1/ad-audience · 0.1 cr / email

SHA256-hash a list of emails for Meta / LinkedIn / Google custom audiences. Match-rate stats included.

request + response
curl -X POST https://api.agentenrich.com/v1/ad-audience \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{ "emails": ["[email protected]","[email protected]"] }'

# 200 OK
{
  "input_count": 2, "hashed_count": 2,
  "match_estimates": {
    "meta_ads": { "match_rate_pct": 62 },
    "linkedin_ads": { "match_rate_pct": 71 },
    "google_ads_customer_match": { "match_rate_pct": 54 }
  }
}

Watch lists, saved ICPs, bulk async

POST /v1/watch-lists · free to create, 2 cr / matched event

Track LinkedIn URLs or domains. HMAC-signed webhook delivery on signal events.

POST /v1/saved-icps · free to create, 1 base + 0.5/result on run

Save a complex filter under a name. Re-run with one call later.

POST /v1/bulk/enrich · 1 cr / resolved

Submit up to 500 items per job. HMAC-signed webhook delivery on completion.

request + response
curl -X POST https://api.agentenrich.com/v1/bulk/enrich \
  -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \
  -d '{
    "items": [
      {"kind":"linkedin","linkedinUrl":"linkedin.com/in/example1"},
      {"kind":"linkedin","linkedinUrl":"linkedin.com/in/example2"}
    ],
    "webhook_url": "https://yourapp.com/webhook",
    "webhook_secret": "shared_secret_for_hmac"
  }'

# 202 Accepted
{ "job_id": "job_xyz789", "status": "queued", "estimated_seconds": 12 }

# Later, poll status:
curl https://api.agentenrich.com/v1/bulk/job_xyz789 \
  -H "Authorization: Bearer ae_live_..."

Going to production

Ready to ship?

Get a key