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

AI 3D रेंडरिंग API दस्तावेज़ीकरण#

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


📖 अवलोकन#

AI 3D रेंडरिंग API आपको स्रोत चित्र के आधार पर 3D रेंडरिंग कार्य जमा करने की अनुमति देता है, जिसमें रेंडरिंग डिग्री, रेंडरिंग मोड, वैकल्पिक टेक्स्ट प्रॉम्प्ट और संदर्भ शैली चित्रों पर सूक्ष्म नियंत्रण होता है। कार्यप्रणाली असमकालिक है और इसमें दो चरण शामिल हैं:

  1. Task बनाएँ — अपने इनपुट पैरामीटर जमा करें और एक taskId प्राप्त करें।
  2. परिणामों की जाँच करेंtaskId का उपयोग करके task की स्थिति पूछें और जनरेटेड आउटपुट प्राप्त करें।

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

सभी API रिक्वेस्ट का प्रमाणीकरण API कुंजी का उपयोग करके किया जाना चाहिए।

रिक्वेस्ट हेडर में अपनी API कुंजी शामिल करें:

हेडरमान
APIKEYyour_api_key_here

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


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

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

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

📌 API एंडपॉइंट#


1. 3D Rendering Task बनाएँ#

नया AI 3D रेंडरिंग कार्य बनाता है और polling के लिए एक अद्वितीय taskId लौटता है।

एंडपॉइंट

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

अनुरोध हेडर

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

अनुरोध बॉडी

फ़ील्डप्रकारआवश्यकविवरण
imageUrlstring✅ हाँrender करने के लिए स्रोत चित्र का URL
promptstring❌ वैकल्पिकrendering शैली या content को मार्गदर्शन करने के लिए अतिरिक्त टेक्स्ट प्रॉम्प्ट
modelTypestring❌ वैकल्पिकमॉडल गुणवत्ता प्रकार। Enum: Flash, Base, Pro। डिफ़ॉल्ट Flash है
renderDegreeinteger❌ वैकल्पिकरेंडरिंग की तीव्रता स्तर। सीमा: 1 (सबसे हल्का) – 6 (सबसे मजबूत)। डिफ़ॉल्ट 3 है। केवल तब प्रभावी जब modelType Flash हो
renderModestring❌ वैकल्पिकRendering मोड। Enum: default, creativeMode। डिफ़ॉल्ट default है
refImageUrlstring❌ वैकल्पिकrendering आउटपुट को मार्गदर्शन करने के लिए संदर्भ शैली चित्र का URL

⚠️ नोट: renderDegree केवल तब प्रभावी होता है जब modelType को Flash पर सेट किया गया हो। यदि modelType निर्दिष्ट नहीं है, तो डिफ़ॉल्ट रूप से Flash का उपयोग किया जाता है।

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


मॉडल प्रकार

मानविवरण
Flashडिफ़ॉल्ट। सबसे तेज़ generation गति, मानक गुणवत्ता। renderDegree नियंत्रण का समर्थन करता है
Baseगति और गुणवत्ता का संतुलन। renderDegree नज़रअंदाज़ किया जाता है
Proसर्वोच्च गुणवत्ता, धीमी रेंडरिंग प्रक्रिया। renderDegree नज़रअंदाज़ किया जाता है

Render मोड

मानविवरण
defaultडिफ़ॉल्ट मोड। rendering के दौरान मूल चित्र की टेक्सचर और संरचना को सुरक्षित रखता है (टेक्सचर बनाए रखने का मोड)
creativeModeरचनात्मक मोड — अधिक कलात्मक और शैलीबद्ध rendering परिवर्तन लागू करता है

रेंडरिंग डिग्री

मानविवरण
1सबसे हल्का rendering — न्यूनतम परिवर्तन
25प्रगतिशील rendering तीव्रता
6सबसे मजबूत rendering — अधिकतम परिवर्तन

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

cURL
bash
# Using Flash model with renderDegree (texture preservation mode)
curl -X POST "https://api.ideal.house/api/v1/ai3dRendering/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "imageUrl": "https://example.com/room.jpg",
    "modelType": "Flash",
    "renderDegree": 4,
    "renderMode": "default"
  }'

# Using Flash model with creative mode, prompt and a reference image
curl -X POST "https://api.ideal.house/api/v1/ai3dRendering/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "imageUrl": "https://example.com/room.jpg",
    "prompt": "A modern minimalist living room with wooden floor",
    "modelType": "Flash",
    "renderDegree": 5,
    "renderMode": "creativeMode",
    "refImageUrl": "https://example.com/style-reference.jpg"
  }'

# Using Pro model (renderDegree is ignored)
curl -X POST "https://api.ideal.house/api/v1/ai3dRendering/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "imageUrl": "https://example.com/room.jpg",
    "modelType": "Pro",
    "renderMode": "default"
  }'
Java (OkHttp)
java
import okhttp3.*;
import java.io.IOException;

public class Ai3dRenderingApiExample {

    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();

