# Verify

## List Verify Jobs

**get** `/api/alpha/verify`

List Verify jobs with optional filtering and pagination.

Filter by `status`, specific `job_ids`, or creation date range.

### Query Parameters

- `created_at_on_or_after: optional string`

  Include items created at or after this timestamp (inclusive)

- `created_at_on_or_before: optional string`

  Include items created at or before this timestamp (inclusive)

- `expand: optional array of string`

  Optional fields to include (e.g. `result`).

- `job_ids: optional array of string`

  Filter by specific job IDs

- `organization_id: optional string`

- `page_size: optional number`

  Number of items per page

- `page_token: optional string`

  Token for pagination

- `project_id: optional string`

- `status: optional "CANCELLED" or "COMPLETED" or "FAILED" or 2 more`

  Filter by job status

  - `"CANCELLED"`

  - `"COMPLETED"`

  - `"FAILED"`

  - `"PENDING"`

  - `"RUNNING"`

### Cookie Parameters

- `session: optional string`

### Returns

- `items: array of object { id, configuration, document_input_type, 9 more }`

  The list of items.

  - `id: string`

    Unique identifier

  - `configuration: object { target_pages, tier }`

    Verify configuration used for this job

    - `target_pages: optional string`

      Comma-separated page numbers or ranges to analyze (1-based). Omit to analyze all pages. Ignored for non-PDF inputs.

    - `tier: optional "agentic" or "fast"`

      Verify tier: 'fast' runs only the quick deterministic forensic checks (metadata, content integrity, container structure, pixel statistics); 'agentic' (default) runs the full pipeline including the learned detectors and the semantic review pass.

      - `"agentic"`

      - `"fast"`

  - `document_input_type: "file_id" or "parse_job_id" or "url"`

    Type of the document input (FILE)

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    ID of the input file

  - `project_id: string`

    Project this job belongs to

  - `status: "CANCELLED" or "COMPLETED" or "FAILED" or 2 more`

    Current job status: PENDING, RUNNING, COMPLETED, FAILED, or CANCELLED

    - `"CANCELLED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"PENDING"`

    - `"RUNNING"`

  - `user_id: string`

    User who created this job

  - `created_at: optional string`

    Creation datetime

  - `error_message: optional string`

    Error message if job failed

  - `result: optional object { detector_version, overall_score, verdict, 9 more }`

    Result of a Verify (doctored-document) analysis.

    Raw per-signal detail (evidence list, per-family sub-scores, raw regions,
    forensic heatmaps) is available separately via the job's details endpoint.

    - `detector_version: string`

      Version of the detector that produced the result

    - `overall_score: number`

      Overall doctoring likelihood (0 to 1)

    - `verdict: "AUTHENTIC" or "DOCTORED" or "LIKELY_DOCTORED" or 2 more`

      Overall verdict for the document

      - `"AUTHENTIC"`

      - `"DOCTORED"`

      - `"LIKELY_DOCTORED"`

      - `"NO_STRONG_SIGNAL"`

      - `"SUSPICIOUS"`

    - `composite_scores: optional object { ai_generated, document_coherence, document_metadata, 3 more }`

      Composite scores, each answering one question about the document

      - `ai_generated: optional object { applicable, score }`

        Was this content synthesized by a generative model?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `document_coherence: optional object { applicable, score }`

        Does the document's content agree with itself (checksums, arithmetic, machine-readable zones)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `document_metadata: optional object { applicable, score }`

        Does the file's provenance / toolchain history look suspicious? Advisory: individually weak workflow-hygiene signals

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `known_fraud: optional object { applicable, score }`

        Has this asset (or its template) been seen in fraud before?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `manually_edited: optional object { applicable, score }`

        Was this document altered after creation (splice, retype, redact, inpaint)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `recapture: optional object { applicable, score }`

        Was the document captured through a channel that destroys forensic evidence (photo of a screen, print-then-rescan)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

    - `confidence: optional number`

      Confidence in the verdict (0 to 1): how firmly the detected signals support the verdict bucket, independent of the doctoring likelihood itself

    - `error: optional string`

      Error detail when the analysis could not complete

    - `page_count: optional number`

      Number of analysed pages (1 for images/docx)

    - `page_dimensions: optional array of object { height, page, width }`

      Rendered pixel size per page, so region bboxes can be scaled onto the page

      - `height: number`

        Rendered page height in pixels

      - `page: number`

        0-based page index (0 for standalone images)

      - `width: number`

        Rendered page width in pixels

    - `reasoning: optional string`

      Explanation of the verdict

    - `suspect_regions: optional array of object { bbox, explanation, kind, 5 more }`

      Regions that led to the suspected fraud, ranked most-suspect first, each with an explanation of what makes it suspect

      - `bbox: array of number`

        Region bounding box as [x, y, w, h] in page-render pixels

      - `explanation: string`

        Human-readable explanation of what makes this region suspect

      - `kind: string`

        Kind of anomaly detected in this region

      - `page: number`

        0-based page index (0 for standalone images)

      - `score: number`

        Suspicion score for this region (0 to 1)

      - `source: string`

        Detector that flagged this region

      - `primary: optional boolean`

        Whether this region is part of the small set of decisive evidence behind the verdict — the boxes a reviewer should look at first

      - `review: optional string`

        Automated reviewer verdict for this region (confirmed, dismissed, unsure, or empty). A dismissed region can still be surfaced when it is the only place to look; this label says how to read it

    - `synthetic_score: optional number`

      Likelihood (0 to 1) that the document is wholly generated or fabricated rather than a capture of a real document. Null for jobs completed before this score was introduced

    - `tampering_score: optional number`

      Likelihood (0 to 1) that a real captured document was locally edited — a genuine capture with regions altered after the fact. Null for jobs completed before this score was introduced

  - `transaction_id: optional string`

    Idempotency key

  - `updated_at: optional string`

    Update datetime

- `next_page_token: optional string`

  A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

- `total_size: optional number`

  The total number of items available. This is only populated when specifically requested. The value may be an estimate and can be used for display purposes only.

### Example

```http
curl https://api.cloud.llamaindex.ai/api/alpha/verify \
    -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
```

#### Response

```json
{
  "items": [
    {
      "id": "id",
      "configuration": {
        "target_pages": "1,3,5-7",
        "tier": "agentic"
      },
      "document_input_type": "file_id",
      "file_input": "file_input",
      "project_id": "project_id",
      "status": "CANCELLED",
      "user_id": "user_id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "error_message": "error_message",
      "result": {
        "detector_version": "detector_version",
        "overall_score": 0,
        "verdict": "AUTHENTIC",
        "composite_scores": {
          "ai_generated": {
            "applicable": true,
            "score": 0
          },
          "document_coherence": {
            "applicable": true,
            "score": 0
          },
          "document_metadata": {
            "applicable": true,
            "score": 0
          },
          "known_fraud": {
            "applicable": true,
            "score": 0
          },
          "manually_edited": {
            "applicable": true,
            "score": 0
          },
          "recapture": {
            "applicable": true,
            "score": 0
          }
        },
        "confidence": 0,
        "error": "error",
        "page_count": 1,
        "page_dimensions": [
          {
            "height": 0,
            "page": 0,
            "width": 0
          }
        ],
        "reasoning": "reasoning",
        "suspect_regions": [
          {
            "bbox": [
              0,
              0,
              0,
              0
            ],
            "explanation": "explanation",
            "kind": "kind",
            "page": 0,
            "score": 0,
            "source": "source",
            "primary": true,
            "review": "review"
          }
        ],
        "synthetic_score": 0,
        "tampering_score": 0
      },
      "transaction_id": "transaction_id",
      "updated_at": "2019-12-27T18:11:19.117Z"
    }
  ],
  "next_page_token": "next_page_token",
  "total_size": 0
}
```

