---
title: "List Verifications"
method: GET
path: "/v1/verifications/"
tags: ["Verifications"]
---

# List Verifications

`GET /v1/verifications/`

## Request

- Base URL: `https://api.lumethic.com`
- URL: `https://api.lumethic.com/v1/verifications/`
- Auth: `OAuth2PasswordBearer` (a scheme the document does not define)

Retrieve a paginated list of photo authenticity verifications for your account.

This endpoint returns all verifications you've created, with powerful filtering and search capabilities.
Each verification represents a comparison between a RAW photo file and its corresponding JPEG to
determine authenticity.

**Authentication Required**: Valid API key or JWT token

**Query Parameters**:
- **offset**: Start position for pagination (0-based index)
- **size**: Number of results per page (1-100, default 20)
- **sort_by**: Sort field - created_at (default), updated_at, or status
- **sort_order**: asc or desc (default)
- **search**: Find verifications by name, ID, photo hash, or tag name
- **status**: Filter by processing status
- **result**: Filter by authenticity outcome
- **tags**: Filter by tag names (comma-separated); **tag_match** picks 'all' (default) or 'any'

**Response**: Returns a `VerificationListResponse` containing:
- **items**: Array of verification objects with full details
- **total**: Total number of verifications matching filters
- **offset**: Current offset position
- **size**: Number of items returned
- **total_pages**: Total pages available

**Example Use Cases**:
- Get all completed verifications: `?status=completed`
- Find authentic photos only: `?result=true&status=completed`
- Search by filename: `?search=wedding_photo.jpg`
- Everything tagged both 'client a' and 'wedding': `?tags=client a,wedding`
- Anything tagged 'invoice sent' or 'paid': `?tags=invoice sent,paid&tag_match=any`
- Recent verifications first: `?sort_by=created_at&sort_order=desc`

## Query parameters

- `offset` integer: Number of items to skip for pagination
- `size` integer: Number of items to return per page (max 100)
- `sort_by` string: Field to sort by: 'status', 'created_at', or 'updated_at'
- `sort_order` string: Sort order: 'asc' for ascending or 'desc' for descending
- `search` string, nullable: Search by verification name, ID, or photo hash
- `status` string, nullable: Filter by verification status. Supports comma-separated values: 'pending', 'queued', 'in_progress', 'completed', or 'failed'. Example: 'pending,queued,in_progress'
- `result` string, nullable: Filter by authenticity result: 'true' for authentic images, 'false' for non-authentic
- `tags` string, nullable: Filter by tag names, comma-separated and case-insensitive (max 10). By default every listed tag must be on the verification; see tag_match. Example: 'client a,wedding'
- `tag_match` string: How multiple tags combine: 'all' (default, every tag must match) or 'any' (at least one)
- `request_id` string, uuid, nullable: Only the records that answered this verification request (REQUEST_PATH_PLAN.md §3.4)

## Headers

- `X-API-Key` string, nullable

## Response `200`

Paginated list of verifications

