Explainer

What Is the First Hop in a Waterfall?

The first hop is the provider that sees every row. Pick it on match rate and miss cost, and the rest of the chain gets cheaper.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

The first hop is the first provider in a waterfall, the one that runs on every row before any other provider sees it. It sets your cost floor and your fill rate, because every later hop only works on what it leaves behind.

Key takeaways

  • A hop is one provider call. Hop one runs on 100% of rows. Hop two runs only on the rows hop one missed.
  • Choose hop one on two numbers: how many of your rows it matches, and what it charges when it finds nothing.
  • A first hop that charges on a miss taxes your whole list. One that charges nothing on a miss costs you only on rows it fills.
  • On LeadOcean, a person we hold nothing for returns a 404 on POST /v1/people/enrich and costs nothing.

What it is

The first hop is the opening provider call in a waterfall: the lookup that every row goes through, and whose misses decide what the next hop receives.

A waterfall is a chain of providers asked for the same field in order. Each call in that chain is a hop. Hop one is the widest, because it is the only one with no filter in front of it.

People often assume the first hop should be the most accurate provider. That is the wrong test. Accuracy matters at the end of the chain, where you verify. The first hop should be the one you can afford to run on all rows.

How it works

The first hop is a gate. It answers, passes the miss down, or fails loudly. These steps show the mechanics.

  1. Pick the identifier you hold. A LinkedIn URL, an email or a person ID. The first hop must accept that identifier, or the row cannot enter the chain.
  2. Send every row to hop one. No filter sits in front of it. This is why its price on a miss matters.
  3. Classify the reply. A hit with a usable field is done. A miss is any empty answer, 404 or error. A timeout is a third case: retry it, do not treat it as a miss.
  4. Test the hit. Check the field against your rule, such as an email status of verified. Fail the test and the row counts as a miss.
  5. Pass misses to hop two. Hop two sees only the leftover rows, so it can be a slower or dearer provider.
  6. Log which hop answered. After a month of logs, you know whether hop one earns its seat.

Here is a worked example with placeholder numbers, not measured results. Take 1,000 rows with a LinkedIn URL. Hop one fills 600 and misses 400. Hop two receives 400 rows, not 1,000, and fills 150.

Now compare two hop-one providers with the same 600 hits. Provider A charges nothing on a miss. Provider B charges one unit per call, so it bills 1,000 units, 400 of them for nothing. Same coverage, 67% more spend.

First hop vs later hops vs the best provider

Three ideas get mixed up here. The first hop is a position in the chain. It is not a quality ranking, and it is not the same as the provider you trust most.

First hopLater hops"Best provider"
What it isPosition: runs on every rowPosition: runs on misses onlyOpinion: highest quality for you
Volume it sees100% of rowsShrinking share of rowsWherever you put it
What matters mostMiss cost and match rateHit quality and coverage of the long tailAccuracy on your own sample
Can be slow or dear?No: you pay it on every rowYes: few rows reach itDepends on its position
Main riskPaying for rows it cannot fillPaying a premium for a thin gainPutting it first and paying full price on every row

The best provider often belongs in hop two. It sees a smaller list, so its higher price is spread over fewer rows.

When it matters

You pay per call, not per hit

Some vendors bill a miss, others do not. FullEnrich lists 0 credits for not found (FullEnrich credit docs, September 2026). Clay charges no Data Credits and no Actions when an enrichment returns no result (Clay pricing, September 2026). Read each vendor's rule before you rank them. A first hop that bills misses is the costliest seat in the chain.

One source may already fill most of your list

If hop one fills most of your rows, a second hop adds little. You will not know until you measure. Run 1,000 rows through hop one alone and read the fill rate before you pay for hop two.

An agent runs the chain

An agent follows the order you give it. Give it a stop rule: call hop two only on a miss, and cap the hops per row. Put the cheapest miss at the top, so an agent that loops on stubborn rows costs you nothing at hop one.

You send mail from the result

A first hop that returns an email without a status leaves you guessing. Pick one that returns a status per address, and decide what passes. LeadOcean gives no refund for bounced emails, so read email_status before you send.

How LeadOcean handles it

LeadOcean is built to sit in hop one, not to run the whole chain. One identifier goes in, and the record we hold comes out. You or your tool decide what happens on a miss (LeadOcean enrich docs, September 2026).

POST /v1/people/enrich takes exactly one of linkedin_url, email, phone or person_id. A hit costs one record. A miss is a 404 and costs nothing. reveal_email is false by default and costs no extra record when you set it (LeadOcean OpenAPI, September 2026). The MCP tool get_lead follows the same rule: a miss costs nothing.

bash
code=$(curl -s -o hop1.json -w "%{http_code}" \
  -X POST "https://api.leadocean.io/v1/people/enrich" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{"linkedin_url":"https://www.linkedin.com/in/jane-doe-example","reveal_email":true}')

if [ "$code" = "404" ]; then
  echo "miss, no charge: send this row to hop two"
elif [ "$code" = "200" ]; then
  jq -r '.data.contact_data.email_status' hop1.json
fi

On a 200, read data.contact_data.email_status and pass the row only on a status you accept, such as verified. A 404 is a clean miss. Treat a 5xx or a timeout as a retry, not a miss.

Three limits shape how you use it. There is no lookup by name plus company: search by domain first, then enrich by person_id. The v2 contact endpoints, such as GET /v2/people/phone, cost one record per call even when they find nothing, so keep them out of hop one. And the rate limit is 100 requests per second per key, which is enough to send a 1,000-row test in seconds.

Pricing is two plans: Free (1,000 records, one-off, no card) and Pro at $499 a month. The free plan covers a full 1,000-row test of hop one. See pricing. To wire it into a table, read put LeadOcean first in a Clay waterfall. For the method, read what is waterfall enrichment. To compare tools, read the best waterfall enrichment tools.

FAQ

What does "hop" mean in a waterfall?

A hop is one provider call in the chain. A row makes a hop each time it moves to the next provider. A row filled at hop one makes one hop. A row filled at hop three has made three.

Should the cheapest provider go first?

Not always. Rank on the cost per row you send, not the price per hit. A provider with a low hit price and a charge on every miss can cost more than a dearer provider that charges only on hits.

How do I test a first hop?

Take 1,000 rows from your real list. Run hop one alone and count the fill rate, the 404s and the status of each email. Then add hop two and measure what it adds. Drop any hop that adds only a few points.

Does LeadOcean run the other hops?

No. LeadOcean is the first hop. Your script, a Clay table, Make, n8n or an agent runs the rest. The app at app.leadocean.io has an Exports page, not a waterfall builder.

Why not make the most accurate provider the first hop?

Because hop one runs on every row, and the most accurate provider is often the dearest. Put it second, behind a cheaper first hop, and verify at the end of the chain.

Make LeadOcean the first hop in your waterfall

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →