Ideal House
İçeriğe atla

Ev Planı Oluşturma API Belgeseli#

Temel URL: https://api.ideal.house
Sürüm: v1
Güncellendi: 2026-06-12


📖 Genel Bakış#

Ev Planı Oluşturma API, mimari stil, alan, yapısal yapılandırma ve iç mekan yerleşimi tercihlerine dayalı olarak yapay zeka destekli bir ev planı sunum panosu oluşturmaya olanak tanır. Başarılı bir üretimden sonra, API görev başına tam olarak 1 bileşik sonuç görseli üretir. Görsel, tek bir sunum panosunda koordine edilmiş 2D kat planlarını, dış cephe görünüşlerini ve foto-gerçekçi dış mekan renderlarını içerir. Sonuç, output.resultUrl içinde saklanır ve aynı zamanda output.resultList içindeki tek öğe olarak da dahil edilir. İş akışı asenkroniktir ve iki adımdan oluşur:

  1. Görev oluştur — Ev planı parametrelerinizi gönderin ve bir taskId alın.
  2. Sonuçları sorgula — Görev durumunu sorgulamak ve üretilen görselleri almak için taskId kullanın.

🔐 Kimlik Doğrulama#

Tüm API istekleri, bir API Anahtarı kullanılarak kimlik doğrulanmalıdır.

İstek başlığına API Anahtarınızı ekleyin:

BaşlıkDeğer
APIKEYyour_api_key_here

⚠️ API Anahtarınızı güvende tutun. İstemci tarafı kodda veya herkese açık depolarda ifşa etmeyin.


💰 Kredi Kesintisi#

[!WARNING] 🪙 Krediler, başarılı görev oluşturulduğunda seçilen modelType temelinde kesilir. Görev nihayetinde başarısız olursa, kesilen krediler hesabınıza otomatik olarak iade edilir.
Yetersiz kredi, 9051 hata kodunu döndürür. 📄 Bkz. Kredi Kesintisi Referansı.

Model (modelType)Kesilen Krediler
Base10 kredi
Pro20 kredi

📌 API Uç Noktaları#


1. Ev Planı Görevi Oluştur#

Yeni bir yapay zeka ev planı üretim görevi oluşturur ve sorgulama için benzersiz bir taskId döndürür.

Uç Nokta

Düz metin
POST /api/v1/housePlan/generate

İstek Başlıkları

BaşlıkZorunluAçıklama
APIKEY✅ EvetAPI kimlik doğrulama anahtarınız
Content-Type✅ Evetapplication/json

İstek Gövdesi

AlanTürZorunluAçıklamaVarsayılan
stylestring / null✅ EvetMimari stil İngilizce adı. Bkz. Stil SeçenekleriBarndominium
storiesstring✅ EvetKat sayısı. Sayım: 1, 2, 3+2
bedroomsstring✅ EvetYatak odası sayısı. Sayım: 1, 2, 3, 4, 5+2
bathroomsstring✅ EvetBanyo sayısı. Sayım: 1, 1.5, 2, 2.5, 3, 3.5, 4+1
totalAreastring✅ Evetmin-max unit biçiminde toplam alan aralığı. Bkz. Toplam Alan Seçenekleri150-200 m²
garageEnabledboolean✅ EvetGaraj dahil edilecek mifalse
garageTypestring / null⚠️ KoşullugarageEnabled=true olduğunda zorunludur. Bkz. Garaj Tipi Seçeneklerinull
garageCapacitystring / null⚠️ KoşullugarageEnabled=true olduğunda zorunludur. Bkz. Garaj Kapasitesinull
basementstring✅ EvetZemin kat tipi. Bkz. Zemin Kat SeçenekleriNone
roofTypestring / null❌ HayırÇatı yapısı tipi. Bkz. Çatı Tipi Seçeneklerinull
outdoorSpacesarray<string>❌ HayırDış mekan alanları. Bkz. Dış Mekan Seçenekleri[]
layoutConceptstring / null❌ HayırGenel iç mekan yerleşim konsepti. Bkz. Yerleşim Konsepti Seçeneklerinull
bedroomAreaRangesarray<object>✅ EvetYatak odası alan aralıkları. Uzunluk, yatak odası sayısı ile eşleşmelidir. Bkz. Yatak Odası Alan AralıklarıÖrnek
bathroomLayoutsarray<object>✅ EvetBanyo yerleşim seçimleri. Uzunluk Math.floor(bathrooms) olmalıdır. Bkz. Banyo YerleşimleriÖrnek
kitchenLayoutstring / null❌ HayırMutfak yerleşimi. Bkz. Mutfak Seçeneklerinull
kitchenFeatureOptionsarray<string>❌ Hayırİsteğe bağlı mutfak özellikleri. Bkz. Mutfak Seçenekleri[]
keyRoomsstring / null❌ HayırVirgül ve boşlukla birleştirilen özel odalar. Bkz. Özel Odalar Seçeneklerinull
promptstring❌ HayırÜretimi daha da yönlendirmek için özel metin istemi""
refImageUrlstring❌ HayırStili yönlendirmek için referans ev görseli URL""
modelTypestring✅ EvetModel kalite tipi. Sayım: Base, Pro. ⚠️ Flash modu desteklenmemektedirBase

