Get a job's result

Retrieve a job's result: the same envelope the assess call returns. Poll until the status leaves processing, or pass wait to long-poll.

GET /v1/jobs/:jobId

Request

GET /v1/jobs/:jobId
Authorization: Bearer {api_key}

Path parameters

ParameterTypeDescriptionRequired
jobIdstring (uuid)Identifier of the job to fetch, as returned by POST /v1/assess.Yes

Query parameters

ParameterTypeDescriptionRequired
waitbooleanBlock until the job completes. true (the default) waits up to 30 s before falling back to the polling response; false returns immediately. Changes response timing and HTTP status only — never the result shape.No

Example request

curl -X GET "https://api.pixelsystems.com/v1/jobs/550e8400-e29b-41d4-a716-446655440000?wait=true" \
  -H "Authorization: Bearer {api_key}"

Response (200)

Result for the job (poll or long-poll)

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

Example response

{
  "jobId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "verdict": {
    "assessment": "ai_generated",
    "confidence": "high",
    "display": {
      "label": "AI Generated",
      "title": "AI Generated",
      "description": "AI Generated image detected"
    },
    "dimensions": [
      {
        "key": "ai_detection",
        "label": "AI generation",
        "assessment": "likely_ai",
        "score": 0.82,
        "confidence": "high"
      }
    ]
  },
  "expertReview": {
    "verdict": {
      "assessment": "authentic",
      "display": {
        "label": "Authentic",
        "title": "Authentic",
        "description": "Authentic image detected"
      }
    },
    "dimensions": [
      {
        "key": "ai_detection",
        "label": "AI generation",
        "assessment": "authentic"
      }
    ],
    "confidence": "high",
    "notes": "Our specialist found no signs of AI generation.",
    "reviewedAt": "2024-06-02T09:30:00Z"
  },
  "metadata": { "customer_case_id": "case-123" },
  "createdAt": "2024-06-01T12:00:00Z",
  "completedAt": "2024-06-01T12:05:00Z"
}

Notes

When a verification specialist has reviewed a single-file job, the response includes an expertReview field — see ExpertReview for its fields. The verdict field keeps returning the automated result either way, so integrations that read it are unaffected; read expertReview to apply the specialist's correction. The field is present while the job's status is completed: during a re-analysis the job reads as processing without it, and the review returns when the new run finishes. Multi-file jobs omit the field.