List edit options
List every edit PropertyPixel can make, with the exact keys to pass to other tools: enhancement types for enhance_photos (combinable, e.g. blue_skies + improve_lighting), design styles and variation limits for stage_photos, room types, Photo to Video settings for create_video (1–9 photos; one makes a clip, several make a Listing Tour), the Ultra HD add-on, and credit prices. Call this when the user asks what you can do, or before choosing keys you are unsure of.
Works with view-only access.
AuthorizationBearer <token>An API key from Settings → Developers (pp_live_…), or an OAuth access token.
List edit options
application/json- response
object*stringenhancement_types*array<>Edits for enhance_photos. Combine several in one request; the price is per photo, not per type.
design_styles*array<>Furniture styles for stage_photos.
room_types*array<>Room labels; staging furnishes the room as this type.
staging*video*ultra_hd*credit_costs*Credits per unit. 100 credits = one standard photo enhancement.
curl -X GET "https://example.com/edit-options"{ "object": "edit_options", "enhancement_types": [ { "key": "string", "label": "string", "description": "string", "preview_url": "http://example.com" } ], "design_styles": [ { "key": "string", "label": "string", "description": "string", "preview_url": "http://example.com" } ], "room_types": [ { "key": "string", "label": "string" } ], "staging": { "min_variations": 0, "max_variations": 0, "default_variations": 0 }, "video": { "min_photos": 0, "max_photos": 0, "clip_seconds": [ 0 ], "default_clip_seconds": 0, "aspect_ratios": [ "string" ], "default_aspect_ratio": "string", "crossfade_seconds": 0 }, "ultra_hd": { "description": "string", "credits_per_photo": 0 }, "credit_costs": { "enhancement_per_photo": 0, "ultra_hd_per_photo": 0, "staging_per_variation": 0, "video_per_photo": 0, "recommendation_apply_per_photo": 0, "recommendations": 0 }}Create an upload link POST
Create a private link (with a QR code) the user opens on their phone or computer to add photos to a project, with no login. Use it when the user needs to send photos you can't receive directly, such as photos on their phone. Share the url, or show the QR code, and tell the user the link works for 2 hours. Photos appear in the project as they upload. To follow progress, call get_project and read upload_link.status and upload_link.photos_received until status is done (the user tapped Done), or simply ask the user to tell you when they've finished. Requires a connection with edit access.
Enhance photos POST
Apply AI edits (lighting, declutter, blue skies, day to dusk, furniture removal, and more) to listing photos. Costs 100 credits per photo, plus 100 per photo with ultra_hd. All enhancement_types are combined into one result per photo. Select photos with photo_ids, or project_id + all_photos: true. Defaults: ultra_hd false; edits start from the original photo unless versions names a prior result. Spends credits in two steps. Call without quote_id first: you get a quote (cost, balance after, warnings) and nothing is spent. Show the cost to the user and wait for a yes, then call again with the same arguments plus quote_id. The quote lasts 10 minutes and only matches identical arguments. Results are asynchronous: this returns job IDs right away (status pending). Poll get_job_status with the job IDs, waiting poll_after_ms between calls, until each job is completed or failed. Failed jobs are refunded automatically. Requires a connection with edit access. Spends credits. Without `quote_id` it returns 409 `quote_required` with a quote and spends nothing. Resend with `quote_id` to run, or send `auto_confirm: true` to skip the quote.