Ideal House
İçeriğe atla

Kat Planı Oluşturma API Belgeseli#

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


📖 Genel Bakış#

Kat Planı Oluşturma API, yapılandırılmış oda gereksinimleri ve isteğe bağlı özel bir istem veya referans görüntüsü kullanılarak tek bir yapay zekâ destekli, siyah-beyaz, üstten görünüm, CAD tarzı konut konsept kat planı oluşturur.

Çıktı, erken aşama yerleşim keşfi için tasarlanmıştır. Bu bir inşaat çizimi değildir ve üretilen ölçüler, geometri, donanım yerleşimi ve yönetmelik uyumluluğu yetkin bir uzman tarafından incelenmelidir.

İş akışı asenkrondur:

  1. Görev oluştur — Kat planı parametrelerini gönderin ve bir taskId alın.
  2. Sonuçları sorgula — Görev son durumuna ulaşana kadar taskId ile sonuç uç noktasını sorgulayın.

🔐 Kimlik Doğrulama#

Tüm herkese açık API istekleri bir API anahtarı içermelidir.

BaşlıkZorunluDeğer
APIKEY✅ EvetAPI anahtarınız
Content-Type✅ POST için Evetapplication/json

[!WARNING] API anahtarınızı güvende tutun. İstemci tarafı kodda veya herkese açık depolarda ifşa etmeyin.


💰 Kredi Kesintisi#

Krediler, bir oluşturma görevi başarıyla oluşturulduktan sonra kesilir. Görev nihayetinde başarısız olursa, kesilen krediler otomatik olarak iade edilir. Yetersiz kredi 9051 hata kodunu döndürür.

Model (modelType)Çıktı boyutuKredi
Base1536 × 102410
Pro2496 × 166420

Flash, Kat Planı API tarafından desteklenmez.

Yaygın faturalama davranışı için Kredi Kesintisi Referansı bölümüne bakın.


📌 API Uç Noktaları#

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

Bir kat planı oluşturma görevi oluşturur ve benzersiz bir görev kimliği döndürür.

Uç nokta

http
POST /api/v1/floorPlan/generate

İstek başlıkları

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

İstek gövdesi#

AlanTürZorunluAçıklamaVarsayılan
bedroomsinteger❌ Hayır0 ile 5 arası yatak odası sayısı2
bathroomsnumber❌ Hayır0.5 ile 4 arası toplam banyo sayısı, 0.5 artışlarla1.5
totalAreastring✅ Evet veya ft² birimli pozitif hedef toplam alan, örneğin 220 m² veya 1386 ft²
bedroomAreaRangesarray<object>❌ Hayırİsteğe bağlı yatak odası boyutlandırma yönlendirmesi. Yatak Odası Alan Aralıkları bölümüne bakınAtlanırsa totalArea'den türetilir
bathroomDetailsobject❌ HayırSadece tam banyolar için tercihler. Banyo Detayları bölümüne bakın
kitchenDetailsobject❌ Hayırİsteğe bağlı mutfak yapılandırması. Mutfak Detayları bölümüne bakın
keyRoomsarray<string>❌ HayırEk oda veya alanlar. Anahtar Odalar bölümüne bakın[]
promptstring❌ HayırEk yerleşim öncelikleri. Yapılandırılmış sayıları veya kesin görsel kısıtlamaları geçersiz kılamaz""
refImageUrlstring❌ HayırHerkese açık erişilebilir referans görüntü URL""
modelTypestring❌ HayırEnum: Base, ProBase

[!IMPORTANT] Herkese açık API şu anda bedrooms0–5 ve bathrooms'i 0.5–4 olarak doğrular. Başka bir istemci arayüzünde kullanılabilir değerler, bu sunucu tarafı sınırları genişletmez.

Genel istek kuralları#

  • Tüm enum değerleri büyük/küçük harfe duyarlıdır ve bu belgede gösterilen İngilizce değerleri kullanmalıdır.
  • totalArea, ölçeği ve oranları yönlendirmek için kullanılan hedef toplam alandır; kesin bir inşaat ölçüsü olarak ele alınmaz.
  • Yapılandırılmış görüntü istemi derlenirken, etkin özel istem ilk 800 karakterle sınırlıdır.
  • Yapılandırılmış alanlar, prompt içindeki çelişkili talimatlardan önceliklidir.
  • Başarılı bir görev tam olarak bir görüntü oluşturur.