🖼️ Görsel gereksinimleri: İsteğe bağlı referans görsel JPG/JPEG, PNG veya WebP formatında olmalı, en fazla 20 MB boyutunda olmalı ve boyutları 128 × 128 px ile 6,000 × 6,000 px (dahil) arasında olmalıdır. Maksimum piksel boyutlarını aşan görseller, işlemden önce 6,000 × 6,000 px içine sığacak şekilde orantılı olarak otomatik olarak küçültülür. URL, API sunucusu tarafından doğrudan erişilebilir olmalıdır.


🎨 Stil Seçenekleri#

DeğerAçıklama
BarndominiumVarsayılan. Metal ahır tarzı hibrit ev
CabinRustik ahşap kulübe stili
Cape CodKlasik New England simetrik stili
CoastalHafif, ferah plaj ilhamlı stil
ColonialGeleneksel simetrik kolonyal mimari
ContemporaryTemiz çizgiler ve modern malzemeler
CraftsmanDoğal malzemelerle el yapımı detaylar
FarmhouseRustik kırsal çiftlik evi stili
French CountryZarif Fransız kırsal stili
MediterraneanSıcak sıva ve terracotta unsurları
Mid-Century Modern1950'lı–70'li temiz geometrik modernizm
ModernMinimalist düz/açılı modern tasarım
RanchTek katlı yayvan yerleşim
Shingle StyleSürekli ahşap kiremit dış cephe
SouthwesternAdobe ilhamlı çöl stili
TransitionalGeleneksel ve çağdaşın karışımı
TudorYarı ahşap iskeletli orta çağ İngiliz stili
VictorianSüslü 19. yüzyıl dekoratif stili

📐 Toplam Alan Seçenekleri#

totalArea alanı min-max unit biçimini kullanır. Metrik değerler ; İngiliz ölçü sistemindeki değerler ft² kullanır. Minimum değer, maksimum değerden en az bir adım düşük olmalıdır.

BirimMinimumMaksimumAdımÖrnek
5050010150-200 m²
ft²50050001001500-2000 ft²

🏠 Çatı Tipi Seçenekleri#

DeğerAçıklama
Gable roofKlasik üçgen sivri çatı
Hip roofDört yönde de eğimli
Flat roofMinimal eğimli düz çatı
Pitched roofGenel dik eğimli çatı

🏗️ Zemin Kat Seçenekleri#

DeğerAçıklama
NoneZemin kat yok
PartialKısmi zemin kat
FullTam zemin kat

🚗 Garaj Tipi Seçenekleri#

garageType yalnızca garageEnabled=true olduğunda zorunludur; aksi halde null gönderin.

DeğerAçıklama
DetachedAyrı garaj
Front EntryGaraj girişi öne bakar
Side EntryGaraj girişi yana bakar
Rear EntryGaraj girişi arkaya bakar

🚗 Garaj Kapasitesi#

garageCapacity yalnızca garageEnabled=true olduğunda zorunludur; aksi halde null gönderin.

DeğerAçıklama
1Tek araçlık garaj
2Çift araçlık garaj
3+Üç veya daha fazla araçlık alan

🌿 Dış Mekan Seçenekleri#

outdoorSpaces alanı, aşağıdaki değerlerin bir dizisini kabul eder.

