住宅設計図生成 API ドキュメント#
ベース URL:
https://api.ideal.house
バージョン: v1
更新日: 2026-06-12
📖 概要#
住宅設計図生成 API では、建築様式、面積、構造、室内レイアウトの希望に基づき、AI による住宅設計のプレゼンテーションボードを作成できます。生成に成功すると、API はタスクごとに必ず 1 枚の合成結果画像を生成します。この画像は、統一感のある 2D 間取り図、外観立面図、写実的な外観レンダリングを単一のボードにまとめたものです。結果は output.resultUrl に保存され、output.resultList の唯一の要素としても含まれます。ワークフローは非同期で、次の二段階です。
- タスクを作成 — 住宅設計図のパラメータを送信し、
taskIdを受け取ります。 - 結果をポーリング —
taskIdを使ってタスクのステータスを照会し、生成された画像を取得します。
🔐 認証#
すべての API リクエストは API キー で認証する必要があります。
リクエストヘッダーに API キーを含めます。
| ヘッダー | 値 |
|---|---|
APIKEY | your_api_key_here |
⚠️ API キーは安全に保管してください。 クライアント側のコードや公開リポジトリに公開しないでください。
💰 クレジットの消費#
[!WARNING] 🪙 タスクが正常に作成されると、選択した
modelTypeに応じてクレジットが差し引かれます。タスクが最終的に 失敗 した場合、差し引かれたクレジットはアカウントに 自動的に返還 されます。
クレジット不足の場合、エラーコード9051が返ります。📄 クレジット消費リファレンスを参照してください。
モデル(modelType) | 消費クレジット |
|---|---|
Base | 10 クレジット |
Pro | 20 クレジット |
📌 API エンドポイント#
1. 住宅設計図タスクの作成#
新しい AI 住宅設計図生成タスクを作成し、ポーリング用の一意な taskId を返します。
エンドポイント
POST /api/v1/housePlan/generate
リクエストヘッダー
| ヘッダー | 必須 | 説明 |
|---|---|---|
APIKEY | ✅ はい | API の認証キー |
Content-Type | ✅ はい | application/json |
リクエストボディ
| フィールド | 型 | 必須 | 説明 | 既定値 |
|---|---|---|---|---|
style | string / null | ✅ はい | 建築様式の英語名。スタイルの選択肢を参照 | Barndominium |
stories | string | ✅ はい | 階数。列挙値:1、2、3+ | 2 |
bedrooms | string | ✅ はい | 寝室数。列挙値:1、2、3、4、5+ | 2 |
bathrooms | string | ✅ はい | バスルーム数。列挙値:1、1.5、2、2.5、3、3.5、4+ | 1 |
totalArea | string | ✅ はい | min-max unit 形式の総面積範囲。総面積の選択肢を参照 | 150-200 m² |
garageEnabled | boolean | ✅ はい | ガレージを含めるかどうか | false |
garageType | string / null | ⚠️ 条件付き | garageEnabled=true の場合は必須。ガレージタイプの選択肢を参照 | null |
garageCapacity | string / null | ⚠️ 条件付き | garageEnabled=true の場合は必須。ガレージの収容台数を参照 | null |
basement | string | ✅ はい | 地下室のタイプ。地下室の選択肢を参照 | None |
roofType | string / null | ❌ いいえ | 屋根構造のタイプ。屋根タイプの選択肢を参照 | null |
outdoorSpaces | array<string> | ❌ いいえ | 屋外エリア。屋外空間の選択肢を参照 | [] |
layoutConcept | string / null | ❌ いいえ | 室内全体のレイアウト方針。レイアウト方針の選択肢を参照 | null |
bedroomAreaRanges | array<object> | ✅ はい | 寝室の面積範囲。配列の長さは寝室数と一致する必要があります。寝室の面積範囲を参照 | 例を参照 |
bathroomLayouts | array<object> | ✅ はい | バスルームのレイアウト選択。配列の長さは Math.floor(bathrooms) である必要があります。バスルームのレイアウトを参照 | 例を参照 |
kitchenLayout | string / null | ❌ いいえ | キッチンのレイアウト。キッチンの選択肢を参照 | null |
kitchenFeatureOptions | array<string> | ❌ いいえ | 任意のキッチン設備。キッチンの選択肢を参照 | [] |
keyRooms | string / null | ❌ いいえ | カンマとスペースで連結した特別用途の部屋。特別用途の部屋の選択肢を参照 | null |
prompt | string | ❌ いいえ | 生成内容をさらに指定する独自のテキストプロンプト | "" |
refImageUrl | string | ❌ いいえ | スタイルの参考にする住宅画像の URL | "" |
modelType | string | ✅ はい | モデルの品質タイプ。列挙値:Base、Pro。⚠️ 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 Modern | 1950~70 年代のすっきりした幾何学的モダニズム |
Modern | 平面と角を活かしたミニマルなモダンデザイン |
Ranch | 横に広がる平屋のレイアウト |
Shingle Style | 木製シングルで連続的に覆った外壁 |
Southwestern | 日干しれんがをイメージした砂漠の様式 |
Transitional | 伝統と現代の融合 |
Tudor | 木骨を外観に見せる中世イギリス様式 |
Victorian | 華麗な 19 世紀の装飾様式 |
📐 総面積の選択肢#
totalArea フィールドは min-max unit 形式を使用します。メートル法では m²、ヤード・ポンド法では ft² を使用します。最小値は最大値より少なくとも一刻み分小さい必要があります。
| 単位 | 最小値 | 最大値 | 刻み幅 | 例 |
|---|---|---|---|---|
m² | 50 | 500 | 10 | 150-200 m² |
ft² | 500 | 5000 | 100 | 1500-2000 ft² |
🏠 屋根タイプの選択肢#
| 値 | 説明 |
|---|---|
Gable roof | 伝統的な三角形の切妻屋根 |
Hip roof | 四方に傾斜する寄棟屋根 |
Flat roof | 勾配がごく小さい陸屋根 |
Pitched roof | 一般的な急勾配屋根 |
🏗️ 地下室の選択肢#
| 値 | 説明 |
|---|---|
None | 地下室なし |
Partial | 一部に地下室 |
Full | 全体に地下室 |
🚗 ガレージタイプの選択肢#
garageType は garageEnabled=true の場合のみ必須です。それ以外は null を送信してください。
| 値 | 説明 |
|---|---|
Detached | 独立したガレージ |
Front Entry | 入口が正面を向くガレージ |
Side Entry | 入口が側面を向くガレージ |
Rear Entry | 入口が背面を向くガレージ |
🚗 ガレージの収容台数#
garageCapacity は garageEnabled=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 の数と一致する配列である必要があります。各要素は次の形式を使用します。
| フィールド | 型 | 説明 |
|---|---|---|
name | string | 寝室の表示名。例:Room 1 (Master) |
minArea | string | 寝室の最小面積。負ではない数値文字列である必要があります |
maxArea | string | 寝室の最大面積。minArea 以上である必要があります |
unit | string | 面積の単位。列挙値:m²、ft² |
bedrooms="2" の既定値の例
[
{ "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 個のバスルームレイアウトオブジェクトが必要です。
| フィールド | 型 | 説明 |
|---|---|---|
name | string | バスルームの表示名。例:Bathroom 1 |
layout | string / null | 列挙値:With Wet & Dry Separation、Without Separation、null |
bathrooms="1" の既定値の例
[
{ "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モードを利用できません。BaseとProのみに対応します。
📥 リクエスト例#
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();
📤 レスポンス#
成功時のレスポンス
{
"code": 0,
"message": "success",
"data": 1234567890123456789
}
| フィールド | 型 | 説明 |
|---|---|---|
code | integer | 0 は成功を示します |
message | string | レスポンスのメッセージ |
data | long | 結果をポーリングするための一意のタスク ID |
2. タスク結果の取得#
作成済みの住宅設計図タスクの現在のステータスと出力を取得します。
エンドポイント
GET /api/v1/housePlan/result
リクエストヘッダー
| ヘッダー | 必須 | 説明 |
|---|---|---|
APIKEY | ✅ はい | API の認証キー |
クエリパラメーター
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
taskId | long | ✅ はい | タスク作成エンドポイントから返されたタスク ID |
📥 リクエスト例#
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);
📤 レスポンス#
📸 注: この API は、成功したタスクごとに必ず 1 枚の合成結果画像を生成します。この画像は 2D 間取り図、外観立面図、写実的な外観レンダリングを単一のボードにまとめたものです。
output.resultUrlには合成画像の URL が入り、互換性のため、output.resultListには同じ URL が要素一つの配列として入ります。
成功時のレスポンス(タスク完了)
{
"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
}
}
}
レスポンス(タスク処理中または待機中)
{
"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
}
}
レスポンス(タスク失敗)
{
"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
}
}
レスポンスのフィールド
| フィールド | 型 | 説明 |
|---|---|---|
id | long | タスクの一意の識別子 |
status | string | 現在のタスクの状態(タスクの状態を参照) |
waitNumber | integer | キュー内で前に並んでいるタスクの数(0 は現在処理中であることを示します) |
percentage | integer | タスクの完了率(0–100) |
input | object | タスクに指定した元の入力パラメーター |
input.style | string | 建築様式 |
input.totalArea | string | 総面積の範囲 |
input.stories | string | 階数 |
input.bedrooms | string | 寝室数 |
input.bathrooms | string | バスルーム数 |
input.garageEnabled | boolean | ガレージをリクエストしたかどうか |
input.garageType | string / null | ガレージのタイプ |
input.garageCapacity | string / null | ガレージの駐車台数 |
input.basement | string | 地下室のタイプ |
input.roofType | string | 屋根のタイプ |
input.outdoorSpaces | array<string> | 屋外空間 |
input.layoutConcept | string | 全体のレイアウト方針 |
input.bedroomAreaRanges | array<object> | 寝室の面積範囲 |
input.bathroomLayouts | array<object> | バスルームのレイアウト選択 |
input.kitchenLayout | string | キッチンのレイアウト様式 |
input.kitchenFeatureOptions | array<string> | 任意のキッチン設備 |
input.keyRooms | string | 主な特別用途の部屋(カンマ区切り) |
input.prompt | string | カスタムテキストプロンプト(指定した場合) |
input.refImageUrl | string | 参照画像の URL(指定された場合) |
input.modelType | string | 使用したモデルの種類 |
output | object | 生成結果(status が Success の場合のみ利用可能) |
output.resultUrl | string | 生成された住宅設計図の合成プレゼンテーションボードの URL |
output.resultList | array<string> | 生成された結果画像の URLs。住宅設計図では通常、output.resultUrl と同じ URL を含む要素一つの配列です |
output.width | integer | 出力の幅(ピクセル単位) |
output.height | integer | 出力の高さ(ピクセル単位) |
📊 タスクの状態#
| 状態 | 説明 |
|---|---|
Unprocessed | タスクは作成済みですが、まだ開始していません |
Processing | タスクは現在処理中です |
Success | タスクが正常に完了し、出力を利用できます |
Failed | エラーによりタスクが失敗しました |
Termination | タスクが中断または終了されました |
3-5 秒 ごとにポーリングしてください。API タスク制限を参照してください。
❌ エラーレスポンス#
すべてのエラーレスポンスは同じ JSON 構造を使用します。
{
"code": 5002,
"message": "Invalid API Key",
"data": null
}
エラーコードリファレンス#
| コード | 名前 | 説明 | 推奨される対応 |
|---|---|---|---|
1001 | FAILED | リクエストの失敗(一般的なエラー) | message フィールドで具体的なエラー内容を確認する |
1003 | INTERNAL_ERROR | サーバー内部のエラー | 少し待って再試行し、解消しない場合はサポートに連絡する |
1011 | PARAM_ERROR | リクエストパラメーターのエラー | 必須パラメーターがすべて指定され、形式が正しいことを確認する |
5002 | API_KEY_INVALID | API キーが無効または未指定 | APIKEY ヘッダーが存在し、その値が正しいことを確認する |
9010 | SCAN_TEXT_ERROR | テキストプロンプトがコンテンツ審査に通りませんでした | プロンプトを修正し、機微な内容や禁止された内容を除く |
9038 | PROHIBITED_CONTENT | 生成された出力画像に禁止された内容が含まれています | プロンプト、スタイル、入力を調整して再試行する |
9051 | COINS_NOT_ENOUGH | コインまたはクレジットの不足 | アカウントにクレジットを追加して再試行する |
📄 共通の API エラーコードの全一覧は、エラーコードリファレンスを参照してください。