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

प्लान विज़ुअलाइज़र API दस्तावेज़ीकरण#

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


📖 अवलोकन#

प्लान विज़ुअलाइज़र API एक प्लान इमेज को AI विज़ुअलाइज़ेशन में बदलता है। यह वैकल्पिक टेक्स्ट गाइडेंस, प्लान टाइप, विज़ुअल स्टाइल, व्यू ऑप्शन्स, और मॉडल मोड्स का समर्थन करता है।

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

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

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

हेडरमान
APIKEYyour_api_key_here

💰 क्रेडिट कटौती#

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

मॉडल (modelType)कटे गए क्रेडिट
Base3 क्रेडिट
Pro10 क्रेडिट

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


🎨 स्टाइल ऑप्शन्स#

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

उपयोग करें:

सादा पाठ
GET /api/v1/style/ai_plan_visualizer/getStyles
स्टाइल ग्रुपरिक्वेस्ट फ़ील्डविवरण
planTypeplanStyleIdप्लान टाइप ऑप्शन
stylestyleIdविज़ुअलाइज़ेशन स्टाइल ऑप्शन
viewviewIdकैमरा/व्यू ऑप्शन

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


📌 API एंडपॉइंट#

1. प्लान विज़ुअलाइज़र टास्क बनाएँ#

एंडपॉइंट

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

रिक्वेस्ट हेडर

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

रिक्वेस्ट बॉडी

फ़ील्डटाइपआवश्यकविवरण
imageUrlstring✅ हाँस्रोत प्लान इमेज का URL
promptstring❌ वैकल्पिकवांछित विज़ुअलाइज़ेशन के लिए टेक्स्ट गाइडेंस
planStyleIdstring❌ वैकल्पिकplanType स्टाइल ऑप्शन्स से प्लान टाइप आईडी
styleIdstring❌ वैकल्पिकstyle स्टाइल ऑप्शन्स से विज़ुअलाइज़ेशन स्टाइल आईडी
viewIdstring❌ वैकल्पिकview स्टाइल ऑप्शन्स से व्यू आईडी
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/planVisualizer/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "imageUrl": "https://example.com/floor-plan.jpg",
    "prompt": "bright modern residential visualization",
    "planStyleId": "AI plan visualizer_Plan type_Master plan",
    "styleId": "AI plan visualizer_Style_Marker pen",
    "viewId": "AI plan visualizer_View_Top-Down View",
    "modelType": "Base"
  }'
Java (OkHttp)
java
import okhttp3.*;

import java.io.IOException;

public class PlanVisualizerApiExample {

    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/floor-plan.jpg",
                    "prompt": "bright modern residential visualization",
                    "planStyleId": "AI plan visualizer_Plan type_Master plan",
                    "styleId": "AI plan visualizer_Style_Marker pen",
                    "viewId": "AI plan visualizer_View_Top-Down View",
                    "modelType": "Base"
                }
                """;

        Request request = new Request.Builder()
                .url(BASE_URL + "/api/v1/planVisualizer/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/floor-plan.jpg",
    "prompt": "bright modern residential visualization",
    "planStyleId": "AI plan visualizer_Plan type_Master plan",
    "styleId": "AI plan visualizer_Style_Marker pen",
    "viewId": "AI plan visualizer_View_Top-Down View",
    "modelType": "Base"
}

response = requests.post(
    f"{BASE_URL}/api/v1/planVisualizer/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 createPlanVisualizerTask() {
  try {
    const response = await axios.post(
      `${BASE_URL}/api/v1/planVisualizer/generate`,
      {
        imageUrl: 'https://example.com/floor-plan.jpg',
        prompt: 'bright modern residential visualization',
        planStyleId: 'AI plan visualizer_Plan type_Master plan',
        styleId: 'AI plan visualizer_Style_Marker pen',
        viewId: 'AI plan visualizer_View_Top-Down View',
        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);
  }
}

createPlanVisualizerTask();

📤 रिस्पॉन्स#

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

2. टास्क रिज़ल्ट प्राप्त करें#

एंडपॉइंट

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

रिक्वेस्ट हेडर

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

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

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

📥 रिक्वेस्ट उदाहरण#

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

import java.io.IOException;

public class PlanVisualizerResultExample {

    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/planVisualizer/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/planVisualizer/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 pollPlanVisualizerResult(taskId) {
  const headers = { APIKEY: API_KEY };

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

pollPlanVisualizerResult(1234567890123456789n);

📤 रिस्पॉन्स उदाहरण#

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Success",
    "waitNumber": 0,
    "percentage": 100,
    "input": {
      "imageUrl": "https://example.com/floor-plan.jpg",
      "prompt": "bright modern residential visualization",
      "planStyleId": "AI plan visualizer_Plan type_Master plan",
      "styleId": "AI plan visualizer_Style_Marker pen",
      "viewId": "AI plan visualizer_View_Top-Down View",
      "modelType": "Base"
    },
    "output": {
      "resultUrl": "https://cdn.ideal.house/output/plan_visualizer_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/floor-plan.jpg",
      "modelType": "Base"
    },
    "output": null
  }
}

रिस्पॉन्स (टास्क विफल)

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Failed",
    "waitNumber": 0,
    "percentage": 0,
    "input": {
      "imageUrl": "https://example.com/floor-plan.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अपर्याप्त क्रेडिट

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