Ideal House
コンテンツにスキップ

住宅設計図生成 API ドキュメント#

ベース URL: https://api.ideal.house
バージョン: v1
更新日: 2026-06-12


📖 概要#

住宅設計図生成 API では、建築様式、面積、構造、室内レイアウトの希望に基づき、AI による住宅設計のプレゼンテーションボードを作成できます。生成に成功すると、API はタスクごとに必ず 1 枚の合成結果画像を生成します。この画像は、統一感のある 2D 間取り図、外観立面図、写実的な外観レンダリングを単一のボードにまとめたものです。結果は output.resultUrl に保存され、output.resultList の唯一の要素としても含まれます。ワークフローは非同期で、次の二段階です。

  1. タスクを作成 — 住宅設計図のパラメータを送信し、taskId を受け取ります。
  2. 結果をポーリングtaskId を使ってタスクのステータスを照会し、生成された画像を取得します。

🔐 認証#

すべての API リクエストは API キー で認証する必要があります。

リクエストヘッダーに API キーを含めます。

ヘッダー
APIKEYyour_api_key_here

⚠️ API キーは安全に保管してください。 クライアント側のコードや公開リポジトリに公開しないでください。


💰 クレジットの消費#

[!WARNING] 🪙 タスクが正常に作成されると、選択した modelType に応じてクレジットが差し引かれます。タスクが最終的に 失敗 した場合、差し引かれたクレジットはアカウントに 自動的に返還 されます。
クレジット不足の場合、エラーコード 9051 が返ります。📄 クレジット消費リファレンスを参照してください。

