Floor plans
A floor plan is a drawing you upload for one level of a map. Waygo turns it into a built level; the plan's status goes uploaded → building → ready (or failed). This API does what the dashboard's Upload floor plan popup and Floor plans table do.
Uploads belong to a map, so they live under /maps/v1/:map_id. Building is Waygo's job: there is no endpoint to build, and the floor structure (levels) is managed by your Waygo team.
ENDPOINTS
POST /maps/v1/:map_id/floor-plans
GET /maps/v1/:map_id/floor-plans
GET /floor-plans/v1/:floor_plan_id/file
DELETE /floor-plans/v1/:floor_plan_id
The floor plan object
- Name
dataset_id- Type
- string
- Description
- The floor plan's ID.
- Name
name- Type
- string
- Description
- The file name it was uploaded as.
- Name
status- Type
- 'uploaded' | 'building' | 'ready' | 'failed'
- Description
- Where it is in the build.
- Name
feature_count- Type
- integer | null
- Description
- How many rooms, booths and other features the built level has.
- Name
source_file- Type
- object | null
- Description
{ upload_id, filename, content_type, size, url }: the original drawing.
- Name
map_id- Type
- string | null
- Description
- The map it was uploaded for.
- Name
level_index- Type
- integer | null
- Description
- The level it belongs to, counted from 0.
- Name
level_label- Type
- string | null
- Description
- For a plan uploaded as a new level: the level's intended name.
- Name
note- Type
- string | null
- Description
- The note sent with the upload.
- Name
uploaded_by- Type
- string | null
- Description
- Who uploaded it.
- Name
build_started_at / built_at- Type
- timestamp | null
- Description
- Build timestamps.
- Name
created_at / updated_at- Type
- timestamp
- Description
- Timestamps.
The floor plan object
{
"dataset_id": "d4f1…",
"account_id": "dash-dev-acct",
"name": "expo-hall.dwg",
"status": "ready",
"feature_count": 214,
"source_file": {
"upload_id": "u7…",
"filename": "expo-hall.dwg",
"content_type": "application/acad",
"size": 4821904,
"url": "https://storage.waygomaps.com/…/expo-hall.dwg"
},
"map_id": "acme-expo-2027",
"level_index": 0,
"level_label": null,
"note": "Booth numbers are on the BOOTHS layer",
"uploaded_by": "ops@acme.example",
"build_started_at": "2026-08-05T10:12:00",
"built_at": "2026-08-07T16:40:00",
"created_at": "2026-08-04T09:00:00",
"updated_at": "2026-08-07T16:40:00"
}
Upload floor plans
A multipart upload of one or more drawings, each assigned to a level. Every file becomes a floor plan in the uploaded state and your Waygo team is notified.
Form fields
- Name
files- Type
- file[]
- Description
One or more drawings: PDF, DWG, DXF, SVG, PNG, JPEG or TIFF, up to 50 MB each.
- Name
assignments- Type
- JSON string
- Description
A list aligned with
files, one entry per file:{ "level_index": 0 }for an existing level, or{ "new_level_label": "Mezzanine" }for a level the map does not have yet.
- Name
note- Type
- string
- Description
Optional note for Waygo.
Errors
- Name
403 capability_denied- Description
- Uploads are not allowed on this map right now (
reasonsays why).
- Name
422 floor_plan_invalid_file- Description
- A file's type or size is not accepted.
POST /maps/v1/:map_id/floor-plans
curl -X POST https://api.waygomaps.com/maps/v1/acme-expo-2027/floor-plans \
-H "Waygo-API-Key: $WAYGO_API_KEY" \
-F "files=@expo-hall.dwg" \
-F "files=@mezzanine.dwg" \
-F 'assignments=[{"level_index": 0}, {"new_level_label": "Mezzanine"}]' \
-F "note=Booth numbers are on the BOOTHS layer"
Response (201)
{
"floor_plans": [
{ "dataset_id": "d4f1…", "name": "expo-hall.dwg", "status": "uploaded", "level_index": 0, "…": "…" },
{ "dataset_id": "e9a2…", "name": "mezzanine.dwg", "status": "uploaded", "level_index": null, "level_label": "Mezzanine", "…": "…" }
]
}
List a map's floor plans
Every floor plan uploaded for the map, with its status. Poll it to follow a build.
GET /maps/v1/:map_id/floor-plans
curl https://api.waygomaps.com/maps/v1/acme-expo-2027/floor-plans \
-H "Waygo-API-Key: $WAYGO_API_KEY"
Response
{ "floor_plans": [ { "dataset_id": "d4f1…", "status": "ready", "…": "…" } ] }
Download the original file
Redirects (307) to the stored drawing. Follow redirects in your client.
GET /floor-plans/v1/:floor_plan_id/file
curl -L https://api.waygomaps.com/floor-plans/v1/d4f1…/file \
-H "Waygo-API-Key: $WAYGO_API_KEY" -o expo-hall.dwg
Delete a floor plan
Only while the plan is still uploaded. Once Waygo has started building it, answers 409 floor_plan_status_conflict; contact your Waygo team instead.
DELETE /floor-plans/v1/:floor_plan_id
curl -X DELETE https://api.waygomaps.com/floor-plans/v1/e9a2… \
-H "Waygo-API-Key: $WAYGO_API_KEY"
Response
204 No Content