Add photos to a project
Add photos to a project from public https image URLs (image_urls) or from files the user attached in ChatGPT (files). Up to 25 photos per call; a project holds at most 100. Each file must be JPEG, PNG, WebP, HEIC or HEIF and at most 25 MB. Dropbox and Google Drive share links work if they are shared publicly. HEIC is converted to JPEG and large photos are downscaled to a 2048px long edge, like the web app. Returns the new photos (use their IDs with enhance_photos, stage_photos or create_video) and a failed list with a reason per source; report failures to the user rather than retrying blindly. If the user has photos on their phone or computer and no links, call create_upload_link instead.
Requires a connection with edit access.
AuthorizationBearer <token>An API key from Settings → Developers (pp_live_…), or an OAuth access token.
project_id*stringThe project to add photos to.
^([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)$uuidIdempotency-Key?stringA 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.
length <= 255application/json- body
image_urls?array<>Public https image URLs (max 25).
items <= 25files?array<>Files the user attached in ChatGPT.
items <= 25Add photos to a project
application/json- response
object*stringphotos*array<>failed*array<>project_photo_count*integerPhotos now in the project (max 100).
curl -X POST "https://example.com/projects/497f6eca-6276-4993-bfeb-53cbbbba6f08/photos" \ -H "Content-Type: application/json" \ -d '{}'{ "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": [ { "source": "string", "error": "string" } ], "project_photo_count": 0}