モデル(modelType消費クレジット
Base10 クレジット
Pro20 クレジット

📌 API エンドポイント#


1. 住宅設計図タスクの作成#

新しい AI 住宅設計図生成タスクを作成し、ポーリング用の一意な taskId を返します。

エンドポイント

プレーンテキスト
POST /api/v1/housePlan/generate

リクエストヘッダー

ヘッダー必須説明
APIKEY✅ はいAPI の認証キー
Content-Type✅ はいapplication/json

リクエストボディ

フィールド必須説明既定値
stylestring / null✅ はい建築様式の英語名。スタイルの選択肢を参照Barndominium
storiesstring✅ はい階数。列挙値:123+2
bedroomsstring✅ はい寝室数。列挙値:12345+2
bathroomsstring✅ はいバスルーム数。列挙値:11.522.533.54+1
totalAreastring✅ はいmin-max unit 形式の総面積範囲。総面積の選択肢を参照150-200 m²
garageEnabledboolean✅ はいガレージを含めるかどうかfalse
garageTypestring / null⚠️ 条件付きgarageEnabled=true の場合は必須。ガレージタイプの選択肢を参照null
garageCapacitystring / null⚠️ 条件付きgarageEnabled=true の場合は必須。ガレージの収容台数を参照null
basementstring✅ はい地下室のタイプ。地下室の選択肢を参照None
roofTypestring / null❌ いいえ屋根構造のタイプ。屋根タイプの選択肢を参照null
outdoorSpacesarray<string>❌ いいえ屋外エリア。屋外空間の選択肢を参照[]
layoutConceptstring / null❌ いいえ室内全体のレイアウト方針。レイアウト方針の選択肢を参照null
bedroomAreaRangesarray<object>✅ はい寝室の面積範囲。配列の長さは寝室数と一致する必要があります。寝室の面積範囲を参照例を参照
bathroomLayoutsarray<object>✅ はいバスルームのレイアウト選択。配列の長さは Math.floor(bathrooms) である必要があります。バスルームのレイアウトを参照例を参照
kitchenLayoutstring / null❌ いいえキッチンのレイアウト。キッチンの選択肢を参照null
kitchenFeatureOptionsarray<string>❌ いいえ任意のキッチン設備。キッチンの選択肢を参照[]
keyRoomsstring / null❌ いいえカンマとスペースで連結した特別用途の部屋。特別用途の部屋の選択肢を参照null
promptstring❌ いいえ生成内容をさらに指定する独自のテキストプロンプト""
refImageUrlstring❌ いいえスタイルの参考にする住宅画像の URL""
modelTypestring✅ はいモデルの品質タイプ。列挙値:BasePro。⚠️ Flash モードには対応していませんBase

🖼️ 画像の要件: 任意の参照画像には JPG/JPEG、PNG、WebP を使用し、サイズは 20 MB 以下、寸法は 128 × 128 px 以上 6,000 × 6,000 px 以下である必要があります。最大ピクセル寸法を超える画像は、処理前に縦横比を保って 6,000 × 6,000 px 以内に自動縮小します。画像の URL は API サーバーから直接アクセスできる必要があります。


🎨 スタイルの選択肢#

説明
Barndominium既定値。 金属製の納屋と住宅を組み合わせた様式
Cabin素朴な木造キャビン様式
Cape Codニューイングランドの伝統的な左右対称様式
Coastal海辺をイメージした明るく開放的な様式
Colonial伝統的で左右対称のコロニアル建築
Contemporaryすっきりした線と現代的な素材
Craftsman天然素材を用いた手工芸的な細部
Farmhouse素朴な田舎の農家様式
French Country優雅なフランス地方様式
Mediterranean温かみのあるスタッコとテラコッタの要素
Mid-Century Modern1950~70 年代のすっきりした幾何学的モダニズム
Modern平面と角を活かしたミニマルなモダンデザイン
Ranch横に広がる平屋のレイアウト
Shingle Style木製シングルで連続的に覆った外壁
Southwestern日干しれんがをイメージした砂漠の様式
Transitional伝統と現代の融合
Tudor木骨を外観に見せる中世イギリス様式
Victorian華麗な 19 世紀の装飾様式

📐 総面積の選択肢#

totalArea フィールドは min-max unit 形式を使用します。メートル法では 、ヤード・ポンド法では ft² を使用します。最小値は最大値より少なくとも一刻み分小さい必要があります。

単位最小値最大値刻み幅
5050010150-200 m²
ft²50050001001500-2000 ft²

🏠 屋根タイプの選択肢#

説明
Gable roof伝統的な三角形の切妻屋根
Hip roof四方に傾斜する寄棟屋根
Flat roof勾配がごく小さい陸屋根
Pitched roof一般的な急勾配屋根

🏗️ 地下室の選択肢#

説明
None地下室なし
Partial一部に地下室
Full全体に地下室

🚗 ガレージタイプの選択肢#

garageTypegarageEnabled=true の場合のみ必須です。それ以外は null を送信してください。

説明
Detached独立したガレージ
Front Entry入口が正面を向くガレージ
Side Entry入口が側面を向くガレージ
Rear Entry入口が背面を向くガレージ

🚗 ガレージの収容台数#

garageCapacitygarageEnabled=true の場合のみ必須です。それ以外は null を送信してください。

説明
1一台用ガレージ
2二台用ガレージ
3+三台以上の駐車スペース

🌿 屋外空間の選択肢#

outdoorSpaces フィールドは、以下の値の配列を受け付けます。

説明
Front porch正面入口の屋根付きポーチ
Covered patio屋根付きの屋外パティオ
Deck木材または複合材のデッキ
Balcony高い位置にある屋外の床面
Courtyard囲まれた、または半分囲まれた中庭
Breezeway建物をつなぐ屋根付き通路
Outdoor Kitchen屋外の調理・食事エリア

プレーンテキスト
"outdoorSpaces": ["Front porch", "Deck", "Balcony"]

🏛️ レイアウト方針の選択肢#

説明
Open Concept生活空間がつながる開放的な間取り
Traditional明確な境界で各部屋を分けた間取り
Split-Levelエリアごとに床の高さをずらした間取り

🛏️ 寝室の面積範囲#

bedroomAreaRanges フィールドは、長さが bedrooms の数と一致する配列である必要があります。各要素は次の形式を使用します。

フィールド説明
namestring寝室の表示名。例:Room 1 (Master)
minAreastring寝室の最小面積。負ではない数値文字列である必要があります
maxAreastring寝室の最大面積。minArea 以上である必要があります
unitstring面積の単位。列挙値:ft²

bedrooms="2" の既定値の例

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

🛁 バスルームのレイアウト#

bathroomLayouts フィールドは、長さが Math.floor(bathrooms) の配列である必要があります。たとえば bathrooms="2.5" には、2 個のバスルームレイアウトオブジェクトが必要です。

フィールド説明
namestringバスルームの表示名。例:Bathroom 1
layoutstring / null列挙値:With Wet & Dry SeparationWithout Separationnull

bathrooms="1" の既定値の例

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

🍳 キッチンの選択肢#

キッチンのレイアウト

説明
Open Kitchenリビング・ダイニングにつながるオープンキッチン
Closed Kitchen独立した閉鎖型キッチン

キッチン設備の選択肢

説明
Eating Bar食事用のバー・カウンター席
Kitchen Islandキッチンアイランド
Breakfast Nook朝食用の小さな食事スペース

🚪 特別用途の部屋の選択肢#

keyRooms フィールドは、以下の値を一つ以上受け付けます。複数の選択肢を指定する場合は、**カンマ(,)**で連結してください。

説明
Home Office専用のホームオフィスまたは書斎
Bonus Room柔軟に使える多目的室
Media Roomホームシアターまたはメディアルーム
Mudroom屋外用品を置く玄関脇の部屋
Laundry Room専用の洗濯スペース
Guest Suite独立した設備を備えたゲスト用寝室スイート

プレーンテキスト
"keyRooms": "Home Office, Media Room, Guest Suite"

モデルの種類

説明
Base既定値。 速度と品質を両立。高解像度の合成プレゼンテーションボードを生成します
Proより高品質・高解像度の出力で、処理は遅くなります

⚠️ 注: この API では Flash モードを利用できませんBasePro のみに対応します。


📥 リクエスト例#

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

📤 レスポンス#

成功時のレスポンス

json
{
  "code": 0,
  "message": "success",
  "data": 1234567890123456789
}
フィールド説明
codeinteger0 は成功を示します
messagestringレスポンスのメッセージ
datalong結果をポーリングするための一意のタスク ID

2. タスク結果の取得#

作成済みの住宅設計図タスクの現在のステータスと出力を取得します。

エンドポイント

プレーンテキスト
GET /api/v1/housePlan/result

リクエストヘッダー

ヘッダー必須説明
APIKEY✅ はいAPI の認証キー

クエリパラメーター

パラメーター必須説明
taskIdlong✅ はいタスク作成エンドポイントから返されたタスク ID

📥 リクエスト例#

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

📤 レスポンス#

📸 注: この API は、成功したタスクごとに必ず 1 枚の合成結果画像を生成します。この画像は 2D 間取り図、外観立面図、写実的な外観レンダリングを単一のボードにまとめたものです。output.resultUrl には合成画像の URL が入り、互換性のため、output.resultList には同じ URL が要素一つの配列として入ります。

成功時のレスポンス(タスク完了)

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

レスポンス(タスク処理中または待機中)

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

レスポンス(タスク失敗)

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

レスポンスのフィールド

フィールド説明
idlongタスクの一意の識別子
statusstring現在のタスクの状態(タスクの状態を参照)
waitNumberintegerキュー内で前に並んでいるタスクの数(0 は現在処理中であることを示します)
percentageintegerタスクの完了率(0–100
inputobjectタスクに指定した元の入力パラメーター
input.stylestring建築様式
input.totalAreastring総面積の範囲
input.storiesstring階数
input.bedroomsstring寝室数
input.bathroomsstringバスルーム数
input.garageEnabledbooleanガレージをリクエストしたかどうか
input.garageTypestring / nullガレージのタイプ
input.garageCapacitystring / nullガレージの駐車台数
input.basementstring地下室のタイプ
input.roofTypestring屋根のタイプ
input.outdoorSpacesarray<string>屋外空間
input.layoutConceptstring全体のレイアウト方針
input.bedroomAreaRangesarray<object>寝室の面積範囲
input.bathroomLayoutsarray<object>バスルームのレイアウト選択
input.kitchenLayoutstringキッチンのレイアウト様式
input.kitchenFeatureOptionsarray<string>任意のキッチン設備
input.keyRoomsstring主な特別用途の部屋(カンマ区切り)
input.promptstringカスタムテキストプロンプト(指定した場合)
input.refImageUrlstring参照画像の URL(指定された場合)
input.modelTypestring使用したモデルの種類
outputobject生成結果(statusSuccess の場合のみ利用可能)
output.resultUrlstring生成された住宅設計図の合成プレゼンテーションボードの URL
output.resultListarray<string>生成された結果画像の URLs。住宅設計図では通常、output.resultUrl と同じ URL を含む要素一つの配列です
output.widthinteger出力の幅(ピクセル単位)
output.heightinteger出力の高さ(ピクセル単位)

📊 タスクの状態#

状態説明
Unprocessedタスクは作成済みですが、まだ開始していません
Processingタスクは現在処理中です
Successタスクが正常に完了し、出力を利用できます
Failedエラーによりタスクが失敗しました
Terminationタスクが中断または終了されました

3-5 秒 ごとにポーリングしてください。API タスク制限を参照してください。


❌ エラーレスポンス#

すべてのエラーレスポンスは同じ JSON 構造を使用します。

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

エラーコードリファレンス#

コード名前説明推奨される対応
1001FAILEDリクエストの失敗(一般的なエラー)message フィールドで具体的なエラー内容を確認する
1003INTERNAL_ERRORサーバー内部のエラー少し待って再試行し、解消しない場合はサポートに連絡する
1011PARAM_ERRORリクエストパラメーターのエラー必須パラメーターがすべて指定され、形式が正しいことを確認する
5002API_KEY_INVALIDAPI キーが無効または未指定APIKEY ヘッダーが存在し、その値が正しいことを確認する
9010SCAN_TEXT_ERRORテキストプロンプトがコンテンツ審査に通りませんでしたプロンプトを修正し、機微な内容や禁止された内容を除く
9038PROHIBITED_CONTENT生成された出力画像に禁止された内容が含まれていますプロンプト、スタイル、入力を調整して再試行する
9051COINS_NOT_ENOUGHコインまたはクレジットの不足アカウントにクレジットを追加して再試行する

📄 共通の API エラーコードの全一覧は、エラーコードリファレンスを参照してください。