Room Visualizer
A responsive, flexible room visualization component that allows users to select room types and styles, generate room images, and view furniture product recommendations.
API
The Room Visualize API allows you to generate room visualizations based on room types and styles.
Authentication
Use the Authorization: Bearer YOUR_TOKEN header with a single-use token obtained from /api/v1/token. Generate a room-visualize:create token for creation and a new room-visualize:read token for every status request.
Create Room Visualization
Endpoint: POST /api/v1/room-visualize
Generate a room visualization by specifying room type, styles, and optional base image.
curl -X POST "https://platform.youzu.ai/api/v1/room-visualize" \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "room=living room" \
-F "styles=modern" \
-F "styles=minimal" \
-F "aspect_ratio=16:9"
// Generate a room visualization using token
const formData = new FormData();
formData.append('room', 'living room');
formData.append('styles', 'modern');
formData.append('styles', 'minimal');
formData.append('aspect_ratio', '16:9');
fetch('https://platform.youzu.ai/api/v1/room-visualize', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
},
body: formData
})
.then(response => response.json())
.then(data => {
console.log('Generation started:', data);
// Poll for completion using data.id
})
.catch(error => {
console.error('Error:', error);
});
import requests
# Generate a room visualization using token
url = 'https://platform.youzu.ai/api/v1/room-visualize'
headers = {
'Authorization': 'Bearer YOUR_TOKEN'
}
data = {
'room': 'living room',
'styles': ['modern', 'minimal'],
'aspect_ratio': '16:9'
}
response = requests.post(url, headers=headers, data=data)
if response.status_code == 200:
job = response.json()
print('Generation started:', job)
# Poll for completion using job['id']
else:
print('Error:', response.status_code, response.text)
Get Visualization Status
Endpoint: GET /api/v1/room-visualize/{id}
Check the status of a room visualization job.
curl -X GET "https://platform.youzu.ai/api/v1/room-visualize/YOUR_JOB_ID" \
-H "Authorization: Bearer YOUR_TOKEN"
// Check visualization status using token
fetch('https://platform.youzu.ai/api/v1/room-visualize/YOUR_JOB_ID', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
})
.then(response => response.json())
.then(data => {
console.log('Job status:', data.status);
if (data.status === 'COMPLETED') {
console.log('Generated image URL:', data.outputUrls[0]);
}
})
.catch(error => {
console.error('Error:', error);
});
import requests
# Check visualization status using token
url = 'https://platform.youzu.ai/api/v1/room-visualize/YOUR_JOB_ID'
headers = {
'Authorization': 'Bearer YOUR_TOKEN'
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
job = response.json()
print('Job status:', job['status'])
if job['status'] == 'COMPLETED':
print('Generated image URL:', job['outputUrls'][0])
else:
print('Error:', response.status_code, response.text)
SDK
Props
| Property | Attribute | Type | Default |
|---|---|---|---|
currency |
currency |
string | undefined |
customProperties |
custom-properties |
ApiV1LensPostRequestCustomProperties | undefined |
features |
features |
FeatureFlags | undefined |
generationId |
generation-id |
string | undefined |
lang |
lang |
string | undefined |
noIntro |
no-intro |
boolean | undefined |
Events
| Event | Description | Type |
|---|---|---|
generationComplete |
CustomEvent<Generation> |
|
productAddedToBasket |
CustomEvent<ApiV1LensPost200ResponseInner> |
|
productClicked |
CustomEvent<ApiV1LensPost200ResponseInner> |
|
profileClicked |
CustomEvent<void> |
|
roomSelected |
CustomEvent<{ roomId: string; roomName: string; }> |
|
styleSelected |
CustomEvent<{ styleId: string; styleName: string; }> |