---
title: "Get Email Finder job results"
method: GET
path: "/v1/email-finder/{job_id}/"
tags: ["Email Finder"]
---

# Get Email Finder job results

`GET /v1/email-finder/{job_id}/`

## Request

- Base URL: `https://api.evaboot.com`
- URL: `https://api.evaboot.com/v1/email-finder/{job_id}/`
- Auth: HTTP bearer

Retrieve one email finder job by the `job_id` you got when you created it. This is the polling endpoint for a bulk job, and for a single lookup that answered `202`. A single lookup whose credits could not be taken returns `402` instead of its result.

While the job is queued or running you get `202` with its status and `progress` percentage. Once every prospect has been processed you get `200` with the full result list, each entry carrying the email found and its deliverability verdict. Polling once every few seconds is plenty.

Reading a job is free — the credits for the emails found were already taken when the job finished.

## Path parameters

- `job_id` string, required

## Response `200`

OK

- EmailFinderJobOut: Bulk job response (completed) — matches legacy ``EmailFinderJobDetailSerializer``.
  - `id` string, required: Identifier of the job, as returned when you created it.
  - `status` string, required: Job status: `pending`, `running`, `complete` or `failed`.
  - `created_at` string, required: When the job was created.
  - `updated_at` string, required: When the job last changed.
  - `progress` integer: Percentage of the job's prospects that have finished, from 0 to 100.
  - `prospect_count` integer, required: Number of prospects submitted.
  - `error_message` string: Job-level failure message. Empty when the job itself did not fail; a single prospect failing is reported on that prospect.
  - `job_type` string: Always `email_finder` for jobs created on this endpoint.
  - `prospects` EmailFinderProspectOut[], required: One result per prospect submitted, in the order received.
    - `id` string: Identifier of this prospect within the job.
    - `first_name` string: First name as submitted.
    - `last_name` string: Last name as submitted.
    - `full_name` string: First and last name joined, for convenience.
    - `company_name` string: Company name as submitted.
    - `company_domain` string: Company domain as submitted.
    - `found_email` string, nullable: The email address we found, or `null` when no address could be found for this prospect.
    - `email_validity` string, nullable: Deliverability verdict for `found_email`: `safe` (deliverable), `riskier` (accepts mail but less certain), `suspect` or `invalid`. `null` when no email was found.
    - `status` string: Outcome for this prospect: `pending` (queued), `processing` (being looked up), `complete` (finished, see `found_email`) or `failed` (no email found, or the lookup errored).
    - `error_message` string, nullable: Why this prospect failed, or `null` when it did not fail.
  - `write_back` WriteBackOut[]: One entry per integration the results are written back to. Empty unless the job was created with `write_back`.
    - `integration_id` string, required: The integration written to.
    - `delivery_id` string, required: Identifier of this write-back, for support.
    - `status` string, required: `running`, `completed` or `failed`.
    - `error` string: Why it failed, when it did.
    - `counts` WriteBackCountsOut
      - `updated` integer: Records that received the result.
      - `skipped` object: Records left unchanged, by reason: `has_email`, `has_status`, `email_changed`, `record_missing`, `no_email`, `email_status`, `duplicate`.
      - `failed` integer: Records the integration refused.

## Other responses

- `202`: Accepted
- `401`: The API key is missing, malformed or unknown.
- `402`: Not enough credits to cover the request.
- `404`: No such resource, or it belongs to another account.

---

[API](https://skmtc.dev/evaboot/apis/evaboot-public-api.md) · [All operations](https://skmtc.dev/evaboot/apis/evaboot-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/evaboot/apis/evaboot-public-api/revisions/d770494f2718?raw)
