Download OpenAPI specification:Download
Decor8 AI is a state-of-the-art virtual staging solution designed for realtors and real estate app developers. It provides a suite of customization options to create and visualize appealing interiors from empty spaces. With its focus on enhancing marketability, it's an essential tool for showcasing property potential in a compelling way. Please reach out to Decor8 AI Team with questions or suggestions. Additional license information can be found here.
Authentication: Each API request requires two headers:
Content-Type: application/json
Authorization: Bearer <API_KEY>
API Key: Get your <API_KEY>
from your account at prod-app.decor8.ai.
curl -X GET "https://api.decor8.ai/speak_friend_and_enter" -H "Authorization: Bearer <API_KEY>"
This endpoint is used to test whether the provided API key in the Authorization header is valid.
{- "error": "",
- "message": "The doors of Durin open for you. Welcome, friend of Moria.",
- "Status": 1
}
This endpoint generates room designs based on the input image and user preferences like room_type and design_style. It works with empty or rooms filled with furniture.
input_image_url required | string URL of the input image. Make sure the image is accessible over the internet. Supported formats are - PNG, JPEG, HEIF/HEIC. | ||||||||||||||||||||||||||||||||||||||||||||
room_type required | string (RoomType) Enum: "livingroom" "kitchen" "diningroom" "bedroom" "bathroom" "kidsroom" "familyroom" "readingnook" "sunroom" "walkincloset" "mudroom" "toyroom" "office" "foyer" "powderroom" "laundryroom" "gym" "basement" "garage" "balcony" "cafe" "homebar" "study_room" "front_porch" "back_porch" "back_patio" "openplan" "boardroom" "meetingroom" "openworkspace" "privateoffice" Choose from the supported room types. | ||||||||||||||||||||||||||||||||||||||||||||
design_style required | string (DesignStyle) Enum: "minimalist" "scandinavian" "industrial" "boho" "traditional" "artdeco" "midcenturymodern" "coastal" "tropical" "eclectic" "contemporary" "frenchcountry" "rustic" "shabbychic" "vintage" "country" "modern" "asian_zen" "hollywoodregency" "bauhaus" "mediterranean" "farmhouse" "victorian" "gothic" "moroccan" "southwestern" "transitional" "maximalist" "arabic" "japandi" "retrofuturism" "artnouveau" "urbanmodern" "wabi_sabi" "grandmillennial" "coastalgrandmother" "newtraditional" "cottagecore" "luxemodern" "high_tech" "organicmodern" "tuscan" "cabin" "desertmodern" "global" "industrialchic" "modernfarmhouse" "europeanclassic" "neotraditional" "warmminimalist" Choose from the supported design styles. | ||||||||||||||||||||||||||||||||||||||||||||
num_images required | integer (NumImages) [ 1 .. 4 ] | ||||||||||||||||||||||||||||||||||||||||||||
scale_factor | integer (ScaleFactor) [ 1 .. 8 ] Scale factor determines the image resolution. By default, the API uses scale_factor = 2 (producing images up to 1536 pixels) with no additional charge. See the table below for more details:
Notes:
| ||||||||||||||||||||||||||||||||||||||||||||
color_scheme | string (ColorScheme) Enum: "COLOR_SCHEME_0" "COLOR_SCHEME_1" "COLOR_SCHEME_2" "COLOR_SCHEME_3" "COLOR_SCHEME_4" "COLOR_SCHEME_5" "COLOR_SCHEME_6" "COLOR_SCHEME_7" "COLOR_SCHEME_8" "COLOR_SCHEME_9" "COLOR_SCHEME_10" "COLOR_SCHEME_11" "COLOR_SCHEME_12" "COLOR_SCHEME_13" "COLOR_SCHEME_14" "COLOR_SCHEME_15" "COLOR_SCHEME_16" "COLOR_SCHEME_17" "COLOR_SCHEME_18" "COLOR_SCHEME_19" "COLOR_SCHEME_20" Preferred color scheme, optional. Default is COLOR_SCHEME_0. Here are the possible values:
| ||||||||||||||||||||||||||||||||||||||||||||
speciality_decor | string (SpecialityDecor) Enum: "SPECIALITY_DECOR_0" "SPECIALITY_DECOR_1" "SPECIALITY_DECOR_2" "SPECIALITY_DECOR_3" "SPECIALITY_DECOR_4" "SPECIALITY_DECOR_5" "SPECIALITY_DECOR_6" "SPECIALITY_DECOR_7" Details about any specialty decor elements, optional. Default is SPECIALITY_DECOR_0. Here are the possible values:
| ||||||||||||||||||||||||||||||||||||||||||||
mask_info | string Additional masking information, optional. This string is returned by this end-point. You may store it and use it for future requests. This usually speeds up the process of generating images. | ||||||||||||||||||||||||||||||||||||||||||||
prompt | string (Optional) Custom prompt for image generation. If provided, room_type, design_style, color_scheme, and speciality_decor values are ignored as the prompt field is used directly for image generation. If prompt is not provided, then room_type and design_style must be provided and will be used to generate a system-selected prompt. During image generation, the API concatenates prompts as follows: final_prompt = [prompt_prefix] + " " + [prompt] + " " + [prompt_suffix] This final_prompt along with negative_prompt guides the stable diffusion image generation process. Note: Using custom prompts provides more control over image generation but may require experimentation to achieve desired results. | ||||||||||||||||||||||||||||||||||||||||||||
prompt_prefix | string (Optional) Prefix to identify visual attributes of desired references (e.g., "Houzz style", "Pinterest inspiration", "architectural photography"). Default is system selected. Note: Custom prefix can help target specific visual styles but may require experimentation. | ||||||||||||||||||||||||||||||||||||||||||||
prompt_suffix | string (Optional) Suffix to identify photo attributes (e.g., "4K resolution", "interior design magazine quality", "professional lighting"). Default is system selected. Note: Custom suffix can help enhance image quality but may require experimentation. | ||||||||||||||||||||||||||||||||||||||||||||
negative_prompt | string (Optional) Attributes to exclude from generation (e.g., "blurry", "low quality", "distorted", "unrealistic", "broken furniture"). Default is system selected. Note: Custom negative prompts can help avoid unwanted elements but may require experimentation. | ||||||||||||||||||||||||||||||||||||||||||||
seed | integer >= 0 (Optional) Seed for reproducible results. Using the same seed with identical parameters will generate similar images. Default is random. Note: Useful for consistency across generations but results may still vary slightly. | ||||||||||||||||||||||||||||||||||||||||||||
guidance_scale | number <float> [ 1 .. 20 ] Default: 15 (Optional) Controls how closely the model follows the prompt. Higher values result in images that more strictly follow the prompt but may be less natural. Lower values allow more creative freedom but may deviate from the prompt. Default is 15. Note: Finding the right balance requires experimentation. | ||||||||||||||||||||||||||||||||||||||||||||
num_inference_steps | integer [ 1 .. 75 ] Default: 50 (Optional) Number of denoising steps. Higher values can produce better quality images but take longer to generate. Lower values are faster but may reduce quality. Default is 50. Note: Balance between quality and generation time requires experimentation. | ||||||||||||||||||||||||||||||||||||||||||||
design_style_image_url | string (Optional) URL of the image file to use as a style reference for the generated design. Additional 1 credit / per image is used for this request. Refer to https://www.decor8.ai/ai-virtual-staging-api/ for credit pricing. If you generate more than 1 image, then the additional credits used will be equal to the value of num_images parameter. | ||||||||||||||||||||||||||||||||||||||||||||
design_style_image_strength | number <float> [ 0 .. 1 ] Default: 0.82 (Optional) Controls how strongly the design style image influences the final output. Higher values (closer to 1.0) give more weight to the style image than other inputs like room_type, design_style, or custom prompt. | ||||||||||||||||||||||||||||||||||||||||||||
design_creativity | number <float> [ 0 .. 1 ] Default: 0.39 (Optional) Controls the level of creative improvements in the final image. Higher values result in more creative alterations to the overall look and feel. | ||||||||||||||||||||||||||||||||||||||||||||
webhooks_data | string (Optional) Webhook configuration for asynchronous notifications as a stringified JSON string. When provided, the API will send a POST request to the specified URL when the image generation is complete. The JSON string must have this structure:
Example in JavaScript:
Example in Python:
|
{- "room_type": "livingroom",
- "design_style": "minimalist",
- "num_images": 1,
- "scale_factor": 1,
- "color_scheme": "COLOR_SCHEME_0",
- "speciality_decor": "SPECIALITY_DECOR_0",
- "mask_info": "mask_info_string",
- "prompt": "string",
- "prompt_prefix": "string",
- "prompt_suffix": "string",
- "negative_prompt": "string",
- "seed": 0,
- "guidance_scale": 15,
- "num_inference_steps": 50,
- "design_style_image_url": "string",
- "design_style_image_strength": 0.82,
- "design_creativity": 0.39,
- "webhooks_data": "{\"url\":\"https://your-callback-url.com/webhook\",\"token\":\"your-auth-token\",\"context\":\"Custom context\"}"
}
{- "error": "",
- "message": "Successfully generated designs for room.",
- "info": {
- "images": [
- {
- "uuid": "3d03ed46-c3c1-4adb-a703-6a97dfa1ee5b",
- "width": 768,
- "height": 512,
- "captions": [
- "string"
],
}
], - "mask_info": "mask_info_string"
}
}
Use this endpoint to get inspirational designs without providing an input image. AI generates unique designs based on room type and design style.
room_type required | string (RoomType) Enum: "livingroom" "kitchen" "diningroom" "bedroom" "bathroom" "kidsroom" "familyroom" "readingnook" "sunroom" "walkincloset" "mudroom" "toyroom" "office" "foyer" "powderroom" "laundryroom" "gym" "basement" "garage" "balcony" "cafe" "homebar" "study_room" "front_porch" "back_porch" "back_patio" "openplan" "boardroom" "meetingroom" "openworkspace" "privateoffice" Choose from the supported room types. | ||||||||||||||||||||||||||||||||||||||||||||
design_style required | string (DesignStyle) Enum: "minimalist" "scandinavian" "industrial" "boho" "traditional" "artdeco" "midcenturymodern" "coastal" "tropical" "eclectic" "contemporary" "frenchcountry" "rustic" "shabbychic" "vintage" "country" "modern" "asian_zen" "hollywoodregency" "bauhaus" "mediterranean" "farmhouse" "victorian" "gothic" "moroccan" "southwestern" "transitional" "maximalist" "arabic" "japandi" "retrofuturism" "artnouveau" "urbanmodern" "wabi_sabi" "grandmillennial" "coastalgrandmother" "newtraditional" "cottagecore" "luxemodern" "high_tech" "organicmodern" "tuscan" "cabin" "desertmodern" "global" "industrialchic" "modernfarmhouse" "europeanclassic" "neotraditional" "warmminimalist" Choose from the supported design styles. | ||||||||||||||||||||||||||||||||||||||||||||
num_images required | integer (NumImages) [ 1 .. 4 ] | ||||||||||||||||||||||||||||||||||||||||||||
color_scheme | string (ColorScheme) Enum: "COLOR_SCHEME_0" "COLOR_SCHEME_1" "COLOR_SCHEME_2" "COLOR_SCHEME_3" "COLOR_SCHEME_4" "COLOR_SCHEME_5" "COLOR_SCHEME_6" "COLOR_SCHEME_7" "COLOR_SCHEME_8" "COLOR_SCHEME_9" "COLOR_SCHEME_10" "COLOR_SCHEME_11" "COLOR_SCHEME_12" "COLOR_SCHEME_13" "COLOR_SCHEME_14" "COLOR_SCHEME_15" "COLOR_SCHEME_16" "COLOR_SCHEME_17" "COLOR_SCHEME_18" "COLOR_SCHEME_19" "COLOR_SCHEME_20" Preferred color scheme, optional. Default is COLOR_SCHEME_0. Here are the possible values:
| ||||||||||||||||||||||||||||||||||||||||||||
speciality_decor | string (SpecialityDecor) Enum: "SPECIALITY_DECOR_0" "SPECIALITY_DECOR_1" "SPECIALITY_DECOR_2" "SPECIALITY_DECOR_3" "SPECIALITY_DECOR_4" "SPECIALITY_DECOR_5" "SPECIALITY_DECOR_6" "SPECIALITY_DECOR_7" Details about any specialty decor elements, optional. Default is SPECIALITY_DECOR_0. Here are the possible values:
| ||||||||||||||||||||||||||||||||||||||||||||
prompt | string (Optional) Custom prompt for image generation. If provided, room_type, design_style, color_scheme, and speciality_decor values are ignored as the prompt field is used directly for image generation. If prompt is not provided, then room_type and design_style must be provided and will be used to generate a system-selected prompt. During image generation, the API concatenates prompts as follows: final_prompt = [prompt_prefix] + " " + [prompt] + " " + [prompt_suffix] This final_prompt along with negative_prompt guides the stable diffusion image generation process. Note: Using custom prompts provides more control over image generation but may require experimentation to achieve desired results. | ||||||||||||||||||||||||||||||||||||||||||||
prompt_prefix | string (Optional) Prefix to identify visual attributes of desired references (e.g., "Houzz style", "Pinterest inspiration", "architectural photography"). Default is system selected. Note: Custom prefix can help target specific visual styles but may require experimentation. | ||||||||||||||||||||||||||||||||||||||||||||
prompt_suffix | string (Optional) Suffix to identify photo attributes (e.g., "4K resolution", "interior design magazine quality", "professional lighting"). Default is system selected. Note: Custom suffix can help enhance image quality but may require experimentation. | ||||||||||||||||||||||||||||||||||||||||||||
negative_prompt | string (Optional) Attributes to exclude from generation (e.g., "blurry", "low quality", "distorted", "unrealistic", "broken furniture"). Default is system selected. Note: Custom negative prompts can help avoid unwanted elements but may require experimentation. | ||||||||||||||||||||||||||||||||||||||||||||
seed | integer >= 0 (Optional) Seed for reproducible results. Using the same seed with identical parameters will generate similar images. Default is random. Note: Useful for consistency across generations but results may still vary slightly. | ||||||||||||||||||||||||||||||||||||||||||||
guidance_scale | number <float> [ 1 .. 20 ] Default: 15 (Optional) Controls how closely the model follows the prompt. Higher values result in images that more strictly follow the prompt but may be less natural. Lower values allow more creative freedom but may deviate from the prompt. Default is 15. Note: Finding the right balance requires experimentation. | ||||||||||||||||||||||||||||||||||||||||||||
num_inference_steps | integer [ 1 .. 75 ] Default: 35 (Optional) Number of denoising steps. Higher values can produce better quality images but take longer to generate. Lower values are faster but may reduce quality. Default is 35. Note: Balance between quality and generation time requires experimentation. |
{- "room_type": "livingroom",
- "design_style": "minimalist",
- "num_images": 1,
- "color_scheme": "COLOR_SCHEME_0",
- "speciality_decor": "SPECIALITY_DECOR_0",
- "prompt": "string",
- "prompt_prefix": "string",
- "prompt_suffix": "string",
- "negative_prompt": "string",
- "seed": 0,
- "guidance_scale": 15,
- "num_inference_steps": 35
}
{- "error": "",
- "message": "Successfully generated designs for room.",
- "info": {
- "images": [
- {
- "uuid": "3d03ed46-c3c1-4adb-a703-6a97dfa1ee5b",
- "width": 768,
- "height": 512,
- "captions": [
- "string"
],
}
], - "mask_info": "mask_info_string"
}
}
This endpoint primes the walls of a room by applying a basic whitewash or finish. It prepares the walls for further virtual staging or design implementations. This is useful when users want to start with a clean slate before applying specific designs.
input_image_url required | string URL of the room image where the walls need to be primed. Ensure the image is accessible over the internet. Supported formats are PNG, JPEG, HEIF/HEIC. |
{
}
{- "message": "Walls primed successfully.",
}
This endpoint allows you to replace the sky in an image of a house with a specified sky type. Choose from day, dusk, or night skies to enhance the aesthetic appeal of the property image.
input_image_url required | string The URL of the house image where the sky should be replaced. Must be a publicly accessible URL. |
sky_type required | string Enum: "day" "dusk" "night" The type of sky to replace in the image. Valid options are 'day', 'dusk', or 'night'. |
{- "sky_type": "day"
}
{- "message": "Sky replaced successfully.",
}
This endpoint allows users to upload an image and upscale it by a specified scale factor. The image should be in a supported format (JPEG, PNG, etc.). The response will include a base64 encoded string of the upscaled image.
input_image required | string <binary> The image file to upscale. Max file size is 4MB. | |||||||||||||||||||||||||||
scale_factor required | integer [ 1 .. 8 ] Scale factor determines the image resolution. See the table below for more details:
Notes:
|
{- "error": "",
- "message": "Successfully upscaled image.",
- "info": {
- "upscaled_image": "/9j/4AAQSkZ...."
}
}
This endpoint removes non-essential objects from a room image, preserving only specified elements such as walls, ceiling, windows, and few more objects. The output is a processed image URL with the unwanted objects removed. Objects Preserved: wall, ceiling, door, windowpane, floor, railing, column, blind, light, stove, kitchen island, oven, microwave, dishwasher, hood, fan, radiator, refrigerator, sink, chandelier, fireplace, mirror, tree, curtain
input_image_url | string URL of the input image. Ensure the image is accessible over the internet. Supported formats are - PNG, JPEG, HEIF/HEIC. |
mask_image_url | string Optional URL of a mask image to specify which objects to remove. The mask must be a black and white image where white pixels identify the objects to remove and black pixels identify areas to preserve. The mask image must have the same aspect ratio as the input image. If mask is not provided, all furniture and decor objects are removed from the room. Supported formats are - PNG, JPEG, HEIF/HEIC. |
{
}
{- "error": "",
- "message": "Successfully removed objects from room.",
- "info": {
- "image": {
- "uuid": "599e2f3a-250d-4f2b-b1e6-acdfdb06bec4",
- "width": 768,
- "height": 576,
}
}
}
This endpoint allows you to change the color of walls in a room image to a specified hex color code. The AI will intelligently identify walls in the image and apply the new color while maintaining realistic lighting and shadows.
Credit Usage:
input_image_url required | string URL of the input image. Can be either a https:// URL or a data:// base64 encoded string. Supported formats are PNG, JPEG, HEIF/HEIC. Note: When using data:// URLs, there is a 4MB limit on the file size. Examples:
|
wall_color_hex_code required | string^#[0-9A-Fa-f]{6}$ The hex color code for the new wall color. Must be a valid hex color code starting with # followed by 6 hexadecimal characters. Examples:
|
{- "wall_color_hex_code": "#FF5733"
}
{- "error": "",
- "message": "Successfully changed wall color.",
- "info": {
- "images": [
- {
- "uuid": "599e2f3a-250d-4f2b-b1e6-acdfdb06bec4",
- "width": 768,
- "height": 576,
}
]
}
}
This endpoint generates landscaping designs based on the input image and user preferences like yard_type and garden_style. It works with empty or existing yard spaces to create beautiful outdoor designs.
Credit Usage:
input_image_url required | string URL of the input image. Can be either a https:// URL or a data:// base64 encoded string. Supported formats are PNG, JPEG, HEIF/HEIC. Note: When using data:// URLs, there is a 4MB limit on the file size. Examples:
|
yard_type required | string Enum: "Front Yard" "Backyard" "Side Yard" The type of yard to design. Case-insensitive. |
garden_style required | string Enum: "Garden" "Shade Garden" "Herb and Vegetable garden" "California Style Garden" "Evergreen Garden" "Aquatic Garden" "Picturesque Garden" "New England Style Garden" "Colonial Style Garden" "Terraced Garden" "Bamboo Garden" "Patio Garden" "Pollinators-Friendly Garden" "Drought Resistant Garden" "Container Garden" "Tropical Garden" "Japanese Zen Garden" "Mediterranean Garden" "Rock Garden" "Private Courtyard Garden" "Outdoor Staircase Garden" "Mounds or Berms" "Therapeutic Garden" "Alpine Garden" "Feng Shui Garden" "Vertical Garden" "Chinese Classical Garden" "Rain Garden" "English Cottage Garden" "French Formal Garden" "Italian Renaissance Garden" "Xeriscaping Garden" The style of garden to implement. Case-insensitive. |
num_images | integer [ 1 .. 4 ] Default: 1 Number of design variations to generate. Each image costs 1 credit. |
{- "yard_type": "Front Yard",
- "garden_style": "Garden",
- "num_images": 1
}
{- "error": "",
- "message": "Successfully generated designs for room.",
- "info": {
- "images": [
- {
- "uuid": "3d03ed46-c3c1-4adb-a703-6a97dfa1ee5b",
- "width": 768,
- "height": 512,
- "captions": [
- "string"
],
}
], - "mask_info": "mask_info_string"
}
}