## Create Verify Job

**post** `/api/alpha/verify`

Create a Verify job.

Analyzes a document for signs of doctoring (splicing, copy-move,
AI generation, metadata tampering, ...). Set `file_input` to a
file ID (`dfl-...`). Optionally provide a `configuration` object
to control the semantic agent.

The job runs asynchronously. Poll `GET /verify/{job_id}`
with `expand=result` to check status and retrieve results.

### Query Parameters

- `organization_id: optional string`

- `project_id: optional string`

### Cookie Parameters

- `session: optional string`

### Body Parameters

- `configuration: optional object { target_pages, tier }`

  Configuration for a Verify job.

  - `target_pages: optional string`

    Comma-separated page numbers or ranges to analyze (1-based). Omit to analyze all pages. Ignored for non-PDF inputs.

  - `tier: optional "agentic" or "fast"`

    Verify tier: 'fast' runs only the quick deterministic forensic checks (metadata, content integrity, container structure, pixel statistics); 'agentic' (default) runs the full pipeline including the learned detectors and the semantic review pass.

    - `"agentic"`

    - `"fast"`

- `file_id: optional string`

  Deprecated: use file_input instead

- `file_input: optional string`

  File ID of the document to analyze

- `transaction_id: optional string`

  Idempotency key scoped to the project. Reusing a key returns the original job; the new request body is ignored.

- `webhook_configuration_ids: optional array of string`

  IDs of saved webhook configurations to notify for this job.

- `webhook_configurations: optional array of object { webhook_events, webhook_headers, webhook_output_format, 2 more }`

  Outbound webhook endpoints to notify on job status changes

  - `webhook_events: optional array of "batch.cancelled" or "batch.error" or "batch.pending" or 35 more`

    Events to subscribe to (e.g. 'parse.success', 'extract.error'). If null, all events are delivered.

    - `"batch.cancelled"`

    - `"batch.error"`

    - `"batch.pending"`

    - `"batch.running"`

    - `"batch.success"`

    - `"classify.cancelled"`

    - `"classify.error"`

    - `"classify.partial_success"`

    - `"classify.pending"`

    - `"classify.running"`

    - `"classify.success"`

    - `"extract.cancelled"`

    - `"extract.error"`

    - `"extract.partial_success"`

    - `"extract.pending"`

    - `"extract.success"`

    - `"parse.cancelled"`

    - `"parse.error"`

    - `"parse.partial_success"`

    - `"parse.pending"`

    - `"parse.running"`

    - `"parse.success"`

    - `"sheets.cancelled"`

    - `"sheets.error"`

    - `"sheets.partial_success"`

    - `"sheets.pending"`

    - `"sheets.success"`

    - `"split.cancelled"`

    - `"split.error"`

    - `"split.pending"`

    - `"split.processing"`

    - `"split.success"`

    - `"unmapped_event"`

    - `"verify.cancelled"`

    - `"verify.error"`

    - `"verify.pending"`

    - `"verify.running"`

    - `"verify.success"`

  - `webhook_headers: optional map[string]`

    Custom HTTP headers sent with each webhook request (e.g. auth tokens)

  - `webhook_output_format: optional string`

    Response format sent to the webhook: 'string' (default) or 'json'

  - `webhook_signing_secret: optional string`

    Shared signing secret used to sign webhook deliveries. When set, each request includes an HMAC-SHA256 signature of the request body in the 'LC-Signature' header (value 'sha256=<hex>'). Recompute the HMAC over the raw request body with this secret to verify the delivery is authentic.

  - `webhook_url: optional string`

    URL to receive webhook POST notifications

### Returns

- `id: string`

  Unique identifier

- `configuration: object { target_pages, tier }`

  Verify configuration used for this job

  - `target_pages: optional string`

    Comma-separated page numbers or ranges to analyze (1-based). Omit to analyze all pages. Ignored for non-PDF inputs.

  - `tier: optional "agentic" or "fast"`

    Verify tier: 'fast' runs only the quick deterministic forensic checks (metadata, content integrity, container structure, pixel statistics); 'agentic' (default) runs the full pipeline including the learned detectors and the semantic review pass.

    - `"agentic"`

    - `"fast"`

- `document_input_type: "file_id" or "parse_job_id" or "url"`

  Type of the document input (FILE)

  - `"file_id"`

  - `"parse_job_id"`

  - `"url"`

- `file_input: string`

  ID of the input file

- `project_id: string`

  Project this job belongs to

- `status: "CANCELLED" or "COMPLETED" or "FAILED" or 2 more`

  Current job status: PENDING, RUNNING, COMPLETED, FAILED, or CANCELLED

  - `"CANCELLED"`

  - `"COMPLETED"`

  - `"FAILED"`

  - `"PENDING"`

  - `"RUNNING"`

- `user_id: string`

  User who created this job

- `created_at: optional string`

  Creation datetime

- `error_message: optional string`

  Error message if job failed

- `result: optional object { detector_version, overall_score, verdict, 9 more }`

  Result of a Verify (doctored-document) analysis.

  Raw per-signal detail (evidence list, per-family sub-scores, raw regions,
  forensic heatmaps) is available separately via the job's details endpoint.

  - `detector_version: string`

    Version of the detector that produced the result

  - `overall_score: number`

    Overall doctoring likelihood (0 to 1)

  - `verdict: "AUTHENTIC" or "DOCTORED" or "LIKELY_DOCTORED" or 2 more`

    Overall verdict for the document

    - `"AUTHENTIC"`

    - `"DOCTORED"`

    - `"LIKELY_DOCTORED"`

    - `"NO_STRONG_SIGNAL"`

    - `"SUSPICIOUS"`

  - `composite_scores: optional object { ai_generated, document_coherence, document_metadata, 3 more }`

    Composite scores, each answering one question about the document

    - `ai_generated: optional object { applicable, score }`

      Was this content synthesized by a generative model?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `document_coherence: optional object { applicable, score }`

      Does the document's content agree with itself (checksums, arithmetic, machine-readable zones)?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `document_metadata: optional object { applicable, score }`

      Does the file's provenance / toolchain history look suspicious? Advisory: individually weak workflow-hygiene signals

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `known_fraud: optional object { applicable, score }`

      Has this asset (or its template) been seen in fraud before?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `manually_edited: optional object { applicable, score }`

      Was this document altered after creation (splice, retype, redact, inpaint)?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `recapture: optional object { applicable, score }`

      Was the document captured through a channel that destroys forensic evidence (photo of a screen, print-then-rescan)?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

  - `confidence: optional number`

    Confidence in the verdict (0 to 1): how firmly the detected signals support the verdict bucket, independent of the doctoring likelihood itself

  - `error: optional string`

    Error detail when the analysis could not complete

  - `page_count: optional number`

    Number of analysed pages (1 for images/docx)

  - `page_dimensions: optional array of object { height, page, width }`

    Rendered pixel size per page, so region bboxes can be scaled onto the page

    - `height: number`

      Rendered page height in pixels

    - `page: number`

      0-based page index (0 for standalone images)

    - `width: number`

      Rendered page width in pixels

  - `reasoning: optional string`

    Explanation of the verdict

  - `suspect_regions: optional array of object { bbox, explanation, kind, 5 more }`

    Regions that led to the suspected fraud, ranked most-suspect first, each with an explanation of what makes it suspect

    - `bbox: array of number`

      Region bounding box as [x, y, w, h] in page-render pixels

    - `explanation: string`

      Human-readable explanation of what makes this region suspect

    - `kind: string`

      Kind of anomaly detected in this region

    - `page: number`

      0-based page index (0 for standalone images)

    - `score: number`

      Suspicion score for this region (0 to 1)

    - `source: string`

      Detector that flagged this region

    - `primary: optional boolean`

      Whether this region is part of the small set of decisive evidence behind the verdict — the boxes a reviewer should look at first

    - `review: optional string`

      Automated reviewer verdict for this region (confirmed, dismissed, unsure, or empty). A dismissed region can still be surfaced when it is the only place to look; this label says how to read it

  - `synthetic_score: optional number`

    Likelihood (0 to 1) that the document is wholly generated or fabricated rather than a capture of a real document. Null for jobs completed before this score was introduced

  - `tampering_score: optional number`

    Likelihood (0 to 1) that a real captured document was locally edited — a genuine capture with regions altered after the fact. Null for jobs completed before this score was introduced

