Floor Plan Generation API Documentation
Base URL: https://api.ideal.house
Version: v1
Updated: 2026-06-23
Overview
The Floor Plan API creates an AI concept floor plan from structured room requirements. It is for early layout exploration rather than construction documents. The generated image is a black-and-white, top-down, CAD-style concept plan.
The workflow is asynchronous:
- Submit the selected program and receive a taskId.
- Poll the result endpoint with that taskId.
Authentication
Send an API key with every request:
| Header | Value |
|---|---|
| APIKEY | Your API key |
| Content-Type | application/json |
Create Floor Plan Task
POST /api/v1/floorPlan/generate
Request fields
| Field | Type | Required | Rules |
|---|---|---|---|
| bedrooms | integer | No | 0-5; defaults to 2. |
| bathrooms | number | No | 0.5-4 in 0.5 increments; defaults to 1.5. The server derives full and half bathrooms from this value. |
| totalArea | string | Yes | Positive number followed by m² or ft², for example 220 m² or 1386 ft². |
| bedroomAreaRanges | array | Yes when bedrooms > 0 | Exactly one item per bedroom. |
| bathroomDetails | object | No | Detailed preferences for full bathrooms only. |
| kitchenDetails | object | No | Structured kitchen configuration; type is the only kitchen-type source. |
| keyRooms | array<string> | No | Optional rooms/spaces. Every selected entry is requested exactly once; unselected entries must not be generated. |
| prompt | string | No | Additional layout or style preference. It cannot override structured requirements. |
| refImageUrl | string | No | Reference image URL for layout, proportion, or style only. |
| modelType | string | No | Base or Pro; defaults to Base. |
Image requirements: The optional reference image must use JPG/JPEG, PNG, or WebP, must be no larger than 20 MB, and must have dimensions from 128 × 128 px up to 6,000 × 6,000 px (inclusive). Images exceeding the maximum pixel dimensions are automatically scaled down proportionally to fit within 6,000 × 6,000 px before processing. Its URL must be directly accessible by the API server.
bedroomAreaRanges item
| Field | Type | Description |
|---|---|---|
| name | string | Label such as Room 1 (Master). |
| minArea | string | Positive area number, if a range is specified. |
| maxArea | string | Positive area number; cannot be less than minArea. |
| unit | string | m² or ft². |
Bedroom area ranges guide relative room sizing only. The generated floor plan does not render numeric area values, ranges, m², or ft² labels.
bathroomDetails
{
"fullBathroomOptions": [
{
"name": "Bathroom 1",
"wetDrySeparation": "yes",
"bathtub": "required"
}
]
}
- fullBathroomOptions can contain no more than the number of full bathrooms derived from bathrooms.
- wetDrySeparation: yes or no.
- bathtub: no, optional, or required.
- Every full bathroom contains a visible toilet, vanity/sink, and shower or wet area. A required bathtub is additional; it never replaces the toilet.
- A half bathroom is derived from a 0.5 increment and contains only a toilet and vanity/sink.
kitchenDetails
{
"type": "open",
"size": "standard",
"layout": "U",
"islandType": "no",
"storage": "standard",
"features": ["breakfast nook", "pantry"]
}
| Field | Allowed values |
|---|---|
| type | open, semi-open, closed |
| size | small, standard, large, extra large |
| layout | I, L, U, gallery |
| islandType | no, preparation, cooking, entertainment |
| storage | minimal, standard, maximum |
| features | eating bar, breakfast nook, pantry |
keyRooms
Allowed entries:
walk-in closet
laundry room
storage room
utility room
home office
garage
pantry
combined living-dining
balcony
pantry may appear in both kitchenDetails.features and keyRooms; it is rendered only once. A selected garage includes a visible garage door or vehicle bay and a clear internal access door to the home.
Removed legacy fields
The following fields are not part of the Floor Plan contract and must not be sent: roomCounts, grossArea, totalAreaValue, totalAreaUnit, totalAreaType, fullBathrooms, halfBathrooms, halfBathroomRequirement, top-level kitchenType, diningRooms, livingRooms, extras, referenceImage, and hasDetailOptions.
Image modes
Floor Plan uses a common 3:2 landscape canvas for programs from compact one-bedroom homes to larger multi-bedroom layouts. Small programs remain compact and centered; larger programs use the additional width without being stretched.
| modelType | Output size | Credits |
|---|---|---|
| Base | 1536 × 1024 | 10 |
| Pro | 2496 × 1664 | 20 |
Flash is not supported.
Request example
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,
"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": "yes", "bathtub": "no"}
]
},
"kitchenDetails": {
"type": "open",
"size": "standard",
"layout": "U",
"islandType": "no",
"storage": "standard",
"features": ["breakfast nook", "pantry"]
},
"keyRooms": ["garage"],
"modelType": "Pro"
}'
Responses
Successful task creation returns the task identifier:
{
"code": 0,
"message": "success",
"data": 1234567890123456789
}
Poll the generation result:
GET /api/v1/floorPlan/result?taskId={taskId}
