Skip to content

Create Verify Job

VerifyCreateResponse alpha().verify().create(VerifyCreateParamsparams = VerifyCreateParams.none(), RequestOptionsrequestOptions = RequestOptions.none())
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.

ParametersExpand Collapse
VerifyCreateParams params
Optional<String> organizationId
Optional<String> projectId
Optional<Configuration> configuration

Configuration for a Verify job.

Optional<String> targetPages

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

Optional<Tier> tier

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.

One of the following:
AGENTIC("agentic")
FAST("fast")
DeprecatedOptional<String> fileId

Deprecated: use file_input instead

Optional<String> fileInput

File ID of the document to analyze

maxLength200
Optional<String> transactionId

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

maxLength255
Optional<List<String>> webhookConfigurationIds

IDs of saved webhook configurations to notify for this job.

Optional<List<WebhookConfiguration>> webhookConfigurations

Outbound webhook endpoints to notify on job status changes

Optional<List<WebhookEvent>> webhookEvents

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

One of the following:
BATCH_CANCELLED("batch.cancelled")
BATCH_ERROR("batch.error")
BATCH_PENDING("batch.pending")
BATCH_RUNNING("batch.running")
BATCH_SUCCESS("batch.success")
CLASSIFY_CANCELLED("classify.cancelled")
CLASSIFY_ERROR("classify.error")
CLASSIFY_PARTIAL_SUCCESS("classify.partial_success")
CLASSIFY_PENDING("classify.pending")
CLASSIFY_RUNNING("classify.running")
CLASSIFY_SUCCESS("classify.success")
EXTRACT_CANCELLED("extract.cancelled")
EXTRACT_ERROR("extract.error")
EXTRACT_PARTIAL_SUCCESS("extract.partial_success")
EXTRACT_PENDING("extract.pending")
EXTRACT_SUCCESS("extract.success")
PARSE_CANCELLED("parse.cancelled")
PARSE_ERROR("parse.error")
PARSE_PARTIAL_SUCCESS("parse.partial_success")
PARSE_PENDING("parse.pending")
PARSE_RUNNING("parse.running")
PARSE_SUCCESS("parse.success")
SHEETS_CANCELLED("sheets.cancelled")
SHEETS_ERROR("sheets.error")
SHEETS_PARTIAL_SUCCESS("sheets.partial_success")
SHEETS_PENDING("sheets.pending")
SHEETS_SUCCESS("sheets.success")
SPLIT_CANCELLED("split.cancelled")
SPLIT_ERROR("split.error")
SPLIT_PENDING("split.pending")
SPLIT_PROCESSING("split.processing")
SPLIT_SUCCESS("split.success")
UNMAPPED_EVENT("unmapped_event")
VERIFY_CANCELLED("verify.cancelled")
VERIFY_ERROR("verify.error")
VERIFY_PENDING("verify.pending")
VERIFY_RUNNING("verify.running")
VERIFY_SUCCESS("verify.success")
Optional<WebhookHeaders> webhookHeaders

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

Optional<String> webhookOutputFormat

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

Optional<String> webhookSigningSecret

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=’). Recompute the HMAC over the raw request body with this secret to verify the delivery is authentic.

Optional<String> webhookUrl

URL to receive webhook POST notifications

ReturnsExpand Collapse
class VerifyCreateResponse:

Response for a Verify job.

String id

Unique identifier

Configuration configuration

Verify configuration used for this job

Optional<String> targetPages

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

Optional<Tier> tier

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.

One of the following:
AGENTIC("agentic")
FAST("fast")
DocumentInputType documentInputType

Type of the document input (FILE)

One of the following:
FILE_ID("file_id")
PARSE_JOB_ID("parse_job_id")
URL("url")
String fileInput

ID of the input file

String projectId

Project this job belongs to

Status status

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

One of the following:
CANCELLED("CANCELLED")
COMPLETED("COMPLETED")
FAILED("FAILED")
PENDING("PENDING")
RUNNING("RUNNING")
String userId

User who created this job

Optional<LocalDateTime> createdAt

Creation datetime

formatdate-time
Optional<String> errorMessage

