Skip to main content

What Katalo does

Katalo is an AI virtual staging platform for real-estate imagery. It turns empty, dated, or unfinished property photos into photorealistic, listing-ready images so agents, brokerages, portals, and real-estate software teams can market properties without physical staging or manual Photoshop production. The API lets your backend submit one source image, choose the workflow and style, wait for completion, and read back one primary output plus an optional approved alternate.

Virtual staging

Furnish empty or under-presented rooms with realistic listing visuals.

Property-ready outputs

Return approved images your system can publish, store, or review.

Backend integration

Embed staging into CRMs, portals, listing pipelines, and batch workers.

Integrate Katalo from your backend

This documentation is for backend and platform engineers. The public API is server-to-server only: your backend owns the API key, ingests source assets, creates jobs, receives results by webhook or polling, and decides whether to persist signed output assets.

One input

Each job is tied to one original source image.

Async jobs

Create returns a job immediately, then the job moves through terminal state.

Two delivery modes

Consume a signed webhook or poll the read endpoint.

When this API fits

Request flow

  1. Ingest the source image with POST /api/v1/source-assets.
  2. Poll GET /api/v1/source-assets/{ingest_id} until source_asset_id is ready.
  3. Create a generation with POST /api/v1/generations.
  4. Wait for succeeded or failed using a webhook or GET /api/v1/generations/{job_id}.
  5. Consume signed output URLs immediately, or copy assets into your own storage for durable access.
  6. Regenerate with POST /api/v1/generations/{job_id}/regenerate when you need another approved output from the same source.
Inline file and source_url submission on POST /api/v1/generations still works as a compatibility path, but the production contract should create a reusable source asset first.

Contract rules

  • A job always uses one original image.
  • Public responses include only publishable outputs: the primary approved output and, if requested, at most one approved alternate.
  • Signed output URLs are temporary. Copy images into your own storage if they need to remain available.
  • Request validity depends on workflow and capture_type; some fields are required, optional, or explicitly not allowed.

Your integration owns

Quickstart

Continue reading

API keys

Create, store, rotate, and revoke credentials.

Generations

Read the create, get, and regenerate contracts.

Webhooks

Verify signatures and consume completion events.

OpenAPI

Use the machine-readable API contract.