Spacely AI Enterprise
  • Introduction
    • Overview
    • Getting Started
    • Authentication
    • Rate Limiting
    • Credit consumption
  • Instant Rendering API
    • Create renders from Spacely AI preset styles
    • Create renders from custom input
    • Create renders from image style transferring
  • Product Visualization API
    • Furniture placement
    • Decoration placement
    • Color transfer
  • Precision Space Planning API
    • 1-Point perspective
    • 2-Point perspective
  • OTHER ENDPOINTS
    • Get Resources
    • Polling Data
Powered by GitBook
On this page
  • Description
  • Use cases
  • Credit
  • API
  • Example
  • Tips and tricks
  • Support
  1. Product Visualization API

Furniture placement

PreviousCreate renders from image style transferringNextDecoration placement

Last updated 1 year ago

Description

Add your furniture into the existing room. Spacely AI furniture placement AI will place the furniture into the room, making it smooth, seamless, and realistic.

Use cases

  1. Visual the furniture for client.

  2. Rapid visualization furnitures for sales purposes.

Credit

1 successful furniture placement API call = 1 credit.

API

POST https://api.spacely.ai/api/v1/generate/furniture-placement

This endpoint is used to furniture placement generate

Headers

Name
Type
Description

X-API-KEY*

String

Request Body

Name
Type
Description

imageUrl*

String

This field contains the URL of the background image where furniture will be placed.

productImageUrl*

String

placement*

Object

This object describes the position and size of the furniture within the background image. It includes four attributes:

x: The x-coordinate (horizontal position) of the top-left corner of the furniture placement.

y: The y-coordinate (vertical position) of the top-left corner of the furniture placement.

w: The width of the furniture placement.

h: The height of the furniture placement.

Please note that the x,y coordinate starts at the top-left corner of the image and can only be positive.

area*

Object

This object defines the area within the background image where the furniture can be placed. It includes four attributes similar to placement, defining a larger bounding box where the furniture can be positioned.

{
  "data": REF_ID
}

Example

curl --location 'https://api.spacely.ai/api/v1/generate/furniture-placement' \
--header 'X-API-KEY: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "imageUrl": "https://storage.googleapis.com/spacely-dev/product-placement-images/2e53a5ce9664dee4a2177bee61716893.jpg",
    "productImageUrl": "https://storage.googleapis.com/spacely-dev/product-placement-images/1.png",
    "placement": {
        "x": 310,
        "y": 0,
        "w": 90.0,
        "h": 120.0
    },
    "area": {
        "x": 305,
        "y": 0,
        "w": 100.0,
        "h": 130.0
    }
}'
const myHeaders = new Headers();
myHeaders.append("X-API-KEY", YOUR_API_KEY);
myHeaders.append("Content-Type", "application/json");

const raw = JSON.stringify({
  "imageUrl": "https://storage.googleapis.com/spacely-dev/product-placement-images/2e53a5ce9664dee4a2177bee61716893.jpg",
  "productImageUrl": "https://storage.googleapis.com/spacely-dev/product-placement-images/1.png",
  "placement": {
    "x": 310,
    "y": 0,
    "w": 90,
    "h": 120
  },
  "area": {
    "x": 305,
    "y": 0,
    "w": 100,
    "h": 130
  }
});

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: raw,
  redirect: "follow"
};

fetch("https://api.spacely.ai/api/v1/generate/furniture-placement", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
const axios = require('axios');
let data = JSON.stringify({
  "imageUrl": "https://storage.googleapis.com/spacely-dev/product-placement-images/2e53a5ce9664dee4a2177bee61716893.jpg",
  "productImageUrl": "https://storage.googleapis.com/spacely-dev/product-placement-images/1.png",
  "placement": {
    "x": 310,
    "y": 0,
    "w": 90,
    "h": 120
  },
  "area": {
    "x": 305,
    "y": 0,
    "w": 100,
    "h": 130
  }
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.spacely.ai/api/v1/generate/furniture-placement',
  headers: { 
    'X-API-KEY': YOUR_API_KEY, 
    'Content-Type': 'application/json'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://api.spacely.ai/api/v1/generate/furniture-placement"
  method := "POST"

  payload := strings.NewReader(`{
    "imageUrl": "https://storage.googleapis.com/spacely-dev/product-placement-images/2e53a5ce9664dee4a2177bee61716893.jpg",
    "productImageUrl": "https://storage.googleapis.com/spacely-dev/product-placement-images/1.png",
    "placement": {
        "x": 310,
        "y": 0,
        "w": 90.0,
        "h": 120.0
    },
    "area": {
        "x": 305,
        "y": 0,
        "w": 100.0,
        "h": 130.0
    }
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("X-API-KEY", YOUR_API_KEY)
  req.Header.Add("Content-Type", "application/json")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
import requests
import json

url = "https://api.spacely.ai/api/v1/generate/furniture-placement"

payload = json.dumps({
  "imageUrl": "https://storage.googleapis.com/spacely-dev/product-placement-images/2e53a5ce9664dee4a2177bee61716893.jpg",
  "productImageUrl": "https://storage.googleapis.com/spacely-dev/product-placement-images/1.png",
  "placement": {
    "x": 310,
    "y": 0,
    "w": 90,
    "h": 120
  },
  "area": {
    "x": 305,
    "y": 0,
    "w": 100,
    "h": 130
  }
})
headers = {
  'X-API-KEY': YOUR_API_KEY,
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Tips and tricks

After receiving the response, use this api to retrieve the data.

Support

Any question? Contact us at support@spacely.ai

(e.g., ")

This field contains the URL of the furniture product image that will be placed within the background image. (e.g., ")

Get Resources
https://storage.googleapis.com/spacely-dev/product-placement-images/2e53a5ce9664dee4a2177bee61716893.jpg
https://storage.googleapis.com/spacely-dev/product-placement-images/1.png
Before
After - Furniture placed