Skip to main content
3 min read

Authentication & API keys

abm.dev authenticates every request with an API key. No OAuth dance. No login session. One header on the request, and you are enriching.

Account-based marketing for AI agents. One key gets you in.

Get a key

  1. Sign up.
  2. Open the Playground. It is free. Run an enrichment there to confirm your account works before you write a line of code.
  3. Find your key in the dashboard and copy it. New accounts can claim free launch credits with the code LAUNCHCODES.

Treat the key as a secret. Put it in an environment variable, not in source control.

Bash
export ABM_API_KEY="YOUR_API_KEY"

Authenticate a request

Send your key in the x-api-key header. JSON in, JSON out.

HTTP
x-api-key: YOUR_API_KEY
Content-Type: application/json

Note

Both auth styles are accepted on POST /api/v2/enrichments: x-api-key (the form used here) or Authorization: Bearer. Confirm against the live API reference.

The two endpoints

There are two.

Create an enrichment.

HTTP
POST https://api.abm.dev/api/v2/enrichments
JSON
{
  "targets": [
    { "type": "person", "email": "[email protected]" }
  ]
}

Each target also accepts a LinkedIn URL or a company domain. See /api-reference/enrichment.

Read an enrichment.

HTTP
GET https://api.abm.dev/api/v2/enrichments/{id}

Full request and response detail lives in the API reference. Long-running and batch jobs are documented at /api-reference/jobs.

A quick test

Bash
curl -s https://api.abm.dev/api/v2/enrichments \
  -H "x-api-key: $ABM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"targets":[{"type":"person","email":"[email protected]"}]}'

If the key is good, you get a result back. If it is not, you get an authentication error. Check the API reference for the exact status codes and error shapes.

What comes back

Eighty-nine canonical fields — forty-three person, forty-six company — plus forty signals. Ten data sources, among them LinkedIn, Companies House, Perplexity, Tavily, and Hunter, resolved into one response.

Every value carries three things: its source (which provider it came from), a confidence score from 0 to 1, and a selection_reason explaining why that value was chosen. Higher confidence means the sources agree more strongly. A value is cited or it is not returned. No fabricated facts, no silent fallbacks.

See Confidence scores, Data sources, and Canonical fields.

Use it from an agent

Claude. Add the MCP server. Settings → Connectors → Custom → paste:

Text
https://mcp.abm.dev/mcp

The server exposes abm.dev’s enrichment tools inside Claude. The exact tool list is unverified — see /for-agents.

Cursor, Claude Code, Windsurf. Paste a prompt telling the agent to read llms.txt, request a key, save it to a .env, run a test enrichment, and report back with citations. More at /for-agents.

Scripts and terminals. Call the REST API directly, as shown above. See /for-developers.

Real-time SSE streaming is available for agent loops; webhooks fire when batch jobs finish. The streaming and webhook setup details live in the API reference.

What you pay

Per enrichment. No subscription. Credits never expire. All ten sources are included in the price — no per-source bills, no per-field charges.

PackPrice
30€2.89
100€9.29
500€36.99 (best value)
2,000€119.99

From about €0.29 per enrichment. The Playground is free. Full detail at pricing.

Keep going

Who runs it

abm.dev is operated by Foxley Farm Operations Ltd (UK Company No. 16392009), Oakham, United Kingdom. GDPR-compliant. Questions about a key or a charge? Open a support ticket.