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

घर के नक्शे जनरेशन API दस्तावेज़ीकरण#

मूल URL: https://api.ideal.house
संस्करण: v1
अपडेट किया गया: 2026-06-12


📖 अवलोकन#

घर के नक्शे जनरेशन API आपको वास्तु शैली, क्षेत्र, संरचनात्मक विन्यास और आंतरिक लेआउट प्राथमिकताओं के आधार पर AI-जनित घर के नक्शे प्रस्तुति बोर्ड बनाने की अनुमति देता है। सफल जनरेशन के बाद, API प्रति कार्य के रूप में ठीक 1 संयुक्त परिणाम छवि उत्पन्न करता है। छवि में एक ही प्रस्तुति बोर्ड में समन्वित 2D फ्लोर प्लान, बाहरी मुखभाग के रेखाचित्र और फोटो-वास्तविक बाहरी रेंडरिंग शामिल हैं। परिणाम output.resultUrl में संग्रहीत होता है और output.resultList में एकमात्र आइटम के रूप में भी शामिल होता है। वर्कफ्लो असिंक्रोनस है और इसमें दो चरण शामिल हैं:

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

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

सभी API अनुरोधों का प्रमाणीकरण API कुंजी से किया जाना चाहिए।

अनुरोध हेडर में अपनी API शामिल करें:

हेडरमान
APIKEYyour_api_key_here

⚠️ अपनी API कुंजी सुरक्षित रखें। इसे क्लाइंट-साइड कोड या सार्वजनिक रिपॉज़िटरी में उजागर न करें।


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

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

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

📌 API एंडपॉइंट#


1. घर योजना कार्य बनाएं#

एक नया AI घर योजना जनरेशन कार्य बनाता है और पोलिंग के लिए एक अद्वितीय taskId लौटाता है।

एंडपॉइंट

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

अनुरोध हेडर

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

अनुरोध बॉडी

फ़ील्डप्रकारआवश्यकविवरणडिफ़ॉल्ट
stylestring / null✅ हाँवास्तु शैली का अंग्रेज़ी नाम। देखें शैली विकल्पBarndominium
storiesstring✅ हाँमंजिलों की संख्या। सूचीबद्ध मान: 1, 2, 3+2
bedroomsstring✅ हाँबेडरूमों की संख्या। सूचीबद्ध मान: 1, 2, 3, 4, 5+2
bathroomsstring✅ हाँबाथरूमों की संख्या। सूचीबद्ध मान: 1, 1.5, 2, 2.5, 3, 3.5, 4+1
totalAreastring✅ हाँकुल क्षेत्र सीमा min-max unit प्रारूप में। देखें कुल क्षेत्र विकल्प150-200 m²
garageEnabledboolean✅ हाँक्या गैराज शामिल हैfalse
garageTypestring / null⚠️ शर्तबद्धgarageEnabled=true होने पर आवश्यक। देखें गैराज प्रकार विकल्पnull
garageCapacitystring / null⚠️ शर्तबद्धgarageEnabled=true होने पर आवश्यक। देखें गैराज क्षमताnull
basementstring✅ हाँबेसमेंट प्रकार। देखें बेसमेंट विकल्पNone
roofTypestring / null❌ नहींछत संरचना प्रकार। देखें छत प्रकार विकल्पnull
outdoorSpacesarray<string>❌ नहींबाहरी क्षेत्र। देखें बाहरी स्थान विकल्प[]
layoutConceptstring / null❌ नहींसमग्र आंतरिक लेआउट अवधारणा। देखें लेआउट अवधारणा विकल्पnull
bedroomAreaRangesarray<object>✅ हाँबेडरूम क्षेत्र सीमाएँ। लंबाई बेडरूम की संख्या से मेल खानी चाहिए। देखें बेडरूम क्षेत्र सीमाएँउदाहरण देखें
bathroomLayoutsarray<object>✅ हाँबाथरूम लेआउट चयन। लंबाई Math.floor(bathrooms) होनी चाहिए। देखें बाथरूम लेआउटउदाहरण देखें
kitchenLayoutstring / null❌ नहींकिचन लेआउट। देखें किचन विकल्पnull
kitchenFeatureOptionsarray<string>❌ नहींवैकल्पिक किचन सुविधाएँ। देखें किचन विकल्प[]
keyRoomsstring / null❌ नहींविशेष कमरे, जो विराम चिह्न और स्थान से जुड़े हैं। देखें मुख्य कमरे विकल्पnull
promptstring❌ नहींजनरेशन को और मार्गदर्शन करने के लिए कस्टम टेक्स्ट प्रॉम्प्ट""
refImageUrlstring❌ नहींशैली को मार्गदर्शन करने के लिए संदर्भ घर छवि का URL""
modelTypestring✅ हाँमॉडल क्वालिटी प्रकार। Enum: Base, Pro. ⚠️ Flash मोड समर्थित नहीं हैBase

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


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

