Editing

Enhance photos

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 before and after, whether the balance covers it, and whether results will be watermarked) 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.

post/enhancements

Request

  • Base URL: https://api.propertypixel.app/v1
  • URL: https://api.propertypixel.app/v1/enhancements
  • 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)

Headers

Idempotency-Keystring

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.

Request body

photo_idsstring[]

The photos to use. Get IDs from get_project. Alternatively pass project_id with all_photos: true.

project_idstring uuid

The project the photos belong to. Required with all_photos; with photo_ids it must match their project.

all_photosboolean

Use every photo in project_id instead of listing photo_ids.

enhancement_typesEnhancementType[] required

One or more edits to apply together in a single result, e.g. ["improve_lighting", "blue_skies"]. See list_edit_options for every type.

room_type'living_room' | 'dining_room' | 'kitchen' | 'entrance' | 'hallway' | 'master_bedroom' | 'bedroom' | 'kids_bedroom' | 'guest_bedroom' | 'master_bathroom' | 'bathroom' | 'guest_bathroom' | 'powder_room' | 'office' | 'study' | 'laundry_room' | 'storage_room' | 'maid_room' | 'closet' | 'gym' | 'home_theater' | 'pool' | 'balcony' | 'terrace' | 'patio' | 'garden' | 'rooftop' | 'garage' | 'parking' | 'exterior_front' | 'exterior_back' | 'building_exterior' | 'view' | 'basement' | 'other'
ultra_hdboolean

Upscale each result to at least 4K, for 100 extra credits per result. Default false.

versionsobject

Edit on top of a previous result instead of the original: map of photo_id → job_id of a completed job on that photo. Photos not listed use the original.

quote_idstring uuid

The id of a quote the user confirmed. Omit it to get a quote first; nothing is spent without one.

auto_confirmboolean

REST with a personal API key only. Skip the quote step and spend immediately. For trusted scripts; ignored for app (OAuth) connections, which always get a quote.

Response

Enhance photos

object'job_batch' required
credits_spentinteger required
poll_after_msinteger required

Suggested wait before calling get_job_status.

Changes

No recorded changes to this operation across all 1 revision of this API.