πŸ”ŒEndpoints

The v2 API is available at the base URL https://api.virtualstagingai.app/v2.

The same API key can be used for both the v1 and v2 API. You can find or generate your API key in the Settingsarrow-up-right section of your Virtual Staging AI account.

Authenticate all requests by including an Authorization Header with the value (case sensitive):

Authorization: Api-Key {your_api_key_here}

Check API status

get
/status

Returns 200 OK if the API is running

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Responses
chevron-right
200

API is operational

No content

get
/status
200

API is operational

No content

Get current user details

get
/user

Returns information about the authenticated user including their usage limits

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Responses
chevron-right
200

Successful response

application/json
get
/user

Get all renders

get
/renders

Returns all renders for the authenticated user

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Query parameters
limitinteger Β· min: 1 Β· max: 100OptionalDefault: 20
cursorstringOptional

Render ID to start after

orderstring Β· enumOptional

The order in which to display renders. Based on their creation date.

Default: descPossible values:
Responses
chevron-right
200

Successful response

application/json
total_countnumberOptional

The total number of completed variations for this render.

next_cursorstring Β· nullableOptional

The cursor to use to get the next page of renders.

get
/renders
circle-exclamation

Create a new render

post
/renders

Create a new render with either a single configuration or multiple configurations.

Single Config Format: Use this for creating a single render with one configuration. Multi Config Format: Use this for creating a single render with multiple configurations. This can be used to generate variations with different room styles, furniture etc. without having to make a new request.

Examples

Single Config (Staging)

{
  "config": {
    "type": "staging",
    "add_furniture": {
      "room_type": "living",
      "style": "modern"
    }
  },
  "image_url": "https://example.com/image.jpg",
  "variation_count": 3,
  "wait_for_completion": false
}

Multi Config (Multiple Staging Variations)

{
  "configs": [
    {
      "type": "staging",
      "add_furniture": {
        "room_type": "living",
        "style": "modern"
      },
      "variation_count": 2
    },
    {
      "type": "staging",
      "add_furniture": {
        "room_type": "living",
        "style": "scandinavian"
      },
      "variation_count": 1
    }
  ],
  "image_url": "https://example.com/image.jpg",
  "wait_for_completion": true
}

Single Config (Day to Dusk)

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Body
or
Responses
chevron-right
200

Render created successfully

application/json
idstringRequired

Unique identifier for this render.

created_atnumberRequired

Creation timestamp (epoch milliseconds).

queued_atnumber Β· nullableOptional

Timestamp when the render was queued for processing (epoch milliseconds).

etanumber Β· nullableRequired

Estimated time remaining for the first variation to complete (epoch milliseconds timestamp).

post
/renders

Get render details

get
/renders/{render_id}

Returns details about a render including the status, variations, and result URL

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Path parameters
render_idstringRequired

The ID of the render to get details for

Query parameters
include_variationsbooleanOptionalDefault: false
variations_limitinteger Β· min: 1 Β· max: 100OptionalDefault: 20
variations_cursorstringOptional

Variation ID to start after

variations_orderstring Β· enumOptional

The order in which to display variations. Based on their creation date.

Default: ascPossible values:
Responses
chevron-right
200

Successful response

application/json
idstringRequired

Unique identifier for this render.

created_atnumberRequired

Creation timestamp (epoch milliseconds).

queued_atnumber Β· nullableOptional

Timestamp when the render was queued for processing (epoch milliseconds).

etanumber Β· nullableRequired

Estimated time remaining for the first variation to complete (epoch milliseconds timestamp).

get
/renders/{render_id}

Get variation details

get
/renders/{render_id}/variations/{variation_id}

Returns details about a variation including the status and result URL

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Path parameters
render_idstringRequired

The ID of the base render

variation_idstringRequired

The ID of the variation to get details for

Responses
chevron-right
200

Successful response

application/json
idstringRequired

Unique identifier for this variation.

typestring Β· enumOptional

Type of variation (staging, removal, etc.).

Possible values:
render_idstringRequired