📐 Toplam Alan#

totalArea, bir alan birimiyle izlenen tek bir pozitif sayısal değer içerir.

BirimÖrnek
220 m²
ft²1386 ft²

Birimden önce boşluk bırakılması önerilir. Pozitif ondalık değerler kabul edilir.

Geçerli örnekler:

json
{
  "totalArea": "200 m²"
}
json
{
  "totalArea": "1850 ft²"
}

🛏️ Yatak Odası Alan Aralıkları#

bedroomAreaRanges, göreli yatak odası boyutlandırma yönlendirmesi sağlar. Üretilen görüntüde sayısal alan etiketleri talep etmez.

Her öğenin şu şekli vardır:

AlanTürZorunluAçıklama
namestring❌ HayırYatak odası kimliği, örneğin Room 1 (Master) veya Room 2
minAreastring❌ HayırPozitif minimum alan
maxAreastring❌ HayırPozitif maksimum alan; minArea'dan küçük olamaz
unitstring❌ HayırEnum: , ft²; totalArea ile aynı birimi kullanın

Açık aralık örneği

json
{
  "bedroomAreaRanges": [
    {
      "name": "Room 1 (Master)",
      "minArea": "30",
      "maxArea": "40",
      "unit": "m²"
    },
    {
      "name": "Room 2",
      "minArea": "20",
      "maxArea": "30",
      "unit": "m²"
    }
  ]
}

Boş olmayan bir dizi sağlandığında kurallar:

  • Uzunluğu bedrooms'ye eşit olmalıdır.
  • Sağlanan her minArea ve maxArea pozitif sayısal bir dize olmalıdır.
  • Her iki değer de sağlandığında, minArea <= maxArea.
  • Sağlandığında unit, veya ft² olmalıdır.
  • İsimler korunur. Boş veya null öğeler boyutlandırma yönlendirmesi sağlamaz.

Atlanırken otomatik aralıklar#

Alan atlanabilir veya boş dizi olarak gönderilebilir. Hiçbir öğe etkin bir minArea veya maxArea içermediğinde, yapılandırılmış oluşturma yolu iç yatak odası aralıklarını totalArea ve bedrooms'den türetir:

  • Yatak odası alan bütçesi, bir yatak odası için toplam alanın 20%'i olarak başlar.
  • Bütçe, her ek yatak odası için 7.5 puan artar ve 50% ile sınırlıdır.
  • İlk yatak odası 1.3 boyutlandırma ağırlığı alır; diğer her yatak odası 1.0 ağırlığı alır.
  • Her hedef, tam alan birimlerine yuvarlanmış yaklaşık bir ±10% aralığına dönüşür.
  • Birim, totalArea'dan devralınır.
  • Mevcut boş olmayan oda adları korunur; aksi halde sunucu Room 1, Room 2 vb. kullanır.

200 m² ve 4 yatak odası için mevcut türetilmiş yönlendirme yaklaşık olarak şöyledir:

json
[
  { "name": "Room 1", "minArea": "23", "maxArea": "28", "unit": "m²" },
  { "name": "Room 2", "minArea": "18", "maxArea": "22", "unit": "m²" },
  { "name": "Room 3", "minArea": "18", "maxArea": "22", "unit": "m²" },
  { "name": "Room 4", "minArea": "18", "maxArea": "22", "unit": "m²" }
]

Bu değerler içsel oransal yönlendirmedir, garanti edilen nihai oda alanları değildir. Açıkça belirtilmiş geçerli aralıklar her zaman otomatik aralıklardan önceliklidir.

bedrooms 0 olduğunda, bedroomAreaRanges'ü atlayın veya [] gönderin.


🛁 Banyo Detayları#

bathrooms toplam banyo sayısını temsil eder:

  • Tamam sayı kısmı, tam banyo sayısıdır.
  • Bir .5 kesri, bir yarım banyo ekler.
  • Her tam banyoya tuvalet, lavabo/tezgah ve duş veya ıslak alan içermesi talimatı verilir.
  • Yarım banyo yalnızca tuvalet ve lavabo/tezgah içerir; duş veya küvet yoktur.

