60 seconds to your first call. Then everything you need to ship a real agent on top.
Three steps. No demo call. No credit card.
curl -X POST https://api.agentenrich.com/signup \ -d '{"email":"[email protected]"}' # Check inbox, click verify, save the ae_live_... key.
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" }'
export AGENTENRICH_API_KEY=ae_live_... npx @agentenrich/mcp # Your agent gets 12 tools instantly. No adapter code.
A decision guide. Tell us what you're trying to do.
Use /v1/prospect-package. One call. Email, phone, peers, hooks. 12 cr flat.
Use /v1/find-email. SMTP-verified with MX check. 2 cr.
Use /v1/find-decision-maker. Top 3 ranked. 4 cr per resolved.
Use /v1/buying-committee. Pick deal type. 3 cr per resolved.
Use /v1/bundles/sales-deck. Full account research. 25 cr flat.
Use /v1/congrats-trigger. With the LinkedIn post they wrote. 2 cr per resolved.
Use /v1/champion-just-moved. Cross-references your list. 2 cr per match.
Use /v1/lookalike-accounts. Up to 5 seed domains. 0.6 cr per result.
Use /v1/funded-and-hiring. Triple trigger. 10 cr per resolved.
Use /v1/saved-icps/:id/run. 1 base + 0.5 per result.
Common questions builders ask us. Here are the honest answers.
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.
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.
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.
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.
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.
All /v1/* endpoints require a Bearer token:
Authorization: Bearer ae_live_xxxxxxxxxxxxxxxxxxxxxxxx
Get a key at /signup. Keys never expire unless you revoke them in /app/keys.
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.
curl -X POST .../v1/enrich \ -H "Authorization: Bearer ae_live_..." \ -H "Idempotency-Key: 7f3c8e2a-..." \ -d '{...}'
Every endpoint returns this base envelope plus its specific payload.
{
"found": true,
"person": { ... },
"confidence": 0.95,
"sources": ["primary"],
"cost": { "credits": 1, "balance_remaining": 4999 },
"cached": "profile-db",
"latency_ms": 180,
"request_id": "abc123"
}
| Header | What it means |
|---|---|
X-AgentEnrich-Request-Id | Unique ID for support tickets. Save it if something looks off. |
X-AgentEnrich-Credits-Remaining | Your wallet balance after the call. Same as cost.balance_remaining. |
X-AgentEnrich-Cache | hot, profile-db, or miss. |
| Code | Meaning | What to do |
|---|---|---|
| 400 | Invalid input. See details. | Fix the request body. |
| 401 | Missing or invalid API key. | Check the Authorization header. |
| 402 | Insufficient credits. | Top up at /pricing. |
| 403 | Endpoint not in your plan. | Upgrade. Free tier is restricted. |
| 404 | Person or company not found. | You're not charged. Try a fallback identifier. |
| 429 | Rate limit hit. | Check Retry-After header. |
| 5xx | Upstream issue. | Retry safe with Idempotency-Key. |
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:
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");
| Plan | Per minute | Daily cap |
|---|---|---|
| Free | 10 | 50 credits/day |
| Starter | 60 | none (wallet-capped) |
| Growth | 120 | none |
| Scale | 240 | none |
| Enterprise | 1,000+ | none |
npm install @agentenrich/sdk
Typed bindings, idempotency baked in.
pip install agentenrich
async + sync clients.
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.
POST /v1/enrich · 1 creditResolve a person from any identifier: LinkedIn URL, email, phone, or name+company.
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"}'
{
"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 creditResolve a company from domain, LinkedIn URL, or name.
curl -X POST https://api.agentenrich.com/v1/companies \ -H "Authorization: Bearer ae_live_..." \ -H "Content-Type: application/json" \ -d '{"domain":"vercel.com"}'
{
"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 creditReal-time SMTP verification with MX + catch-all + role-account detection.
curl -X POST https://api.agentenrich.com/v1/verify-email \ -H "Authorization: Bearer ae_live_..." -H "Content-Type: application/json" \ -d '{"email":"[email protected]"}'
{
"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 }
}
POST /v1/find-email · 2 creditsVerified business email from a LinkedIn URL or (firstName, lastName, companyDomain).
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"}'
{
"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 creditsCarrier-verified mobile phone from (domain + name). Premium endpoint.
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"}'
{
"found": true,
"phone": "+14254450068",
"line_type": "mobile", "carrier": "Verizon",
"cost": { "credits": 12, "balance_remaining": 64983.5 }
}
POST /v1/reverse-email · 1 creditReverse: email address → full person record.
# 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 creditsReverse: phone number → full person record + carrier metadata.
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 } }
POST /v1/search/people · 1 + 1/resultFilter by title, seniority, department, skills, industry, location, employee size, keywords. Up to 25,000 results per call.
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/resultFilter by industry, technology stack, keywords, location, employee size.
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 } }
GET /v1/signals?kind={funding|acquisition|hiring|job-change} · included on Pro+Live signal feed. Filter by kind, industry, country, days_window.
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/..." } ] }
POST /v1/find-decision-maker · 4 cr / resolvedTop 3 candidates matching a role at a company. Internally maps freeform roles to seniority + department + title filters.
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 / resolvedFull org map for a deal type (security, data_infra, sales_ops, exec, marketing, engineering). Returns 5-15 people across decision/influencer/user roles.
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 creditsEverything about a person in one call: verified email + mobile phone + 3 peers at the company + 4 personalization hooks.
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 / resolvedRecent job changes WITH the actual LinkedIn post they wrote announcing the move. Unique to AgentEnrich. 5x reply rates over cold cold-email.
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 / resolvedRecently funded companies + the decision maker matching your role spec at each.
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 / resolvedCompanies funded AND actively hiring AND matching your ICP. The triple-trigger signal.
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 / resolvedCompanies hiring for X role + the relevant decision maker.
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 / resolvedCompanies using a specific technology + the decision maker for it.
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 / resultCompanies similar to up to 5 source domains.
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/resultPeople similar to a source person, at other companies.
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 / matchedCross-reference your contact list against the live job-change feed. Re-pitch at the new company.
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 / resultOpen jobs with fewer than 25 applicants. Winnable outreach.
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 / resolvedReal-time job changes unmasked from GDPR-safe signals.
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 }'
POST /v1/local-business-owners · 3 cr / resolvedSMB owner + verified mobile + email by (industry, city, size). Plumbers in Tampa. Med spas in Austin. Roofers in Denver.
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 / resolvedLocal businesses funded in the last 30 days + owner contact. Triggers × local-business combo.
POST /v1/competitor-talent-leaving · 3 cr / resolvedPeople who left a target competitor in the last 30 days + verified contact.
POST /v1/silent-promoter-radar · 2 cr / matchedPeople in your CRM who got promoted in the last 90 days.
POST /v1/hiring-velocity · 5 cr / resolvedCompanies hiring 5+ roles in the same department this quarter. Expansion signal.
POST /v1/just-acquired-buyers · 4 cr / resolvedCompanies acquired in the last 30 days + decision maker at the acquiring entity.
POST /v1/buyer-budget-window · 6 cr / resolvedCompanies funded 6-18 months ago × hiring × your ICP. Peak budget window.
POST /v1/multi-source-phone · 14 cr / resolvedPhone waterfall across multiple upstream providers. 40-60% higher hit rate than single-source.
POST /v1/smb-buying-committee · 4 cr / resolvedSMB stakeholder map: owner, manager, dispatcher, ops lead.
POST /v1/funded-and-using-tech · 7 cr / resolvedFunded × specific tech stack × decision maker. Triple filter.
POST /v1/quiet-power-users · 2 cr / matchedWatch your champion list. Get notified on job change OR title bump OR LinkedIn engagement spike.
POST /v1/local-service-by-revenue · 4 cr / resolvedSMBs sized by revenue band + owner contact. "All HVAC companies in FL doing $1M to $5M revenue."
POST /v1/bundles/sales-deck · 25 creditsFull account brief: company + decision maker + committee + recent funding + recent moves + lookalikes.
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 creditsCandidate + 8 similar candidates at other companies + contact info.
POST /v1/bundles/founder-research · 20 creditsCompany + founders + funding history + tech stack.
POST /v1/bundles/competitive-intel · 25 creditsCompetitor leadership + recent movements + tech stack + lookalike TAM.
POST /v1/bundles/relationship-graph · 15 creditsPerson + past coworkers + where they are now. Warm-intro path finder.
POST /v1/ad-audience · 0.1 cr / emailSHA256-hash a list of emails for Meta / LinkedIn / Google custom audiences. Match-rate stats included.
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 } } }
POST /v1/watch-lists · free to create, 2 cr / matched eventTrack LinkedIn URLs or domains. HMAC-signed webhook delivery on signal events.
POST /v1/saved-icps · free to create, 1 base + 0.5/result on runSave a complex filter under a name. Re-run with one call later.
POST /v1/bulk/enrich · 1 cr / resolvedSubmit up to 500 items per job. HMAC-signed webhook delivery on completion.
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_..."
Idempotency-Key on every call. Agents retry.webhook_url for bulk jobs over 50 items./v1/saved-icps for filters you re-run. Cheaper than building queries each time.cost.balance_remaining in every response. Auto-topup at $25 in /app/billing.