API Documentation

Developer API

Zestio API Reference

Integrate AI-powered real estate image enhancement and virtual staging into your application.

Quick Start

1. Get an API Key

Create an API key in your Settings page, or via the API:

curl -X POST https://zestio.ai/api/keys \
  -H "Content-Type: application/json" \
  -d '{"name": "My App"}' \
  -b "your-session-cookie"

# Response: { "secret": "zest_a1b2c3d4..." }

2. Make a Request

curl -X POST https://zestio.ai/api/enhance \
  -H "Authorization: Bearer zest_a1b2c3d4..." \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/property.jpg",
    "enhancementType": "sky",
    "model": "auto"
  }'

Authentication

All API requests require authentication. Use one of:

API Key (recommended)

Authorization: Bearer zest_xxxxxxxx...

For server-to-server integrations. Create keys in Settings.

Session Cookie

Cookie: sb-xxx-auth-token=...

For browser-based requests from the Zestio dashboard.

API Key Management

GET/api/keys

List all your API keys (secrets are never returned)

Response

{
  "keys": [
    {
      "id": "uuid",
      "name": "My App",
      "key_prefix": "zest_a1b",
      "last_used_at": "2026-04-21T...",
      "created_at": "2026-04-21T...",
      "is_active": true
    }
  ]
}
POST/api/keys

Create a new API key. The secret is only returned once.

Parameters

NameTypeRequiredDescription
namestringNoLabel for the key (default: "Default Key")

Response

{
  "key": { "id": "uuid", "name": "My App", "key_prefix": "zest_a1b" },
  "secret": "zest_a1b2c3d4e5f6...",
  "warning": "Store this key securely. It cannot be retrieved again."
}
DELETE/api/keys

Revoke an API key

Parameters

NameTypeRequiredDescription
key_idstringYesThe key ID to revoke

Response

{ "success": true }

Image Enhancement

Enhance, transform, and clean up property photos.

POST/api/enhance
1-2 credits

Enhance a property image using AI. Supports sky replacement, season changes, decluttering, and more.

Parameters

NameTypeRequiredDescription
imagestringYesImage URL or base64 data URL
enhancementTypestringNoType of enhancement (see table below). Default: "auto"
modelstringNoModel: "auto", "flux-kontext", "sdxl", "ideogram"
customPromptstringNoCustom prompt (overrides enhancementType)

Response

{
  "success": true,
  "output": "https://replicate.delivery/...",
  "creditsUsed": 1,
  "model": "auto"
}

Enhancement Types

TypeNameDescription
autoAuto EnhanceGeneral enhancement
skyBlue SkyClear sunny sky
sky_sunsetGolden SunsetWarm golden hour
sky_dramaticDramatic CloudsMoody cinematic sky
twilightVirtual TwilightBlue hour with warm glow
season_summerSummerLush green landscape
season_autumnAutumnGolden fall foliage
season_winterWinterPristine snow scene
curb_appealCurb AppealGreen lawn & landscaping
facade_refreshFacade RefreshClean painted exterior
object_removalObject RemovalRemove unwanted items
declutterDeclutterRemove personal items

Virtual Staging

Stage empty rooms with AI-generated furniture.

POST/api/staging
2-3 credits

Apply virtual staging to an empty room photo.

Parameters

NameTypeRequiredDescription
imagestringYesImage URL or base64 data URL of the empty room
modelstringNoModel: "interior-design" (default), "flux-depth", "decor8"
roomTypestringNoRoom: living, bedroom, kitchen, dining, bathroom, office, basement, patio
furnitureStylestringNoStyle: modern, scandinavian, luxury, minimalist, industrial, bohemian, midcentury, farmhouse

Response

{
  "success": true,
  "output": "https://replicate.delivery/...",
  "model": "interior-design",
  "creditsUsed": 2,
  "creditsRemaining": 48
}

Staging Models

ModelCreditsEst. CostDescription
interior-design2~$0.006Best value, ControlNet-based
flux-depth2~$0.02Depth-based staging
decor83~$0.20Premium professional staging

Error Responses

StatusMeaning
400Missing or invalid parameters
401Missing or invalid authentication
402Insufficient credits
429Rate limit exceeded (10 req/hr for free tier)
500Server error or AI model failure

Rate Limits

All endpoints are rate limited to 10 requests per hour per IP/API key. Enterprise plans have higher limits. Contact us for custom arrangements.

Need Help?

Questions about integration, custom pricing, or enterprise plans.