दस्तावेज़ीकरण API फर्नीशिंग बदलें#
मूल URL:
https://api.ideal.house
संस्करण: v1
अपडेट किया गया: 2026-05-21
📖 अवलोकन#
फर्नीशिंग बदलें API इंटीरियर इमेज में फर्नीशिंग को पुनर्शैली करता है या बदलता है। एक स्रोत इमेज और वैकल्पिक स्टाइल गाइडेंस सबमिट करें, फिर असिंक्रोनस रूप से टास्क परिणाम पोल करें।
- टास्क बनाएं —
imageUrlऔर वैकल्पिक गाइडेंस सबमिट करें, फिर एकtaskIdप्राप्त करें। - परिणामों के लिए पोल करें — टास्क स्थिति और आउटपुट इमेज पूछने के लिए
taskIdका उपयोग करें।
🔐 प्रमाणीकरण#
सभी API रिक्वेस्ट में रिक्वेस्ट हेडर में एक API कुंजी शामिल होनी चाहिए।
| हेडर | मान |
|---|---|
APIKEY | your_api_key_here |
💰 क्रेडिट विलोपन#
[!WARNING] 🪙 टास्क सफलतापूर्वक बनाए जाने पर 1 क्रेडिट काटा जाता है। यदि टास्क अंततः विफल होता है, तो काटा गया क्रेडिट अपने आप वापस कर दिया जाएगा।
अपर्याप्त क्रेडिट त्रुटि कोड9051लौटाएंगे। देखें क्रेडिट विलोपन संदर्भ।
| ऑपरेशन | विलोपित क्रेडिट |
|---|---|
| फर्नीशिंग बदलें टास्क | 1 क्रेडिट |
🎨 स्टाइल विकल्प#
यह API वैकल्पिक स्टाइल पैरामीटरों का समर्थन करता है जो API स्टाइल कॉन्फ़िग एंडपॉइंट द्वारा लौटते हैं।
उपयोग करें:
GET /api/v1/style/change_furniture/getStyles
| स्टाइल समूह | रिक्वेस्ट फ़ील्ड | विवरण |
|---|---|---|
roomType | indoorTypeId | रूम प्रकार विकल्प |
style | indoorStyleId | इंटीरियर स्टाइल विकल्प |
elements | indoorElemId | कक्ष तत्व विकल्प। विराम से जुड़े कई विकल्प आईडी का समर्थन करता है, उदाहरण के लिए id1,id2 |
प्रत्येक विकल्प में शामिल है:
| फ़ील्ड | विवरण |
|---|---|
name | बहुभाषी विकल्प नाम |
id | रिक्वेस्ट फ़ील्ड में पास करने के लिए मान |
url | विकल्प के लिए प्रीव्यू इमेज |
📌 API एंडपॉइंट#
1. फर्नीशिंग बदलें टास्क बनाएं#
एंडपॉइंट
POST /api/v1/changeFurniture/generate
रिक्वेस्ट हेडर
| हेडर | आवश्यक | विवरण |
|---|---|---|
APIKEY | ✅ हाँ | आपका API प्रमाणीकरण कुंजी |
Content-Type | ✅ हाँ | application/json |
रिक्वेस्ट बॉडी
| फ़ील्ड | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
imageUrl | string | ✅ हाँ | स्रोत इंटीरियर इमेज का URL |
prompt | string | ❌ वैकल्पिक | वांछित परिणाम के लिए टेक्स्ट गाइडेंस |
indoorTypeId | string | ❌ वैकल्पिक | roomType शैली विकल्पों से कक्ष प्रकार आईडी |
indoorStyleId | string | ❌ वैकल्पिक | style शैली विकल्पों से आंतरिक शैली आईडी |
indoorElemId | string | ❌ वैकल्पिक | elements शैली विकल्पों से कक्ष तत्व आईडी। विराम से जुड़े कई आईडी का समर्थन करता है, उदाहरण के लिए id1,id2 |
केवल
imageUrlआवश्यक है। सभी अन्य फ़ील्डें वैकल्पिक हैं।
🖼️ इमेज आवश्यकताएँ: JPG/JPEG, PNG, या WebP का उपयोग करें। प्रत्येक इमेज का आकार 20 MB से अधिक नहीं होना चाहिए, आयाम 128 × 128 px से लेकर 6,000 × 6,000 px (समावेशी) तक होना चाहिए। अधिकतम पिक्सल आयाम से अधिक इमेजों को प्रोसेसिंग से पहले स्वतः अनुपात में छोटा कर दिया जाता है ताकि वे 6,000 × 6,000 px के भीतर फिट हों। इमेज URL का सीधा एक्सेस API सर्वर द्वारा होना चाहिए।
📥 रिक्वेस्ट उदाहरण#
cURL
curl -X POST "https://api.ideal.house/api/v1/changeFurniture/generate" \
-H "APIKEY: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://example.com/living-room.jpg",
"prompt": "replace the sofa with a modern warm neutral sofa",
"indoorTypeId": "Interior Design_Interior Scene_Living Room",
"indoorStyleId": "Interior_Interior Style_Popular_Modern Country",
"indoorElemId": "Interior Design_Scene Elements_Living Room_Shelving,Interior Design_Scene Elements_Living Room_Coffee Table"
}'
Java (OkHttp)
import okhttp3.*;
import java.io.IOException;
public class ChangeFurnitureApiExample {
private static final String BASE_URL = "https://api.ideal.house";
private static final String API_KEY = "your_api_key_here";
public static void main(String[] args) throws IOException {
OkHttpClient client = new OkHttpClient();
String requestBody = """
{
"imageUrl": "https://example.com/living-room.jpg",
"prompt": "replace the sofa with a modern warm neutral sofa",
"indoorTypeId": "Interior Design_Interior Scene_Living Room",
"indoorStyleId": "Interior_Interior Style_Popular_Modern Country",
"indoorElemId": "Interior Design_Scene Elements_Living Room_Shelving,Interior Design_Scene Elements_Living Room_Coffee Table"
}
""";
Request request = new Request.Builder()
.url(BASE_URL + "/api/v1/changeFurniture/generate")
.addHeader("APIKEY", API_KEY)
.addHeader("Content-Type", "application/json")
.post(RequestBody.create(requestBody, MediaType.parse("application/json")))
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println("Response: " + response.body().string());
}
}
}
Python (requests)
import requests
BASE_URL = "https://api.ideal.house"
API_KEY = "your_api_key_here"
headers = {
"APIKEY": API_KEY,
"Content-Type": "application/json"
}
payload = {
"imageUrl": "https://example.com/living-room.jpg",
"prompt": "replace the sofa with a modern warm neutral sofa",
"indoorTypeId": "Interior Design_Interior Scene_Living Room",
"indoorStyleId": "Interior_Interior Style_Popular_Modern Country",
"indoorElemId": "Interior Design_Scene Elements_Living Room_Shelving,Interior Design_Scene Elements_Living Room_Coffee Table"
}
response = requests.post(
f"{BASE_URL}/api/v1/changeFurniture/generate",
headers=headers,
json=payload
)
data = response.json()
task_id = data.get("data")
print(f"Task ID: {task_id}")
Node.js (axios)
const axios = require('axios');
const BASE_URL = 'https://api.ideal.house';
const API_KEY = 'your_api_key_here';
async function createChangeFurnitureTask() {
try {
const response = await axios.post(
`${BASE_URL}/api/v1/changeFurniture/generate`,
{
imageUrl: 'https://example.com/living-room.jpg',
prompt: 'replace the sofa with a modern warm neutral sofa',
indoorTypeId: 'Interior Design_Interior Scene_Living Room',
indoorStyleId: 'Interior_Interior Style_Popular_Modern Country',
indoorElemId: 'Interior Design_Scene Elements_Living Room_Shelving,Interior Design_Scene Elements_Living Room_Coffee Table'
},
{
headers: {
APIKEY: API_KEY,
'Content-Type': 'application/json'
}
}
);
const taskId = response.data.data;
console.log('Task ID:', taskId);
return taskId;
} catch (error) {
console.error('Error:', error.response?.data || error.message);
}
}
createChangeFurnitureTask();
📤 रिस्पॉन्स#
{
"code": 0,
"message": "success",
"data": 1234567890123456789
}
| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
code | integer | 0 सफलता का संकेत करता है |
message | string | रिस्पॉन्स संदेश |
data | long | परिणामों के लिए पोलिंग के लिए टास्क आईडी |
2. टास्क परिणाम प्राप्त करें#
एंडपॉइंट
GET /api/v1/changeFurniture/result
रिक्वेस्ट हेडर
| हेडर | आवश्यक | विवरण |
|---|---|---|
APIKEY | ✅ हाँ | आपका API प्रमाणीकरण कुंजी |
क्वरी पैरामीटर
| पैरामीटर | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
taskId | long | ✅ आवश्यक | क्रिएट एंडपॉइंट द्वारा लौटाया गया टास्क आईडी |
📥 रिक्वेस्ट उदाहरण#
cURL
curl -X GET "https://api.ideal.house/api/v1/changeFurniture/result?taskId=1234567890123456789" \
-H "APIKEY: your_api_key_here"
Java (OkHttp)
import okhttp3.*;
import java.io.IOException;
public class ChangeFurnitureResultExample {
private static final String BASE_URL = "https://api.ideal.house";
private static final String API_KEY = "your_api_key_here";
public static void main(String[] args) throws IOException {
OkHttpClient client = new OkHttpClient();
long taskId = 1234567890123456789L;
Request request = new Request.Builder()
.url(BASE_URL + "/api/v1/changeFurniture/result?taskId=" + taskId)
.addHeader("APIKEY", API_KEY)
.get()
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println("Response: " + response.body().string());
}
}
}
Python (requests)
import requests
import time
BASE_URL = "https://api.ideal.house"
API_KEY = "your_api_key_here"
headers = {"APIKEY": API_KEY}
task_id = 1234567890123456789
while True:
response = requests.get(
f"{BASE_URL}/api/v1/changeFurniture/result",
headers=headers,
params={"taskId": task_id}
)
data = response.json()
result = data.get("data", {})
status = result.get("status")
print(f"Status: {status}, Progress: {result.get('percentage')}%, Queue: {result.get('waitNumber')}")
if status in ("Success", "Failed"):
break
time.sleep(3)
if status == "Success":
print("Result URL:", result["output"]["resultUrl"])
else:
print("Task ended with status:", status)
Node.js (axios)
const axios = require('axios');
const BASE_URL = 'https://api.ideal.house';
const API_KEY = 'your_api_key_here';
async function pollChangeFurnitureResult(taskId) {
const headers = { APIKEY: API_KEY };
while (true) {
const response = await axios.get(
`${BASE_URL}/api/v1/changeFurniture/result`,
{
headers,
params: { taskId }
}
);
const result = response.data.data;
const { status, percentage, waitNumber } = result;
console.log(`Status: ${status} | Progress: ${percentage}% | Queue: ${waitNumber}`);
if (['Success', 'Failed'].includes(status)) {
if (status === 'Success') {
console.log('Result URL:', result.output.resultUrl);
console.log('Size:', result.output.width, 'x', result.output.height);
} else {
console.log('Task ended with status:', status);
}
break;
}
await new Promise(resolve => setTimeout(resolve, 3000));
}
}
pollChangeFurnitureResult(1234567890123456789n);
📤 रिस्पॉन्स उदाहरण#
{
"code": 0,
"message": "success",
"data": {
"id": 1234567890123456789,
"status": "Success",
"waitNumber": 0,
"percentage": 100,
"input": {
"imageUrl": "https://example.com/living-room.jpg",
"prompt": "replace the sofa with a modern warm neutral sofa",
"indoorTypeId": "Interior Design_Interior Scene_Living Room",
"indoorStyleId": "Interior_Interior Style_Popular_Modern Country",
"indoorElemId": "Interior Design_Scene Elements_Living Room_Shelving,Interior Design_Scene Elements_Living Room_Coffee Table"
},
"output": {
"resultUrl": "https://cdn.ideal.house/output/change_furniture_result.jpg",
"width": 1024,
"height": 1024
}
}
}
रिस्पॉन्स (टास्क प्रोसेसिंग / कतार में)
{
"code": 0,
"message": "success",
"data": {
"id": 1234567890123456789,
"status": "Processing",
"waitNumber": 1,
"percentage": 45,
"input": {
"imageUrl": "https://example.com/living-room.jpg",
"prompt": "replace the sofa with a modern warm neutral sofa"
},
"output": null
}
}
रिस्पॉन्स (टास्क विफल)
{
"code": 0,
"message": "success",
"data": {
"id": 1234567890123456789,
"status": "Failed",
"waitNumber": 0,
"percentage": 0,
"input": {
"imageUrl": "https://example.com/living-room.jpg"
},
"output": null
}
}
📊 टास्क स्थिति#
| स्थिति | विवरण |
|---|---|
Unprocessed | टास्क बनाया गया है और कतार में प्रतीक्षा कर रहा है |
Processing | टास्क वर्तमान में चल रहा है |
Success | टास्क सफलतापूर्वक पूर्ण हुआ |
Failed | टास्क विफल हुआ और कोई आउटपुट नहीं बना |
हर 3-5 सेकंड पर पोल करें। देखें API टास्क सीमा।
❌ त्रुटि रिस्पॉन्स#
| कोड | नाम | विवरण |
|---|---|---|
1011 | PARAM_ERROR | रिक्वेस्ट पैरामीटर त्रुटि |
5002 | API_KEY_INVALID | अमान्य या अनुपस्थित API कुंजी |
9010 | SCAN_TEXT_ERROR | प्रॉम्प्ट ने कंटेंट समीक्षा में विफलता दर्ज की |
9038 | PROHIBITED_CONTENT | जनरेटेड इमेज में प्रतिबंधित कंटेंट शामिल है |
9051 | COINS_NOT_ENOUGH | अपर्याप्त क्रेडिट |
संपूर्ण सामान्य त्रुटि परिभाषाओं के लिए, देखें त्रुटि कोड संदर्भ।