bathroomDetails yalnızca tam banyoları yapılandırır:

json
{
  "bathroomDetails": {
    "fullBathroomOptions": [
      {
        "name": "Bathroom 1",
        "wetDrySeparation": "yes",
        "bathtub": "required"
      },
      {
        "name": "Bathroom 2",
        "wetDrySeparation": "no",
        "bathtub": "optional"
      }
    ]
  }
}
AlanTürİzin verilen değerlerAçıklama
namestringBathroom 1, Bathroom 2 vb.İsteğe bağlı görüntü kimliği
wetDrySeparationstring / nullyes, no, nullAyrı bir ıslak bölge gösterilip gösterilmeyeceği
bathtubstring / nullno, optional, required, nullKüvet tercihi

Kurallar:

  • fullBathroomOptions.length, floor(bathrooms)'dan büyük olamaz.
  • Dizi, yalnızca tercihleri seçilen tam banyoları içerebilir.
  • Bir null değeri belirtilmemiş anlamına gelir.
  • Zorunlu küvet, standart tam banyo donanımlarına ekledir; tuvalet veya duşu değiştirmez.
  • Islak/kuru ayrımı, sayılan bir banyonun içindeki iç bölmedir, ek bir banyo değildir.

🍳 Mutfak Detayları#

Tüm kitchenDetails alt alanları isteğe bağlıdır. Mutfak tercihi seçilmediğinde tüm nesneyi atlayın.

json
{
  "kitchenDetails": {
    "type": "open",
    "size": "standard",
    "layout": "U",
    "islandType": "preparation",
    "storage": "maximum",
    "features": ["breakfast nook", "pantry"]
  }
}
AlanTürİzin verilen değerler
typestringopen, semi-open, closed
sizestringsmall, standard, large, extra large
layoutstringI, L, U, gallery
islandTypestringno, preparation, cooking, entertainment
storagestringminimal, standard, maximum
featuresarray<string>eating bar, breakfast nook, pantry

Kısmi yapılandırma geçerlidir. Örneğin:

json
{
  "kitchenDetails": {
    "type": "semi-open"
  }
}

🚪 Anahtar Odalar#

keyRooms, bu tam değerlerin dizisini kabul eder:

DeğerAçıklama
walk-in closetYatak odası bölgesine bağlı özel giyinme odası
laundry roomÖzel çamaşırhane alanı
storage roomGenel depolama odası
utility roomMekanik veya servis odası
home officeÖzel ofis veya çalışma odası
garageDış araç açılımı ve iç ev erişimi olan garaj
pantryMutfakla komşu kiler
combined living-diningTek paylaşılan oturma ve yemek alanı
balconyYaşam alanına veya birincil yatak odasına bağlı dış balkon

Eski Web değeri balcon de kabul edilir ve balcony olarak normalize edilir.

Kurallar:

  • Boş değerler yok sayılır ve yinelenen değerler kaldırılır.
  • Seçilen anahtar odalar bir kez talep edilir.
  • Seçilmemiş isteğe bağlı alanlar, üretilen oda programından hariç tutulur.
  • pantry hem kitchenDetails.features hem de keyRooms içinde görünürse, yalnızca bir kiler talep edilir.

Örnek:

json
{
  "keyRooms": [
    "garage",
    "home office",
    "combined living-dining"
  ]
}

🖼️ Referans Görüntüsü#

refImageUrl isteğe bağlıdır ve API sunucusu tarafından doğrudan erişilebilir olmalıdır.

Gereksinimler:

  • Biçim: JPG/JPEG, PNG veya WebP.
  • Maksimum dosya boyutu: 20 MB.
  • Minimum boyutlar: 128 × 128 px.
  • Maksimum boyutlar: 6,000 × 6,000 px. Daha büyük görüntüler işlemeden önce orantılı olarak ölçeklenir.

Referans görüntü, yerleşimi, komşuluğu, oranları veya görsel stili yönlendirir. Yapılandırılmış oda sayılarını veya diğer kesin kısıtlamaları geçersiz kılmaz.


🤖 Model Türleri#

