Claim 250 credits on our Scale plan for free

Clay Waterfall Enrichment in 2026: What Each Row Costs in Actions

How Clay charges Actions and Data Credits on a waterfall, row by row, and when one lookup through a waterfall API uses fewer Actions. Every rule is sourced to Clay's own docs.

Victor Paraschiv

Victor Paraschiv

Co-Founder & CMO

11 min read

The short version

In Clay, every waterfall step that returns data costs one Action, every validation step costs one more, and empty steps cost nothing. So a row that finds a valid email on the first try costs 2 Actions, and each wrong answer before the right one adds 2. A Cleanlist lookup from Clay is two HTTP API calls, one to submit and one to read the result. Clay gives no per-call rate for HTTP API calls; this page assumes 1 Action a call, so a lookup costs 2 Actions a row whatever happens behind it. It saves Actions on rows where early steps return bad data, and on rows where you need email and phone. It costs more on rows where nothing is found. Cleanlist API access starts on Pro; our plans and credit costs are public.

Last updated: September 22, 2026. Every rule about Actions and Data Credits on this page comes from Clay's own pricing page, docs and FAQ, read on September 22, 2026, and each one links to its source. Where Clay's docs do not answer a question, the page says so. Cleanlist publishes this guide and sells the waterfall API described in the second half, so read that part as a vendor explaining its own product.

What Clay counts as an Action

Clay split its credits in two on March 11, 2026. Its pricing memo describes Actions as "a new measurement of the orchestration work that Clay performs: enrichments, AI tasks, HTTP API calls, and pushes to third-party platforms." The same memo says "basic functionality like first-party imports, formulas, and transformations do not count."

Data Credits are the other meter. Clay's pricing page says they "are used when you purchase data from Clay's marketplace." Clay's Actions doc puts a typical fully enriched record at 6 to 20 Data Credits, depending on the data types, the waterfall and how many of your own API keys you use.

The rules that decide what a waterfall costs, from those three pages and Clay's FAQ on unsuccessful searches:

Activity in ClayActionsData Credits
An enrichment step that returns data, from Clay's marketplace1Yes
The same step run on your own API key1None
An enrichment step that returns no result00
A call that ends in an error00
An HTTP API call1 (assumed; Clay gives no per-call rate)None (you pay the API you call)
Sourcing a list of accounts or contacts0Yes, unless the data is free or on your own keys
Formulas, filters, CRM imports and webhook imports00
Exporting a record to a CRM or sequencer1 per record0

Actions also reset every billing cycle. Clay's pricing FAQ says they "don't roll over, since they reflect the platform capacity your plan includes."

How many Actions each plan includes

Clay's pricing page lists these allowances at each plan's entry point. Clay sells Actions and Data Credits on two separate selectors inside a plan, so a larger allowance costs more.

Clay planActions a monthData Credits a monthMonthly list priceHTTP API integrations
Free500100$0Not included
Launch15,0002,500$185 ($167 on annual billing)Not included
Growth40,0006,000$495 ($446 on annual billing)Included
EnterpriseCustomCustomCustomIncluded

Two things in that table matter for everything below. Clay says Actions "start at less than $0.01 each and get cheaper with scale within each plan." And the HTTP API integration is a Growth and Enterprise feature, so on Free and Launch you can only call providers that sit in Clay's marketplace, on Clay's credits or your own keys.

How a Clay waterfall spends Actions, step by step

A Clay waterfall runs providers in order and stops at the first result that passes. Clay's FAQ on unsuccessful searches spells out the billing: "Each step of the waterfall that returns data will consume Data Credits (unless using API keys) and an Action. Each validation step of the waterfall will consume Data Credits (unless using API keys) and an Action. Once validated data has been returned, no additional Data Credits or Actions will be consumed. If the entire waterfall returns no results, no Data Credits or Actions will be consumed."

