Ideal House
सामग्री पर जाएं

होम डेकोर API दस्तावेज़ीकरण#

बेस URL: https://api.ideal.house
संस्करण: v1
अपडेट किया गया: 2026-05-21


📖 अवलोकन#

होम डेकोर API इंटीरियर छवि के लिए सजावट के विचार उत्पन्न करता है। यह वैकल्पिक टेक्स्ट मार्गदर्शन, एक संदर्भ छवि, शैली चयन, और मॉडल मोड का समर्थन करता है।

वर्कफ़्लो असिंक्रोनस है:

  1. टास्क बनाएंimageUrl और वैकल्पिक पैरामीटर सबमिट करें, फिर एक taskId प्राप्त करें।
  2. परिणामों के लिए पोल करेंtaskId का उपयोग करके टास्क स्थिति और जनरेट की गई छवि प्राप्त करें।

🔐 प्रमाणीकरण#

हेडरमान
APIKEYyour_api_key_here

💰 क्रेडिट विलोपन#

[!WARNING] टास्क सफलतापूर्वक बनाए जाने पर क्रेडिट काटे जाते हैं। यदि टास्क अंततः विफल होता है, तो काटे गए क्रेडिट अपने आप वापस कर दिए जाएँगे
अपर्याप्त क्रेडिट त्रुटि कोड 9051 लौटाएंगे। क्रेडिट विलोपन संदर्भ देखें।

मॉडल (modelType)विलोपित क्रेडिट
Base3 क्रेडिट
Pro10 क्रेडिट

यदि modelType प्रदान नहीं किया जाता है, तो Base डिफ़ॉल्ट रूप से उपयोग किया जाता है।


🎨 शैली विकल्प#

यह API वैकल्पिक शैली पैरामीटर का समर्थन करता है जिन्हें API शैली कॉन्फ़िग एंडपॉइंट द्वारा लौटाया जाता है।

उपयोग करें:

सादा पाठ
GET /api/v1/style/home_decor_ideas/getStyles
शैली समूहअनुरोध फ़ील्डविवरण
spaceTypespaceStyleIdस्थान या कमरे के प्रकार का विकल्प
decorStylehomeDecorStyleIdसजावट शैली का विकल्प

प्रत्येक विकल्प में name, id, और url शामिल हैं। विकल्प का id संबंधित अनुरोध फ़ील्ड में पास करें।


📌 API एंडपॉइंट#

1. होम डेकोर टास्क बनाएं#

एंडपॉइंट

सादा पाठ
POST /api/v1/homeDecor/generate

अनुरोध हेडर

हेडरआवश्यकविवरण
APIKEY✅ हाँआपका API प्रमाणीकरण की
Content-Type✅ हाँapplication/json

अनुरोध बॉडी

फ़ील्डप्रकारआवश्यकविवरण
imageUrlstring✅ हाँस्रोत इंटीरियर छवि का URL
referenceUrlstring❌ वैकल्पिकसजावट शैली को मार्गदर्शन करने के लिए संदर्भ छवि का URL
spaceStyleIdstring❌ वैकल्पिकspaceType शैली विकल्पों से स्थान प्रकार आईडी
homeDecorStyleIdstring❌ वैकल्पिकdecorStyle शैली विकल्पों से डेकोर शैली आईडी
promptstring❌ वैकल्पिकवांछित परिणाम के लिए टेक्स्ट मार्गदर्शन
modelTypestring❌ वैकल्पिकएनम: Base, Pro। डिफ़ॉल्ट Base है

केवल imageUrl आवश्यक है। सभी अन्य फ़ील्ड वैकल्पिक हैं।

🖼️ छवि आवश्यकताएं: सभी स्रोत और संदर्भ छवियों को JPG/JPEG, PNG, या WebP का उपयोग करना होगा। प्रत्येक छवि का आकार 20 MB से अधिक नहीं होना चाहिए, आयाम 128 × 128 px से लेकर 6,000 × 6,000 px (समावेशी) तक। अधिकतम पिक्सेल आयाम से अधिक छवियों को प्रोसेसिंग से पहले स्वतः अनुपात में छोटा कर दिया जाता है ताकि वे 6,000 × 6,000 px के भीतर फिट हों। छवि URLs को API सर्वर द्वारा सीधे एक्सेस किया जा सकना चाहिए।

📥 अनुरोध उदाहरण#

cURL
bash
curl -X POST "https://api.ideal.house/api/v1/homeDecor/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "imageUrl": "https://example.com/room.jpg",
    "referenceUrl": "https://example.com/reference.jpg",
    "spaceStyleId": "Indoor_Living Room",
    "homeDecorStyleId": "Holidays_Cozy Christmas",
    "prompt": "warm seasonal decor with natural textures",
    "modelType": "Base"
  }'
Java (OkHttp)
java
import okhttp3.*;

import java.io.IOException;

