Zestio
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

Sign up for an account, then create an API key in your dashboard Settings. Or create one via the API:

curl -X POST https://zestio.de/api/keys \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"name": "My App"}'

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

2. Make a Request

curl -X POST https://zestio.de/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 an API key passed as a Bearer token:

API Key

Authorization: Bearer zest_xxxxxxxx...

Create API keys in your dashboard Settings after signing up. Each key is prefixed zest_ and the full secret is only shown once.

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: "flux-kontext", "ideogram", "flux-pro" (auto selects for best result)
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.

Ready to integrate?

Sign up for a free account and get API access with 2 free credits.