Batch jobs & webhooks
Run one enrichment. Run a thousand. The mechanics are the same. Every enrichment you submit becomes a job that abm.dev tracks for you — you submit, you check, you get told when it’s done. No queue to babysit. No state machine to wire by hand.
This article covers two things: how a single enrichment is created and read back, and the two ways abm.dev tells you a job finished — webhooks for batches, streaming for agent loops.
The two endpoints
There are two. That’s the whole surface.
POST https://api.abm.dev/api/v2/enrichments
GET https://api.abm.dev/api/v2/enrichments/{id}POST creates an enrichment. GET reads it back by id. Both want a key in the header.
x-api-key: YOUR_API_KEY
Content-Type: application/jsonA request body lists the targets you’re enriching, each with one input to resolve from:
{
"targets": [
{ "type": "person", "email": "[email protected]" }
]
}A target’s input can be an email, a LinkedIn URL, or a company domain. Pick one. abm.dev resolves the rest.
Note
x-api-key (used here) or Authorization: Bearer on POST /api/v2/enrichments. Confirm against the live API reference.What comes back
One response. Eighty-nine canonical fields — forty-three for the person, forty-six for the company — plus forty signals. Ten data sources, resolved into a single answer: LinkedIn, Companies House, Perplexity, Tavily, Hunter, and others.
Every value carries three things:
- A source — which provider it came from.
- A confidence— a score from 0 to 1. Higher means more sources agreed. Lower means they didn’t, or only one spoke.
- A selection_reason — why that value was chosen.
A value is either cited or it isn’t returned. No fabricated facts. No silent fallbacks. If abm.dev can’t stand behind a field, you won’t see it.
See confidence scores and canonical fields for the full shape.
Jobs
Enrichment requests are tracked as jobs automatically. You don’t open a job, fill a queue, and close it. You POST an enrichment and abm.dev does the bookkeeping.
To check on one, read it back:
GET https://api.abm.dev/api/v2/enrichments/{id}The id comes from the create response. Poll it if you want a pull-based loop. Or let abm.dev push to you — that’s the next two sections.
Webhooks: for batches
Run a batch of enrichments and you don’t want to sit and poll. Webhooks fire when batch jobs finish. abm.dev calls you back; you react.
The mechanics of registering a webhook — the configuration surface, the payload shape, headers, signatures, retries — are not documented here, and we won’t guess at them. Check the current Jobs API reference and Enrichment API reference for the live specifics before you depend on them.
What’s settled: webhooks are the completion signal for batch work. You submit many, you get told when they’re done.
Streaming: for agent loops
An agent doesn’t want a callback to a server it doesn’t run. It wants the answer in the loop.
For that, abm.dev streams results in real time over SSE. The enrichment lands as it resolves, inside the same turn the agent asked. No polling. No second request. Right where the agent is working.
Two patterns, then:
- Batch, server-side — fire many enrichments, take a webhook when they finish.
- Agent loop — stream over SSE and read the result inline.
Wiring it from where you work
Claude
Add the MCP server. Settings → Connectors → Custom → paste https://mcp.abm.dev/mcp. The server exposes abm.dev’s enrichment tools inside Claude. The exact tool list isn’t documented here — see /for-agents.
Cursor, Claude Code, Windsurf
Paste a prompt telling the agent to read https://abm.dev/llms.txt, request a key, save it to .env, run one test enrichment, and report back with citations. The agent sets itself up.
Scripts and the terminal
Call REST directly. The two endpoints above are all you need. For a CLI, /docs/cli is the source of truth — binary name, commands, and flags are documented there, not here.
What it costs to run a batch
Per enrichment. No subscription. Credits never expire. Every source is included in the price — no per-source bills, no per-field charges. From about €0.29 per enrichment. Packs:
| Pack | Price |
|---|---|
| 30 | €2.89 |
| 100 | €9.29 |
| 500 | €36.99 (best value) |
| 2,000 | €119.99 |
A batch of five hundred costs what five hundred enrichments cost. Nothing else. The Playground is free to try. Free launch credits with code LAUNCHCODES. Full pricing at /#pricing.
Where to go next
- Getting started — your first enrichment, end to end.
- Enrichment API reference — the live request and response spec.
- Jobs API reference — job tracking and webhook specifics, as they stand.
- For agents — MCP setup and the tools available in Claude.
- For developers — REST, keys, and integration.
abm.dev is operated by Foxley Farm Operations Ltd (UK Company No. 16392009), Oakham, United Kingdom. GDPR-compliant.
Stuck on a batch or a callback that won’t fire? Open a ticket.