Skip to main content
Recipe prompt
Waterfall enrichment: Forager as one step between two other data providersWaterfall enrichment: Forager as one step between two other data providers

What you’ll build

One step in a pipeline that tries sources in order and stops at the first answer. The Forager step takes a record, asks for a work email, and returns a clean result your pipeline can act on. Other steps in your pipeline stay yours to design.

Steps

1

Choose the input

The single work email lookup takes either first_name, last_name and domain, or linkedin_public_identifier alone. Never send a domain and an identifier together; the request is refused. Prefer the identifier when you have it.
2

Submit the lookup

The call returns a job_id at once. The lookup itself runs asynchronously.
3

Poll until the job is terminal

Poll Single work email lookup result. status moves through queued, running and awaiting_provider to completed or failed. While the job is running, a Retry-After header suggests when to poll again. Polling is free.
4

Normalize the result

Map the job to the three outcomes your pipeline understands.

Handle the edge cases

  • Not found. not_found is a normal answer, not a failure. Log it and move on.
  • 403. The key is missing or invalid. Stop the run and alert someone, because every record will fail.
  • 429. Back off and retry. The poll loop above waits for Retry-After on a 429. The single lookup is rate limited for interactive use, so for many records use the bulk recipe. See errors and rate limits.
  • Credits. A work email lookup costs 5 credits, charged only when an address is found. Polling never costs credits. See credit pricing.
  • Email shape. The spec describes each entry in emails as an address with a verdict, but types it as a string.

Bulk work emails

Submit many lookups in one request.

Single work email lookup

Request and response reference.

Errors and rate limits

What is documented today.
Last modified on October 28, 2026