मानविवरण
Barndominiumडिफ़ॉल्ट। धातु बार्न-शैली हाइब्रिड घर
Cabinग्रामीण लकड़ी के कबिन शैली
Cape Codक्लासिक न्यू इंग्लैंड सममितीय शैली
Coastalहल्का, हवादार समुद्र तट-प्रेरित शैली
Colonialपरंपरागत सममितीय कॉलोनियल वास्तुकला
Contemporaryसाफ़ रेखाएँ और आधुनिक सामग्री
Craftsmanप्राकृतिक सामग्री के साथ हाथ से बने विवरण
Farmhouseग्रामीण देशी फार्महाउस शैली
French Countryशानदार फ्रेंच प्रोविंशियल शैली
Mediterraneanगर्म स्टक्को के साथ टेराकोटा तत्व
Mid-Century Modern1950s–70s साफ ज्यामितीय आधुनिकता
Modernन्यूनतमवादी फ्लैट/कोणीय आधुनिक डिज़ाइन
Ranchएक-मंज़िला फैला हुआ लेआउट
Shingle Styleलगातार लकड़ी शिंगल बाहरी भाग
Southwesternएडोबी-प्रेरित मरुस्थल शैली
Transitionalपरंपरागत और आधुनिक का मिश्रण
Tudorआधा-लकड़ी वाला मध्यकालीन इंग्लिश शैली
Victorianशानदार 19वीं शताब्दी सजावटी शैली

📐 कुल क्षेत्र विकल्प#

totalArea फ़ील्ड min-max unit प्रारूप का उपयोग करती है। मीट्रिक मान का उपयोग करते हैं; इंपीरियल मापन प्रणाली के मान ft² का उपयोग करते हैं। न्यूनतम मान अधिकतम मान से कम से कम एक स्टेप कम होना चाहिए।

इकाईन्यूनतमअधिकतमस्टेपउदाहरण
5050010150-200 m²
ft²50050001001500-2000 ft²

🏠 छत प्रकार विकल्प#

मानविवरण
Gable roofक्लासिक त्रिकोणीय चोटीदार छत
Hip roofचारों ओर ढलान
Flat roofन्यूनतम पिटच फ्लैट छत
Pitched roofसामान्य तीव्र ढलान वाली छत

🏗️ बेसमेंट विकल्प#

मानविवरण
Noneकोई बेसमेंट नहीं
Partialआंशिक बेसमेंट
Fullपूर्ण बेसमेंट

🚗 गैराज प्रकार विकल्प#

garageType केवल तब आवश्यक है जब garageEnabled=true; अन्यथा null भेजें।

मानविवरण
Detachedअलग गैराज
Front Entryगैराज प्रवेश द्वार सामने की ओर है
Side Entryगैराज प्रवेश द्वार साइड की ओर है
Rear Entryगैराज प्रवेश द्वार पीछे की ओर है

🚗 गैराज क्षमता#

garageCapacity केवल तब आवश्यक है जब garageEnabled=true; अन्यथा null भेजें।

मानविवरण
1एक-कार गैराज
2डबल-कार गैराज
3+तीन या अधिक कार स्थान

🌿 बाहरी स्थान विकल्प#