- `transaction_id: optional string`

  Idempotency key

- `updated_at: optional string`

  Update datetime

### Example

```http
curl https://api.cloud.llamaindex.ai/api/alpha/verify \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \
    -d '{}'
```

#### Response

```json
{
  "id": "id",
  "configuration": {
    "target_pages": "1,3,5-7",
    "tier": "agentic"
  },
  "document_input_type": "file_id",
  "file_input": "file_input",
  "project_id": "project_id",
  "status": "CANCELLED",
  "user_id": "user_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "error_message": "error_message",
  "result": {
    "detector_version": "detector_version",
    "overall_score": 0,
    "verdict": "AUTHENTIC",
    "composite_scores": {
      "ai_generated": {
        "applicable": true,
        "score": 0
      },
      "document_coherence": {
        "applicable": true,
        "score": 0
      },
      "document_metadata": {
        "applicable": true,
        "score": 0
      },
      "known_fraud": {
        "applicable": true,
        "score": 0
      },
      "manually_edited": {
        "applicable": true,
        "score": 0
      },
      "recapture": {
        "applicable": true,
        "score": 0
      }
    },
    "confidence": 0,
    "error": "error",
    "page_count": 1,
    "page_dimensions": [
      {
        "height": 0,
        "page": 0,
        "width": 0
      }
    ],
    "reasoning": "reasoning",
    "suspect_regions": [
      {
        "bbox": [
          0,
          0,
          0,
          0
        ],
        "explanation": "explanation",
        "kind": "kind",
        "page": 0,
        "score": 0,
        "source": "source",
        "primary": true,
        "review": "review"
      }
    ],
    "synthetic_score": 0,
    "tampering_score": 0
  },
  "transaction_id": "transaction_id",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Get Verify Job

**get** `/api/alpha/verify/{job_id}`

Get a Verify job by ID.

Returns the job status and configuration. Pass `expand=result`
to include the Verify result (overall score, verdict, confidence,
composite scores, and suspect regions) when the job is complete.

Raw per-signal detail is available via `GET /verify/{job_id}/details`.

### Path Parameters

- `job_id: string`

### Query Parameters

- `expand: optional array of string`

  Optional fields to include (e.g. `result`).

- `organization_id: optional string`

- `project_id: optional string`

### Cookie Parameters

- `session: optional string`

### Returns

- `id: string`

  Unique identifier

- `configuration: object { target_pages, tier }`

  Verify configuration used for this job

  - `target_pages: optional string`

    Comma-separated page numbers or ranges to analyze (1-based). Omit to analyze all pages. Ignored for non-PDF inputs.

  - `tier: optional "agentic" or "fast"`

    Verify tier: 'fast' runs only the quick deterministic forensic checks (metadata, content integrity, container structure, pixel statistics); 'agentic' (default) runs the full pipeline including the learned detectors and the semantic review pass.

    - `"agentic"`

    - `"fast"`

- `document_input_type: "file_id" or "parse_job_id" or "url"`

  Type of the document input (FILE)

  - `"file_id"`

  - `"parse_job_id"`

  - `"url"`

- `file_input: string`

  ID of the input file

- `project_id: string`

  Project this job belongs to

- `status: "CANCELLED" or "COMPLETED" or "FAILED" or 2 more`

  Current job status: PENDING, RUNNING, COMPLETED, FAILED, or CANCELLED

  - `"CANCELLED"`

  - `"COMPLETED"`

  - `"FAILED"`

  - `"PENDING"`

  - `"RUNNING"`

- `user_id: string`

  User who created this job

- `created_at: optional string`

  Creation datetime

- `error_message: optional string`

  Error message if job failed

- `result: optional object { detector_version, overall_score, verdict, 9 more }`

  Result of a Verify (doctored-document) analysis.

  Raw per-signal detail (evidence list, per-family sub-scores, raw regions,
  forensic heatmaps) is available separately via the job's details endpoint.

  - `detector_version: string`

    Version of the detector that produced the result

  - `overall_score: number`

    Overall doctoring likelihood (0 to 1)

  - `verdict: "AUTHENTIC" or "DOCTORED" or "LIKELY_DOCTORED" or 2 more`

    Overall verdict for the document

    - `"AUTHENTIC"`

    - `"DOCTORED"`

    - `"LIKELY_DOCTORED"`

    - `"NO_STRONG_SIGNAL"`

    - `"SUSPICIOUS"`

  - `composite_scores: optional object { ai_generated, document_coherence, document_metadata, 3 more }`

    Composite scores, each answering one question about the document

    - `ai_generated: optional object { applicable, score }`

      Was this content synthesized by a generative model?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `document_coherence: optional object { applicable, score }`

      Does the document's content agree with itself (checksums, arithmetic, machine-readable zones)?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `document_metadata: optional object { applicable, score }`

      Does the file's provenance / toolchain history look suspicious? Advisory: individually weak workflow-hygiene signals

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `known_fraud: optional object { applicable, score }`

      Has this asset (or its template) been seen in fraud before?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `manually_edited: optional object { applicable, score }`

      Was this document altered after creation (splice, retype, redact, inpaint)?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `recapture: optional object { applicable, score }`

      Was the document captured through a channel that destroys forensic evidence (photo of a screen, print-then-rescan)?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

  - `confidence: optional number`

    Confidence in the verdict (0 to 1): how firmly the detected signals support the verdict bucket, independent of the doctoring likelihood itself

  - `error: optional string`

    Error detail when the analysis could not complete

  - `page_count: optional number`

    Number of analysed pages (1 for images/docx)

  - `page_dimensions: optional array of object { height, page, width }`

    Rendered pixel size per page, so region bboxes can be scaled onto the page

    - `height: number`

      Rendered page height in pixels

    - `page: number`

      0-based page index (0 for standalone images)

    - `width: number`

      Rendered page width in pixels

  - `reasoning: optional string`

    Explanation of the verdict

  - `suspect_regions: optional array of object { bbox, explanation, kind, 5 more }`

    Regions that led to the suspected fraud, ranked most-suspect first, each with an explanation of what makes it suspect

    - `bbox: array of number`

      Region bounding box as [x, y, w, h] in page-render pixels

    - `explanation: string`

      Human-readable explanation of what makes this region suspect

    - `kind: string`

      Kind of anomaly detected in this region

    - `page: number`

      0-based page index (0 for standalone images)

    - `score: number`

      Suspicion score for this region (0 to 1)

    - `source: string`

      Detector that flagged this region

    - `primary: optional boolean`

      Whether this region is part of the small set of decisive evidence behind the verdict — the boxes a reviewer should look at first

    - `review: optional string`

      Automated reviewer verdict for this region (confirmed, dismissed, unsure, or empty). A dismissed region can still be surfaced when it is the only place to look; this label says how to read it

  - `synthetic_score: optional number`

    Likelihood (0 to 1) that the document is wholly generated or fabricated rather than a capture of a real document. Null for jobs completed before this score was introduced

  - `tampering_score: optional number`

    Likelihood (0 to 1) that a real captured document was locally edited — a genuine capture with regions altered after the fact. Null for jobs completed before this score was introduced

- `transaction_id: optional string`

  Idempotency key

- `updated_at: optional string`

  Update datetime

### Example

```http
curl https://api.cloud.llamaindex.ai/api/alpha/verify/$JOB_ID \
    -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