DeğerAçıklama
BaseVarsayılan. Dengelemiş oluşturma kalitesi, 1536 × 1024 çıktı
ProDaha yüksek çözünürlüklü 2496 × 1664 çıktı, daha uzun beklenen oluşturma süresi

Yalnızca Base ve Pro desteklenir.


Herkese açık işlevsel arayüzün kapsamı dışındaki alanlar#

Aşağıdaki alanlara herkese açık API istemcileri tarafından güvenilmemelidir:

AlanNotlar
imageNumbersMevcut oluşturucu her zaman bir görüntü döndürür; bu alana gerek yoktur
extDataİç Web görev-grubu izleme verileri; herkese açık istemciler bunu atlamalıdır
isApiCallAPI uç noktası tarafından belirlenir, istek gövdesi tarafından değil
genByMemberİç oluşturma verileri, Kat Planı istek alanı değildir

Gönderilmemesi gereken kaldırılmış eski alanlar:

text
floorplanSetting
roomCounts
grossArea
totalAreaValue
totalAreaUnit
totalAreaType
fullBathrooms
halfBathrooms
halfBathroomRequirement
kitchenType
diningRooms
livingRooms
extras
referenceImage
hasDetailOptions

📥 Görev Oluşturma Örnekleri#

Otomatik yatak odası aralıklarıyla minimal istek#

bash
curl -X POST "https://api.ideal.house/api/v1/floorPlan/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "bedrooms": 4,
    "bathrooms": 2,
    "totalArea": "200 m²",
    "modelType": "Pro",
    "prompt": "Upper floor of a two-story Saudi Arabian villa with a master bedroom, family living area, staircase landing, and balcony"
  }'

Tam istek#

cURL
bash
curl -X POST "https://api.ideal.house/api/v1/floorPlan/generate" \
  -H "APIKEY: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "bedrooms": 3,
    "bathrooms": 2.5,
    "totalArea": "220 m²",
    "bedroomAreaRanges": [
      {"name": "Room 1 (Master)", "minArea": "30", "maxArea": "40", "unit": "m²"},
      {"name": "Room 2", "minArea": "20", "maxArea": "30", "unit": "m²"},
      {"name": "Room 3", "minArea": "20", "maxArea": "30", "unit": "m²"}
    ],
    "bathroomDetails": {
      "fullBathroomOptions": [
        {"name": "Bathroom 1", "wetDrySeparation": "yes", "bathtub": "required"},
        {"name": "Bathroom 2", "wetDrySeparation": "no", "bathtub": "optional"}
      ]
    },
    "kitchenDetails": {
      "type": "open",
      "size": "standard",
      "layout": "U",
      "islandType": "preparation",
      "storage": "maximum",
      "features": ["breakfast nook", "pantry"]
    },
    "keyRooms": ["garage", "home office", "combined living-dining"],
    "prompt": "Bright modern home with good natural lighting",
    "refImageUrl": "https://example.com/reference-plan.png",
    "modelType": "Pro"
  }'
Java (OkHttp)
java
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class FloorPlanApiExample {

    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 Exception {
        OkHttpClient client = new OkHttpClient();
        String json = """
                {
                  "bedrooms": 4,
                  "bathrooms": 2,
                  "totalArea": "200 m²",
                  "keyRooms": ["walk-in closet", "balcony"],
                  "prompt": "Upper floor with a master bedroom and family living area",
                  "modelType": "Pro"
                }
                """;

        Request request = new Request.Builder()
                .url(BASE_URL + "/api/v1/floorPlan/generate")
                .addHeader("APIKEY", API_KEY)
                .addHeader("Content-Type", "application/json")
                .post(RequestBody.create(json, MediaType.parse("application/json")))
                .build();

        try (Response response = client.newCall(request).execute()) {
            System.out.println(response.body().string());
        }
    }
}
Python (requests)
python
import requests

BASE_URL = "https://api.ideal.house"
API_KEY = "your_api_key_here"

payload = {
    "bedrooms": 4,
    "bathrooms": 2,
    "totalArea": "200 m²",
    "keyRooms": ["walk-in closet", "balcony"],
    "prompt": "Upper floor with a master bedroom and family living area",
    "modelType": "Pro",
}

