Resources

The objects the API returns and how they reference each other. Endpoint pages link each field's type to its definition here.

JobResult

The v1 job result. The same object is returned by the synchronous response, the poll, and every future result surface.

FieldTypeDescriptionRequired
jobIdstring (uuid)Single job identity, shared by every path that references this job.Yes
statusJobStatusLifecycle status of a job. verdict is present only when completed. rejected is reserved for future use and is not currently produced.Yes
verdictVerdictOverall verdict for a completed job, with per-dimension breakdown. Present only when status is completed.No
expertReviewExpertReviewPresent when a verification specialist has reviewed this job. Single-file jobs only.No
errorJobResultErrorWhy a job ended in error or rejected status; present only for those statuses. Uses the same code vocabulary as endpoint errors.No
metadataobjectCaller-supplied metadata, echoed back verbatim.No
createdAtstring (date-time)When the job was created (ISO 8601).Yes
completedAtstring (date-time)When processing finished (ISO 8601).No

Verdict

Overall verdict for a completed job, with per-dimension breakdown. Present only when status is completed.

FieldTypeDescriptionRequired
assessmentstringHeadline, customer-actionable assessment (e.g. ai_generated).Yes
confidenceConfidenceLevelQualitative confidence in the enclosing assessment: the verdict's overall call, or a single dimension's result.Yes
displayVerdictDisplayRendered English copy for a verdict. assessment remains the stable machine key; branch and localize off that, never off these strings. Absent on jobs completed before this copy was stored.No
dimensionsarray<Dimension>The axes of analysis behind the verdict, each with its own result.Yes

Dimension

An axis of analysis carrying its own aggregated result.

FieldTypeDescriptionRequired
keystringStable identifier of the dimension, e.g. ai_detection.Yes
labelstringHuman-readable name of the dimension.Yes
assessmentstringAggregated assessment for this dimension.No
scorenumberAggregated numeric score in [0, 1].Yes
confidenceConfidenceLevelQualitative confidence in the enclosing assessment: the verdict's overall call, or a single dimension's result.No

VerdictDisplay

Rendered English copy for a verdict. assessment remains the stable machine key; branch and localize off that, never off these strings. Absent on jobs completed before this copy was stored.

FieldTypeDescriptionRequired
labelstringShort badge or table-cell copy, e.g. Inconclusive.Yes
titlestringHeadline for the main result indicator.No
descriptionstringSupporting sentence shown under the headline.No

ExpertReview

Present when a verification specialist has reviewed this job. Single-file jobs only.

FieldTypeDescriptionRequired
verdictExpertReviewVerdictThe specialist's overall verdict override. Present when the specialist overrode the overall verdict; the job's top-level verdict field keeps returning the automated result either way.No
dimensionsarray<ExpertReviewDimension>The dimensions the specialist overrode. Dimensions not listed here stand as the automated analysis reported them.Yes
confidenceConfidenceLevelThe specialist's confidence in this review.Yes
notesstringThe specialist's note to you, when they left one.No
reviewedAtstring (date-time)When the review was completed (ISO 8601).Yes

ExpertReviewVerdict

The specialist's overall verdict override. Present when the specialist overrode the overall verdict; the job's top-level verdict field keeps returning the automated result either way.

FieldTypeDescriptionRequired
assessmentstringThe specialist's overall verdict.Yes
displayVerdictDisplayRendered copy for the specialist's verdict.No

ExpertReviewDimension

One dimension the specialist overrode.

FieldTypeDescriptionRequired
keystringStable identifier of the dimension, from the same vocabulary as verdict.dimensions[].key.Yes
labelstringHuman-readable name of the dimension.Yes
assessmentstringThe specialist's finding for this dimension. Categorical: an expert review carries no numeric score.Yes

ConfidenceLevel

Qualitative confidence in the enclosing assessment: the verdict's overall call, or a single dimension's result.

Values: high, medium, low

JobStatus

Lifecycle status of a job. verdict is present only when completed. rejected is reserved for future use and is not currently produced.

Values: processing, completed, error, rejected

JobSummary

Compact summary of one job in a list; GET /v1/jobs/{jobId} returns the full result.

FieldTypeDescriptionRequired
idstring (uuid)Job identifier: the jobId accepted by GET /v1/jobs/{jobId}.Yes
applicationIdstringThe application the job belongs to.Yes
metadataobjectCaller-supplied metadata, echoed back verbatim. {} when the submission carried none.Yes
createdAtstring (date-time) | nullWhen the job was created (ISO 8601).Yes
updatedAtstring (date-time) | nullWhen the job last changed (ISO 8601).Yes

PaginationMeta

Page-based pagination metadata for list responses.

FieldTypeDescriptionRequired
pageintegerThe page this response contains, counted from 1.Yes
pageSizeintegerNumber of jobs per page used for this response.Yes
totalintegerTotal number of jobs across all pages.Yes
totalPagesintegerTotal number of pages at this pageSize.Yes
hasNextPagebooleantrue when a page after this one exists.Yes

JobResultError

Why a job ended in error or rejected status; present only for those statuses. Uses the same code vocabulary as endpoint errors.

FieldTypeDescriptionRequired
codeErrorCodeStable machine-readable error code. The same vocabulary is used by every endpoint and by jobs in error or rejected status.Yes
messagestringHuman-readable explanation of why the job failed.Yes

ApiError

Standard error response returned by every public endpoint (Decision 5C).

FieldTypeDescriptionRequired
codeErrorCodeStable machine-readable error code. The same vocabulary is used by every endpoint and by jobs in error or rejected status.Yes
messagestringHuman-readable explanation of the error.Yes
detailsobjectOptional structured context for the error (e.g. the offending field).No
retryAfterintegerSeconds to wait before retrying. Set for rate_limited and service_unavailable.No

ErrorCode

Stable machine-readable error code. The same vocabulary is used by every endpoint and by jobs in error or rejected status.

Values: invalid_request, unsupported_format, unauthorized, forbidden, not_found, file_too_large, unprocessable, rate_limited, internal_error, service_unavailable

See Error codes for what each code means and how to respond.