---
title: "Get a job"
method: GET
path: "/jobs/{id}"
tags: ["Jobs"]
---

# Get a job

`GET /jobs/{id}`

## Request

- Base URL: `https://api.propertypixel.app/v1`
- URL: `https://api.propertypixel.app/v1/jobs/{id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://llflgtovnkrsjqydycyu.supabase.co/auth/v1/oauth/authorize`, token URL `https://llflgtovnkrsjqydycyu.supabase.co/auth/v1/oauth/token`)

Get one job's status, progress and result URL (signed for 1 hour).

Works with view-only access.

## Path parameters

- `id` string, uuid, required: Job ID.

## Response `200`

Get a job

- Job
  - `object` 'job', required
  - `id` string, uuid, required
  - `kind` 'enhancement' | 'staging' | 'video', required
  - `status` 'pending' | 'processing' | 'completed' | 'failed' | 'cancelled', required
  - `progress` number, nullable, required: Percent complete while processing.
  - `stage` string, nullable, required
  - `project_id` string, uuid, nullable, required
  - `photo_id` string, uuid, nullable, required: Source photo (null for multi-photo videos).
  - `photo_ids` string[], required: All source photos, in order (videos can have up to 9).
  - `source_job_id` string, uuid, nullable, required: Prior version this edit was applied on top of.
  - `enhancement_types` string[], required
  - `design_style` string, nullable, required
  - `ultra_hd` boolean, required
  - `credits` integer, nullable, required
  - `picked` boolean, required
  - `watermarked` boolean, required
  - `result` MediaUrl, required
    - `url` string, uri, required
    - `expires_at` string, date-time, required: Signed URL expiry (about 1 hour). Re-fetch for a fresh URL.
  - `thumbnail` MediaUrl, required
    - `url` string, uri, required
    - `expires_at` string, date-time, required: Signed URL expiry (about 1 hour). Re-fetch for a fresh URL.
  - `error` object, nullable, required: Why the job failed. Failed jobs are refunded automatically.
    - `code` string, required
    - `message` string, required
  - `created_at` string, date-time, required
  - `completed_at` string, date-time, nullable, required

## Other responses

- `400`: The request is invalid. Codes: `validation_failed`.
- `401`: Missing, invalid or revoked credential. Codes: `unauthorized`.
- `403`: The credential can't do this. View-only connections get forbidden_scope on writes. Codes: `forbidden_scope`, `forbidden`.
- `404`: The resource doesn't exist in this workspace. Codes: `not_found`.
- `429`: Too many requests for this connection. Codes: `rate_limited`.
- `500`: Something failed on our side. Retry later. Codes: `internal`.

---

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