public class HomeDecorApiExample {

    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/room.jpg",
                    "referenceUrl": "https://example.com/reference.jpg",
                    "spaceStyleId": "Indoor_Living Room",
                    "homeDecorStyleId": "Holidays_Cozy Christmas",
                    "prompt": "warm seasonal decor with natural textures",
                    "modelType": "Base"
                }
                """;

        Request request = new Request.Builder()
                .url(BASE_URL + "/api/v1/homeDecor/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)
python
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/room.jpg",
    "referenceUrl": "https://example.com/reference.jpg",
    "spaceStyleId": "Indoor_Living Room",
    "homeDecorStyleId": "Holidays_Cozy Christmas",
    "prompt": "warm seasonal decor with natural textures",
    "modelType": "Base"
}

response = requests.post(
    f"{BASE_URL}/api/v1/homeDecor/generate",
    headers=headers,
    json=payload
)

data = response.json()
task_id = data.get("data")
print(f"Task ID: {task_id}")
Node.js (axios)
javascript
const axios = require('axios');

const BASE_URL = 'https://api.ideal.house';
const API_KEY = 'your_api_key_here';

async function createHomeDecorTask() {
  try {
    const response = await axios.post(
      `${BASE_URL}/api/v1/homeDecor/generate`,
      {
        imageUrl: 'https://example.com/room.jpg',
        referenceUrl: 'https://example.com/reference.jpg',
        spaceStyleId: 'Indoor_Living Room',
        homeDecorStyleId: 'Holidays_Cozy Christmas',
        prompt: 'warm seasonal decor with natural textures',
        modelType: 'Base'
      },
      {
        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);
  }
}

createHomeDecorTask();

📤 प्रतिक्रिया#

json
{
  "code": 0,
  "message": "success",
  "data": 1234567890123456789
}

2. टास्क परिणाम प्राप्त करें#

एंडपॉइंट

सादा पाठ
GET /api/v1/homeDecor/result

अनुरोध हेडर

हेडरआवश्यकविवरण
APIKEY✅ हाँआपका API प्रमाणीकरण की

क्वेरी पैरामीटर

पैरामीटरप्रकारआवश्यकविवरण
taskIdlong✅ हाँटास्क बनाए एंडपॉइंट द्वारा लौटाया गया टास्क आईडी

📥 अनुरोध उदाहरण#

cURL
bash
curl -X GET "https://api.ideal.house/api/v1/homeDecor/result?taskId=1234567890123456789" \
  -H "APIKEY: your_api_key_here"
Java (OkHttp)
java
import okhttp3.*;

import java.io.IOException;

public class HomeDecorResultExample {

    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/homeDecor/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)
python
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/homeDecor/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)
javascript
const axios = require('axios');

const BASE_URL = 'https://api.ideal.house';
const API_KEY = 'your_api_key_here';

async function pollHomeDecorResult(taskId) {
  const headers = { APIKEY: API_KEY };

  while (true) {
    const response = await axios.get(
      `${BASE_URL}/api/v1/homeDecor/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));
  }
}

pollHomeDecorResult(1234567890123456789n);

📤 प्रतिक्रिया उदाहरण#

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Success",
    "waitNumber": 0,
    "percentage": 100,
    "input": {
      "imageUrl": "https://example.com/room.jpg",
      "refImageUrl": "https://example.com/reference.jpg",
      "spaceStyleId": "Indoor_Living Room",
      "homeDecorStyleId": "Holidays_Cozy Christmas",
      "prompt": "warm seasonal decor with natural textures",
      "modelType": "Base"
    },
    "output": {
      "resultUrl": "https://cdn.ideal.house/output/home_decor_result.jpg",
      "width": 1024,
      "height": 1024
    }
  }
}

प्रतिक्रिया (टास्क प्रोसेसिंग / कतार में)

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Processing",
    "waitNumber": 1,
    "percentage": 45,
    "input": {
      "imageUrl": "https://example.com/room.jpg",
      "modelType": "Base"
    },
    "output": null
  }
}

प्रतिक्रिया (टास्क विफल)

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Failed",
    "waitNumber": 0,
    "percentage": 0,
    "input": {
      "imageUrl": "https://example.com/room.jpg",
      "modelType": "Base"
    },
    "output": null
  }
}

📊 टास्क स्थिति#

स्थितिविवरण
Unprocessedटास्क बनाया गया है और कतार में प्रतीक्षा कर रहा है
Processingटास्क वर्तमान में चालू है
Successटास्क सफलतापूर्वक पूर्ण हुआ
Failedटास्क विफल हुआ और कोई आउटपुट नहीं बना

हर 3-5 सेकंड में पोल करें। API टास्क सीमा देखें।


❌ त्रुटि प्रतिक्रियाएं#

कोडनामविवरण
1011PARAM_ERRORअनुरोध पैरामीटर त्रुटि
5002API_KEY_INVALIDअमान्य या अनुपस्थित API की
9010SCAN_TEXT_ERRORप्रॉम्प्ट ने कंटेंट समीक्षा में विफलता दर्शाई
9038PROHIBITED_CONTENTजनरेट की गई छवि में प्रतिबंधित सामग्री शामिल है
9051COINS_NOT_ENOUGHअपर्याप्त क्रेडिट

पूर्ण सामान्य त्रुटि परिभाषाओं के लिए, त्रुटि कोड संदर्भ देखें।