response = requests.post(
    f"{BASE_URL}/api/v1/floorPlan/generate",
    headers={"APIKEY": API_KEY, "Content-Type": "application/json"},
    json=payload,
)
response.raise_for_status()
print("Task ID:", response.json()["data"])
Node.js (axios)
javascript
const axios = require('axios');

const BASE_URL = 'https://api.ideal.house';
const API_KEY = 'your_api_key_here';

async function createFloorPlanTask() {
  const response = await axios.post(
    `${BASE_URL}/api/v1/floorPlan/generate`,
    {
      bedrooms: 4,
      bathrooms: 2,
      totalArea: '200 m²',
      keyRooms: ['walk-in closet', 'balcony'],
      prompt: 'Upper floor with a master bedroom and family living area',
      modelType: 'Pro'
    },
    {
      headers: {
        APIKEY: API_KEY,
        'Content-Type': 'application/json'
      }
    }
  );

  console.log('Task ID:', response.data.data);
  return response.data.data;
}

createFloorPlanTask();

Görev oluşturma başarı yanıtı#

json
{
  "code": 0,
  "message": "success",
  "data": 1234567890123456789
}
AlanTürAçıklama
codeinteger0, görevin başarıyla oluşturulduğunu gösterir
messagestringYanıt mesajı
datalongSonuç uç noktasını sorgulamak için kullanılan görev kimliği

2. Görev Sonucunu Al#

Görev ilerlemesini ve mevcut olduğunda üretilen görüntüyü döndürür.

Uç nokta

http
GET /api/v1/floorPlan/result?taskId={taskId}

İstek başlıkları

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

Sorgu parametreleri

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

Sonuç istek örnekleri#

cURL
bash
curl -X GET "https://api.ideal.house/api/v1/floorPlan/result?taskId=1234567890123456789" \
  -H "APIKEY: your_api_key_here"
Python sorgulama
python
import time
import requests

BASE_URL = "https://api.ideal.house"
API_KEY = "your_api_key_here"
task_id = 1234567890123456789

while True:
    response = requests.get(
        f"{BASE_URL}/api/v1/floorPlan/result",
        headers={"APIKEY": API_KEY},
        params={"taskId": task_id},
    )
    response.raise_for_status()
    task = response.json()["data"]
    print(task["status"], task["percentage"], task["waitNumber"])

    if task["status"] in ("Success", "Failed", "Termination"):
        break

    time.sleep(3)

if task["status"] == "Success":
    print("Result URL:", task["output"]["resultUrl"])
Node.js sorgulama
javascript
const axios = require('axios');

const BASE_URL = 'https://api.ideal.house';
const API_KEY = 'your_api_key_here';

async function pollFloorPlanResult(taskId) {
  while (true) {
    const response = await axios.get(
      `${BASE_URL}/api/v1/floorPlan/result`,
      {
        headers: { APIKEY: API_KEY },
        params: { taskId }
      }
    );

    const task = response.data.data;
    console.log(task.status, task.percentage, task.waitNumber);

    if (['Success', 'Failed', 'Termination'].includes(task.status)) {
      if (task.status === 'Success') {
        console.log('Result URL:', task.output.resultUrl);
      }
      return task;
    }

    await new Promise(resolve => setTimeout(resolve, 3000));
  }
}

pollFloorPlanResult('1234567890123456789');

Tamamlanan görev yanıtı#

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Success",
    "waitNumber": 0,
    "percentage": 100,
    "input": {
      "bedrooms": 4,
      "bathrooms": 2,
      "totalArea": "200 m²",
      "bedroomAreaRanges": [
        {"name": "Room 1", "minArea": "23", "maxArea": "28", "unit": "m²"},
        {"name": "Room 2", "minArea": "18", "maxArea": "22", "unit": "m²"},
        {"name": "Room 3", "minArea": "18", "maxArea": "22", "unit": "m²"},
        {"name": "Room 4", "minArea": "18", "maxArea": "22", "unit": "m²"}
      ],
      "keyRooms": ["walk-in closet", "balcony"],
      "prompt": "Upper floor with a master bedroom and family living area",
      "modelType": "Pro"
    },
    "output": {
      "resultUrl": "https://cdn.ideal.house/output/floor-plan.jpg",
      "width": 2496,
      "height": 1664
    }
  }
}

