Replace furniture

Swap one piece, keep everything else.

Point at the sofa, chair, table or rug to change and pass a product photo from any catalog. The new piece is matched to the room’s perspective and lighting; surrounding furniture stays put.

POST/v1/studio/staging/replace-furnitureasync · ~14s
Living room with a gray sofa, accent armchair and cream rug
The same room with a tan leather sofa
OriginalSwapped
Product photo: tan leather sofareference
Product

Original photos on this page are AI-generated examples; every result is real Studio API output.

  • Sofas
  • Armchairs
  • Tables
  • Beds
  • Rugs
  • Lighting
Use cases

Try it before you buy it

Drag any slider to compare. Every example runs through the same endpoint.

Modern living room with a charcoal sofa
The same modern room with a curved bouclé sofa
OriginalBouclé sofa

Sofas

Show a buyer — or a client — exactly how that catalog sofa sits in their living room.

Living room with a gray sofa, accent armchair and cream rug
The same room with a cognac leather armchair
OriginalLeather chair

Accent chairs

Swap a single chair and leave the rest of the room untouched.

Living room with a gray sofa, accent armchair and cream rug
The same room with a terracotta rug
OriginalTerracotta rug

Rugs

Compare rug colors and textures under the same furniture and light.

API

One request. That’s the integration.

Authenticate with x-api-key or Authorization: Bearer — the same key as the Listings API.

POST/v1/studio/staging/replace-furnitureAsync · ~14s
01POST the room photo, the piece to replace and a product photo or description. You get a job_id right away.
02Poll GET /v1/studio/jobs/:job_id, stream progress over SSE, or wait for your webhook.
03Download the updated room photo — only the target piece has changed.
Body parameters7
room_photo_urlstringrequired
Public URL of the room photo.
target_furnitureenumrequired
sofa · coffee_table · armchair · dining_table · dining_chairs · bed · nightstand · tv_stand · rug · lighting_fixture
reference_product_image_urlstring
Product photo of the replacement piece, from any catalog.
product_descriptionstring
Describe the replacement instead of (or as well as) a photo.
target_location_notesstring
Which piece to replace when there is more than one.
preserve_surroundingsboolean
Leave all other furniture, decor and lighting untouched.
webhook_urlstring
Called with the finished job when processing completes.
terminal
curl -X POST https://mlsapi.dev/v1/studio/staging/replace-furniture \
-H "x-api-key: $MLSAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"room_photo_url": "https://cdn.mlsapi.dev/photos/A12079565/02.webp",
"target_furniture": "sofa",
"reference_product_image_url": "https://cdn.example.com/products/leather-sofa-tan.jpg",
"target_location_notes": "Replace the three-seat fabric sofa facing the window.",
"preserve_surroundings": true
}'
202 Accepted
POST /v1/studio/staging/replace-furniture
{
"job_id": "job_studio_01JA0XQ4M9ZK7T",
"type": "replace_furniture",
"status": "processing",
"progress_percentage": 10,
"current_step": "initializing_pipeline",
"estimated_completion_seconds": 14,
"created_at": "2026-09-29T14:02:11.000Z",
"status_url": "/v1/studio/jobs/job_studio_01JA0XQ4M9ZK7T"
}

Try Replace Furniture in Studio.

Sign up or log in at studio.mlsapi.dev to run it on your own photos — then call the same endpoint from your code.