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:
- Görev oluştur — Ev planı parametrelerinizi gönderin ve bir
taskIdalın. - Sonuçları sorgula — Görev durumunu sorgulamak ve üretilen görselleri almak için
taskIdkullanı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ık | Değer |
|---|---|
APIKEY | your_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
modelTypetemelinde kesilir. Görev nihayetinde başarısız olursa, kesilen krediler hesabınıza otomatik olarak iade edilir.
Yetersiz kredi,9051hata kodunu döndürür. 📄 Bkz. Kredi Kesintisi Referansı.
Model (modelType) | Kesilen Krediler |
|---|---|
Base | 10 kredi |
Pro | 20 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
POST /api/v1/housePlan/generate
İstek Başlıkları
| Başlık | Zorunlu | Açıklama |
|---|---|---|
APIKEY | ✅ Evet | API kimlik doğrulama anahtarınız |
Content-Type | ✅ Evet | application/json |
İstek Gövdesi
| Alan | Tür | Zorunlu | Açıklama | Varsayılan |
|---|---|---|---|---|
style | string / null | ✅ Evet | Mimari stil İngilizce adı. Bkz. Stil Seçenekleri | Barndominium |
stories | string | ✅ Evet | Kat sayısı. Sayım: 1, 2, 3+ | 2 |
bedrooms | string | ✅ Evet | Yatak odası sayısı. Sayım: 1, 2, 3, 4, 5+ | 2 |
bathrooms | string | ✅ Evet | Banyo sayısı. Sayım: 1, 1.5, 2, 2.5, 3, 3.5, 4+ | 1 |
totalArea | string | ✅ Evet | min-max unit biçiminde toplam alan aralığı. Bkz. Toplam Alan Seçenekleri | 150-200 m² |
garageEnabled | boolean | ✅ Evet | Garaj dahil edilecek mi | false |
garageType | string / null | ⚠️ Koşullu | garageEnabled=true olduğunda zorunludur. Bkz. Garaj Tipi Seçenekleri | null |
garageCapacity | string / null | ⚠️ Koşullu | garageEnabled=true olduğunda zorunludur. Bkz. Garaj Kapasitesi | null |
basement | string | ✅ Evet | Zemin kat tipi. Bkz. Zemin Kat Seçenekleri | None |
roofType | string / null | ❌ Hayır | Çatı yapısı tipi. Bkz. Çatı Tipi Seçenekleri | null |
outdoorSpaces | array<string> | ❌ Hayır | Dış mekan alanları. Bkz. Dış Mekan Seçenekleri | [] |
layoutConcept | string / null | ❌ Hayır | Genel iç mekan yerleşim konsepti. Bkz. Yerleşim Konsepti Seçenekleri | null |
bedroomAreaRanges | array<object> | ✅ Evet | Yatak odası alan aralıkları. Uzunluk, yatak odası sayısı ile eşleşmelidir. Bkz. Yatak Odası Alan Aralıkları | Örnek |
bathroomLayouts | array<object> | ✅ Evet | Banyo yerleşim seçimleri. Uzunluk Math.floor(bathrooms) olmalıdır. Bkz. Banyo Yerleşimleri | Örnek |
kitchenLayout | string / null | ❌ Hayır | Mutfak yerleşimi. Bkz. Mutfak Seçenekleri | null |
kitchenFeatureOptions | array<string> | ❌ Hayır | İsteğe bağlı mutfak özellikleri. Bkz. Mutfak Seçenekleri | [] |
keyRooms | string / null | ❌ Hayır | Virgül ve boşlukla birleştirilen özel odalar. Bkz. Özel Odalar Seçenekleri | null |
prompt | string | ❌ Hayır | Üretimi daha da yönlendirmek için özel metin istemi | "" |
refImageUrl | string | ❌ Hayır | Stili yönlendirmek için referans ev görseli URL | "" |
modelType | string | ✅ Evet | Model kalite tipi. Sayım: Base, Pro. ⚠️ Flash modu desteklenmemektedir | Base |
🖼️ 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ğer | Açıklama |
|---|---|
Barndominium | Varsayılan. Metal ahır tarzı hibrit ev |
Cabin | Rustik ahşap kulübe stili |
Cape Cod | Klasik New England simetrik stili |
Coastal | Hafif, ferah plaj ilhamlı stil |
Colonial | Geleneksel simetrik kolonyal mimari |
Contemporary | Temiz çizgiler ve modern malzemeler |
Craftsman | Doğal malzemelerle el yapımı detaylar |
Farmhouse | Rustik kırsal çiftlik evi stili |
French Country | Zarif Fransız kırsal stili |
Mediterranean | Sıcak sıva ve terracotta unsurları |
Mid-Century Modern | 1950'lı–70'li temiz geometrik modernizm |
Modern | Minimalist düz/açılı modern tasarım |
Ranch | Tek katlı yayvan yerleşim |
Shingle Style | Sürekli ahşap kiremit dış cephe |
Southwestern | Adobe ilhamlı çöl stili |
Transitional | Geleneksel ve çağdaşın karışımı |
Tudor | Yarı ahşap iskeletli orta çağ İngiliz stili |
Victorian | Süslü 19. yüzyıl dekoratif stili |
📐 Toplam Alan Seçenekleri#
totalArea alanı min-max unit biçimini kullanır. Metrik değerler m²; İngiliz ölçü sistemindeki değerler ft² kullanır. Minimum değer, maksimum değerden en az bir adım düşük olmalıdır.
| Birim | Minimum | Maksimum | Adım | Örnek |
|---|---|---|---|---|
m² | 50 | 500 | 10 | 150-200 m² |
ft² | 500 | 5000 | 100 | 1500-2000 ft² |
🏠 Çatı Tipi Seçenekleri#
| Değer | Açıklama |
|---|---|
Gable roof | Klasik üçgen sivri çatı |
Hip roof | Dört yönde de eğimli |
Flat roof | Minimal eğimli düz çatı |
Pitched roof | Genel dik eğimli çatı |
🏗️ Zemin Kat Seçenekleri#
| Değer | Açıklama |
|---|---|
None | Zemin kat yok |
Partial | Kısmi zemin kat |
Full | Tam zemin kat |
🚗 Garaj Tipi Seçenekleri#
garageType yalnızca garageEnabled=true olduğunda zorunludur; aksi halde null gönderin.
| Değer | Açıklama |
|---|---|
Detached | Ayrı garaj |
Front Entry | Garaj girişi öne bakar |
Side Entry | Garaj girişi yana bakar |
Rear Entry | Garaj girişi arkaya bakar |
🚗 Garaj Kapasitesi#
garageCapacity yalnızca garageEnabled=true olduğunda zorunludur; aksi halde null gönderin.
| Değer | Açıklama |
|---|---|
1 | Tek 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ğer | Açıklama |
|---|---|
Front porch | Ön tarafta kapalı giriş verandası |
Covered patio | Kapalı dış mekan veranda alanı |
Deck | Ahşap veya kompozit platform |
Balcony | Yükseltilmiş dış mekan platformu |
Courtyard | Kapalı veya yarı kapalı dış avlu |
Breezeway | Yapıları birbirine bağlayan kapalı geçit |
Outdoor Kitchen | Dış mekan pişirme ve yemek alanı |
Örnek
"outdoorSpaces": ["Front porch", "Deck", "Balcony"]
🏛️ Yerleşim Konsepti Seçenekleri#
| Değer | Açıklama |
|---|---|
Open Concept | Açık plan bağlantılı yaşam alanları |
Traditional | Tanımlı sınırlarla ayrılmış odalar |
Split-Level | Alanlar 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:
| Alan | Tür | Açıklama |
|---|---|---|
name | string | Yatak odası görüntü adı, örneğin Room 1 (Master) |
minArea | string | Minimum yatak odası alanı. Negatif olmayan sayısal bir dize olmalıdır |
maxArea | string | Maksimum yatak odası alanı. minArea'den büyük veya eşit olmalıdır |
unit | string | Alan birimi. Sayım: m², ft² |
bedrooms="2" için varsayılan örnek
[
{ "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.
| Alan | Tür | Açıklama |
|---|---|---|
name | string | Banyo görüntü adı, örneğin Bathroom 1 |
layout | string / null | Sayım: With Wet & Dry Separation, Without Separation veya null |
bathrooms="1" için varsayılan örnek
[
{ "name": "Bathroom 1", "layout": null }
]
🍳 Mutfak Seçenekleri#
Mutfak Yerleşimi
| Değer | Açıklama |
|---|---|
Open Kitchen | Oturma/ yemek alanına bağlı açık mutfak |
Closed Kitchen | Kapalı ayrı mutfak alanı |
Mutfak Özellik Seçenekleri
| Değer | Açıklama |
|---|---|
Eating Bar | Yemek barı / tezgah oturma alanı |
Kitchen Island | Mutfak adası |
Breakfast Nook | Kahvaltı 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ğer | Açıklama |
|---|---|
Home Office | Özgün ev ofisi veya çalışma odası |
Bonus Room | Esnek çok amaçlı bonus oda |
Media Room | Ev sineması veya medya merkezi |
Mudroom | Dış mekan ekipmanları için giriş odası |
Laundry Room | Özgün çamaşır odası |
Guest Suite | Kendine yeten misafir yatak odası süiti |
Örnek
"keyRooms": "Home Office, Media Room, Guest Suite"
Model Tipleri
| Değer | Açıklama |
|---|---|
Base | Varsayılan. Hız ve kalite dengesi. Yüksek çözünürlüklü bileşik sunum panosu üretir |
Pro | Daha yüksek kalite ve daha yüksek çözünürlüklü çıktı, daha yavaş |
⚠️ Not:
Flashmodu bu API için kullanılamaz. YalnızcaBaseveProdesteklenir.
📥 İstek Örnekleri#
cURL
# 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)
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)
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)
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
{
"code": 0,
"message": "success",
"data": 1234567890123456789
}
| Alan | Tür | Açıklama |
|---|---|---|
code | integer | 0 başarıyı gösterir |
message | string | Yanıt mesajı |
data | long | Sonuç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
GET /api/v1/housePlan/result
İstek Başlıkları
| Başlık | Zorunlu | Açıklama |
|---|---|---|
APIKEY | ✅ Evet | API kimlik doğrulama anahtarınız |
Sorgu Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
taskId | long | ✅ Evet | Görev oluşturma uç noktasından döndürülen görev kimliği |
📥 İstek Örnekleri#
cURL
curl -X GET "https://api.ideal.house/api/v1/housePlan/result?taskId=1234567890123456789" \
-H "APIKEY: your_api_key_here"
Java (OkHttp)
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)
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)
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.resultUrlbileşik görsel URL'sini içerir veoutput.resultList, uyumluluk için aynı URL'yi tek öğeli bir dizi olarak içerir.
Başarılı Yanıt (Görev Tamamlandı)
{
"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)
{
"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)
{
"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ı
| Alan | Tür | Açıklama |
|---|---|---|
id | long | Görev benzersiz tanımlayıcısı |
status | string | Mevcut görev durumu (bkz. Görev Durumu) |
waitNumber | integer | Sıradaki görev sayısı (0 şu an işleniyor anlamına gelir) |
percentage | integer | Görev tamamlanma yüzdesi (0–100) |
input | object | Görevin orijinal girdi parametreleri |
input.style | string | Mimari stil |
input.totalArea | string | Toplam alan aralığı |
input.stories | string | Kat sayısı |
input.bedrooms | string | Yatak odası sayısı |
input.bathrooms | string | Banyo sayısı |
input.garageEnabled | boolean | Garaj istenip istenmediği |
input.garageType | string / null | Garaj tipi |
input.garageCapacity | string / null | Garaj alanı sayısı |
input.basement | string | Zemin kat tipi |
input.roofType | string | Çatı tipi |
input.outdoorSpaces | array<string> | Dış mekan alanları |
input.layoutConcept | string | Genel yerleşim konsepti |
input.bedroomAreaRanges | array<object> | Yatak odası alan aralıkları |
input.bathroomLayouts | array<object> | Banyo yerleşim seçimleri |
input.kitchenLayout | string | Mutfak yerleşim stili |
input.kitchenFeatureOptions | array<string> | İsteğe bağlı mutfak özellikleri |
input.keyRooms | string | Özel odalar (virgülle ayrılmış) |
input.prompt | string | Özel metin istemi (verildiyse) |
input.refImageUrl | string | Referans görsel URL (verildiyse) |
input.modelType | string | Kullanılan model tipi |
output | object | Üretim sonucu (yalnızca status Success olduğunda kullanılabilir) |
output.resultUrl | string | Üretilen bileşik ev planı sunum panosuna URL |
output.resultList | array<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.width | integer | Piksel cinsinden çıktı genişliği |
output.height | integer | Piksel cinsinden çıktı yüksekliği |
📊 Görev Durumu#
| Durum | Açıklama |
|---|---|
Unprocessed | Görev oluşturuldu ancak henüz başlamadı |
Processing | Görev şu an işleniyor |
Success | Görev başarıyla tamamlandı — çıktı kullanılabilir |
Failed | Görev bir hata nedeniyle başarısız oldu |
Termination | Gö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:
{
"code": 5002,
"message": "Invalid API Key",
"data": null
}
Hata Kodu Referansı#
| Kod | Ad | Açıklama | Önerilen Eylem |
|---|---|---|---|
1001 | FAILED | İstek başarısız (genel hata) | Spesifik hata detayları için message alanını kontrol edin |
1003 | INTERNAL_ERROR | Dahili sunucu hatası | Kısa bir gecikme sonrası yeniden deneyin; devam ederse destek ile iletişime geçin |
1011 | PARAM_ERROR | İstek parametresi hatası | Tüm zorunlu parametrelerin sağlandığını ve doğru biçimlendirildiğini doğrulayın |
5002 | API_KEY_INVALID | Geçersiz veya eksik API Anahtarı | APIKEY başlığının mevcut olduğunu ve değerinin doğru olduğunu sağlayın |
9010 | SCAN_TEXT_ERROR | Metin istemi içerik incelemesinden geçemedi | Hassas veya yasaklanmış içeriği kaldırmak için istemi değiştirin |
9038 | PROHIBITED_CONTENT | Üretilen çıktı görseli yasaklanmış içerik barındırıyor | İstemi/stili/girdileri ayarlayın ve yeniden deneyin |
9051 | COINS_NOT_ENOUGH | Yetersiz coin / kredi | Hesap kredilerinizi yükleyin ve yeniden deneyin |
📄 Genel API hata kodlarının tam listesi için Hata Kodu Referansı'na bakın.