Image generations
Transform a photograph you have already uploaded: stage an empty room, remove clutter, or correct how a picture was taken. Each request is queued and produced in the background.
/v1/api/generations/kindsimages:writeList what can be generated
The transformations available, and what each does.
Served from the same list the API validates against, so it cannot fall behind. It also names what is deliberately not available and why, which is more useful than an absence you have to infer.
Response
{
"data": {
"kinds": [
{
"kind": "virtual_staging",
"description": "Furnish an empty room in a chosen style, leaving the architecture untouched."
},
{
"kind": "decluttering",
"description": "Remove personal clutter from a room without changing the furniture or the fabric of the building."
},
{
"kind": "enhancement",
"description": "Correct exposure, white balance, and straightness, without altering what the photograph shows."
}
],
"not_available": [
{
"kind": "floorplan_render",
"reason": "Named in the schema and not implemented. Rendering a floor plan needs a provider we have not integrated, and a plausible but wrong plan of somebody's home is worse than none."
}
]
}
}https://api.skautik.com/v1/api/generations/kinds
GET /v1/api/generations/kinds HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/generationsimages:writeRequest a generation
Queue a transformation of one of your property images.
Returns immediately with a queued generation. Poll the retrieve endpoint, or subscribe to a webhook, rather than holding the request open. The source image must already belong to one of your properties: there is no way to submit an arbitrary URL, which is deliberate.
Body fields
| Name | Type | Description |
|---|---|---|
kindrequired | enum | The transformation to apply. floorplan_render is named in the schema and is not implemented; asking for it is refused rather than answered with a fabricated plan. virtual_staging | decluttering | enhancement example: virtual_staging |
source_image_idrequired | string | The image to transform. Must belong to one of your own properties; anything else answers 404, the same as an image that does not exist. example: img_ce1c9e04db6140eda7c6934af60daebb |
room_type | string | For virtual_staging: what the room is. Improves the result markedly. Defaults to a generic room. example: living room |
style | string | For virtual_staging: the furnishing style. Defaults to contemporary. example: scandinavian |
prompt | string | Up to 500 characters of additional direction. It is added to the instruction for the chosen kind and never replaces it, so it cannot be used to make the model do something unrelated. example: A bright Scandinavian living room with oak floors and a linen sofa |
Request body
{
"kind": "virtual_staging",
"source_image_id": "img_ce1c9e04db6140eda7c6934af60daebb",
"room_type": "living room",
"style": "scandinavian"
}Response
{
"data": {
"id": "gen_41bd169388ff4bee8706b822e4def3c5",
"kind": "virtual_staging",
"status": "queued",
"property_id": "prop_f06bd367019344dd91b559046f8e0d4c",
"source_image_id": "img_ce1c9e04db6140eda7c6934af60daebb",
"style": "scandinavian",
"room_type": "living room",
"created_at": "2026-08-13T14:39:51Z"
}
}Notable responses
- 404
- The source image does not exist, or is not on one of your properties. The two are indistinguishable on purpose.
https://api.skautik.com/v1/api/generations
POST /v1/api/generations HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…
Content-Type: application/json
{
"kind": "virtual_staging",
"source_image_id": "img_ce1c9e04db6140eda7c6934af60daebb",
"room_type": "living room",
"style": "scandinavian"
}/v1/api/generations/{generation_id}images:writeRetrieve a generation
Status, and the image once it is ready.
Moves through queued, running, and then completed or failed. A failed generation carries the reason, including when the model declined rather than errored: those are different problems and only one is worth retrying.
Path parameters
| Name | Type | Description |
|---|---|---|
generation_idrequired | string | Generation identifier. example: gen_5c1e9a2b3d |
Response
{
"data": {
"id": "gen_41bd169388ff4bee8706b822e4def3c5",
"kind": "virtual_staging",
"status": "completed",
"property_id": "prop_f06bd367019344dd91b559046f8e0d4c",
"source_image_id": "img_ce1c9e04db6140eda7c6934af60daebb",
"style": "scandinavian",
"room_type": "living room",
"image_url": "https://images.skautik.com/generations/…/41bd1693.jpg",
"created_at": "2026-08-13T14:39:51Z",
"finished_at": "2026-08-13T14:40:07Z"
}
}https://api.skautik.com/v1/api/generations/{generation_id}
GET /v1/api/generations/gen_5c1e9a2b3d HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/generationsimages:writeList generations
Recent requests for your organisation, newest first.
https://api.skautik.com/v1/api/generations
GET /v1/api/generations HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…