---
title: "Show results"
method: GET
path: "/projects/{id}/results"
tags: ["Projects"]
---

# Show results

`GET /projects/{id}/results`

## Request

- Base URL: `https://api.propertypixel.app/v1`
- URL: `https://api.propertypixel.app/v1/projects/{id}/results`
- 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`)

Show a project's edited results: what is still processing, the newest finished version of each photo and each video, and the versions the user picked. Use this when the user wants to see or review their results. Result URLs are signed for 1 hour.

Works with view-only access.

## Path parameters

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

## Response `200`

Show results

- Results
  - `object` 'results', required
  - `project` Project, required
    - `object` 'project', required
    - `id` string, uuid, required
    - `name` string, required
    - `address` string, nullable, required
    - `property_type` string, nullable, required
    - `photo_count` integer, required
    - `completed_job_count` integer, required
    - `cover` MediaUrl, required
      - `url` string, uri, required
      - `expires_at` string, date-time, required: Signed URL expiry (about 1 hour). Re-fetch for a fresh URL.
    - `studio_url` string, uri, required: Open this project in the PropertyPixel Studio.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, nullable, required
  - `jobs` Job[], required: Jobs still running, the newest finished version of each photo and video, and every pick (newest first).
    - `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)
