---
title: "Returns one of the caller's jobs together with its per-check verification detail."
method: GET
path: "/api/jobs/{uuid}"
tags: ["jobs"]
---

# Returns one of the caller's jobs together with its per-check verification detail.

`GET /api/jobs/{uuid}`

## Request

- Base URL: `https://api.pricklymails.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pricklymails.com/api/jobs/{uuid}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

## Path parameters

- `uuid` string, required

## Response `200`

The job and its per-check verification detail.

- GetVerificationResponse: `GET /api/verify/{uuid}` response body.
  - `job_uuid` string, required: Public UUID of the job.
  - `status` string, required: Current status of the job.
  - `verifications` VerificationResultDto[], required: Per-email verification rows.
    - `checks` ChecksDto, required: Individual check results for a verified email address.
      - `catchall` union, required: A boolean provider or risk-flag check result (`disposable`, `role`, `free`, `catchall`).
        - boolean: The check ran; carries the real boolean result.
        - object: The check was not run.
          - `status` string, required: Always `"skipped"`.
      - `disposable` union, required: A boolean provider or risk-flag check result (`disposable`, `role`, `free`, `catchall`).
        - boolean: The check ran; carries the real boolean result.
        - object: The check was not run.
          - `status` string, required: Always `"skipped"`.
      - `free` union, required: A boolean provider or risk-flag check result (`disposable`, `role`, `free`, `catchall`).
        - boolean: The check ran; carries the real boolean result.
        - object: The check was not run.
          - `status` string, required: Always `"skipped"`.
      - `mx` union, required: MX record check result.
        - object: The check ran.
          - `records` string[], required: MX record hostnames found for the domain.
          - `valid` boolean, required: Whether the domain publishes at least one usable mail exchanger.
        - object: The check was not run.
          - `status` string, required: Always `"skipped"`.
      - `role` union, required: A boolean provider or risk-flag check result (`disposable`, `role`, `free`, `catchall`).
        - boolean: The check ran; carries the real boolean result.
        - object: The check was not run.
          - `status` string, required: Always `"skipped"`.
      - `smtp` SmtpCheckDto, required: SMTP deliverability probe result.
        - `status` 'deliverable' | 'undeliverable' | 'unknown' | 'skipped', required: Outcome of the SMTP probe.
      - `syntax` boolean, required: Whether the email syntax is valid.
      - `typo` TypoCheckDto, required: Typo detection result.
        - `detected` boolean, required: Whether a domain typo was detected.
        - `suggested_domain` string, nullable: Corrected domain only (e.g. `"gmail.com"`), present on `GET /api/verify/{uuid}` when a typo was detected.
        - `suggestion` string, nullable: Full corrected address (e.g. `"user@gmail.com"`), only ever present on the synchronous submit response where the raw email is available in-request.
    - `domain_hash` string, required: Keyed hash of the email domain.
    - `duration_ms` integer, nullable
    - `durations` CheckDurationsDto, required: Per-check elapsed time in milliseconds.
      - `catchall` integer, nullable
      - `disposable` integer, nullable
      - `free` integer, nullable
      - `mx` integer, nullable
      - `role` integer, nullable
      - `smtp` integer, nullable
      - `syntax` integer, nullable
      - `typo` integer, nullable
    - `email_hash` string, required: Keyed hash of the normalized email address.
    - `reason` string, required
    - `recommendation` string, required: Deterministic list-cleaning action derived from `status`, `reason`, and the typo flag: one of `"remove"`, `"send"`, or `"review"`. A presentation layer on top of the honest verdict above, not a replacement for it.
    - `score` integer, required
    - `status` string, required
    - `verified_at` string, required

## Other responses

- `400`: Malformed `uuid`.
- `401`: Missing or invalid API key, session token, or agent token.
- `403`: The key or agent token lacks the `results:read` scope.
- `404`: No job with that uuid belongs to the caller.

---

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