Renovate AI API v1.3.0
The Renovate AI API renders design changes onto a photo of a real space: upload an image as an asset, then apply a renovation style, a kitchen-cabinet change, a style transfer, an upscale, or a virtual-staging variation. It is a REST API over JSON, with 17 endpoints across 5 groups.
- Base URL
https://api.tech.renovateai.app/public/v1- Authentication
- API key in the
X-API-KEYrequest header - Format
- JSON request and response bodies; file uploads use
multipart/form-data
Authentication
Every endpoint requires an API key. Send it in the X-API-KEY
header on each request; there is no OAuth flow and no bearer token exchange.
Requests without a valid key are rejected with 401 Unauthorized.
curl "https://api.tech.renovateai.app/public/v1/plan/details" \
-H "X-API-KEY: $RENOVATE_API_KEY" Account
Operations related to user accounts and plan details
GET /plan/details
Get plan details
Retrieves the details of the customer's plan.
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | plan — objectplan.business_name — stringplan.plan — stringplan.remaining_assets — integerplan.staging_credits — integerplan.renovation_credits — integer |
401 | Unauthorized | — |
404 | Plan not found | — |
Example request
curl -X GET "https://api.tech.renovateai.app/public/v1/plan/details" \
-H "X-API-KEY: $RENOVATE_API_KEY" Assets
Operations for managing user assets (images)
GET /assets
Get assets
Retrieves all assets associated with the authenticated user.
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | assets — array of Assetassets[].id — stringassets[].name — stringassets[].width — integerassets[].height — integerassets[].preview_url — string |
401 | Unauthorized | — |
Example request
curl -X GET "https://api.tech.renovateai.app/public/v1/assets" \
-H "X-API-KEY: $RENOVATE_API_KEY" POST /assets/upload
Upload an asset
Uploads a new asset (image) to the user's account.
Request body multipart/form-data (required)
| Field | Type | Required | Description |
|---|---|---|---|
image | file | no | |
image_url | string | no | |
asset_name | string | no |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | asset — objectasset.id — stringasset.name — stringasset.width — integerasset.height — integerasset.preview_url — string |
400 | Bad request | — |
403 | Max assets limit reached | — |
404 | Account not found | — |
Example request
curl -X POST "https://api.tech.renovateai.app/public/v1/assets/upload" \
-H "X-API-KEY: $RENOVATE_API_KEY" \
-F "image=@/path/to/room.jpg" \
-F "asset_name=Living room" POST /assets/delete
Delete an asset
Deletes a specific asset from the user's account.
Request body application/json (required)
| Field | Type | Required | Description |
|---|---|---|---|
asset_id | string | yes |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | status — stringasset_id — string |
401 | Unauthorized | — |
404 | Asset not found | — |
Example request
curl -X POST "https://api.tech.renovateai.app/public/v1/assets/delete" \
-H "X-API-KEY: $RENOVATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"asset_id": "your_asset_id"
}' AI Renovation Kit
AI-powered renovation and design services
GET /styles
Get available styles
Retrieves available interior and exterior styles for home renovation.
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | interior_styles — array of Styleinterior_styles[].id — stringinterior_styles[].name — stringinterior_styles[].description — stringexterior_styles — array of Styleexterior_styles[].id — stringexterior_styles[].name — stringexterior_styles[].description — stringtotal_found — integer |
Example request
curl -X GET "https://api.tech.renovateai.app/public/v1/styles" \
-H "X-API-KEY: $RENOVATE_API_KEY" POST /renovate
Renovate an image
Applies a selected style to an uploaded asset with optional renovation spectrum.
Request body application/json (required)
At least one of style_id or guidance must be supplied.
| Field | Type | Required | Description |
|---|---|---|---|
asset_id | string | yes | |
style_id | string | no | Style ID to apply. Either style_id or guidance must be provided. |
renovation_spectrum | enum: tweak | enhance | renovate | transform | no | |
guidance | string | no | (New) Optional AI guidance for precise visual updates (e.g., "swap track lighting for pendants"). Must be more than 8 characters for accurate results. Either style_id or guidance must be provided. |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | style_id — stringrenovation_spectrum — stringrenovated_image_url — string |
400 | Bad request | — |
404 | Asset not found | — |
500 | Unexpected error in renovation | — |
Example request
curl -X POST "https://api.tech.renovateai.app/public/v1/renovate" \
-H "X-API-KEY: $RENOVATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"asset_id": "your_asset_id",
"style_id": "your_style_id"
}' POST /kitchen_cabinets
Renovate kitchen cabinets
Applies a selected style to an uploaded kitchen cabinets asset with optional renovation spectrum.
Request body application/json (required)
At least one of style_id or guidance must be supplied.
| Field | Type | Required | Description |
|---|---|---|---|
asset_id | string | yes | |
style_id | string | no | Style ID to apply. Either style_id or guidance must be provided. |
renovation_spectrum | enum: tweak | enhance | renovate | transform | no | |
guidance | string | no | (New) Optional AI guidance for precise visual updates (e.g., "swap track lighting for pendants"). Must be more than 8 characters for accurate results. Either style_id or guidance must be provided. |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | style_id — stringrenovation_spectrum — stringrenovated_image_url — string |
400 | Bad request (No Kitchen Cabinets found in the asset) | — |
404 | Asset not found | — |
500 | Unexpected error in renovation | — |
Example request
curl -X POST "https://api.tech.renovateai.app/public/v1/kitchen_cabinets" \
-H "X-API-KEY: $RENOVATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"asset_id": "your_asset_id",
"style_id": "your_style_id"
}' POST /creative_upscale
Upscale an image
Upscales the provided image with added details and optional creativity level.
Request body multipart/form-data (required)
| Field | Type | Required | Description |
|---|---|---|---|
image | file | no | |
image_url | string | no | |
creativity | number | no |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | upscaled_image_url — stringcreativity — number |
400 | Bad request | — |
500 | Error in creative upscale | — |
Example request
curl -X POST "https://api.tech.renovateai.app/public/v1/creative_upscale" \
-H "X-API-KEY: $RENOVATE_API_KEY" \
-F "image=@/path/to/room.jpg" \
-F "creativity=5" POST /style_transfer
Apply style transfer
Applies the style of a provided image to the selected asset.
Request body multipart/form-data (required)
| Field | Type | Required | Description |
|---|---|---|---|
asset_id | string | yes | ID of the asset to apply the style transfer to |
style_image | file | no | Style image file to be uploaded |
style_image_url | string | no | URL of the style image (alternative to uploading a file) |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | status — enum: successrenovated_image_url — string — URL of the image after style transfer |
400 | Bad request | — |
404 | Asset not found | — |
500 | Error in style transfer | — |
Example request
curl -X POST "https://api.tech.renovateai.app/public/v1/style_transfer" \
-H "X-API-KEY: $RENOVATE_API_KEY" \
-F "asset_id=your_asset_id" \
-F "style_image=@/path/to/room.jpg" Image Analyzer
AI-powered image analysis (Coming Soon)
POST /analyze
Analyze a single image (Coming Soon)
Analyzes a single image and returns information about it.
Request body multipart/form-data (required)
| Field | Type | Required | Description |
|---|---|---|---|
image | file | no | |
analysis_type | enum: normal | advanced | no |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | image_id — stringanalysis_type — enum: normal | advancedresults — objectresults.classification — enum: interior | exteriorresults.room_type — stringresults.exterior_type — stringresults.status — stringresults.renovation_styles — array of stringprocessing_time — numbererror — string |
400 | Bad request | — |
500 | Error in image analysis | — |
Example request
curl -X POST "https://api.tech.renovateai.app/public/v1/analyze" \
-H "X-API-KEY: $RENOVATE_API_KEY" \
-F "image=@/path/to/room.jpg" \
-F "analysis_type=normal" POST /analyze/batch
Submit batch for analysis (Coming Soon)
Submits a batch of images for analysis.
Request body application/json (required)
| Field | Type | Required | Description |
|---|---|---|---|
images | array of object | no | |
images[].image_url | string | no | |
images[].image_id | string | no | |
analysis_type | enum: normal | advanced | no |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | batch_id — stringstatus — enum: processingtotal_images — integerestimated_completion_time — string |
400 | Bad request | — |
500 | Error in batch submission | — |
Example request
curl -X POST "https://api.tech.renovateai.app/public/v1/analyze/batch" \
-H "X-API-KEY: $RENOVATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"images": [
{
"image_url": "https://example.com/room.jpg",
"image_id": "your_image_id"
}
],
"analysis_type": "normal"
}' GET /analyze/batch/{batch_id}
Check batch analysis results (Coming Soon)
Retrieves the results of a batch analysis.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
batch_id | path | string | yes |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful response | batch_id — stringstatus — enum: processing | completed | failedtotal_images — integerprocessed_images — integerresults — array of AnalyzeResponseresults[].image_id — stringresults[].analysis_type — enum: normal | advancedresults[].results — objectresults[].processing_time — numberresults[].error — string |
404 | Batch not found | — |
500 | Error in retrieving batch results | — |
Example request
curl -X GET "https://api.tech.renovateai.app/public/v1/analyze/batch/YOUR_BATCH_ID" \
-H "X-API-KEY: $RENOVATE_API_KEY" Virtual Staging
Generate virtual staging variations by uploading a room image and selecting room type and style.
POST /virtual-staging/projects/create
Create a virtual staging project
Upload an image to start a virtual staging project. Each project can have up to 20 staging variations, and each project is considered as 1 staging credit.
Request body multipart/form-data (required)
| Field | Type | Required | Description |
|---|---|---|---|
image | file | yes | Image of the room to be virtually staged |
Responses
| Status | Meaning | Body |
|---|---|---|
201 | Project created successfully | project_id — stringinput_image_url — string |
400 | Invalid image or exceeded project limit | — |
Example request
curl -X POST "https://api.tech.renovateai.app/public/v1/virtual-staging/projects/create" \
-H "X-API-KEY: $RENOVATE_API_KEY" \
-F "image=@/path/to/room.jpg" POST /virtual-staging/projects/{project_id}/stage
Generate a staged variation
Create a new staging variation for a given project using a room type and style.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
project_id | path | string | yes |
Request body application/json (required)
| Field | Type | Required | Description |
|---|---|---|---|
room_type | string | yes | |
style | string | yes |
Responses
| Status | Meaning | Body |
|---|---|---|
201 | Staging variation created | status — enum: successstaged_image_url — stringproject_id — string |
400 | Invalid request or variation limit exceeded | — |
Example request
curl -X POST "https://api.tech.renovateai.app/public/v1/virtual-staging/projects/YOUR_PROJECT_ID/stage" \
-H "X-API-KEY: $RENOVATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"room_type": "string",
"style": "string"
}' GET /virtual-staging/room-types
List supported room types
Retrieves the list of supported room types for virtual staging.
Responses
| Status | Meaning | Body |
|---|---|---|
200 | List of room types | — |
Example request
curl -X GET "https://api.tech.renovateai.app/public/v1/virtual-staging/room-types" \
-H "X-API-KEY: $RENOVATE_API_KEY" GET /virtual-staging/styles
List supported staging styles
Retrieves the available interior styles for staging (e.g. modern, coastal).
Responses
| Status | Meaning | Body |
|---|---|---|
200 | List of styles | — |
Example request
curl -X GET "https://api.tech.renovateai.app/public/v1/virtual-staging/styles" \
-H "X-API-KEY: $RENOVATE_API_KEY" GET /virtual-staging/projects/{project_id}
Get virtual staging project details
Retrieve input image and generated staging variations for a specific project.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
project_id | path | string | yes |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Project details with staged variations | project_id — stringinput_image_url — stringgenerations — array of objectgenerations[].id — stringgenerations[].staged_image_url — stringgenerations[].created_at — stringgenerations[].style — stringgenerations[].room_type — string |
404 | Project not found | — |
Example request
curl -X GET "https://api.tech.renovateai.app/public/v1/virtual-staging/projects/YOUR_PROJECT_ID" \
-H "X-API-KEY: $RENOVATE_API_KEY"