```

#### Response

```json
{
  "id": "id",
  "configuration": {
    "target_pages": "1,3,5-7",
    "tier": "agentic"
  },
  "document_input_type": "file_id",
  "file_input": "file_input",
  "project_id": "project_id",
  "status": "CANCELLED",
  "user_id": "user_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "error_message": "error_message",
  "result": {
    "detector_version": "detector_version",
    "overall_score": 0,
    "verdict": "AUTHENTIC",
    "composite_scores": {
      "ai_generated": {
        "applicable": true,
        "score": 0
      },
      "document_coherence": {
        "applicable": true,
        "score": 0
      },
      "document_metadata": {
        "applicable": true,
        "score": 0
      },
      "known_fraud": {
        "applicable": true,
        "score": 0
      },
      "manually_edited": {
        "applicable": true,
        "score": 0
      },
      "recapture": {
        "applicable": true,
        "score": 0
      }
    },
    "confidence": 0,
    "error": "error",
    "page_count": 1,
    "page_dimensions": [
      {
        "height": 0,
        "page": 0,
        "width": 0
      }
    ],
    "reasoning": "reasoning",
    "suspect_regions": [
      {
        "bbox": [
          0,
          0,
          0,
          0
        ],
        "explanation": "explanation",
        "kind": "kind",
        "page": 0,
        "score": 0,
        "source": "source",
        "primary": true,
        "review": "review"
      }
    ],
    "synthetic_score": 0,
    "tampering_score": 0
  },
  "transaction_id": "transaction_id",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Cancel Verify Job

**post** `/api/alpha/verify/{job_id}/cancel`

Cancel a running Verify job.

Stops processing and marks the job as CANCELLED. Returns the updated job. Jobs already in a terminal state (COMPLETED, FAILED, CANCELLED) cannot be cancelled.

### Path Parameters

- `job_id: string`

### Query Parameters

- `organization_id: optional string`

- `project_id: optional string`

### Cookie Parameters

- `session: optional string`

### Returns

- `id: string`

  Unique identifier

- `configuration: object { target_pages, tier }`

  Verify configuration used for this job

  - `target_pages: optional string`

    Comma-separated page numbers or ranges to analyze (1-based). Omit to analyze all pages. Ignored for non-PDF inputs.

  - `tier: optional "agentic" or "fast"`

    Verify tier: 'fast' runs only the quick deterministic forensic checks (metadata, content integrity, container structure, pixel statistics); 'agentic' (default) runs the full pipeline including the learned detectors and the semantic review pass.

    - `"agentic"`

    - `"fast"`

- `document_input_type: "file_id" or "parse_job_id" or "url"`

  Type of the document input (FILE)

  - `"file_id"`

  - `"parse_job_id"`

  - `"url"`

- `file_input: string`

  ID of the input file

- `project_id: string`

  Project this job belongs to

- `status: "CANCELLED" or "COMPLETED" or "FAILED" or 2 more`

  Current job status: PENDING, RUNNING, COMPLETED, FAILED, or CANCELLED

  - `"CANCELLED"`

  - `"COMPLETED"`

  - `"FAILED"`

  - `"PENDING"`

  - `"RUNNING"`

- `user_id: string`

  User who created this job

- `created_at: optional string`

  Creation datetime

- `error_message: optional string`

  Error message if job failed

- `result: optional object { detector_version, overall_score, verdict, 9 more }`

  Result of a Verify (doctored-document) analysis.

  Raw per-signal detail (evidence list, per-family sub-scores, raw regions,
  forensic heatmaps) is available separately via the job's details endpoint.

  - `detector_version: string`

    Version of the detector that produced the result

  - `overall_score: number`

    Overall doctoring likelihood (0 to 1)

  - `verdict: "AUTHENTIC" or "DOCTORED" or "LIKELY_DOCTORED" or 2 more`

    Overall verdict for the document

    - `"AUTHENTIC"`

    - `"DOCTORED"`

    - `"LIKELY_DOCTORED"`

    - `"NO_STRONG_SIGNAL"`

    - `"SUSPICIOUS"`

  - `composite_scores: optional object { ai_generated, document_coherence, document_metadata, 3 more }`

    Composite scores, each answering one question about the document

    - `ai_generated: optional object { applicable, score }`

      Was this content synthesized by a generative model?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `document_coherence: optional object { applicable, score }`

      Does the document's content agree with itself (checksums, arithmetic, machine-readable zones)?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `document_metadata: optional object { applicable, score }`

      Does the file's provenance / toolchain history look suspicious? Advisory: individually weak workflow-hygiene signals

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `known_fraud: optional object { applicable, score }`

      Has this asset (or its template) been seen in fraud before?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `manually_edited: optional object { applicable, score }`

      Was this document altered after creation (splice, retype, redact, inpaint)?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

    - `recapture: optional object { applicable, score }`

      Was the document captured through a channel that destroys forensic evidence (photo of a screen, print-then-rescan)?

      - `applicable: optional boolean`

        Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

      - `score: optional number`

        Score (0 to 1); null when the composite was not applicable

  - `confidence: optional number`

    Confidence in the verdict (0 to 1): how firmly the detected signals support the verdict bucket, independent of the doctoring likelihood itself

  - `error: optional string`

    Error detail when the analysis could not complete

  - `page_count: optional number`

    Number of analysed pages (1 for images/docx)

  - `page_dimensions: optional array of object { height, page, width }`

    Rendered pixel size per page, so region bboxes can be scaled onto the page

    - `height: number`

      Rendered page height in pixels

    - `page: number`

      0-based page index (0 for standalone images)

    - `width: number`

      Rendered page width in pixels

  - `reasoning: optional string`

    Explanation of the verdict

  - `suspect_regions: optional array of object { bbox, explanation, kind, 5 more }`

    Regions that led to the suspected fraud, ranked most-suspect first, each with an explanation of what makes it suspect

    - `bbox: array of number`

      Region bounding box as [x, y, w, h] in page-render pixels

    - `explanation: string`

      Human-readable explanation of what makes this region suspect

    - `kind: string`

      Kind of anomaly detected in this region

    - `page: number`

      0-based page index (0 for standalone images)

    - `score: number`

      Suspicion score for this region (0 to 1)

    - `source: string`

      Detector that flagged this region

    - `primary: optional boolean`

      Whether this region is part of the small set of decisive evidence behind the verdict — the boxes a reviewer should look at first

    - `review: optional string`

      Automated reviewer verdict for this region (confirmed, dismissed, unsure, or empty). A dismissed region can still be surfaced when it is the only place to look; this label says how to read it

  - `synthetic_score: optional number`

    Likelihood (0 to 1) that the document is wholly generated or fabricated rather than a capture of a real document. Null for jobs completed before this score was introduced

  - `tampering_score: optional number`

    Likelihood (0 to 1) that a real captured document was locally edited — a genuine capture with regions altered after the fact. Null for jobs completed before this score was introduced

- `transaction_id: optional string`

  Idempotency key

- `updated_at: optional string`

  Update datetime

### Example

```http
curl https://api.cloud.llamaindex.ai/api/alpha/verify/$JOB_ID/cancel \
    -X POST \
    -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
```

#### Response

```json
{
  "id": "id",
  "configuration": {
    "target_pages": "1,3,5-7",
    "tier": "agentic"
  },
  "document_input_type": "file_id",
  "file_input": "file_input",
  "project_id": "project_id",
  "status": "CANCELLED",
  "user_id": "user_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "error_message": "error_message",
  "result": {
    "detector_version": "detector_version",
    "overall_score": 0,
    "verdict": "AUTHENTIC",
    "composite_scores": {
      "ai_generated": {
        "applicable": true,
        "score": 0
      },
      "document_coherence": {
        "applicable": true,
        "score": 0
      },
      "document_metadata": {
        "applicable": true,
        "score": 0
      },
      "known_fraud": {
        "applicable": true,
        "score": 0
      },
      "manually_edited": {
        "applicable": true,
        "score": 0
      },
      "recapture": {
        "applicable": true,
        "score": 0
      }
    },
    "confidence": 0,
    "error": "error",
    "page_count": 1,
    "page_dimensions": [
      {
        "height": 0,
        "page": 0,
        "width": 0
      }
    ],
    "reasoning": "reasoning",
    "suspect_regions": [
      {
        "bbox": [
          0,
          0,
          0,
          0
        ],
        "explanation": "explanation",
        "kind": "kind",
        "page": 0,
        "score": 0,
        "source": "source",
        "primary": true,
        "review": "review"
      }
    ],
    "synthetic_score": 0,
    "tampering_score": 0
  },
  "transaction_id": "transaction_id",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Get Verify Job Details

**get** `/api/alpha/verify/{job_id}/details`

Get the raw per-signal detail for a completed Verify job.

Forensic drill-down behind the simplified result: the full evidence
list, per-family sub-scores, raw localized regions, and per-page
forensic heatmap overlays (presigned image URLs).

### Path Parameters

- `job_id: string`

### Query Parameters

- `organization_id: optional string`

- `project_id: optional string`

### Cookie Parameters

- `session: optional string`

### Returns

- `job_id: string`

  ID of the Verify job

- `degraded_tools: optional array of object { tool, reason }`

  Checks that could not run on this job (with the reason). A check listed here produced no findings because it could not run, not because the document is clean

  - `tool: string`

    Name of the check

  - `reason: optional string`

    Why the check could not run

- `evidence: optional array of object { code, detail, family, 4 more }`

  Evidence items produced by detection tools

  - `code: string`

    Machine-readable evidence code

  - `detail: string`

    Human-readable evidence detail

  - `family: string`

    Signal family (e.g. metadata, splicing, compression)

  - `score: number`

    Evidence strength score

  - `tool: string`

    Tool that produced this evidence

  - `hard: optional boolean`

    Whether this is hard (conclusive) evidence

  - `metadata_tool: optional map[unknown]`

    Raw values from the tool behind this finding; the shape varies by tool

- `heatmaps: optional array of object { expires_at, kind, page, 2 more }`

  Per-page forensic heatmap overlays as presigned image URLs

  - `expires_at: string`

    The time at which the presigned URL expires

  - `kind: string`

    Producing signal, e.g. double_compression, ela, noise

  - `page: number`

    0-based page index (0 for standalone images)

  - `url: string`

    Presigned URL to the heatmap PNG (page overlay)

  - `score: optional number`

    Producing tool's max score (for ranking)

- `page_dimensions: optional array of object { height, page, width }`

  Rendered pixel size per page, so region bboxes can be scaled onto the page

  - `height: number`

    Rendered page height in pixels

  - `page: number`

    0-based page index (0 for standalone images)

  - `width: number`

    Rendered page width in pixels

- `regions: optional array of object { bbox, detail, kind, 6 more }`

  Suspicious regions localized on rendered pages

  - `bbox: array of number`

    Region bounding box as [x, y, w, h] in page-render pixels

  - `detail: string`

    Human-readable detail about the region

  - `kind: string`

    Kind of anomaly detected in this region

  - `page: number`

    0-based page index (0 for standalone images)

  - `score: number`

    Region-level doctoring likelihood score

  - `source: string`

    Detector/tool that produced this region

  - `primary: optional boolean`

    Whether this region is part of the small set of decisive evidence behind the verdict — the boxes a reviewer should look at first

  - `review: optional string`

    Review status/verdict for this region

  - `review_note: optional string`

    Free-form review note for this region

- `sub_scores: optional map[number]`

  Per-family scores (metadata, ai_generation, splicing, copy_move, compression, noise, coherence, pdf_structure)

### Example

```http
curl https://api.cloud.llamaindex.ai/api/alpha/verify/$JOB_ID/details \
    -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
```

#### Response

```json
{
  "job_id": "job_id",
  "degraded_tools": [
    {
      "tool": "tool",
      "reason": "reason"
    }
  ],
  "evidence": [
    {
      "code": "code",
      "detail": "detail",
      "family": "family",
      "score": 0,
      "tool": "tool",
      "hard": true,
      "metadata_tool": {
        "foo": "bar"
      }
    }
  ],
  "heatmaps": [
    {
      "expires_at": "2019-12-27T18:11:19.117Z",
      "kind": "kind",
      "page": 0,
      "url": "url",
      "score": 0
    }
  ],
  "page_dimensions": [
    {
      "height": 0,
      "page": 0,
      "width": 0
    }
  ],
  "regions": [
    {
      "bbox": [
        0,
        0,
        0,
        0
      ],
      "detail": "detail",
      "kind": "kind",
      "page": 0,
      "score": 0,
      "source": "source",
      "primary": true,
      "review": "review",
      "review_note": "review_note"
    }
  ],
  "sub_scores": {
    "foo": 0
  }
}
```

## Domain Types

### Verify List Response

- `VerifyListResponse object { id, configuration, document_input_type, 9 more }`

  Response for a Verify job.

  - `id: string`

    Unique identifier

  - `configuration: object { target_pages, tier }`

    Verify configuration used for this job

    - `target_pages: optional string`

      Comma-separated page numbers or ranges to analyze (1-based). Omit to analyze all pages. Ignored for non-PDF inputs.

    - `tier: optional "agentic" or "fast"`

      Verify tier: 'fast' runs only the quick deterministic forensic checks (metadata, content integrity, container structure, pixel statistics); 'agentic' (default) runs the full pipeline including the learned detectors and the semantic review pass.

      - `"agentic"`

      - `"fast"`

  - `document_input_type: "file_id" or "parse_job_id" or "url"`

    Type of the document input (FILE)

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    ID of the input file

  - `project_id: string`

    Project this job belongs to

  - `status: "CANCELLED" or "COMPLETED" or "FAILED" or 2 more`

    Current job status: PENDING, RUNNING, COMPLETED, FAILED, or CANCELLED

    - `"CANCELLED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"PENDING"`

    - `"RUNNING"`

  - `user_id: string`

    User who created this job

  - `created_at: optional string`

    Creation datetime

  - `error_message: optional string`

    Error message if job failed

  - `result: optional object { detector_version, overall_score, verdict, 9 more }`

    Result of a Verify (doctored-document) analysis.

    Raw per-signal detail (evidence list, per-family sub-scores, raw regions,
    forensic heatmaps) is available separately via the job's details endpoint.

    - `detector_version: string`

      Version of the detector that produced the result

    - `overall_score: number`

      Overall doctoring likelihood (0 to 1)

    - `verdict: "AUTHENTIC" or "DOCTORED" or "LIKELY_DOCTORED" or 2 more`

      Overall verdict for the document

      - `"AUTHENTIC"`

      - `"DOCTORED"`

      - `"LIKELY_DOCTORED"`

      - `"NO_STRONG_SIGNAL"`

      - `"SUSPICIOUS"`

    - `composite_scores: optional object { ai_generated, document_coherence, document_metadata, 3 more }`

      Composite scores, each answering one question about the document

      - `ai_generated: optional object { applicable, score }`

        Was this content synthesized by a generative model?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `document_coherence: optional object { applicable, score }`

        Does the document's content agree with itself (checksums, arithmetic, machine-readable zones)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `document_metadata: optional object { applicable, score }`

        Does the file's provenance / toolchain history look suspicious? Advisory: individually weak workflow-hygiene signals

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `known_fraud: optional object { applicable, score }`

        Has this asset (or its template) been seen in fraud before?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `manually_edited: optional object { applicable, score }`

        Was this document altered after creation (splice, retype, redact, inpaint)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `recapture: optional object { applicable, score }`

        Was the document captured through a channel that destroys forensic evidence (photo of a screen, print-then-rescan)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

    - `confidence: optional number`

      Confidence in the verdict (0 to 1): how firmly the detected signals support the verdict bucket, independent of the doctoring likelihood itself

    - `error: optional string`

      Error detail when the analysis could not complete

    - `page_count: optional number`

      Number of analysed pages (1 for images/docx)

    - `page_dimensions: optional array of object { height, page, width }`

      Rendered pixel size per page, so region bboxes can be scaled onto the page

      - `height: number`

        Rendered page height in pixels

      - `page: number`

        0-based page index (0 for standalone images)

      - `width: number`

        Rendered page width in pixels

    - `reasoning: optional string`

      Explanation of the verdict

    - `suspect_regions: optional array of object { bbox, explanation, kind, 5 more }`

      Regions that led to the suspected fraud, ranked most-suspect first, each with an explanation of what makes it suspect

      - `bbox: array of number`

        Region bounding box as [x, y, w, h] in page-render pixels

      - `explanation: string`

        Human-readable explanation of what makes this region suspect

      - `kind: string`

        Kind of anomaly detected in this region

      - `page: number`

        0-based page index (0 for standalone images)

      - `score: number`

        Suspicion score for this region (0 to 1)

      - `source: string`

        Detector that flagged this region

      - `primary: optional boolean`

        Whether this region is part of the small set of decisive evidence behind the verdict — the boxes a reviewer should look at first

      - `review: optional string`

        Automated reviewer verdict for this region (confirmed, dismissed, unsure, or empty). A dismissed region can still be surfaced when it is the only place to look; this label says how to read it

    - `synthetic_score: optional number`

      Likelihood (0 to 1) that the document is wholly generated or fabricated rather than a capture of a real document. Null for jobs completed before this score was introduced

    - `tampering_score: optional number`

      Likelihood (0 to 1) that a real captured document was locally edited — a genuine capture with regions altered after the fact. Null for jobs completed before this score was introduced

  - `transaction_id: optional string`

    Idempotency key

  - `updated_at: optional string`

    Update datetime

### Verify Create Response

- `VerifyCreateResponse object { id, configuration, document_input_type, 9 more }`

  Response for a Verify job.

  - `id: string`

    Unique identifier

  - `configuration: object { target_pages, tier }`

    Verify configuration used for this job

    - `target_pages: optional string`

      Comma-separated page numbers or ranges to analyze (1-based). Omit to analyze all pages. Ignored for non-PDF inputs.

    - `tier: optional "agentic" or "fast"`

      Verify tier: 'fast' runs only the quick deterministic forensic checks (metadata, content integrity, container structure, pixel statistics); 'agentic' (default) runs the full pipeline including the learned detectors and the semantic review pass.

      - `"agentic"`

      - `"fast"`

  - `document_input_type: "file_id" or "parse_job_id" or "url"`

    Type of the document input (FILE)

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    ID of the input file

  - `project_id: string`

    Project this job belongs to

  - `status: "CANCELLED" or "COMPLETED" or "FAILED" or 2 more`

    Current job status: PENDING, RUNNING, COMPLETED, FAILED, or CANCELLED

    - `"CANCELLED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"PENDING"`

    - `"RUNNING"`

  - `user_id: string`

    User who created this job

  - `created_at: optional string`

    Creation datetime

  - `error_message: optional string`

    Error message if job failed

  - `result: optional object { detector_version, overall_score, verdict, 9 more }`

    Result of a Verify (doctored-document) analysis.

    Raw per-signal detail (evidence list, per-family sub-scores, raw regions,
    forensic heatmaps) is available separately via the job's details endpoint.

    - `detector_version: string`

      Version of the detector that produced the result

    - `overall_score: number`

      Overall doctoring likelihood (0 to 1)

    - `verdict: "AUTHENTIC" or "DOCTORED" or "LIKELY_DOCTORED" or 2 more`

      Overall verdict for the document

      - `"AUTHENTIC"`

      - `"DOCTORED"`

      - `"LIKELY_DOCTORED"`

      - `"NO_STRONG_SIGNAL"`

      - `"SUSPICIOUS"`

    - `composite_scores: optional object { ai_generated, document_coherence, document_metadata, 3 more }`

      Composite scores, each answering one question about the document

      - `ai_generated: optional object { applicable, score }`

        Was this content synthesized by a generative model?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `document_coherence: optional object { applicable, score }`

        Does the document's content agree with itself (checksums, arithmetic, machine-readable zones)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `document_metadata: optional object { applicable, score }`

        Does the file's provenance / toolchain history look suspicious? Advisory: individually weak workflow-hygiene signals

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `known_fraud: optional object { applicable, score }`

        Has this asset (or its template) been seen in fraud before?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `manually_edited: optional object { applicable, score }`

        Was this document altered after creation (splice, retype, redact, inpaint)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `recapture: optional object { applicable, score }`

        Was the document captured through a channel that destroys forensic evidence (photo of a screen, print-then-rescan)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

    - `confidence: optional number`

      Confidence in the verdict (0 to 1): how firmly the detected signals support the verdict bucket, independent of the doctoring likelihood itself

    - `error: optional string`

      Error detail when the analysis could not complete

    - `page_count: optional number`

      Number of analysed pages (1 for images/docx)

    - `page_dimensions: optional array of object { height, page, width }`

      Rendered pixel size per page, so region bboxes can be scaled onto the page

      - `height: number`

        Rendered page height in pixels

      - `page: number`

        0-based page index (0 for standalone images)

      - `width: number`

        Rendered page width in pixels

    - `reasoning: optional string`

      Explanation of the verdict

    - `suspect_regions: optional array of object { bbox, explanation, kind, 5 more }`

      Regions that led to the suspected fraud, ranked most-suspect first, each with an explanation of what makes it suspect

      - `bbox: array of number`

        Region bounding box as [x, y, w, h] in page-render pixels

      - `explanation: string`

        Human-readable explanation of what makes this region suspect

      - `kind: string`

        Kind of anomaly detected in this region

      - `page: number`

        0-based page index (0 for standalone images)

      - `score: number`

        Suspicion score for this region (0 to 1)

      - `source: string`

        Detector that flagged this region

      - `primary: optional boolean`

        Whether this region is part of the small set of decisive evidence behind the verdict — the boxes a reviewer should look at first

      - `review: optional string`

        Automated reviewer verdict for this region (confirmed, dismissed, unsure, or empty). A dismissed region can still be surfaced when it is the only place to look; this label says how to read it

    - `synthetic_score: optional number`

      Likelihood (0 to 1) that the document is wholly generated or fabricated rather than a capture of a real document. Null for jobs completed before this score was introduced

    - `tampering_score: optional number`

      Likelihood (0 to 1) that a real captured document was locally edited — a genuine capture with regions altered after the fact. Null for jobs completed before this score was introduced

  - `transaction_id: optional string`

    Idempotency key

  - `updated_at: optional string`

    Update datetime

### Verify Get Response

- `VerifyGetResponse object { id, configuration, document_input_type, 9 more }`

  Response for a Verify job.

  - `id: string`

    Unique identifier

  - `configuration: object { target_pages, tier }`

    Verify configuration used for this job

    - `target_pages: optional string`

      Comma-separated page numbers or ranges to analyze (1-based). Omit to analyze all pages. Ignored for non-PDF inputs.

    - `tier: optional "agentic" or "fast"`

      Verify tier: 'fast' runs only the quick deterministic forensic checks (metadata, content integrity, container structure, pixel statistics); 'agentic' (default) runs the full pipeline including the learned detectors and the semantic review pass.

      - `"agentic"`

      - `"fast"`

  - `document_input_type: "file_id" or "parse_job_id" or "url"`

    Type of the document input (FILE)

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    ID of the input file

  - `project_id: string`

    Project this job belongs to

  - `status: "CANCELLED" or "COMPLETED" or "FAILED" or 2 more`

    Current job status: PENDING, RUNNING, COMPLETED, FAILED, or CANCELLED

    - `"CANCELLED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"PENDING"`

    - `"RUNNING"`

  - `user_id: string`

    User who created this job

  - `created_at: optional string`

    Creation datetime

  - `error_message: optional string`

    Error message if job failed

  - `result: optional object { detector_version, overall_score, verdict, 9 more }`

    Result of a Verify (doctored-document) analysis.

    Raw per-signal detail (evidence list, per-family sub-scores, raw regions,
    forensic heatmaps) is available separately via the job's details endpoint.

    - `detector_version: string`

      Version of the detector that produced the result

    - `overall_score: number`

      Overall doctoring likelihood (0 to 1)

    - `verdict: "AUTHENTIC" or "DOCTORED" or "LIKELY_DOCTORED" or 2 more`

      Overall verdict for the document

      - `"AUTHENTIC"`

      - `"DOCTORED"`

      - `"LIKELY_DOCTORED"`

      - `"NO_STRONG_SIGNAL"`

      - `"SUSPICIOUS"`

    - `composite_scores: optional object { ai_generated, document_coherence, document_metadata, 3 more }`

      Composite scores, each answering one question about the document

      - `ai_generated: optional object { applicable, score }`

        Was this content synthesized by a generative model?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `document_coherence: optional object { applicable, score }`

        Does the document's content agree with itself (checksums, arithmetic, machine-readable zones)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `document_metadata: optional object { applicable, score }`

        Does the file's provenance / toolchain history look suspicious? Advisory: individually weak workflow-hygiene signals

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `known_fraud: optional object { applicable, score }`

        Has this asset (or its template) been seen in fraud before?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `manually_edited: optional object { applicable, score }`

        Was this document altered after creation (splice, retype, redact, inpaint)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `recapture: optional object { applicable, score }`

        Was the document captured through a channel that destroys forensic evidence (photo of a screen, print-then-rescan)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

    - `confidence: optional number`

      Confidence in the verdict (0 to 1): how firmly the detected signals support the verdict bucket, independent of the doctoring likelihood itself

    - `error: optional string`

      Error detail when the analysis could not complete

    - `page_count: optional number`

      Number of analysed pages (1 for images/docx)

    - `page_dimensions: optional array of object { height, page, width }`

      Rendered pixel size per page, so region bboxes can be scaled onto the page

      - `height: number`

        Rendered page height in pixels

      - `page: number`

        0-based page index (0 for standalone images)

      - `width: number`

        Rendered page width in pixels

    - `reasoning: optional string`

      Explanation of the verdict

    - `suspect_regions: optional array of object { bbox, explanation, kind, 5 more }`

      Regions that led to the suspected fraud, ranked most-suspect first, each with an explanation of what makes it suspect

      - `bbox: array of number`

        Region bounding box as [x, y, w, h] in page-render pixels

      - `explanation: string`

        Human-readable explanation of what makes this region suspect

      - `kind: string`

        Kind of anomaly detected in this region

      - `page: number`

        0-based page index (0 for standalone images)

      - `score: number`

        Suspicion score for this region (0 to 1)

      - `source: string`

        Detector that flagged this region

      - `primary: optional boolean`

        Whether this region is part of the small set of decisive evidence behind the verdict — the boxes a reviewer should look at first

      - `review: optional string`

        Automated reviewer verdict for this region (confirmed, dismissed, unsure, or empty). A dismissed region can still be surfaced when it is the only place to look; this label says how to read it

    - `synthetic_score: optional number`

      Likelihood (0 to 1) that the document is wholly generated or fabricated rather than a capture of a real document. Null for jobs completed before this score was introduced

    - `tampering_score: optional number`

      Likelihood (0 to 1) that a real captured document was locally edited — a genuine capture with regions altered after the fact. Null for jobs completed before this score was introduced

  - `transaction_id: optional string`

    Idempotency key

  - `updated_at: optional string`

    Update datetime

### Verify Cancel Response

- `VerifyCancelResponse object { id, configuration, document_input_type, 9 more }`

  Response for a Verify job.

  - `id: string`

    Unique identifier

  - `configuration: object { target_pages, tier }`

    Verify configuration used for this job

    - `target_pages: optional string`

      Comma-separated page numbers or ranges to analyze (1-based). Omit to analyze all pages. Ignored for non-PDF inputs.

    - `tier: optional "agentic" or "fast"`

      Verify tier: 'fast' runs only the quick deterministic forensic checks (metadata, content integrity, container structure, pixel statistics); 'agentic' (default) runs the full pipeline including the learned detectors and the semantic review pass.

      - `"agentic"`

      - `"fast"`

  - `document_input_type: "file_id" or "parse_job_id" or "url"`

    Type of the document input (FILE)

    - `"file_id"`

    - `"parse_job_id"`

    - `"url"`

  - `file_input: string`

    ID of the input file

  - `project_id: string`

    Project this job belongs to

  - `status: "CANCELLED" or "COMPLETED" or "FAILED" or 2 more`

    Current job status: PENDING, RUNNING, COMPLETED, FAILED, or CANCELLED

    - `"CANCELLED"`

    - `"COMPLETED"`

    - `"FAILED"`

    - `"PENDING"`

    - `"RUNNING"`

  - `user_id: string`

    User who created this job

  - `created_at: optional string`

    Creation datetime

  - `error_message: optional string`

    Error message if job failed

  - `result: optional object { detector_version, overall_score, verdict, 9 more }`

    Result of a Verify (doctored-document) analysis.

    Raw per-signal detail (evidence list, per-family sub-scores, raw regions,
    forensic heatmaps) is available separately via the job's details endpoint.

    - `detector_version: string`

      Version of the detector that produced the result

    - `overall_score: number`

      Overall doctoring likelihood (0 to 1)

    - `verdict: "AUTHENTIC" or "DOCTORED" or "LIKELY_DOCTORED" or 2 more`

      Overall verdict for the document

      - `"AUTHENTIC"`

      - `"DOCTORED"`

      - `"LIKELY_DOCTORED"`

      - `"NO_STRONG_SIGNAL"`

      - `"SUSPICIOUS"`

    - `composite_scores: optional object { ai_generated, document_coherence, document_metadata, 3 more }`

      Composite scores, each answering one question about the document

      - `ai_generated: optional object { applicable, score }`

        Was this content synthesized by a generative model?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `document_coherence: optional object { applicable, score }`

        Does the document's content agree with itself (checksums, arithmetic, machine-readable zones)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `document_metadata: optional object { applicable, score }`

        Does the file's provenance / toolchain history look suspicious? Advisory: individually weak workflow-hygiene signals

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `known_fraud: optional object { applicable, score }`

        Has this asset (or its template) been seen in fraud before?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `manually_edited: optional object { applicable, score }`

        Was this document altered after creation (splice, retype, redact, inpaint)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

      - `recapture: optional object { applicable, score }`

        Was the document captured through a channel that destroys forensic evidence (photo of a screen, print-then-rescan)?

        - `applicable: optional boolean`

          Whether the checks feeding this composite ran on this document. When false the document was not checked for this — not cleared of it

        - `score: optional number`

          Score (0 to 1); null when the composite was not applicable

    - `confidence: optional number`

      Confidence in the verdict (0 to 1): how firmly the detected signals support the verdict bucket, independent of the doctoring likelihood itself

    - `error: optional string`

      Error detail when the analysis could not complete

    - `page_count: optional number`

      Number of analysed pages (1 for images/docx)

    - `page_dimensions: optional array of object { height, page, width }`

      Rendered pixel size per page, so region bboxes can be scaled onto the page

      - `height: number`

        Rendered page height in pixels

      - `page: number`

        0-based page index (0 for standalone images)

      - `width: number`

        Rendered page width in pixels

    - `reasoning: optional string`

      Explanation of the verdict

    - `suspect_regions: optional array of object { bbox, explanation, kind, 5 more }`

      Regions that led to the suspected fraud, ranked most-suspect first, each with an explanation of what makes it suspect

      - `bbox: array of number`

        Region bounding box as [x, y, w, h] in page-render pixels

      - `explanation: string`

        Human-readable explanation of what makes this region suspect

      - `kind: string`

        Kind of anomaly detected in this region

      - `page: number`

        0-based page index (0 for standalone images)

      - `score: number`

        Suspicion score for this region (0 to 1)

      - `source: string`

        Detector that flagged this region

      - `primary: optional boolean`

        Whether this region is part of the small set of decisive evidence behind the verdict — the boxes a reviewer should look at first

      - `review: optional string`

        Automated reviewer verdict for this region (confirmed, dismissed, unsure, or empty). A dismissed region can still be surfaced when it is the only place to look; this label says how to read it

    - `synthetic_score: optional number`

      Likelihood (0 to 1) that the document is wholly generated or fabricated rather than a capture of a real document. Null for jobs completed before this score was introduced

    - `tampering_score: optional number`

      Likelihood (0 to 1) that a real captured document was locally edited — a genuine capture with regions altered after the fact. Null for jobs completed before this score was introduced

  - `transaction_id: optional string`

    Idempotency key

  - `updated_at: optional string`

    Update datetime

### Verify Get Details Response

- `VerifyGetDetailsResponse object { job_id, degraded_tools, evidence, 4 more }`

  Raw per-signal detail for a completed Verify job.

  Forensic drill-down behind the simplified result: the full evidence list,
  per-family sub-scores, raw localized regions, and heatmap overlays.

  - `job_id: string`

    ID of the Verify job

  - `degraded_tools: optional array of object { tool, reason }`

    Checks that could not run on this job (with the reason). A check listed here produced no findings because it could not run, not because the document is clean

    - `tool: string`

      Name of the check

    - `reason: optional string`

      Why the check could not run

  - `evidence: optional array of object { code, detail, family, 4 more }`

    Evidence items produced by detection tools

    - `code: string`

      Machine-readable evidence code

    - `detail: string`

      Human-readable evidence detail

    - `family: string`

      Signal family (e.g. metadata, splicing, compression)

    - `score: number`

      Evidence strength score

    - `tool: string`

      Tool that produced this evidence

    - `hard: optional boolean`

      Whether this is hard (conclusive) evidence

    - `metadata_tool: optional map[unknown]`

      Raw values from the tool behind this finding; the shape varies by tool

  - `heatmaps: optional array of object { expires_at, kind, page, 2 more }`

    Per-page forensic heatmap overlays as presigned image URLs

    - `expires_at: string`

      The time at which the presigned URL expires

    - `kind: string`

      Producing signal, e.g. double_compression, ela, noise

    - `page: number`

      0-based page index (0 for standalone images)

    - `url: string`

      Presigned URL to the heatmap PNG (page overlay)

    - `score: optional number`

      Producing tool's max score (for ranking)

  - `page_dimensions: optional array of object { height, page, width }`

    Rendered pixel size per page, so region bboxes can be scaled onto the page

    - `height: number`

      Rendered page height in pixels

    - `page: number`

      0-based page index (0 for standalone images)

    - `width: number`

      Rendered page width in pixels

  - `regions: optional array of object { bbox, detail, kind, 6 more }`

    Suspicious regions localized on rendered pages

    - `bbox: array of number`

      Region bounding box as [x, y, w, h] in page-render pixels

    - `detail: string`

      Human-readable detail about the region

    - `kind: string`

      Kind of anomaly detected in this region

    - `page: number`

      0-based page index (0 for standalone images)

    - `score: number`

      Region-level doctoring likelihood score

    - `source: string`

      Detector/tool that produced this region

    - `primary: optional boolean`

      Whether this region is part of the small set of decisive evidence behind the verdict — the boxes a reviewer should look at first

    - `review: optional string`

      Review status/verdict for this region

    - `review_note: optional string`

      Free-form review note for this region

  - `sub_scores: optional map[number]`

    Per-family scores (metadata, ai_generation, splicing, copy_move, compression, noise, coherence, pdf_structure)