        // Flash model with renderDegree (renderDegree only works with Flash)
        String requestBody = """
            {
                "imageUrl": "https://example.com/room.jpg",
                "modelType": "Flash",
                "renderDegree": 4,
                "renderMode": "default"
            }
            """;

        // Pro model example (renderDegree is ignored)
        // String requestBody = """
        //     {
        //         "imageUrl": "https://example.com/room.jpg",
        //         "modelType": "Pro",
        //         "renderMode": "default"
        //     }
        //     """;

        Request request = new Request.Builder()
            .url(BASE_URL + "/api/v1/ai3dRendering/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"
}

# Flash model — renderDegree takes effect (default texture preservation mode)
payload = {
    "imageUrl": "https://example.com/room.jpg",
    "modelType": "Flash",
    "renderDegree": 4,
    "renderMode": "default"
}

# Flash model with creative mode, prompt and reference image
# payload = {
#     "imageUrl": "https://example.com/room.jpg",
#     "prompt": "A modern minimalist living room with wooden floor",
#     "modelType": "Flash",
#     "renderDegree": 5,
#     "renderMode": "creativeMode",
#     "refImageUrl": "https://example.com/style-reference.jpg"
# }

# Pro model — renderDegree is ignored
# payload = {
#     "imageUrl": "https://example.com/room.jpg",
#     "modelType": "Pro",
#     "renderMode": "default"
# }

response = requests.post(
    f"{BASE_URL}/api/v1/ai3dRendering/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 createRenderingTask() {
  try {
    const response = await axios.post(
      `${BASE_URL}/api/v1/ai3dRendering/generate`,
      {
        // Flash model — renderDegree takes effect
        imageUrl: 'https://example.com/room.jpg',
        modelType: 'Flash',
        renderDegree: 4,
        renderMode: 'default'

        // Flash model with creative mode:
        // prompt: 'A modern minimalist living room with wooden floor',
        // modelType: 'Flash',
        // renderDegree: 5,
        // renderMode: 'creativeMode',
        // refImageUrl: 'https://example.com/style-reference.jpg'

        // Pro model — renderDegree is ignored:
        // imageUrl: 'https://example.com/room.jpg',
        // modelType: 'Pro',
        // renderMode: 'default'
      },
      {
        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);
  }
}

createRenderingTask();

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

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

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

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

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

एंडपॉइंट

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

अनुरोध हेडर

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

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

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

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

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

public class Ai3dRenderingResultExample {

    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/ai3dRendering/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/ai3dRendering/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)  # Poll every 3 seconds

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

  while (true) {
    const response = await axios.get(
      `${BASE_URL}/api/v1/ai3dRendering/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);
      } else {
        console.log('Task ended with status:', status);
      }
      break;
    }

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

pollResult(1234567890123456789n);

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

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

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Success",
    "waitNumber": 0,
    "percentage": 100,
    "input": {
      "imageUrl": "https://example.com/room.jpg",
      "modelType": "Flash",
      "renderDegree": 4,
      "renderMode": "default"
    },
    "output": {
      "resultUrl": "https://cdn.ideal.house/output/rendered_result.jpg",
      "width": 1024,
      "height": 1024
    }
  }
}

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

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Processing",
    "waitNumber": 1,
    "percentage": 50,
    "input": {
      "imageUrl": "https://example.com/room.jpg",
      "modelType": "Flash",
      "renderDegree": 4,
      "renderMode": "default"
    },
    "output": null
  }
}

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

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

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

फ़ील्डप्रकारविवरण
idlongकार्य अद्वितीय पहचानकर्ता
statusstringवर्तमान कार्य स्थिति (देखें कार्य स्थिति)
waitNumberintegerकतार में आगे कार्य संख्या (0 का अर्थ है वर्तमान में प्रोसेसिंग)
percentageintegerकार्य पूर्णता प्रतिशत (0–100)
inputobjectकार्य के मूल इनपुट पैरामीटर
input.imageUrlstringस्रोत चित्र का URL (यदि प्रदान किया गया हो)
input.promptstringस्रोत टेक्स्ट प्रॉम्प्ट (यदि प्रदान किया गया हो)
input.modelTypestringउपयोग किया गया मॉडल प्रकार
input.renderDegreeintegerउपयोग किया गया rendering तीव्रता स्तर (1–6)
input.renderModestringउपयोग किया गया rendering मोड (default या creativeMode)
input.refImageUrlstringसंदर्भ शैली चित्र का URL (यदि प्रदान किया गया हो)
outputobjectजनरेशन परिणाम (केवल तब उपलब्ध जब status Success हो)
output.resultUrlstringrendered आउटपुट चित्र का URL
output.widthintegerपिक्सेल में आउटपुट चौड़ाई
output.heightintegerपिक्सेल में आउटपुट ऊंचाई

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

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

हर 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 त्रुटि कोडों की पूरी सूची के लिए, त्रुटि कोड संदर्भ का हवाला दें।