प्लान विज़ुअलाइज़र API दस्तावेज़ीकरण#
बेस URL:
https://api.ideal.house
संस्करण: v1
अपडेट किया गया: 2026-05-21
📖 अवलोकन#
प्लान विज़ुअलाइज़र API एक प्लान इमेज को AI विज़ुअलाइज़ेशन में बदलता है। यह वैकल्पिक टेक्स्ट गाइडेंस, प्लान टाइप, विज़ुअल स्टाइल, व्यू ऑप्शन्स, और मॉडल मोड्स का समर्थन करता है।
वर्कफ़्लो असिंक्रोनस है:
- टास्क बनाएँ —
imageUrlऔर वैकल्पिक पैरामीटर सबमिट करें, फिरtaskIdप्राप्त करें। - परिणामों के लिए पोल करें — टास्क स्टेटस और जनरेटेड इमेज प्राप्त करने के लिए
taskIdका उपयोग करें।
🔐 प्रमाणीकरण#
| हेडर | मान |
|---|---|
APIKEY | your_api_key_here |
💰 क्रेडिट कटौती#
[!WARNING] टास्क सफलतापूर्वक बनने पर क्रेडिट कटते हैं। यदि टास्क अंततः विफल होता है, तो कटे गए क्रेडिट स्वतः रिफंड किए जाएंगे।
अपर्याप्त क्रेडिट एरर कोड9051लौटाने होंगे। क्रेडिट कटौती संदर्भ देखें।
मॉडल (modelType) | कटे गए क्रेडिट |
|---|---|
Base | 3 क्रेडिट |
Pro | 10 क्रेडिट |
यदि modelType प्रदान नहीं किया जाता, तो डिफ़ॉल्ट रूप से Base का उपयोग होता है।
🎨 स्टाइल ऑप्शन्स#
यह API API स्टाइल कॉन्फ़िग एंडपॉइंट द्वारा लौटाने वाले वैकल्पिक स्टाइल पैरामीटर का समर्थन करता है।
उपयोग करें:
GET /api/v1/style/ai_plan_visualizer/getStyles
| स्टाइल ग्रुप | रिक्वेस्ट फ़ील्ड | विवरण |
|---|---|---|
planType | planStyleId | प्लान टाइप ऑप्शन |
style | styleId | विज़ुअलाइज़ेशन स्टाइल ऑप्शन |
view | viewId | कैमरा/व्यू ऑप्शन |
प्रत्येक ऑप्शन में name, id, और url शामिल हैं। ऑप्शन id को संगत रिक्वेस्ट फ़ील्ड में पास करें।
📌 API एंडपॉइंट#
1. प्लान विज़ुअलाइज़र टास्क बनाएँ#
एंडपॉइंट
POST /api/v1/planVisualizer/generate
रिक्वेस्ट हेडर
| हेडर | आवश्यक | विवरण |
|---|---|---|
APIKEY | ✅ हाँ | आपकी API प्रमाणीकरण की |
Content-Type | ✅ हाँ | application/json |
रिक्वेस्ट बॉडी
| फ़ील्ड | टाइप | आवश्यक | विवरण |
|---|---|---|---|
imageUrl | string | ✅ हाँ | स्रोत प्लान इमेज का URL |
prompt | string | ❌ वैकल्पिक | वांछित विज़ुअलाइज़ेशन के लिए टेक्स्ट गाइडेंस |
planStyleId | string | ❌ वैकल्पिक | planType स्टाइल ऑप्शन्स से प्लान टाइप आईडी |
styleId | string | ❌ वैकल्पिक | style स्टाइल ऑप्शन्स से विज़ुअलाइज़ेशन स्टाइल आईडी |
viewId | string | ❌ वैकल्पिक | view स्टाइल ऑप्शन्स से व्यू आईडी |
modelType | string | ❌ वैकल्पिक | इनम: 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
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)
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)
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)
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();
📤 रिस्पॉन्स#
{
"code": 0,
"message": "success",
"data": 1234567890123456789
}
2. टास्क रिज़ल्ट प्राप्त करें#
एंडपॉइंट
GET /api/v1/planVisualizer/result
रिक्वेस्ट हेडर
| हेडर | आवश्यक | विवरण |
|---|---|---|
APIKEY | ✅ हाँ | आपकी API प्रमाणीकरण की |
क्वेरी पैरामीटर
| पैरामीटर | टाइप | आवश्यक | विवरण |
|---|---|---|---|
taskId | long | ✅ हाँ | क्रिएट एंडपॉइंट द्वारा लौटाने वाली टास्क आईडी |
📥 रिक्वेस्ट उदाहरण#
cURL
curl -X GET "https://api.ideal.house/api/v1/planVisualizer/result?taskId=1234567890123456789" \
-H "APIKEY: your_api_key_here"
Java (OkHttp)
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)
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)
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);
📤 रिस्पॉन्स उदाहरण#
{
"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
}
}
}
रिस्पॉन्स (टास्क प्रोसेसिंग / क्यू में)
{
"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
}
}
रिस्पॉन्स (टास्क विफल)
{
"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 कार्य सीमा।
❌ एरर रिस्पॉन्स#
| कोड | नाम | विवरण |
|---|---|---|
1011 | PARAM_ERROR | रिक्वेस्ट पैरामीटर एरर |
5002 | API_KEY_INVALID | अमान्य या अनुपस्थित API |
9010 | SCAN_TEXT_ERROR | प्रॉम्प्ट कंटेंट रिव्यू विफल |
9038 | PROHIBITED_CONTENT | जनरेटेड इमेज में प्रतिबंधित कंटेंट |
9051 | COINS_NOT_ENOUGH | अपर्याप्त क्रेडिट |
पूर्ण सामान्य एरर परिभाषाओं के लिए, एरर कोड संदर्भ देखें।