İşleniyor yanıtı#

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Processing",
    "waitNumber": 1,
    "percentage": 45,
    "input": {
      "bedrooms": 4,
      "bathrooms": 2,
      "totalArea": "200 m²",
      "modelType": "Pro"
    },
    "output": null
  }
}

Başarısız görev yanıtı#

json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1234567890123456789,
    "status": "Failed",
    "waitNumber": 0,
    "percentage": 0,
    "input": {
      "bedrooms": 4,
      "bathrooms": 2,
      "totalArea": "200 m²",
      "modelType": "Pro"
    },
    "output": null
  }
}

Sonuç alanları#

AlanTürAçıklama
idlongGörev kimliği
statusstringMevcut görev durumu
waitNumberintegerSırada öndeki görev sayısı; 0, önde bekleyen görev olmadığı anlamına gelir
percentageinteger0 ile 100 arasında yaklaşık tamamlanma yüzdesi
inputobjectUygulanabilir olduğunda otomatik türetilen yatak odası aralıklarını içeren normalize edilmiş görev girdisi
outputobject / nullGörev başarılı olduğunda üretilen çıktı; aksi halde genellikle null
output.resultUrlstringÜretilen kat planı görüntüsünün imzalı URL'ı
output.widthintegerPiksel cinsinden çıktı genişliği
output.heightintegerPiksel cinsinden çıktı yüksekliği

📊 Görev Durumu#

DurumAçıklama
UnprocessedGörev oluşturuldu ancak başlamadı
ProcessingGörev işleniyor
SuccessGörev tamamlandı ve output.resultUrl kullanılabilir
FailedGörev başarısız oldu
TerminationGörev kesintiye uğradı veya sonlandırıldı

Her 3–5 saniyede sorgulayın. API Görev Sınırı bölümüne bakın.


❌ Hata Yanıtları#

Tüm hata yanıtları ortak yanıt yapısını kullanır:

json
{
  "code": 1011,
  "message": "bedroomAreaRanges size must match bedrooms",
  "data": null
}
KodAdAçıklamaÖnerilen işlem
1001FAILEDGenel istek başarısızlığımessage alanını kontrol edin
1003INTERNAL_ERRORİç sunucu hatasıDaha sonra yeniden deneyin; devam ederse destekle iletişime geçin
1011PARAM_ERRORGeçersiz istek parametresiSayıları, birimleri, enum değerlerini ve iç içe dizileri doğrulayın
5002API_KEY_INVALIDGeçersiz veya eksik API anahtarıAPIKEY başlığını doğrulayın
9010SCAN_TEXT_ERRORİstem içerik incelemesinden geçemediİstemi gözden geçirin
9038PROHIBITED_CONTENTÜretilen çıktı yasaklı içerik barındırıyorGirdileri ayarlayın ve yeniden deneyin
9051COINS_NOT_ENOUGHYetersiz krediKredi ekleyin ve yeniden deneyin

Tamamlayıcı ortak hata listesi için Hata Kodu Referansı bölümüne bakın.


🔄 Web Entegrasyon Notları#

Kimlik doğrulanmış Web uygulaması ve herkese açık API farklı uç noktalar ve kimlik doğrulama yöntemleri kullanır:

İstemciUç noktaKimlik doğrulama
Web uygulamasıPOST /floorPlan/generateGiriş token başlığı
Herkese açık APIPOST /api/v1/floorPlan/generateAPIKEY başlığı

İş alanı şekilleri uyumludur, ancak herkese açık API istemcileri bu belgedeki sunucu tarafı sınırları ve herkese açık sözleşmeyi takip etmelidir. Özellikle:

  • Web istemcileri iç imageNumbers ve extData içerebilir; herkese açık istemciler bunlara ihtiyaç duymaz.
  • Herkese açık API, API-çağrı verilerini uç nokta ve kimlik bilgileri tarafından belirler. isApiCall ve genByMember gibi istek alanları gereksizdir.
  • balcon, uyumluluk için kabul edilir ve balcony olarak normalize edilir; yeni entegrasyonlar balcony göndermelidir.
  • Mevcut herkese açık sunucu sınırları, başka bir arayüz geçici olarak daha geniş seçiciler sunsa bile 0–5 yatak odası ve 0.5–4 banyo olarak kalır.