outdoorSpaces फ़ील्ड निम्नलिखित मानों के एक ऐरे को स्वीकार करती है।

मानविवरण
Front porchसामने की ओर ढका हुआ प्रवेश पोर्च
Covered patioढका हुआ बाहरी पेटियो क्षेत्र
Deckलकड़ी या कंपोजिट डेक
Balconyऊँचा बाहरी प्लेटफॉर्म
Courtyardबंद या आंशिक रूप से बंद बाहरी यार्ड
Breezewayसंरचनाओं को जोड़ने वाला ढका हुआ गलियारा
Outdoor Kitchenबाहरी रसोई और भोजन क्षेत्र

उदाहरण

सादा पाठ
"outdoorSpaces": ["Front porch", "Deck", "Balcony"]

🏛️ लेआउट अवधारणा विकल्प#

मानविवरण
Open Conceptखुला-प्लान जुड़े हुए रहने के स्थान
Traditionalपरिभाषित सीमाओं के साथ अलग कमरे
Split-Levelक्षेत्रों के बीच स्टेगर्ड फ्लोर स्तर

🛏️ बेडरूम क्षेत्र सीमाएँ#

bedroomAreaRanges फ़ील्ड एक ऐरे होनी चाहिए जिसकी लंबाई bedrooms गिनती से मेल खाती है। प्रत्येक आइटम निम्नलिखित आकार का उपयोग करता है:

फ़ील्डप्रकारविवरण
namestringबेडरूम प्रदर्शन नाम, उदाहरण के लिए Room 1 (Master)
minAreastringन्यूनतम बेडरूम क्षेत्र। यह एक गैर-ऋणात्मक संख्यात्मक स्ट्रिंग होना चाहिए
maxAreastringअधिकतम बेडरूम क्षेत्र। यह minArea के बराबर या उससे अधिक होना चाहिए
unitstringक्षेत्र इकाई। सूचीबद्ध मान: , ft²

डिफ़ॉल्ट उदाहरण bedrooms="2" के लिए

json
[
  { "name": "Room 1 (Master)", "minArea": "12", "maxArea": "18", "unit": "m²" },
  { "name": "Room 2", "minArea": "10", "maxArea": "14", "unit": "m²" }
]

🛁 बाथरूम लेआउट#

bathroomLayouts फ़ील्ड एक ऐरे होनी चाहिए जिसकी लंबाई Math.floor(bathrooms) है। उदाहरण के लिए, bathrooms="2.5" 2 बाथरूम लेआउट ऑब्जेक्ट्स की आवश्यकता होती है।

फ़ील्डप्रकारविवरण
namestringबाथरूम प्रदर्शन नाम, उदाहरण के लिए Bathroom 1
layoutstring / nullसूचीबद्ध मान: With Wet & Dry Separation, Without Separation, या null

डिफ़ॉल्ट उदाहरण bathrooms="1" के लिए

json
[
  { "name": "Bathroom 1", "layout": null }
]

🍳 किचन विकल्प#

किचन लेआउट

मानविवरण
Open Kitchenखुला किचन जो रहने/भोजन क्षेत्र से जुड़ा है
Closed Kitchenबंद अलग किचन स्थान

किचन सुविधा विकल्प

मानविवरण
Eating Barखाने की बार / काउंटर सीटिंग
Kitchen Islandकिचन आइलैंड
Breakfast Nookब्रेकफास्ट नोक

🚪 मुख्य कमरे विकल्प#

keyRooms फ़ील्ड निम्नलिखित मानों में से एक या अधिक को स्वीकार करती है। कई विकल्पों का चयन करते समय, उन्हें एक विराम चिह्न (,) से जोड़ें।

मानविवरण
Home Officeसमर्पित होम ऑफिस या स्टडी
Bonus Roomलचीला बहु-उद्देश्यी बोनस रूम
Media Roomहोम थिएटर या मीडिया सेंटर
Mudroomबाहरी सामान के लिए प्रवेश रूम
Laundry Roomसमर्पित लॉन्ड्री स्थान
Guest Suiteस्व-निर्भर मेहमान बेडरूम सूट

