外部API リファレンス
自社のシステムから、AI建築シミュレーターの建築プラン生成や PowerPoint・DXF の書き出しを直接呼び出せる REST API です(Proプラン限定)。
概要とベースURL
すべてのエンドポイントは HTTPS の JSON API です。リクエストの本文は Content-Type: application/json で送信し、エラーは共通の形式(error.code / error.message)で返します。
ベースURL
https://realestate-api-297361533323.asia-northeast1.run.app/api/v1書き出し系(/export/*)のみ、成功時にファイル(バイナリ)を返します。
認証
マイページの「アカウント設定」タブ →「外部API連携(デベロッパー向け)」で発行した APIキー(mkr_api_ で始まる文字列)を、Authorization ヘッダーに Bearer 形式で付けて送信します。
Authorization: Bearer mkr_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx- APIキーは発行時に一度だけ表示されます。紛失した場合は再発行してください(再発行すると古いキーはすぐ無効になります)。
- 「許可するIPアドレス」を設定すると、そのIP・CIDR以外からのリクエストは 403(IP_NOT_ALLOWED)になります。送信元IPは GET /me の clientIp で確認できます。
- APIキーはサーバー側で保管し、ブラウザやアプリに埋め込まないでください。MCP 用のキー(mkr_live_)はこの API では使えません。
レート制限
APIキーの持ち主ごとに、1日あたり 200 ユニットまで利用できます。呼び出すエンドポイントごとに次のユニットを消費します。
| エンドポイント | 消費ユニット |
|---|---|
| GET /me | 0 |
| POST /generate-house | 20 (+10 includeExterior) |
| POST /export/pptx, /export/dxf | 2 |
| GET /signals/{cityCode} | 5 |
| POST /analyze-property-flyer | 20 |
- ユニットは毎日 0:00(UTC、日本時間 9:00)にリセットされます。上限を超える呼び出しは HTTP 429(DAILY_LIMIT_EXCEEDED)になり、実行されません。
- 短時間の連続呼び出しは、APIキーごとに 1 分あたり 20 回までです(超過時は HTTP 429 RATE_LIMITED・Retry-After: 60)。
- このほか、サービス全体の保護として送信元IPごとに 15 分あたり 100 リクエストの上限があります。
- 建築プランの生成に失敗した場合(GENERATION_FAILED)、消費したユニットは返却されます。
利用状況はレスポンスヘッダーで確認できます。
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 180
X-RateLimit-Reset: 1790640000 # Unix time (next 00:00 UTC)
Retry-After: 43200 # only on 429キー・利用状況の確認
GET/api/v1/me
APIキーが有効か、現在の送信元IP・許可IP・当日の利用状況を返します。ユニットは消費しません。
curl https://realestate-api-297361533323.asia-northeast1.run.app/api/v1/me \
-H "Authorization: Bearer $MEKIKI_API_KEY"{
"plan": "pro",
"clientIp": "203.0.113.10",
"allowedIps": ["203.0.113.10", "198.51.100.0/24"],
"usage": { "used": 20, "limit": 200, "remaining": 180, "resetAt": "2026-09-30T00:00:00.000Z" },
"costs": { "generateHouse": 20, "exterior": 10, "export": 2 }
}建築プランの生成
POST/api/v1/generate-house
エリアとこだわり条件から、AI が間取り(2D・各階)・設計コンセプト・想定総予算・簡易壁量チェックを含む建築プラン(JSON)を生成します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| prefecture | string | 必須 | 都道府県(例: 東京都) |
| municipality | string | 必須 | 市区町村(例: 江戸川区) |
| district | string | 任意 | 地区・町名(例: 西葛西) |
| tags | string[] | 任意 | こだわり条件(最大 12 件。例: 駐車場1台 / 3階建て / 平屋 / 予算5,000万円以内) |
| includeExterior | boolean | 任意 | true で外観イメージ(base64 画像)も同時に生成します(+10 ユニット) |
| termsAccepted | true | 必須 | 利用規約(AI生成物の免責・商用利用ライセンス条項)への同意。true 以外は 400(TERMS_NOT_ACCEPTED) |
curl -X POST https://realestate-api-297361533323.asia-northeast1.run.app/api/v1/generate-house \
-H "Authorization: Bearer $MEKIKI_API_KEY" \
-H "Content-Type: application/json" \
--max-time 600 \
-d '{
"prefecture": "東京都",
"municipality": "江戸川区",
"tags": ["駐車場1台", "3階建て"],
"includeExterior": false,
"termsAccepted": true
}'{
"requestId": "3f1c2a9e-7b1d-4c3e-9a51-6f0d2c8e4b77",
"planSource": "ai",
"plan": {
"site": { "area": 80, "streetSide": "south" },
"building": { "width": 5.46, "depth": 7.28, "floors": 3, "parkingSpaces": 1 },
"roof": { "type": "flat", "eavesDepth": 0 },
"floors": [
{
"level": 1,
"rooms": [{ "type": "garage", "x": 0, "y": 0, "width": 2.73, "height": 5.46, "label": "ガレージ" }, "..."],
"doors": ["..."], "openings": ["..."], "furnitures": ["..."]
},
"..."
],
"externalStructures": ["..."]
},
"conceptExplanation": "想定総予算:約6,970万円(土地 …)…",
"budget": { "landCost": 35200000, "buildingCost": 34779000, "total": 69979000, "...": "..." },
"structuralWarning": ["1階のX方向(間口方向)の壁量が不足しています(存在壁量 14.43m / 必要壁量 18.29m)"],
"structuralCheck": { "method": "simplified_wall_quantity", "floors": ["..."] }
}- 生成には 1〜3 分ほどかかります(外観つきはさらに約 30 秒)。クライアントのタイムアウトは 10 分程度に設定してください。
- 座標・寸法はメートル単位で、910mm モジュール(0.91m の倍数)に揃っています。原点は道路側から見た建物の左手前です。
- includeExterior: true のとき、レスポンスに exterior(imageBase64・mimeType)が加わります。
- 生成したプランはマイページの生成履歴にも保存されます(requestId が履歴の ID です)。
PowerPoint / DXF の書き出し
POST/api/v1/export/pptx
POST/api/v1/export/dxf
generate-house が返した plan を送ると、編集可能な PowerPoint(.pptx)または CAD 用の DXF(.dxf)を返します。
# 1) Generate a plan and keep only { plan, location }
curl -s -X POST https://realestate-api-297361533323.asia-northeast1.run.app/api/v1/generate-house \
-H "Authorization: Bearer $MEKIKI_API_KEY" -H "Content-Type: application/json" \
-d '{"prefecture":"東京都","municipality":"江戸川区","termsAccepted":true}' \
| jq '{plan: .plan, location: "東京都江戸川区"}' > plan.json
# 2) Export it as DXF (or /export/pptx)
curl -X POST https://realestate-api-297361533323.asia-northeast1.run.app/api/v1/export/dxf \
-H "Authorization: Bearer $MEKIKI_API_KEY" -H "Content-Type: application/json" \
--data @plan.json -o floor-plan.dxf- PPTX: 1 フロア 1 スライド。部屋・家具・建具が個別の図形で、フッターに会社名・連絡先と免責事項が入ります。
- DXF: R12 形式・単位 mm・日本語は Shift_JIS。壁・通り芯・建具・室名・寸法を画層ごとに出力し、図枠に会社名と免責事項が入ります。
- 会社名・連絡先はマイページのホワイトラベル設定が使われます(未設定の場合は物件目利きリサーチの表記)。
先行シグナル・自治体公開情報
GET/api/v1/signals/{cityCode}
市区町村コード(5 桁)を指定すると、町丁別の先行シグナル・ギャップ指数(偏差値・ランク S〜C)、エリア特性(areaRegime)、自治体の再開発・補助金・ハザード情報を、出典 URL・確認日・免責事項つきで返します。
curl "https://realestate-api-297361533323.asia-northeast1.run.app/api/v1/signals/13122?wait=25" \
-H "Authorization: Bearer $MEKIKI_API_KEY"{
"cityCode": "13122",
"municipalityName": "葛飾区",
"towns": [
{
"townName": "新小岩",
"momentumDeviation": 21.2, "rank": "C", "gapZScore": -2.88,
"zPop": -0.94, "zPrice": 1.94, "reliability": "normal",
"regime": "REDEVELOPMENT_DRIVEN",
"linkedIntel": [{ "category": "REDEVELOPMENT", "title": "新小岩駅南口地区第一種市街地再開発事業",
"sourceUrl": "https://www.city.katsushika.lg.jp/...", "verifiedAt": "2026-10-18T05:06:09.013Z", "match": "direct" }],
"sources": [{ "source_url": "https://www.e-stat.go.jp/dbview?sid=8003006792", "source_title": "...", "verified_at": "..." }]
}
],
"intel": { "status": "ready", "origin": "registered", "items": [{ "category": "SUBSIDY", "sourceUrl": "https://...", "verifiedAt": "..." }] },
"disclaimer": "...",
"cache": { "status": "persistent", "cachedAt": "...", "expiresAt": "..." }
}- 町丁のランキング(ギャップ指数)は数秒で返ります。自治体情報(intel)が未生成のときは intel.status が "pending" になるので、?wait=25(最大 25 秒待つ)を付けて問い合わせ直してください(揃うと "ready")。結果は 7 日間キャッシュされます。
- 町丁単位の統計的な相対比較であり、個別物件の価格・将来価格は含みません。表示・再配布の際は disclaimer と各出典を併記してください。
- 自治体情報は、登録済みの市区町村は登録 URL、それ以外は公式サイト(*.lg.jp / city.*.jp 等)を自動で検索し、200 で返り本文に市区町村名があるページだけを使います(intel.origin = discovered)。見つからなければ intel.status = "unavailable"(ギャップ指数は返ります)。
エラー
エラー時は HTTP ステータスとともに、次の形式の JSON を返します。
{
"error": {
"code": "DAILY_LIMIT_EXCEEDED",
"message": "Daily API limit reached (195/200 units; this call needs 20). Resets at 2026-09-30T00:00:00.000Z"
}
}| HTTP | code | 説明 |
|---|---|---|
| 400 | INVALID_PARAMETERS / INVALID_PLAN | パラメータまたは plan の形式が正しくない |
| 400 | TERMS_NOT_ACCEPTED | termsAccepted: true が指定されていない |
| 401 | INVALID_API_KEY | APIキーがない・形式が違う・無効(失効済み) |
| 403 | PLAN_NOT_ELIGIBLE | キーの持ち主が Pro プランではない |
| 403 | IP_NOT_ALLOWED | 送信元IPが許可リストに含まれていない |
| 429 | RATE_LIMITED | 1 分あたり 20 回の上限を超えた |
| 429 | DAILY_LIMIT_EXCEEDED | 当日の利用ユニットが不足している(UTC 0:00 にリセット) |
| 400 | INVALID_CITY_CODE | 市区町村コードが 5 桁の数字でない |
| 404 | NO_DATA | 公開統計が不足していて算出できない市区町村(利用単位は返却) |
| 500 | GENERATION_FAILED | 建築プランの生成に失敗した(ユニットは返却済み) |
| 502 | UPSTREAM_ERROR | 統計・自治体サイトの取得に失敗(利用単位は返却。時間をおいて再試行) |
| 503 | USAGE_UNAVAILABLE | 一時的に利用状況を確認できない(時間をおいて再試行) |
生成物は AI による概念設計であり、壁量や寸法の正確性を保証するものではありません。Pro プランの生成物は自社の顧客提案等に商用利用できます。詳しくは利用規約(第6条の4)をご確認ください。