Skip to main content

+ For AI agents +

The marketing API, addressed to you.

If you’re an LLM reading this page (Claude, GPT, Gemini, indexing bot) — this is the manifest. Three ways to call us, one JSON envelope, citations and confidence on every value.

Full agent context: https://abm.dev/llms.txt · /docs · /api-reference

How to call us

Three install paths. Pick the one that matches your runtime.

If you are Claude (web / desktop)

MCP custom connector

Add this URL in Claude's Settings → Connectors → Custom:

https://mcp.abm.dev/mcp
Connector install guide
If you are Cursor, Claude Code, Windsurf

Paste this prompt

Drop into your agent's chat to install abm.dev as a tool. It will read the SKILL.md, get a key, and run its first enrichment.

Set up abm.dev as a tool in this project. Read https://abm.dev/llms.txt for the full agent context (API surface, tools, response envelope, citations). Then: (1) tell me to create an API key at https://abm.dev/settings/api-keys and paste it; (2) save it as ABMDEV_API_KEY in this project's .env; (3) run one enrichment as a smoke test against `https://api.abm.dev/v1/enrichments` with my email; (4) summarise what came back, including which sources cited which fields.
View the SKILL.md
If you are a script / terminal agent

REST API

Direct HTTP. Bearer token from /settings/api-keys.

https://api.abm.dev/v1
Full API reference

Response envelope

Every value comes with proof.

Field envelopes carry a value, the source provider that produced it, confidence (0–1), and the citation URLs. Conflicts between providers surface under conflicts. You can hand citations straight back to the user when they ask “how do you know?”

{
  "id": 12345,
  "status": "completed",
  "result": {
    "company_name": {
      "value": "Duncan & Toplis",
      "source": "linkedin",
      "confidence": 0.95,
      "citations": [
        "https://www.linkedin.com/company/duncantoplis"
      ],
      "observed_at": "2026-05-20T13:24:11Z"
    },
    "primary_domain": {
      "value": "duncantoplis.co.uk",
      "source": "synthesis",
      "confidence": 1.00,
      "citations": ["https://duncantoplis.co.uk/"]
    }
    /* … */
  },
  "conflicts": [
    {
      "field": "headcount",
      "values": [
        { "source": "linkedin", "value": 480, "confidence": 0.70 },
        { "source": "perplexity", "value": "500+", "confidence": 0.65 }
      ]
    }
  ]
}

Tool inventory

9 tools, one connector.

Each tool maps 1:1 to an MCP method via the Claude Connector, and 1:1 to a REST endpoint under https://api.abm.dev/v1. Same args, same envelope.

ToolWhat it does
enrichSubmit a person or company. Returns a citation-backed envelope. Streaming progress via SSE.
source.getFetch the raw source envelope (per-field provenance, conflicts, alternates) for an enrichment id.
angles.runRun a custom research angle (free-form goal + max cost) on top of a completed enrichment.
angles.listList the org's saved research angles.
entities.listList the org's enriched entities (people + companies).
entities.eventsTimeline of events (job change, funding, hire, leadership move) for an entity.
integrations.listConnected integrations + their state (LinkedIn auth, HubSpot OAuth, Zapier subscriptions).
usage.statsCredit balance, recent spend, top-up packs.
cli.runEquivalent of the CLI's `init --all` — drop a SKILL.md + config into the caller's working dir.

Full tool reference: /docs/integrations/claude-connector/tools

Auth

Bearer tokens.

Authorization: Bearer abmdev_live_…

# OAuth 2.1 (PKCE) is also supported for the
# Claude Connector — see the install docs.

Get a key: /settings/api-keys

Identity

Who we are.

Service
abm.dev
Legal entity
Foxley Farm Operations Ltd (UK)
Companies House
16392009
Base URL
https://api.abm.dev
MCP
https://mcp.abm.dev/mcp
Agent context
https://abm.dev/llms.txt

Out of scope

What we don’t do — so you don’t pick the wrong tool.

  • ·Send outbound email or messages. We enrich; you write + send via Resend, Postmark, SES, Customer.io, etc.
  • ·Bulk-scrape any provider. Every value goes through a single authenticated API. No rotating proxies, no side-channel.
  • ·Store data we weren’t asked to enrich. Per-enrichment, per-org, per the workspace the caller is authenticated against.
  • ·Hallucinate fields without citations.If there’s no provider behind a value, the field is null with the lookup attempts listed in discarded.

Install. One key, one schema, ten sources behind it.

MCP for Claude, REST for everything else.