उदाहरण

सादा पाठ
"keyRooms": "Home Office, Media Room, Guest Suite"

मॉडल प्रकार

मानविवरण
Baseडिफ़ॉल्ट। संतुलित गति और गुणवत्ता। उच्च-रिज़ॉल्यूशन संयुक्त प्रस्तुति बोर्ड उत्पन्न करता है
Proउच्च गुणवत्ता और उच्च-रिज़ॉल्यूशन आउटपुट, धीमा

⚠️ नोट: Flash मोड इस API के लिए उपलब्ध नहीं है। केवल Base और Pro समर्थित हैं।


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

cURL
bash
# Basic request with default values
curl -X POST "https://api.ideal.house/api/v1/housePlan/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "style": "Barndominium",
    "stories": "2",
    "bedrooms": "2",
    "bathrooms": "1",
    "totalArea": "150-200 m²",
    "garageEnabled": false,
    "garageType": null,
    "garageCapacity": null,
    "basement": "None",
    "roofType": null,
    "outdoorSpaces": [],
    "layoutConcept": null,
    "bedroomAreaRanges": [
      { "name": "Room 1 (Master)", "minArea": "12", "maxArea": "18", "unit": "m²" },
      { "name": "Room 2", "minArea": "10", "maxArea": "14", "unit": "m²" }
    ],
    "bathroomLayouts": [
      { "name": "Bathroom 1", "layout": null }
    ],
    "kitchenLayout": null,
    "kitchenFeatureOptions": [],
    "keyRooms": null,
    "prompt": "",
    "refImageUrl": "",
    "modelType": "Base"
  }'

# Pro model with reference image and custom prompt
curl -X POST "https://api.ideal.house/api/v1/housePlan/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "style": "Victorian",
    "stories": "3+",
    "bedrooms": "5+",
    "bathrooms": "4+",
    "totalArea": "300-380 m²",
    "garageEnabled": true,
    "garageType": "Front Entry",
    "garageCapacity": "3+",
    "basement": "Full",
    "roofType": "Gable roof",
    "outdoorSpaces": ["Front porch", "Balcony", "Courtyard", "Outdoor Kitchen"],
    "layoutConcept": "Traditional",
    "bedroomAreaRanges": [
      { "name": "Room 1 (Master)", "minArea": "18", "maxArea": "28", "unit": "m²" },
      { "name": "Room 2", "minArea": "12", "maxArea": "16", "unit": "m²" },
      { "name": "Room 3", "minArea": "12", "maxArea": "16", "unit": "m²" },
      { "name": "Room 4", "minArea": "10", "maxArea": "14", "unit": "m²" },
      { "name": "Room 5", "minArea": "10", "maxArea": "14", "unit": "m²" }
    ],
    "bathroomLayouts": [
      { "name": "Bathroom 1", "layout": "With Wet & Dry Separation" },
      { "name": "Bathroom 2", "layout": "With Wet & Dry Separation" },
      { "name": "Bathroom 3", "layout": "Without Separation" },
      { "name": "Bathroom 4", "layout": null }
    ],
    "kitchenLayout": "Closed Kitchen",
    "kitchenFeatureOptions": ["Kitchen Island", "Breakfast Nook"],
    "keyRooms": "Home Office, Bonus Room, Media Room, Guest Suite",
    "prompt": "Grand Victorian mansion with ornate details and wraparound porch",
    "refImageUrl": "https://example.com/reference-house.jpg",
    "modelType": "Pro"
  }'
Java (OkHttp)
java
import okhttp3.*;
import java.io.IOException;