ID of the parent render this variation belongs to.

created_atnumberRequired

Creation timestamp (epoch milliseconds).

statusstring Β· enumRequired

Current status of the variation.

Possible values:
resultone ofOptional

Result images (only present when status is 'done').

or
base_variation_idstringOptional

ID of the removal variation used as base, if this staging variation used a removal variation as its base.

etanumber Β· nullableRequired

Estimated time remaining for the variation to complete (epoch milliseconds timestamp).

configone ofOptional

Configuration used to generate this variation.

or
or
or
get
/renders/{render_id}/variations/{variation_id}

Create new variations

post
/renders/{render_id}/variations

Create one or more variations for an existing render. Status updates will be sent to the webhook_url specified in the render if one was provided.

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Path parameters
render_idstringRequired
Body
configone ofRequired
or
or
variation_countinteger Β· min: 1Required
wait_for_completionboolean Β· nullableOptionalDefault: false
Responses
chevron-right
200

Variations created and completed successfully

application/json
post
/renders/{render_id}/variations

Create multiple renders in bulk

post
/renders/bulk

Creates multiple renders with the specified parameters.

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Body
webhook_urlstring Β· nullableOptional
wait_for_completionboolean Β· nullableOptionalDefault: false
Responses
chevron-right
200

Renders created and completed successfully

application/json
post
/renders/bulk

Create multiple variations in bulk

post
/renders/variations/bulk

Creates multiple variations for an existing render with different configurations.

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Body
wait_for_completionboolean Β· nullableOptionalDefault: false
Responses
chevron-right
200

Variations for renders created and completed successfully

application/json
post
/renders/variations/bulk

Submit an image for a furniture mask generation

post
/analyze

Submits an image for analysis to generate a furniture mask. If a webhook_url is provided, completion status will be sent to that URL.

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Body
image_urlstringRequired

URL for an image, either HTTP/HTTPS URL or base64 encoded data URL.

Pattern: ^(https?:\/\/[^\s]+|data:image\/[a-zA-Z+]+;base64,[A-Za-z0-9+/=]+)$
webhook_urlstring Β· nullableOptional

URL for completion payload

Responses
chevron-right
200

Successful response

application/json
idstringRequired

Unique identifier for this analysis.

created_atnumberRequired

Creation timestamp (epoch milliseconds).

result_urlstringRequired

URL of the analysis result image.

percentage_maskednumberOptional

Percentage of the image that was identified as furniture.

statusstring Β· enumRequired

Status of the analysis.

Possible values:
post
/analyze

Check if two images are compatible for multi-view staging

post
/multi-view-compatibility

Analyzes two images to determine if they can be used together for multi-view staging.

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Body
image_urlsstring[] Β· min: 2 Β· max: 2Required

Array of two image URLs to check for compatibility.

Responses
chevron-right
200

Successful response

application/json
compatiblebooleanRequired

Whether the images are compatible for multi-view staging.

hard_rejectedbooleanRequired

Whether the multi-view staging was hard rejected. If true, multi-view staging is not possible. If false but compatible is false, multi-view staging is possible but the result may not be as good.

rejection_reasonstring Β· nullableOptional

Reason for rejection if images are not compatible.

post
/multi-view-compatibility

Create or update webhook secret

post
/user/webhook-secret

Sets or updates the webhook secret used for HMAC signature verification

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Body
webhook_secretstring Β· min: 1Required

The webhook secret to use for HMAC signature verification

Pattern: ^[a-zA-Z0-9_-]+$
Responses
chevron-right
200

Webhook secret updated successfully

application/json
messagestringOptionalExample: Webhook secret updated successfully
post
/user/webhook-secret

Remove webhook secret

delete
/user/webhook-secret

Removes the webhook secret used for HMAC signature verification

Authorizations
AuthorizationstringRequired

API key authentication. Use the format: Api-Key ${key}.

Responses
chevron-right
200

Webhook secret removed successfully

application/json
messagestringOptionalExample: Webhook secret removed successfully
delete
/user/webhook-secret

Schemas

Last updated