So the cost of a row depends on what happens on that row:

  • A provider finds an email and it validates. 1 Action for the find, 1 for the validation. 2 Actions.
  • A provider returns an email that fails validation, and the next one passes. 2 Actions for the first attempt, 2 for the second. 4 Actions.
  • Three providers return emails that fail, and the fourth passes. 8 Actions.
  • No provider returns anything. 0 Actions and 0 Data Credits.

The expensive rows are the ones where providers return data that turns out to be wrong. Empty steps are free, so adding a provider to the end of a waterfall costs little on its own: it bills only on the rows where it returns something.

A phone number is a separate lookup from an email, so a row where you want both an email and a direct dial pays for two chains of steps.

What a waterfall API lookup costs in Clay

The other way to build the waterfall is to call one API that runs the provider sequence itself. Clay lists HTTP API calls among the features that use Actions; its docs do not give a rate per call, so this page assumes 1 Action per call. Your own API's usage uses no Clay Data Credits.

Cleanlist is one such API. It runs waterfall enrichment across 25+ data providers in sequence and stops at the first verified hit. Its enrichment endpoint is asynchronous, according to the Cleanlist API docs: you submit a person and get a workflow_id back, then read the result from a status endpoint. In Clay that is two HTTP API columns, so at 1 Action a call a row costs 2 Actions. If the read column runs before the result is ready, it returns a pending or processing status, and running it again is a third call.

Here is the same set of rows, costed both ways, in Actions only:

What happens on the rowClay-native waterfallOne Cleanlist lookup (2 HTTP calls, assumed 1 Action each)
First provider returns a valid email2 Actions2 Actions
First email fails validation, second passes4 Actions2 Actions
Three emails fail validation, fourth passes8 Actions2 Actions
Nothing is found anywhere0 Actions2 Actions
Email and direct dial both wanted, first providers hit3 or more Actions (two waterfalls)2 Actions

We read "an HTTP API call" in Clay's docs as every call that returns a response, including a response that says the enrichment found nothing. Clay's docs do not address that case directly, so the "nothing is found" row assumes the worse outcome.

On Data Credits the difference is simpler. A Clay-native step on Clay's credits spends Data Credits every time it returns data. A step on your own key spends none in Clay, and you pay that provider directly. A Cleanlist call spends no Clay Data Credits; Cleanlist charges its own credits, 1 per verified work email and 10 per direct dial, and nothing when it finds nothing.

When a waterfall API saves Actions, and when it does not

It saves Actions when your early steps often return data that fails validation, and when you want an email and a phone number on the same row. Both of those make a native row cost 3 Actions or more, where the API row stays at 2.

It does not save Actions when your first provider is right on most rows, because both approaches cost 2 Actions there. And it costs more on rows where nothing exists to find: 2 Actions for the API against 0 for a native waterfall. If your lists are thin (old domains, very small companies, regions your providers cover poorly), expect a lot of those rows.

A middle path keeps your existing steps and adds the API only where they fail. Clay's HTTP API doc supports conditional run formulas, so the Cleanlist columns can run only on rows where your first step did not return a validated email. Those rows pay for the first attempt and then 2 Actions for the API.

Beyond Actions, the difference is upkeep. One API is one set of credentials, one rate limit and one response shape to map, against several providers' keys, credit balances and field names.

The table, column by column

This is the smallest Clay table that runs a Cleanlist lookup. You need a Clay plan with HTTP API integrations (Growth or Enterprise) and a Cleanlist API key, which is issued on Pro and Scale.