Error message if job failed

Optional<Result> result

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.

String detectorVersion

Version of the detector that produced the result

double overallScore

Overall doctoring likelihood (0 to 1)

maximum1
minimum0
Verdict verdict

Overall verdict for the document

One of the following:
AUTHENTIC("AUTHENTIC")
DOCTORED("DOCTORED")
LIKELY_DOCTORED("LIKELY_DOCTORED")
NO_STRONG_SIGNAL("NO_STRONG_SIGNAL")
SUSPICIOUS("SUSPICIOUS")
Optional<CompositeScores> compositeScores

Composite scores, each answering one question about the document

Optional<AiGenerated> aiGenerated

Was this content synthesized by a generative model?

Optional<Boolean> applicable

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

Optional<Double> score

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

maximum1
minimum0
Optional<DocumentCoherence> documentCoherence

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

Optional<Boolean> applicable

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

Optional<Double> score

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

maximum1
minimum0
Optional<DocumentMetadata> documentMetadata

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

Optional<Boolean> applicable

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

Optional<Double> score

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

maximum1
minimum0
Optional<KnownFraud> knownFraud

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

Optional<Boolean> applicable

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

Optional<Double> score

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

maximum1
minimum0
Optional<ManuallyEdited> manuallyEdited

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

Optional<Boolean> applicable

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

Optional<Double> score

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

maximum1
minimum0
Optional<Recapture> recapture

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

Optional<Boolean> applicable

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

Optional<Double> score

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

maximum1
minimum0
Optional<Double> confidence

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

maximum1
minimum0
Optional<String> error

Error detail when the analysis could not complete

Optional<Long> pageCount

Number of analysed pages (1 for images/docx)

minimum1
Optional<List<PageDimension>> pageDimensions

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

long height

Rendered page height in pixels

long page

0-based page index (0 for standalone images)

long width

Rendered page width in pixels

Optional<String> reasoning

Explanation of the verdict

Optional<List<SuspectRegion>> suspectRegions

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

List<long> bbox

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

String explanation

Human-readable explanation of what makes this region suspect

String kind

Kind of anomaly detected in this region

long page

0-based page index (0 for standalone images)

double score

Suspicion score for this region (0 to 1)

maximum1
minimum0
String source

Detector that flagged this region

Optional<Boolean> primary

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

Optional<String> review

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

Optional<Double> syntheticScore

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

maximum1
minimum0
Optional<Double> tamperingScore

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

maximum1
minimum0
Optional<String> transactionId

Idempotency key

Optional<LocalDateTime> updatedAt

Update datetime

formatdate-time

Create Verify Job

package ai.llamaindex.llamacloud.example;

import ai.llamaindex.llamacloud.client.LlamaCloudClient;
import ai.llamaindex.llamacloud.client.okhttp.LlamaCloudOkHttpClient;
import ai.llamaindex.llamacloud.models.alpha.verify.VerifyCreateParams;
import ai.llamaindex.llamacloud.models.alpha.verify.VerifyCreateResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv();

        VerifyCreateResponse verify = client.alpha().verify().create();
    }
}
{
  "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"
}
Returns Examples
{
  "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"
}
Note for AI agents: this documentation is built for programmatic access. - Overview of all docs: https://developers.llamaindex.ai/llms.txt - Any page is available as raw Markdown by appending index.md to its URL — e.g. https://developers.llamaindex.ai/llamaparse/parse/getting_started/index.md - Agent-friendly REST search APIs live under https://developers.llamaindex.ai/api/ — search (BM25 full-text), grep (regex), read (fetch a page), and list (browse the doc tree). See https://developers.llamaindex.ai/llms.txt for parameters. - A hosted documentation MCP server is available at https://developers.llamaindex.ai/mcp. If you support MCP, you can ask the user to install it for browsing these docs directly (an alternative to the REST API). Setup: https://developers.llamaindex.ai/for-agents/mcp/ - Other LlamaIndex tooling for agents — the LlamaParse Platform MCP server, agent skills and plugins, and the n8n node — is mapped at https://developers.llamaindex.ai/for-agents/