public class HousePlanApiExample {

    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 = """
            {
                "style": "Barndominium",
                "stories": "2",
                "bedrooms": "2",
                "bathrooms": "1",
                "totalArea": "150-200 m²",
                "garageEnabled": false,
                "garageType": null,
                "garageCapacity": null,
                "basement": "None",
                "roofType": null,
                "outdoorSpaces": [],
                "layoutConcept": null,
                "bedroomAreaRanges": [
                    { "name": "Room 1 (Master)", "minArea": "12", "maxArea": "18", "unit": "m²" },
                    { "name": "Room 2", "minArea": "10", "maxArea": "14", "unit": "m²" }
                ],
                "bathroomLayouts": [
                    { "name": "Bathroom 1", "layout": null }
                ],
                "kitchenLayout": null,
                "kitchenFeatureOptions": [],
                "keyRooms": null,
                "prompt": "",
                "refImageUrl": "",
                "modelType": "Base"
            }
            """;

        Request request = new Request.Builder()
            .url(BASE_URL + "/api/v1/housePlan/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 = {
    "style": "Barndominium",
    "stories": "2",
    "bedrooms": "2",
    "bathrooms": "1",
    "totalArea": "150-200 m²",
    "garageEnabled": False,
    "garageType": None,
    "garageCapacity": None,
    "basement": "None",
    "roofType": None,
    "outdoorSpaces": [],
    "layoutConcept": None,
    "bedroomAreaRanges": [
        { "name": "Room 1 (Master)", "minArea": "12", "maxArea": "18", "unit": "m²" },
        { "name": "Room 2", "minArea": "10", "maxArea": "14", "unit": "m²" }
    ],
    "bathroomLayouts": [
        { "name": "Bathroom 1", "layout": None }
    ],
    "kitchenLayout": None,
    "kitchenFeatureOptions": [],
    "keyRooms": None,
    "prompt": "",
    "refImageUrl": "",
    "modelType": "Base"
}

response = requests.post(
    f"{BASE_URL}/api/v1/housePlan/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 createHousePlanTask() {
  try {
    const response = await axios.post(
      `${BASE_URL}/api/v1/housePlan/generate`,
      {
        style: 'Barndominium',
        stories: '2',
        bedrooms: '2',
        bathrooms: '1',
        totalArea: '150-200 m²',
        garageEnabled: false,
        garageType: null,
        garageCapacity: null,
        basement: 'None',
        roofType: null,
        outdoorSpaces: [],
        layoutConcept: null,
        bedroomAreaRanges: [
          { name: 'Room 1 (Master)', minArea: '12', maxArea: '18', unit: 'm²' },
          { name: 'Room 2', minArea: '10', maxArea: '14', unit: 'm²' }
        ],
        bathroomLayouts: [
          { name: 'Bathroom 1', layout: null }
        ],
        kitchenLayout: null,
        kitchenFeatureOptions: [],
        keyRooms: null,
        prompt: '',
        refImageUrl: '',
        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);
  }
}

createHousePlanTask();

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

सफलता प्रतिक्रिया

json
{
  "code": 0,
  "message": "success",
  "data": 1234567890123456789
}
फ़ील्डप्रकारविवरण
codeinteger0 सफलता संकेत करता है
messagestringप्रतिक्रिया संदेश
datalongपरिणामों के लिए पोलिंग करने हेतु अद्वितीय टास्क आईडी

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

पहले से बनाए गए घर योजना कार्य की वर्तमान स्थिति और आउटपुट प्राप्त करता है।

एंडपॉइंट

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

अनुरोध हेडर

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

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

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

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

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

public class HousePlanResultExample {

    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/housePlan/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

# Poll until task is complete
while True:
    response = requests.get(
        f"{BASE_URL}/api/v1/housePlan/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", "Termination"):
        break

    time.sleep(3)  # Poll every 3 seconds

if status == "Success":
    output = result["output"]
    print("Composite Result URL:", output["resultUrl"])
    print("Result List:", output.get("resultList", []))
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 pollResult(taskId) {
  const headers = { 'APIKEY': API_KEY };

  while (true) {
    const response = await axios.get(
      `${BASE_URL}/api/v1/housePlan/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', 'Termination'].includes(status)) {
      if (status === 'Success') {
        console.log('Composite Result URL:', result.output.resultUrl);
        console.log('Result List:', result.output.resultList);
      } else {
        console.log('Task ended with status:', status);
      }
      break;
    }

    // Wait 3 seconds before next poll
    await new Promise(resolve => setTimeout(resolve, 3000));
  }
}

pollResult(1234567890123456789n);

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

📸 नोट: यह API प्रति सफल कार्य केवल 1 संयुक्त परिणाम छवि उत्पन्न करता है। छवि एक ही प्रस्तुति बोर्ड में 2D फ्लोर प्लान, बाहरी इलेवेशन और फोटो-वास्तविक बाहरी रेंडरिंग को जोड़ती है। output.resultUrl में संयुक्त छवि का URL होता है, और output.resultList में समान URL एक-आइटम ऐरे के रूप में संगति के लिए होता है।

सफलता प्रतिक्रिया (कार्य पूर्ण)

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Success",
    "waitNumber": 0,
    "percentage": 100,
    "input": {
      "style": "Barndominium",
      "stories": "2",
      "bedrooms": "2",
      "bathrooms": "1",
      "totalArea": "150-200 m²",
      "garageEnabled": false,
      "garageType": null,
      "garageCapacity": null,
      "basement": "None",
      "roofType": null,
      "outdoorSpaces": [],
      "layoutConcept": null,
      "bedroomAreaRanges": [
        { "name": "Room 1 (Master)", "minArea": "12", "maxArea": "18", "unit": "m²" },
        { "name": "Room 2", "minArea": "10", "maxArea": "14", "unit": "m²" }
      ],
      "bathroomLayouts": [
        { "name": "Bathroom 1", "layout": null }
      ],
      "kitchenLayout": null,
      "kitchenFeatureOptions": [],
      "keyRooms": null,
      "prompt": "",
      "refImageUrl": "",
      "modelType": "Base"
    },
    "output": {
      "resultUrl": "https://cdn.ideal.house/output/house_plan_composite.jpg",
      "resultList": [
        "https://cdn.ideal.house/output/house_plan_composite.jpg"
      ],
      "width": 2560,
      "height": 1440
    }
  }
}

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

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Processing",
    "waitNumber": 1,
    "percentage": 45,
    "input": {
      "style": "Barndominium",
      "stories": "2",
      "bedrooms": "2",
      "bathrooms": "1",
      "totalArea": "150-200 m²",
      "garageEnabled": false,
      "garageType": null,
      "garageCapacity": null,
      "basement": "None",
      "roofType": null,
      "outdoorSpaces": [],
      "layoutConcept": null,
      "bedroomAreaRanges": [
        { "name": "Room 1 (Master)", "minArea": "12", "maxArea": "18", "unit": "m²" },
        { "name": "Room 2", "minArea": "10", "maxArea": "14", "unit": "m²" }
      ],
      "bathroomLayouts": [
        { "name": "Bathroom 1", "layout": null }
      ],
      "kitchenLayout": null,
      "kitchenFeatureOptions": [],
      "keyRooms": null,
      "prompt": "",
      "refImageUrl": "",
      "modelType": "Base"
    },
    "output": null
  }
}

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

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Failed",
    "waitNumber": 0,
    "percentage": 0,
    "input": {
      "style": "Barndominium",
      "stories": "2",
      "bedrooms": "2",
      "bathrooms": "1",
      "totalArea": "150-200 m²",
      "garageEnabled": false,
      "basement": "None",
      "modelType": "Base"
    },
    "output": null
  }
}

प्रतिक्रिया फ़ील्ड

फ़ील्डप्रकारविवरण
idlongकार्य अद्वितीय पहचानकर्ता
statusstringवर्तमान कार्य स्थिति (देखें कार्य स्थिति)
waitNumberintegerकतार में आगे कार्य संख्या (0 का अर्थ है वर्तमान में प्रोसेसिंग)
percentageintegerकार्य पूर्णता प्रतिशत (0–100)
inputobjectकार्य के मूल इनपुट पैरामीटर
input.stylestringवास्तु शैली
input.totalAreastringकुल क्षेत्र सीमा
input.storiesstringमंज़िलों की संख्या
input.bedroomsstringबेडरूमों की संख्या
input.bathroomsstringबाथरूमों की संख्या
input.garageEnabledbooleanक्या गैराज का अनुरोध किया गया था
input.garageTypestring / nullगैराज प्रकार
input.garageCapacitystring / nullगैराज स्थानों की संख्या
input.basementstringबेसमेंट प्रकार
input.roofTypestringछत प्रकार
input.outdoorSpacesarray<string>बाहरी स्थान
input.layoutConceptstringसमग्र लेआउट अवधारणा
input.bedroomAreaRangesarray<object>बेडरूम क्षेत्र सीमाएँ
input.bathroomLayoutsarray<object>बाथरूम लेआउट चयन
input.kitchenLayoutstringकिचन लेआउट शैली
input.kitchenFeatureOptionsarray<string>वैकल्पिक किचन सुविधाएँ
input.keyRoomsstringमुख्य विशेष कमरे (विराम-अलग)
input.promptstringकस्टम टेक्स्ट प्रॉम्प्ट (यदि प्रदान किया गया हो)
input.refImageUrlstringसंदर्भ छवि URL (यदि प्रदान किया गया हो)
input.modelTypestringउपयोग किया गया मॉडल प्रकार
outputobjectजनरेशन परिणाम (केवल तब उपलब्ध जब status Success हो)
output.resultUrlstringजनरेट की गई संयुक्त घर योजना प्रस्तुति बोर्ड का URL
output.resultListarray<string>जनित परिणाम छवियों के URLs। घर के नक्शे के लिए, यह सामान्यतः एक-आइटम एरे है जिसमें output.resultUrl के समान URL शामिल है
output.widthintegerपिक्सेल में आउटपुट चौड़ाई
output.heightintegerपिक्सेल में आउटपुट ऊंचाई

📊 कार्य स्थिति#

स्थितिविवरण
Unprocessedकार्य बनाया गया है लेकिन अभी शुरू नहीं हुआ है
Processingकार्य वर्तमान में प्रोसेस किया जा रहा है
Successकार्य सफलतापूर्वक पूर्ण हुआ — आउटपुट उपलब्ध है
Failedकार्य त्रुटि के कारण विफल हुआ
Terminationकार्य को बाधित या समाप्त कर दिया गया

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


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

सभी त्रुटि प्रतिक्रियाएँ समान JSON संरचना साझा करती हैं:

json
{
  "code": 5002,
  "message": "Invalid API Key",
  "data": null
}

त्रुटि कोड संदर्भ#

कोडनामविवरणसुझाया गया कार्रवाई
1001FAILEDअनुरोध विफल (सामान्य त्रुटि)विशिष्ट त्रुटि विवरणों के लिए message फ़ील्ड की जांच करें
1003INTERNAL_ERRORआंतरिक सर्वर त्रुटिएक छोटे देरी के बाद पुनः प्रयास करें; यदि यह जारी रहता है तो सहायता से संपर्क करें
1011PARAM_ERRORअनुरोध पैरामीटर त्रुटिसत्यापित करें कि सभी आवश्यक पैरामीटर प्रदान किए गए हैं और सही प्रारूप में हैं
5002API_KEY_INVALIDअमान्य या अनुपस्थित APIसुनिश्चित करें कि APIKEY हेडर मौजूद है और मान सही है
9010SCAN_TEXT_ERRORटेक्स्ट प्रॉम्प्ट ने सामग्री समीक्षा में विफलतासंवेदनशील या प्रतिबंधित सामग्री को हटाने के लिए प्रॉम्प्ट को संशोधित करें
9038PROHIBITED_CONTENTजनरेट आउटपुट छवि में प्रतिबंधित सामग्री शामिल हैप्रॉम्प्ट/शैली/इनपुट को समायोजित करें और पुनः प्रयास करें
9051COINS_NOT_ENOUGHअपर्याप्त सिक्के / क्रेडिटअपने खाते के क्रेडिट को टॉप-अप करें और पुनः प्रयास करें

📄 सामान्य API त्रुटि कोडों की पूरी सूची के लिए, त्रुटि कोड संदर्भ का हवाला दें।