- VerificationListResponse: Paginated list of verifications.
  - `items` VerificationApiResponse[], required: Array of verification objects
    - `id` string, uuid, required
    - `status` 'pending' | 'queued' | 'in_progress' | 'completed' | 'failed', required: Processing status of a photo verification. - pending: Verification created, awaiting processing - queued: Added to processing queue - in_progress: Actively being analyzed - completed: Analysis finished (check result field for outcome) - failed: Analysis failed due to an error
    - `results` VerificationResult[], required
      - `verificator_id` string, uuid, required
      - `verification_id` string, uuid, required
      - `details` object, required
      - `result` boolean, nullable, required
      - `confidence_score` number, required
      - `id` string, uuid, required
      - `updated_at` string, date-time, required
      - `created_at` string, date-time, required
    - `result` boolean, nullable, required
    - `result_confidence` number, nullable, required
    - `assurance_level` 'verified' | 'provisional' | 'provenance' | 'unrated' | 'flagged': Graded authenticity outcome (replaces the flat pass/fail). - verified: RAW+JPEG pair, capture forensically verified, zero abstentions. - provisional: pair, capture verified with one incidental abstention. - provenance: JPEG-only, C2PA capture-claim from a trusted device signer; provenance only, capture NOT forensically verified. - unrated: no usable evidence (see the accompanying reason code). Image-only screening that raises advisory forensic flags also lands here (``unrated_indeterminate``) — the flags stay in ``results[].details`` but, being uncalibrated, they do not brand the photo or demand human review. - flagged: checks failed / tampering indicators. Only ``verified`` and ``provisional`` set ``capture_verified=True``.
    - `assurance_reason` string, nullable
    - `verdict` 'ai_declared' | 'modified_after_signing' | 'provenance_verified' | 'self_declared_ai' | 'unrated': Evidence-report verdict category (EVIDENCE_REPORT_BACKEND_SPEC §3). Additive to ``AssuranceLevel``: the legacy level is derived from the verdict by a fixed mapping, so the two fields can never contradict. Exactly one verdict applies, decided by precedence over fact/declaration findings only — observations never participate.
    - `verdict_reason` 'watermark_detected' | 'c2pa_generative_declared' | 'tampered' | 'invalid_signature' | 'c2pa_trusted_capture' | 'untrusted_signer_generative' | 'iptc_digital_source_type' | 'generator_metadata' | 'container_signature' | 'untrusted_signer' | 'trust_unverified' | 'no_capture_claim' | 'no_trusted_timestamp' | 'unlisted_actions_present' | 'computational_capture_only' | 'unrated_indeterminate' | 'unrated_reviewed_clean' | 'unrated_no_evidence': Machine-readable refinement of the verdict (EVIDENCE_REPORT_BACKEND_SPEC §3). A closed enum so the frontend can pre-translate every value. Includes codes for checks that ship in later phases (watermarks, IPTC) — additive rollout without a schema change.
    - `evidence_report` EvidenceReport: Single-image evidence report (EVIDENCE_REPORT_BACKEND_SPEC §2.2-2.3). Assembled on read from stored verificator results; emits stable codes only.
      - `verdict` 'ai_declared' | 'modified_after_signing' | 'provenance_verified' | 'self_declared_ai' | 'unrated', required: Evidence-report verdict category (EVIDENCE_REPORT_BACKEND_SPEC §3). Additive to ``AssuranceLevel``: the legacy level is derived from the verdict by a fixed mapping, so the two fields can never contradict. Exactly one verdict applies, decided by precedence over fact/declaration findings only — observations never participate.
      - `verdict_reason` 'watermark_detected' | 'c2pa_generative_declared' | 'tampered' | 'invalid_signature' | 'c2pa_trusted_capture' | 'untrusted_signer_generative' | 'iptc_digital_source_type' | 'generator_metadata' | 'container_signature' | 'untrusted_signer' | 'trust_unverified' | 'no_capture_claim' | 'no_trusted_timestamp' | 'unlisted_actions_present' | 'computational_capture_only' | 'unrated_indeterminate' | 'unrated_reviewed_clean' | 'unrated_no_evidence', required: Machine-readable refinement of the verdict (EVIDENCE_REPORT_BACKEND_SPEC §3). A closed enum so the frontend can pre-translate every value. Includes codes for checks that ship in later phases (watermarks, IPTC) — additive rollout without a schema change.
      - `findings` EvidenceFinding[]
        - `id` string, required: Stable finding code, e.g. 'c2pa.manifest' (EVIDENCE_REPORT_BACKEND_SPEC §5.3)
        - `layer` 'provenance' | 'watermark' | 'file' | 'physics', required
        - `kind` 'fact' | 'declaration' | 'observation', required: Kind taxonomy for evidence findings (EVIDENCE_REPORT_BACKEND_SPEC §5.3). Only facts (and generative declarations, for `self_declared_ai`) may drive the verdict; observations never do — enforced in the derivation, which takes no observation input.
        - `result` string, required: Finding-specific result value; observations use consistent|inconsistent|unclear
        - `statement` string, required: i18n code for what was observed; resolved by the frontend
        - `why_it_matters` string, required: i18n code for why it matters (incl. benign explanations)
        - `details` object: Structured measurement evidence for the expandable view. Never contains detector confidences.
      - `coverage` EvidenceCoverage, required: What was and wasn't checked. Mandatory: silent degradation is a spec violation.
        - `ran` string[]: Checks that ran and whose findings are shown
        - `unavailable` CoverageEntry[]: Checks Lumethic cannot run at all yet (e.g. unlicensed watermark detectors)
          - `check` string, required: Stable check id, e.g. 'ela', 'synthid'
          - `reason` string, required: Why the check has this coverage state, e.g. 'non_jpeg_input'
        - `skipped` CoverageEntry[]: Checks skipped for this input (format, resolution, preconditions)
          - `check` string, required: Stable check id, e.g. 'ela', 'synthid'
          - `reason` string, required: Why the check has this coverage state, e.g. 'non_jpeg_input'
        - `withheld` CoverageEntry[]: Checks that ran but whose findings are withheld pending corpus calibration (§9 dark-shipping)
          - `check` string, required: Stable check id, e.g. 'ela', 'synthid'
          - `reason` string, required: Why the check has this coverage state, e.g. 'non_jpeg_input'
        - `errored` string[]: Checks that raised; errors are never findings
      - `boundaries` string, required: i18n code for the what-this-cannot-tell-you block
      - `next_step` 'raw_verification' | 'request_verification': The flip (product spec P6): the constructive path out of the report.
    - `verification_mode` 'raw_pair' | 'image_only': Which inputs a verification was run against. - raw_pair: RAW + JPEG pair through the full comparison pipeline. - image_only: single JPEG through the dedicated C2PA-only flow.
    - `capture_verified` boolean
    - `raw_metadata` object, nullable, required
    - `image_metadata` object, nullable, required
    - `rendition_info` RenditionInfo, required: Rendition information containing transformation and dimension details.
      - `image_thumbnail_url` string, required
      - `raw_thumbnail_url` string, required
      - `rendition_longest_edge` integer, required
      - `rendition_thumbnail_longest_edge` integer, required
      - `crop_percentage` number, required
      - `crop_pixels` CropInfo, required
        - `top` integer, required
        - `bottom` integer, required
        - `left` integer, required
        - `right` integer, required
      - `rotation_degrees` number, required
      - `resize_info` ResizeInfo, required
        - `width_scale` number, required
        - `height_scale` number, required
      - `bounding_box` BoundingBox, required: Represents a bounding box that can be non-rectangular due to perspective transforms.
        - `corners` array[], required
          - unknown[]
            - unknown
      - `original_image_width` integer, required
      - `original_image_height` integer, required
      - `original_raw_width` integer, required
      - `original_raw_height` integer, required
      - `rendition_image_width` integer, required
      - `rendition_image_height` integer, required
      - `rendition_raw_width` integer, required
      - `rendition_raw_height` integer, required
      - `thumbnail_image_width` integer, required
      - `thumbnail_image_height` integer, required
      - `thumbnail_raw_width` integer, required
      - `thumbnail_raw_height` integer, required
      - `exp_shift` number, nullable
      - `gamma_power` number, nullable
      - `gamma_slope` number, nullable
      - `no_auto_bright` boolean
      - `lens_correction_aperture` number, nullable
      - `lens_correction_focal_length` number, nullable
      - `lens_correction_distance` number, nullable
      - `lens_correction_crop_factor` number, nullable
      - `lens_correction_source` string, nullable
      - `lens_correction_fit` object, nullable
      - `alignment_transform` AlignmentTransformInfo: Exact aligned-pair geometry for the PSD export (PSD_EXPORT_PLAN.md step 3). Maps: original JPEG -> (per-axis scale) -> working JPEG -> (homography) -> working raw frame -> (translate by -crop_offset) -> aligned crop. Present only when the pipeline tracked every step exactly.
        - `homography` array[], required
          - number[]
        - `crop_offset_x` integer, required
        - `crop_offset_y` integer, required
        - `image_working_width` integer, required
        - `image_working_height` integer, required
        - `raw_working_width` integer, required
        - `raw_working_height` integer, required
        - `image_scale_x` number, required
        - `image_scale_y` number, required
        - `raw_scale_x` number, required
        - `raw_scale_y` number, required
      - `alignment_fallback` boolean
      - `alignment_inlier_count` integer, nullable
      - `alignment_rmse_px` number, nullable
      - `alignment_rmse_frac` number, nullable
      - `alignment_ecc_refined` boolean, nullable
      - `alignment_template_outside_fraction` number, nullable
      - `alignment_raw_covered_fraction` number, nullable
      - `alignment_inlier_extent_fraction` number, nullable
      - `alignment_residual_by_radius` number[], nullable
    - `rendition_corrected_info` RenditionInfo, required: Rendition information containing transformation and dimension details.
      - `image_thumbnail_url` string, required
      - `raw_thumbnail_url` string, required
      - `rendition_longest_edge` integer, required
      - `rendition_thumbnail_longest_edge` integer, required
      - `crop_percentage` number, required
      - `crop_pixels` CropInfo, required
        - `top` integer, required
        - `bottom` integer, required
        - `left` integer, required
        - `right` integer, required
      - `rotation_degrees` number, required
      - `resize_info` ResizeInfo, required
        - `width_scale` number, required
        - `height_scale` number, required
      - `bounding_box` BoundingBox, required: Represents a bounding box that can be non-rectangular due to perspective transforms.
        - `corners` array[], required
          - unknown[]
            - unknown
      - `original_image_width` integer, required
      - `original_image_height` integer, required
      - `original_raw_width` integer, required
      - `original_raw_height` integer, required
      - `rendition_image_width` integer, required
      - `rendition_image_height` integer, required
      - `rendition_raw_width` integer, required
      - `rendition_raw_height` integer, required
      - `thumbnail_image_width` integer, required
      - `thumbnail_image_height` integer, required
      - `thumbnail_raw_width` integer, required
      - `thumbnail_raw_height` integer, required
      - `exp_shift` number, nullable
      - `gamma_power` number, nullable
      - `gamma_slope` number, nullable
      - `no_auto_bright` boolean
      - `lens_correction_aperture` number, nullable
      - `lens_correction_focal_length` number, nullable
      - `lens_correction_distance` number, nullable
      - `lens_correction_crop_factor` number, nullable
      - `lens_correction_source` string, nullable
      - `lens_correction_fit` object, nullable
      - `alignment_transform` AlignmentTransformInfo: Exact aligned-pair geometry for the PSD export (PSD_EXPORT_PLAN.md step 3). Maps: original JPEG -> (per-axis scale) -> working JPEG -> (homography) -> working raw frame -> (translate by -crop_offset) -> aligned crop. Present only when the pipeline tracked every step exactly.
        - `homography` array[], required
          - number[]
        - `crop_offset_x` integer, required
        - `crop_offset_y` integer, required
        - `image_working_width` integer, required
        - `image_working_height` integer, required
        - `raw_working_width` integer, required
        - `raw_working_height` integer, required
        - `image_scale_x` number, required
        - `image_scale_y` number, required
        - `raw_scale_x` number, required
        - `raw_scale_y` number, required
      - `alignment_fallback` boolean
      - `alignment_inlier_count` integer, nullable
      - `alignment_rmse_px` number, nullable
      - `alignment_rmse_frac` number, nullable
      - `alignment_ecc_refined` boolean, nullable
      - `alignment_template_outside_fraction` number, nullable
      - `alignment_raw_covered_fraction` number, nullable
      - `alignment_inlier_extent_fraction` number, nullable
      - `alignment_residual_by_radius` number[], nullable
    - `raw_photo_hash` string, nullable, required
    - `image_photo_hash` string, nullable, required
    - `image_thumbnail_url` string, nullable, required
    - `name` string, nullable
    - `short_code` string, nullable
    - `request_id` string, uuid, nullable
    - `pipeline_build` string, nullable
    - `tags` TagResponse[]: Account tags on this verification
      - `id` string, uuid, required: Tag identifier
      - `name` string, required: Display name (case preserved; matching is case-insensitive)
      - `color` string, nullable: Optional '#rrggbb' colour
    - `comment_count` integer: Number of internal comments on this verification
    - `account_id` string, uuid, required
    - `updated_at` string, date-time, required
    - `created_at` string, date-time, required
  - `total` integer, required: Total number of verifications matching the query
  - `offset` integer, required: Current offset position in the result set
  - `size` integer, required: Number of items returned in this page
  - `total_pages` integer, required: Total number of pages available

## Other responses

- `400`: Invalid filter or sort parameter
- `404`: Not found
- `422`: Validation Error

---

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