Skip to main content

Bulk email find

Trigger email enrichment for selected leads. Skips leads that already have a usable email.

POST/api/leads/bulk-email-find
HTTP referenceScope leads:read + leads:writeUpdated April 25, 2026

This page documents the canonical HTTP contract for this endpoint.

The route also accepts a top-level ID array. Selection is restricted to the authenticated organization. Leads already containing a usable email, a prior not_found result (unless skip_previously_attempted is false), or lacking both full name and LinkedIn URL are skipped. This illustrates the queued case; queued responses also include job_id, operation_run_id, operationRunId, processable_ids, and optionally process_limit. Poll a queued operation with GET /api/operation-runs/{operation_run_id} (requires jobs:read). When no leads qualify it returns success and skipped details without job IDs.

Body parameters

  • lead_ids · optional

    array<string>

    Explicit lead IDs. Provide either lead_ids or selection.

  • selection · optional

    object

    BulkSelectionModel using ids or descriptor mode.

  • scope · optional

    string

    Optional org or user selection scope.

  • source_table_id · optional

    string

    Optional Research Table context.

  • source_table_scope · optional

    string

    Optional company or lead Research Table scope.

  • process_limit · optional

    integer

    Max number of leads to process (1-10000).

  • skip_previously_attempted · optional

    boolean

    Skip leads with prior not_found result. Defaults to true.

Errors

StatusMeaning
400Invalid payload or some leads not found.
401Invalid API key or missing auth.
403Missing leads:read or leads:write scope.
404No leads found for selection.
503Failed to queue email finding task.

Docs