Auto-enhance, perspective correction, sky replacement, and blurring — endpoints for cleaning up real estate photos.
The image enhancement endpoints fix common listing photo issues: dull lighting, tilted perspective, gray skies, and privacy-sensitive content. Each accepts an image URL and returns the processed result.
Auto-enhance
POST/api/enhance
Automatically improves lighting, color balance, sharpness, and contrast. Use this as the default cleanup pass on raw listing photos.
URL of the photo to enhance, or a base64 data URI.
highFidelityboolean
Non-generative enhancement: adjusts only light and sharpness, keeping colors, materials, object sizes, and framing exactly as in the original photo. Best when the result must faithfully match the original. When true, preserveOriginalFraming is ignored.
Default:false
preserveOriginalFramingboolean
Keep the exact original framing, aspect ratio, and resolution (no edge crop). The enhancement is still AI-generated, so colors and materials may shift slightly — if they must stay identical, use highFidelity instead. Ignored when highFidelity is true.
Default:false
propertyIdstring
Optional id of the property (from list_properties or create_property) this photo belongs to. When set, the result is saved into that property's gallery — visible and editable from the app — instead of only returned as a URL.
Response time: ~10 seconds per image. The response can include multiple URLs when the model produces variants.
Enhance + correct perspective
POST/api/enhance_and_correct_perspective
Same as /api/enhance but with an upstream perspective-warp pass that straightens vertical lines. Use it when listing photos were shot with a phone tilted up or down.
Non-generative enhancement plus perspective correction: adjusts only light, sharpness, and perspective, keeping colors, materials, and object sizes exactly as in the original. When true, preserveOriginalFraming is ignored.
Default:false
preserveOriginalFramingboolean
Preserve the input's framing, aspect ratio, and resolution exactly (no edge crop) while correcting perspective. The enhancement is still AI-generated, so colors and materials may shift slightly — use highFidelity if they must stay identical. Ignored when highFidelity is true.
Default:false
propertyIdstring
Optional id of the property (from list_properties or create_property) this photo belongs to. When set, the result is saved into that property's gallery — visible and editable from the app — instead of only returned as a URL.
Response shape: same as /api/enhance (array). Response time: ~15 seconds per image.
Sky replacement
POST/api/sky_blue
Replace a gray, overcast, or washed-out sky and improve the lighting. Defaults to a clean blue sky; use skyStyle to pick a different time of day (sunrise, sunset, night).
Which sky and lighting to apply. Defaults to "sunny". Options: "sunny" (bright clear blue sky), "sunny-no-reflections" (blue sky with soft, even light — ideal for shaded or north-facing exteriors), "sunrise" (warm golden morning), "dawn" (sunset / dusk tones), "night" (twilight with warm interior and facade lighting).
Values:sunnysunny-no-reflectionssunrisedawnnight
Default:sunny
propertyIdstring
Optional id of the property (from list_properties or create_property) this photo belongs to. When set, the result is saved into that property's gallery — visible and editable from the app — instead of only returned as a URL.
Response time: ~10 seconds per image. Note:output is a single object here, not an array.
Blur objects
POST/api/blur
Auto-blurs sensitive content like faces, license plates, or branded logos. Useful for portal-compliant exterior shots.
Parameters
apiKeystringrequired
Your API key.
imageUrlstringrequired
URL of the source photo.
objectsToBlurstringrequired
Comma-separated list of what to blur. Examples: "faces", "license plates", "logos", "faces, license plates".
propertyIdstring
Optional id of the property (from list_properties or create_property) this photo belongs to. When set, the result is saved into that property's gallery — visible and editable from the app — instead of only returned as a URL.