DeğerAçıklama
Front porchÖn tarafta kapalı giriş verandası
Covered patioKapalı dış mekan veranda alanı
DeckAhşap veya kompozit platform
BalconyYükseltilmiş dış mekan platformu
CourtyardKapalı veya yarı kapalı dış avlu
BreezewayYapıları birbirine bağlayan kapalı geçit
Outdoor KitchenDış mekan pişirme ve yemek alanı

Örnek

Düz metin
"outdoorSpaces": ["Front porch", "Deck", "Balcony"]

🏛️ Yerleşim Konsepti Seçenekleri#

DeğerAçıklama
Open ConceptAçık plan bağlantılı yaşam alanları
TraditionalTanımlı sınırlarla ayrılmış odalar
Split-LevelAlanlar arasında kademeli kat seviyeleri

🛏️ Yatak Odası Alan Aralıkları#

bedroomAreaRanges alanı, uzunluğu bedrooms sayısı ile eşleşen bir dizi olmalıdır. Her öğe aşağıdaki yapıyı kullanır:

AlanTürAçıklama
namestringYatak odası görüntü adı, örneğin Room 1 (Master)
minAreastringMinimum yatak odası alanı. Negatif olmayan sayısal bir dize olmalıdır
maxAreastringMaksimum yatak odası alanı. minArea'den büyük veya eşit olmalıdır
unitstringAlan birimi. Sayım: , ft²

bedrooms="2" için varsayılan örnek

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

🛁 Banyo Yerleşimleri#

bathroomLayouts alanı, uzunluğu Math.floor(bathrooms) olan bir dizi olmalıdır. Örneğin, bathrooms="2.5" 2 banyo yerleşim nesnesi gerektirir.

AlanTürAçıklama
namestringBanyo görüntü adı, örneğin Bathroom 1
layoutstring / nullSayım: With Wet & Dry Separation, Without Separation veya null

bathrooms="1" için varsayılan örnek

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

🍳 Mutfak Seçenekleri#

Mutfak Yerleşimi

DeğerAçıklama
Open KitchenOturma/ yemek alanına bağlı açık mutfak
Closed KitchenKapalı ayrı mutfak alanı

Mutfak Özellik Seçenekleri

DeğerAçıklama
Eating BarYemek barı / tezgah oturma alanı
Kitchen IslandMutfak adası
Breakfast NookKahvaltı köşesi

🚪 Özel Odalar Seçenekleri#

keyRooms alanı, aşağıdaki değerlerden birini veya daha fazlasını kabul eder. Birden fazla seçenek seçildiğinde, bunları bir virgül (,) ile birleştirin.

DeğerAçıklama
Home OfficeÖzgün ev ofisi veya çalışma odası
Bonus RoomEsnek çok amaçlı bonus oda
Media RoomEv sineması veya medya merkezi
MudroomDış mekan ekipmanları için giriş odası
Laundry RoomÖzgün çamaşır odası
Guest SuiteKendine yeten misafir yatak odası süiti

Örnek

Düz metin
"keyRooms": "Home Office, Media Room, Guest Suite"

Model Tipleri

DeğerAçıklama
BaseVarsayılan. Hız ve kalite dengesi. Yüksek çözünürlüklü bileşik sunum panosu üretir
ProDaha yüksek kalite ve daha yüksek çözünürlüklü çıktı, daha yavaş

⚠️ Not: Flash modu bu API için kullanılamaz. Yalnızca Base ve Pro desteklenir.


📥 İstek Örnekleri#

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

📤 Yanıt#

Başarılı Yanıt

json
{
  "code": 0,
  "message": "success",
  "data": 1234567890123456789
}
AlanTürAçıklama
codeinteger0 başarıyı gösterir
messagestringYanıt mesajı
datalongSonuçları sorgulamak için benzersiz görev kimliği

2. Görev Sonucunu Al#

Daha önce oluşturulmuş bir ev planı görevinin mevcut durumunu ve çıktısını alır.

Uç Nokta

Düz metin
GET /api/v1/housePlan/result

İstek Başlıkları

BaşlıkZorunluAçıklama
APIKEY✅ EvetAPI kimlik doğrulama anahtarınız

Sorgu Parametreleri

ParametreTürZorunluAçıklama
taskIdlong✅ EvetGörev oluşturma uç noktasından döndürülen görev kimliği

📥 İstek Örnekleri#

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

📤 Yanıt#

