Skip to main content

+ For developers +

One key. One schema. Ten sources behind it.

Stop stitching ten vendors together. One REST endpoint returns a structured envelope: snapshot, narrative, events, citations, and confidence on every value. Streaming progress over SSE. SDKs not required.

One call

Curl. Node. Python. Same shape.

Bearer auth, JSON in, structured envelope out. Per-field citations, source attribution, confidence scores. Re-run the same enrichment and the BE returns the cached envelope — free.

Five-minute getting started
# one call, every source
curl https://api.abm.dev/v1/enrichments \
  -H "Authorization: Bearer $ABMDEV_KEY" \
  -d '{
    "type": "company",
    "input": { "domain": "cowgills.co.uk" }
  }'

# response (excerpt)
{
  "snapshot": {
    "company": {
      "identity": {
        "company_name": {
          "value": "Cowgills Limited",
          "source": "companies_house",
          "confidence": 0.99,
          "citations": ["https://find-and-update..."]
        },
        ...
      }
    }
  }
}

Built for engineers who hate fixing other people's data

Honest defaults. No magic.

Structured envelopes.

Every leaf value is wrapped in a FieldEnvelope: value, source, confidence, citations, observed_at, conflicts. No bare strings, no inferring where data came from.

REST + SSE.

Standard JSON over HTTPS. Streaming progress events while the enrichment runs. No GraphQL, no proprietary SDK — fetch and an event-source listener get you there.

Citations on every value.

A URL, a timestamp, a source identifier. Every field. Audit trails, compliance, debugging — all free. Pre-trained that data should always carry where it came from.

Free re-runs.

Enrichments are content-addressed. Re-running on a person you've enriched recently returns the cached envelope at zero cost. Webhooks fire on every run.

Real data, on the first call.

Top-ups from £2.49. Same API, same response shape, same SDK code from your first call to your millionth.