Enrichments vs Clay

The Clay alternative for people who just want the API

Clay is a workflow canvas with enrichment inside it. If you already have the workflow — in code, in your CRM, in an agent — this is the enrichment underneath it, without the table in the middle.

ContactEmail
Liam Foster
Liam Foster
Queued
Maya Torres
Maya Torres
Queued
Ethan Brooks
Ethan Brooks
Queued
Zoe Martin
Zoe Martin
Queued
Andre Willis
Andre Willis
Queued
Chloe Bennett
Chloe Bennett
Queued
Noah Klein
Noah Klein
Queued
Priya Shah
Priya Shah
Queued
Kenji Tanaka
Kenji Tanaka
Queued
Ava Boone
Ava Boone
Queued

Enrichments vs Clay

The differences that decide it, including the ones that go the other way.

Shape of the product
Enrichments

An API and a CSV upload. Enrichment as a call.

Clay

A spreadsheet-style canvas where enrichment is one step in a workflow.

Who operates it
Enrichments

Engineers and RevOps, from code or an agent.

Clay

GTM teams building visually, with no code required.

Provider choice
Enrichments

One waterfall, run for you, cheapest source first.

Clay

A large catalogue of providers you select and sequence yourself.

Billing model
Enrichments

Credits, charged only when a field comes back. Free plan: 100 credits, then $69/mo.

Clay

Credit-based, with credit cost varying by provider and step.

Failed lookups
Enrichments

A lookup that returns nothing is not charged, and every charge is in an auditable ledger.

Clay

Credit consumption depends on the provider a step calls.

Cost predictability
Enrichments

Preview the cost of a run before it executes.

Clay

Harder to predict across a multi-provider workflow.

Use from an AI agent
Enrichments

Native MCP endpoint. Connect it to Claude or ChatGPT and enrich in the chat.

Clay

Automation is built in the canvas rather than exposed as an MCP endpoint.

Time to first record
Enrichments

One API call, or one CSV upload.

Clay

Build the table and the workflow first.

Start free

Only pay for the match that lands

Just ask. The agent plans the run, resolves each row, and checks every address before it reaches you — and a row that comes back empty is never charged.

Enrichments Agent
What can you return for a person?
Work email and its status, title, seniority, department, location, LinkedIn URL, and the company behind it.
Ask the agent…
Cached graph
checked first · a cached row makes no upstream call
queued
Person match
title, seniority, department, location
queued
Company match
domain and firmographics
queued
Work email
address discovered for the resolved person
queued
Deliverability check
every address carries its status
queued
Enriched
0/4 verified

Built for the whole GTM stack

Enrich a form fill in real time, backfill a million-row list overnight, and keep your CRM current — all from the same key.

A row that comes back empty costs nothing.

Credits are charged per delivered field, and every charge is written to a ledger you can read line by line.

One key, four surfaces

People, companies and firmographics resolve behind a single endpoint — and the same key and the same credit balance work from the REST API, the MCP server, the in-product chat agent, and CSV upload. Ask in any of them and the answer comes back in the same shape.

Work email, title, seniority, department, location, LinkedIn URL, company domain and firmographics. No phone numbers.

liam@northwind.io
Northwind · Founder
verified
maya@atlas.co
Atlas · Head of Sales
verified
ethan@cobalt.com
Cobalt · VP Marketing
verified
zoe@lumen.com
Lumen · Growth Lead
verified
andre@ridge.io
Ridge · RevOps
verified
chloe@vellum.ai
Vellum · Data Lead
verified
POST/v1/people/enrich
resolving
{
"fullName": "Liam Foster",
"email": "liam@northwind.io",
"emailStatus": "verified",
"title": "Founder & CEO",
"seniority": "founder",
"department": "executive",
"companyName": "Northwind",
"companyDomain": "northwind.io",
"location": "San Francisco, CA",
"country": "US",
"linkedinUrl": "/in/liamfoster",
"source": "search.people",
"confidence": 0.94,
"lastVerifiedAt": "2026-07-21T09:14:00Z"
}
Inbound routing

Enrich a single record inline on a form fill, or hand a list to an async job and poll it. Same key, same ledger, same field catalogue.

POST /v1/people/enrich

Built for engineers

One REST endpoint per operation, an OpenAPI document you can generate a client from, idempotency keys on every write, and typed errors.

GET /v1/openapi

Keeping data current

Every record carries the time it was last verified, so you can re-run only what has gone stale — and a re-run that returns nothing new is not charged.

result.lastVerifiedAt

Lands wherever your team already works

A run finishes as a file, a signed webhook or a JSON response your stack already speaks — no connector to install on the other end.

Typesense
Convex
Xata
Storyblok
Documenso
Zeabur

Enrichments and Clay — common questions

Is this a replacement for Clay?
Only if what you wanted from Clay was the enrichment. Clay's value is the canvas and the provider catalogue; if your team builds workflows there, keep it. If you were using it as an expensive way to call one enrichment step, this is that step on its own.
Can I call this from inside Clay?
Yes, as an HTTP step against the REST API. Some teams run Clay for orchestration and point the enrichment step here.
What does 'waterfall' mean here?
Sources are tried in order and each one is asked only for the fields the ones above it did not return, so a paid source is reached only when everything cheaper came up empty. You are billed for the field, not for the attempts.

Start enriching in a single call

Free to try, no card required. Ship your first enriched record before your coffee gets cold.

The free plan includes 100 credits, and only rows that return data are charged.