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

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

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


📖 अवलोकन#

AI 3D Generation API से आप चित्र या प्रॉम्प्ट-आधारित 3D generation tasks जमा कर सकते हैं और उनके परिणामों को असमकालिक रूप से प्राप्त कर सकते हैं। वर्कफ्लो में दो चरण शामिल हैं:

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

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

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

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

हेडरमान
APIKEYyour_api_key_here

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


⚡ समानांतरता सीमा#

🚦 महत्वपूर्ण: इस API में एक ही समय पर प्रति खाता केवल 1 समानांतर अनुरोध की अनुमति है।
यदि कई अनुरोध एक साथ जमा किए जाएँ, तो बाद के अनुरोध कतार में रखे जाएँगे और क्रम से प्रोसेस किए जाएँगे।
आप task परिणाम प्रतिक्रिया में waitNumber फ़ील्ड के माध्यम से कतार में अपनी स्थिति की निगरानी कर सकते हैं।


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

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


📌 API एंडपॉइंट#


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

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

एंडपॉइंट

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

अनुरोध हेडर

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

अनुरोध बॉडी

फ़ील्डप्रकारआवश्यकविवरण
imageUrlstring⚠️ imageUrl या prompt में से एक आवश्यक है3D बनाने के लिए स्रोत चित्र का URL
promptstring⚠️ imageUrl या prompt में से एक आवश्यक है3D content बनाने का वर्णन करने वाला टेक्स्ट प्रॉम्प्ट

💡 नोट: imageUrl और prompt को एक साथ नहीं भेजा जा सकता — प्रत्येक अनुरोध में दोनों में से केवल एक प्रदान करें।

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


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

cURL
bash
# Using imageUrl
curl -X POST "https://api.ideal.house/api/v1/ai3d/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "imageUrl": "https://example.com/room.jpg"
  }'

# Using prompt
curl -X POST "https://api.ideal.house/api/v1/ai3d/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A modern minimalist living room with wooden floor"
  }'
Java (OkHttp)
java
import okhttp3.*;
import java.io.IOException;

public class Ai3dApiExample {

    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"
            }
            """;

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

# Using imageUrl
payload = {
    "imageUrl": "https://example.com/room.jpg"
}

# Or using prompt
# payload = {
#     "prompt": "A modern minimalist living room with wooden floor"
# }

response = requests.post(
    f"{BASE_URL}/api/v1/ai3d/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 createTask() {
  try {
    const response = await axios.post(
      `${BASE_URL}/api/v1/ai3d/generate`,
      {
        imageUrl: 'https://example.com/room.jpg'
        // Or use prompt instead:
        // prompt: 'A modern minimalist living room with wooden floor',
      },
      {
        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);
  }
}

createTask();

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

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

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

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

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

एंडपॉइंट

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

अनुरोध हेडर

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

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

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

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

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

public class Ai3dResultExample {

    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/ai3d/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/ai3d/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 failed or terminated")
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/ai3d/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"
    },
    "output": {
      "resultUrl": "https://cdn.ideal.house/output/result_3d_model.zip",
      "width": 1024,
      "height": 1024
    }
  }
}

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

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

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

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

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

फ़ील्डप्रकारविवरण
idlongकार्य अद्वितीय पहचानकर्ता
statusstringवर्तमान कार्य स्थिति (देखें कार्य स्थिति)
waitNumberintegerकतार में आगे कार्य संख्या (0 का अर्थ है वर्तमान में प्रोसेसिंग)
percentageintegerकार्य पूर्णता प्रतिशत (0–100)
inputobjectकार्य के मूल इनपुट पैरामीटर
input.imageUrlstringस्रोत चित्र का URL (यदि प्रदान किया गया हो)
input.promptstringस्रोत टेक्स्ट प्रॉम्प्ट (यदि प्रदान किया गया हो)
input.modelTypestringउपयोग किया गया मॉडल प्रकार
outputobjectजनरेशन परिणाम (केवल तब उपलब्ध जब status Success हो)
output.resultUrlstringजनरेटेड 3D मॉडल फ़ाइल का 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जनरेट आउटपुट छवि में प्रतिबंधित सामग्री शामिल हैप्रॉम्प्ट/शैली/इनपुट को समायोजित करें और पुनः प्रयास करें
9036COVERT_3D_FAILEDयह चित्र 3D निर्माण का समर्थन नहीं करतास्पष्ट संरचना और गहराई वाले एक अलग चित्र का प्रयास करें
9051COINS_NOT_ENOUGHअपर्याप्त सिक्के / क्रेडिटअपने खाते के क्रेडिट को टॉप-अप करें और पुनः प्रयास करें

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

5002 — अमान्य API Key
json
{
  "code": 5002,
  "message": "Invalid API Key",
  "data": null
}
1011 — पैरामीटर त्रुटि
json
{
  "code": 1011,
  "message": "Request parameter error: imageUrl is required",
  "data": null
}
9036 — चित्र 3D निर्माण के लिए समर्थित नहीं है
json
{
  "code": 9036,
  "message": "This image does not support 3D generation",
  "data": null
}
9010 — टेक्स्ट सामग्री मॉडरेशन विफल
json
{
  "code": 9010,
  "message": "Text prompt failed content review, contains prohibited content",
  "data": null
}
9051 — अपर्याप्त क्रेडिट
json
{
  "code": 9051,
  "message": "Insufficient coins",
  "data": null
}

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