PropertyPixel Docs

Complete a signed upload

POST
/uploads/{id}/complete

Finish a signed upload: verifies each stored file (size, type and content) and adds it to the project as a photo. List every file that uploaded; files left out are discarded and their reserved room released. HEIC/HEIF files are converted to JPEG. Returns the new photos and a failed list with a reason per file.

Requires a connection with edit access.

Authorization

headerAuthorizationBearer <token>

An API key from Settings → Developers (pp_live_…), or an OAuth access token.

Path Parameters

id*string

The upload id from POST /uploads.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Header Parameters

Idempotency-Key?string

A unique key (for example a UUID) that makes retries safe. A retry with the same key and body returns the stored response; the same key with a different body returns 422. Keys last 24 hours.

Lengthlength <= 255

Request Body

application/json
  1. body
project_id*string

The same project_id used to create the upload.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
files*array<>
Itemsitems <= 25

Response Body

Complete a signed upload

application/json
  1. response
object*string
photos*array<>
failed*array<>
curl -X POST "https://example.com/uploads/497f6eca-6276-4993-bfeb-53cbbbba6f08/complete" \  -H "Content-Type: application/json" \  -d '{    "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",    "files": [      {        "storage_path": "string",        "filename": "string",        "size": 1,        "content_type": "string"      }    ]  }'
{  "object": "photo_list",  "photos": [    {      "object": "photo",      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",      "filename": "string",      "room_type": "string",      "width": 0,      "height": 0,      "original": {        "url": "http://example.com",        "expires_at": "2019-08-24T14:15:22Z"      },      "thumbnail": {        "url": "http://example.com",        "expires_at": "2019-08-24T14:15:22Z"      },      "created_at": "2019-08-24T14:15:22Z"    }  ],  "failed": [    {      "filename": "string",      "error": "string"    }  ]}