Skip to main content
POST
Create a generation
Starts an asynchronous AI visualization from a customer photo plus 1–3 products. Returns 202 Accepted with a processing generation. Learn the outcome via webhooks (recommended) or by polling the generation. Supply an Idempotency-Key header to safely retry on network failures.

Authorizations

Authorization
string
header
required

Your Selektable API key (selektable_...), sent as Authorization: Bearer <key>.

Headers

Idempotency-Key
string

Unique key to make creation idempotent.

Body

application/json
mode
enum<string>
required

virtual-try-on = fashion; room-visualizer = interior staging.

Available options:
virtual-try-on,
room-visualizer
image
string
required

Customer photo: an https URL or a data:image/*;base64,... URI (≤10MB).

products
object[]
required
Required array length: 1 - 3 elements
hint
string

Optional styling guidance.

Maximum string length: 500
imageSize
enum<string>
default:1K

Output resolution. Consumes 1/2/3 credits respectively.

Available options:
1K,
2K,
4K
metadata
object

Up to 40 string key/values, echoed back on the generation.

Response

Idempotent replay — existing generation returned

id
string
Example:

"agen_abc123"

object
enum<string>
Available options:
generation
status
enum<string>
Available options:
processing,
complete,
failed
mode
enum<string>
Available options:
virtual-try-on,
room-visualizer
imageSize
enum<string>
Available options:
1K,
2K,
4K
imageUrl
string<uri> | null

Permanent CDN URL to the original render at the requested imageSize (1K/2K/4K). Safe to store and embed.

imageVariants
object | null

Permanent CDN URLs to resized JPEG/WebP variants of imageUrl, served by Cloudflare Image Transformations. Use a variant instead of the original when you need a smaller payload (emails, lists, mobile). null until status is complete.

products
object[]
hint
string | null
error
object | null
metadata
object | null
createdAt
string<date-time>
completedAt
string<date-time> | null