📸 Not: Bu API, başarılı görev başına tam olarak 1 bileşik sonuç görseli üretir. Görsel, tek bir sunum panosunda 2D kat planlarını, dış cephe görünüşlerini ve foto-gerçekçi dış mekan renderlarını birleştirir. output.resultUrl bileşik görsel URL'sini içerir ve output.resultList, uyumluluk için aynı URL'yi tek öğeli bir dizi olarak içerir.

Başarılı Yanıt (Görev Tamamlandı)

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

Yanıt (Görev İşleniyor / Sırada)

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

Yanıt (Görev Başarısız)

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

Yanıt Alanları

AlanTürAçıklama
idlongGörev benzersiz tanımlayıcısı
statusstringMevcut görev durumu (bkz. Görev Durumu)
waitNumberintegerSıradaki görev sayısı (0 şu an işleniyor anlamına gelir)
percentageintegerGörev tamamlanma yüzdesi (0–100)
inputobjectGörevin orijinal girdi parametreleri
input.stylestringMimari stil
input.totalAreastringToplam alan aralığı
input.storiesstringKat sayısı
input.bedroomsstringYatak odası sayısı
input.bathroomsstringBanyo sayısı
input.garageEnabledbooleanGaraj istenip istenmediği
input.garageTypestring / nullGaraj tipi
input.garageCapacitystring / nullGaraj alanı sayısı
input.basementstringZemin kat tipi
input.roofTypestringÇatı tipi
input.outdoorSpacesarray<string>Dış mekan alanları
input.layoutConceptstringGenel yerleşim konsepti
input.bedroomAreaRangesarray<object>Yatak odası alan aralıkları
input.bathroomLayoutsarray<object>Banyo yerleşim seçimleri
input.kitchenLayoutstringMutfak yerleşim stili
input.kitchenFeatureOptionsarray<string>İsteğe bağlı mutfak özellikleri
input.keyRoomsstringÖzel odalar (virgülle ayrılmış)
input.promptstringÖzel metin istemi (verildiyse)
input.refImageUrlstringReferans görsel URL (verildiyse)
input.modelTypestringKullanılan model tipi
outputobjectÜretim sonucu (yalnızca status Success olduğunda kullanılabilir)
output.resultUrlstringÜretilen bileşik ev planı sunum panosuna URL
output.resultListarray<string>Üretilen sonuç görsellerine URLs. Ev Planı için, bu genellikle output.resultUrl ile aynı URL'i içeren tek öğeli bir dizidir
output.widthintegerPiksel cinsinden çıktı genişliği
output.heightintegerPiksel cinsinden çıktı yüksekliği

📊 Görev Durumu#

DurumAçıklama
UnprocessedGörev oluşturuldu ancak henüz başlamadı
ProcessingGörev şu an işleniyor
SuccessGörev başarıyla tamamlandı — çıktı kullanılabilir
FailedGörev bir hata nedeniyle başarısız oldu
TerminationGörev yarıda kesildi veya sonlandırıldı

Her 3-5 saniyede sorgulayın. Bkz. API Görev Sınırı.


❌ Hata Yanıtları#

Tüm hata yanıtları aynı JSON yapısını paylaşır:

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

Hata Kodu Referansı#

KodAdAçıklamaÖnerilen Eylem
1001FAILEDİstek başarısız (genel hata)Spesifik hata detayları için message alanını kontrol edin
1003INTERNAL_ERRORDahili sunucu hatasıKısa bir gecikme sonrası yeniden deneyin; devam ederse destek ile iletişime geçin
1011PARAM_ERRORİstek parametresi hatasıTüm zorunlu parametrelerin sağlandığını ve doğru biçimlendirildiğini doğrulayın
5002API_KEY_INVALIDGeçersiz veya eksik API AnahtarıAPIKEY başlığının mevcut olduğunu ve değerinin doğru olduğunu sağlayın
9010SCAN_TEXT_ERRORMetin istemi içerik incelemesinden geçemediHassas veya yasaklanmış içeriği kaldırmak için istemi değiştirin
9038PROHIBITED_CONTENTÜretilen çıktı görseli yasaklanmış içerik barındırıyorİstemi/stili/girdileri ayarlayın ve yeniden deneyin
9051COINS_NOT_ENOUGHYetersiz coin / krediHesap kredilerinizi yükleyin ve yeniden deneyin

📄 Genel API hata kodlarının tam listesi için Hata Kodu Referansı'na bakın.