request_id back immediately, and the work happens in the background.
Lifecycle
1
Submit
POST /async answers 201, POST /lead_finder/async answers 202. The body carries the
identifier you will poll on: id for enrichment, request_id for Lead Finder.2
Processing
The
GET endpoint answers 202 with status: "processing" and a message. No data, no
leads, no summary.3
Done
The
GET endpoint answers 200 with status: "terminated". summary and the results array
are now present.Status values
A Lead Finder search that matched nothing is reported as
terminated with an empty leads array
and summary.leads_found at 0. It is a normal outcome, not an error.Polling recipe
Prefer a webhook whenever you can. When you do have to poll, wait a few seconds between attempts and stop onterminated, keeping an eye on the
rate limit.
GET /lead_finder/async/{request_id} and treat 404 as the unknown-id case
instead of 406.
Per lead status
Inside a terminated enrichment, each row ofdata carries its own enriched boolean. A batch can
be terminated while some of its leads could not be enriched. Check enriched before using a row.