Before you build it, create one Cleanlist list to receive the results. Every submit call has to name a target list, and the enriched lead lands in it. A single call outside Clay does it: POST https://api.cleanlist.ai/api/v2/lead-lists with a body such as {"name": "Clay enrichment"} returns a list_id. If you made the list in the app, GET https://api.cleanlist.ai/api/v2/lead-lists returns its list_id (lead list docs).

  1. Inputs. First Name, Last Name and Company Domain. A work email you already hold also works as the input on its own.
  2. Cleanlist submit (HTTP API). Method POST, URL https://api.cleanlist.ai/api/v2/enrichment/person, header Authorization: Bearer clapi_your_key, JSON body with lead_list_id (the list ID from above), first_name, last_name, domain and enrichment_type. Use partial for the work email (1 credit when found) or full for email and direct dial (up to 11 credits). Set the run condition so it fires only when the name and domain columns are filled.
  3. Workflow ID (formula). Pull workflow_id out of the submit response. Formulas cost no Actions.
  4. Cleanlist result (HTTP API). Method GET, URL https://api.cleanlist.ai/api/v2/enrichment/status/ followed by the Workflow ID column, same header. Run it only when Workflow ID is filled, and run it after the submit column has finished on the whole table.
  5. Mapped fields (formulas). Map the email, phone and status fields you need from the result object in the response. The status response also reports credits_charged and credits_refunded for the row.

Set a rate limit on both HTTP columns. The Cleanlist API allows 30 requests a minute per key and 60 a minute per organization across all keys, and it answers 429 with a Retry-After header when you go over (API docs). Every row makes two calls, so a 1,000-row table needs at least 2,000 requests, which is a little over an hour on one key.

If you are still on a legacy Clay plan

Clay's September 16 post says Audiences, Account Agents, Workflows, Clay Plugin and Sequencer on Audiences are available to "all customers on legacy plans through December 31, 2026," after which those customers can move to Launch, Growth or Enterprise to keep them. The same post says customers "can still choose to stay on legacy plans indefinitely."

If you plan to move before that date, cost your current tables in Actions first. Count, for a typical month, how many rows reach a second provider and how many rows need a phone number as well as an email. Those two numbers decide most of the bill.

Getting started

Cleanlist API keys come with the Pro plan ($229 a month, 5 seats included) and Scale ($599 a month, 10 seats). The 14-day Scale trial, with 250 credits, three seats and no card, includes every feature except the public API and MCP, so the practical order is: run a sample of your Clay table through Cleanlist in the app, check the results, and then connect the API. Search in the app is free and unlimited. Plans, credit costs and annual pricing are on the pricing page.

Frequently asked questions

Does a Clay waterfall step that finds nothing cost an Action?

No. Clay's FAQ says an enrichment only counts toward platform usage "when the platform actually delivers new information," and a waterfall that returns no results consumes no Data Credits and no Actions.

Does using my own API key in Clay avoid Actions?

Your own key removes the Data Credit cost of a step, and the step still uses an Action. Clay's Actions doc says that when you connect your own keys, "an Action will still be consumed."

How many Actions does an HTTP API column use in Clay?

Clay does not publish a rate. Its Actions doc and pricing memo list "HTTP API calls" among the features that use Actions, and none of its pages gives a number per call. This page assumes 1 Action per call, so an asynchronous API that you submit to and then read from, at two calls per row, would use 2 Actions a row.

Can I call an HTTP API from Clay on the Launch plan?

Not according to Clay's pricing page, which lists HTTP API integrations as included on Growth and Enterprise and not included on Free or Launch.

Is Cleanlist in Clay's marketplace?

Not as of September 22, 2026. You connect it through Clay's HTTP API integration, so it needs a Clay plan that includes HTTP API integrations and a Cleanlist plan that includes API access (Pro or Scale).

Does Clay's Delay step cost an Action?

Clay's docs do not say, and we have not tested it. The table above avoids the question by running the read column after the submit column has finished.

Sources

Run this on your own contacts

Put your own contacts through the multi-provider waterfall and export the result. 250 credits, 3 seats, 14 days. No card required. Bulk CSV upload lands on Starter at $79/mo, and CRM import and sync on Pro at $229/mo.

Start free trial

250 credits, 3 seats, 14 days. No card required.

Run it on the list you already have.

Cleanlist puts one lookup through 25+ providers and stops at the first source that returns. Search is free and unlimited on every plan. A verified work email is 1 credit, a direct dial is 10, both together are 11, and a miss costs nothing at all.

14-day Scale trial: 250 credits, 3 seats, no card, every feature except the public API and MCP. The Free plan stays at 30 credits a month after that.