Skip to main content
GET
Single work email lookup result

When to use this endpoint

You submitted a single work email lookup and want its result. Poll until status is completed or failed; polling is free and a Retry-After header says when to poll again while the job is still running.

Example request

cURL
Set JOB_ID to the job_id from the submit response, and FORAGER_API_KEY and FORAGER_ACCOUNT_ID as in the quickstart.

Example response

200 (illustrative values)
A completed job has result set to found or not_found; a failed job has an error_code.

Credits

This endpoint is free: it does not use credits. See API credits and pricing.

Authorizations

X-API-KEY
string
header
required

Path Parameters

account_id
integer
required
job_id
string<uuid>
required

Response

The envelope every lookup result is returned in, single or bulk.

Narrower than the model: the vendor, the verification count and the miss reason are recorded but never returned, since they expose how the waterfall is built and would make swapping a provider a breaking change.

status is how far a lookup got; result is what it concluded, and is null on a row that never ran.

emails is not a column on the job - it comes from the PersonWorkEmail rows sharing its lookup_key, read from a map in the serializer context so a batch costs one cross-database query rather than one per row. Each entry carries its own validation_status, since a person's addresses can be verified separately.

job_id
string<uuid>
required
read-only
status
enum<string>
required
  • queued - Queued
  • running - Running
  • awaiting_provider - Awaiting provider
  • completed - Completed
  • failed - Failed
Available options:
queued,
running,
awaiting_provider,
completed,
failed
emails
string[]
required
read-only

Every confirmed address for this person, shortest first, each with its verdict.

error_code
required
  • person_not_found - No person matched the LinkedIn identifier
  • no_current_employer - The person has no current employer on record
  • input_unresolved - Submitted input could not be resolved
  • provider_error - Provider error
  • expired - Expired before completion
  • internal_error - Internal error
Available options:
person_not_found,
no_current_employer,
input_unresolved,
provider_error,
expired,
internal_error
person_id
integer | null
required
read-only
submitted_lookup
object
required
read-only

Echo the row exactly as it was sent.

Nested rather than four top-level fields, so "what you sent" is never confused with "what we searched", and so the top level keeps its rule that an absent value is null - here a blank string is the honest echo.

Spelled out key by key rather than dumped from the stored model, so a new column on SubmittedFields becomes a deliberate addition here instead of appearing in the response unasked.

date_created
string<date-time>
required
read-only
date_completed
string<date-time> | null
required
read-only
result
string
required
read-only
Last modified on November 1, 2026