# Furniture placement

<div><figure><img src="https://1051631996-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWpWB3PhSXYf1uN1tGGIQ%2Fuploads%2Fm6peEGEKHBGb9BemF17z%2FScreenshot%202567-03-11%20at%2015.38.42.png?alt=media&#x26;token=5d40222a-bab8-4ac9-992d-112c08f9fb0e" alt="" width="375"><figcaption><p>Before</p></figcaption></figure> <figure><img src="https://1051631996-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWpWB3PhSXYf1uN1tGGIQ%2Fuploads%2FVcVzDX7b5uAOkti5hU5Z%2FScreenshot%202567-03-11%20at%2015.38.56.png?alt=media&#x26;token=672c4e6f-5b12-419b-8856-256e95c9d1e1" alt="" width="375"><figcaption><p>After - Furniture placed</p></figcaption></figure></div>

## 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

<mark style="color:green;">`POST`</mark> `https://api.spacely.ai/api/v1/generate/furniture-placement`

This endpoint is used to furniture placement generate

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| X-API-KEY<mark style="color:red;">\*</mark> | String |             |

#### Request Body

| Name                                              | Type   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| imageUrl<mark style="color:red;">\*</mark>        | String | <p>This field contains the URL of the background image where furniture will be placed.</p><p>(e.g., <a href="https://storage.googleapis.com/spacely-dev/product-placement-images/2e53a5ce9664dee4a2177bee61716893.jpg"><https://storage.googleapis.com/spacely-dev/product-placement-images/2e53a5ce9664dee4a2177bee61716893.jpg></a>")</p>                                                                                                                                                                                                                                        |
| productImageUrl<mark style="color:red;">\*</mark> | String | This field contains the URL of the furniture product image that will be placed within the background image. (e.g., <https://storage.googleapis.com/spacely-dev/product-placement-images/1.png>")                                                                                                                                                                                                                                                                                                                                                                                   |
| placement<mark style="color:red;">\*</mark>       | Object | <p>This object describes the position and size of the furniture within the background image. It includes four attributes:</p><p></p><p>x: The x-coordinate (horizontal position) of the top-left corner of the furniture placement.</p><p></p><p>y: The y-coordinate (vertical position) of the top-left corner of the furniture placement.</p><p></p><p>w: The width of the furniture placement.</p><p></p><p>h: The height of the furniture placement.</p><p></p><p>Please note that the x,y coordinate starts at the top-left corner of the image and can only be positive.</p> |
| area<mark style="color:red;">\*</mark>            | 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.                                                                                                                                                                                                                                                                                                                                                                |

{% tabs %}
{% tab title="200: OK Response ref Id for pulling data" %}

```json
{
  "data": REF_ID
}
```

{% endtab %}

{% tab title="400: Bad Request Not Found: Requested resource not found on the server." %}

{% endtab %}

{% tab title="401: Unauthorized The API key provided was invalid or missing." %}

{% endtab %}

{% tab title="500: Internal Server Error Unexpected condition on the server preventing request fulfillment." %}

{% endtab %}
{% endtabs %}

## Example

{% tabs %}
{% tab title="cURL" %}

```sh
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
    }
}'
```

{% endtab %}

{% tab title="JavaScript  " %}

```javascript
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));
```

{% endtab %}

{% tab title="NodeJs" %}

```javascript
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);
});
```

{% endtab %}

{% tab title="Go" %}

```go
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))
}
```

{% endtab %}

{% tab title="Python" %}

```python
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)
```

{% endtab %}
{% endtabs %}

## Tips and tricks

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

{% content-ref url="../other-endpoints/get-resources" %}
[get-resources](https://docs.enterprise.spacely.ai/spacely-ai-enterprise/other-endpoints/get-resources)
{% endcontent-ref %}

## Support

Any question? Contact us at <support@spacely.ai>
