Base URLs
Authentication
All endpoints require an API key passed as a Bearer token.Typical flow
1
Create a project
POST /v1/projects — create a project for a listing.2
Upload images
POST /v1/images/upload-url for each file → PUT <uploadUrl> directly to S3. Repeat for every image; no client-side grouping needed.3
Trigger processing
POST /v1/projects/{projectId}/process — enqueues all jobs in one call. HDR bracket sets are detected automatically from EXIF metadata.4
Poll for results
GET /v1/projects/{projectId} — check status. When it’s completed, all resultImageUrl values are ready.Project lifecycle
Projects move throughpending → processing → completed.
- Images can only be uploaded to a
pendingproject. - Processing can only be triggered on a
pendingproject. - Once processing starts the project is locked — create a new project for additional images.
Plans
HDR bracket detection
Upload all bracket exposures flat — no grouping needed on the client. When you callPOST /v1/projects/{projectId}/process, images captured within bracketWindowSeconds of each other with an EV spread ≥ 0.5 stops are automatically grouped as HDR bracket sets.