Skip to main content
POST
/
api
/
sys
/
floorplans
Create FloorPlan
curl --request POST \
  --url https://spaces.nexudus.com/api/sys/floorplans \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "BusinessId": 123,
  "Name": "<string>",
  "BackgroundScale": 123,
  "PositionX": 123,
  "PositionY": 123,
  "FloorLevel": 123,
  "Scale": 123
}
'
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
A FloorPlan is a visual diagram representing a single floor of a location. Floor plans are used by admins and customers to get an overview of the space layout, including rooms, desks, and other areas. Each floor plan belongs to a location (Business) and can optionally reference a FloorPlanLayout template. A background/tracing image can be uploaded to overlay the drawn areas, and its position and scale can be adjusted independently from the floor plan’s own scale. Once created, floor plan units (FloorPlanDesks) are added to the floor plan to represent individual bookable or non-bookable areas such as offices, dedicated desks, hot desks, and meeting rooms.

Authentication

This endpoint requires OAuth2 authentication. Include a valid bearer token in the Authorization header. The authenticated user must be a full unrestricted administrator or have the FloorPlan-Create role.

Request Body

Required Fields

BusinessId
integer
required
ID of the location this floor plan belongs to.
Name
string
required
Display name of the floor plan (e.g. ‘Ground Floor’, ‘Level 2’).
BackgroundScale
integer
required
Zoom/scale factor applied to the background/tracing image, expressed as a percentage (e.g. 100 = original size).
PositionX
integer
required
Horizontal offset (in pixels) of the background image within the floor plan canvas.
PositionY
integer
required
Vertical offset (in pixels) of the background image within the floor plan canvas.
FloorLevel
integer
required
Floor number used to order floor plans (e.g. 0 = ground floor, 1 = first floor, -1 = basement).
Scale
number
required
Real-world scale of the floor plan, representing how many real-world units correspond to one canvas unit.

Optional Fields

FloorPlanLayoutId
integer
ID of the floor plan layout template to apply to this floor plan.
NewBackgroundImageUrl
string
URL of a new background/tracing image to upload. The image will be fetched and stored when the floor plan is saved.
ClearBackgroundImageFile
boolean
Set to true to remove the current background/tracing image from this floor plan.
DisplayBackground
boolean
Whether the background/tracing image is visible when the floor plan is rendered.
Capacity
integer
Maximum number of people this floor can accommodate at the same time.
ArchilogicUniqueId
string
Unique identifier used to link this floor plan to a corresponding Archilogic 3D model.

Code Examples

curl -X POST \
  "https://spaces.nexudus.com/api/sys/floorplans" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "BusinessId": 0,
    "Name": "",
    "BackgroundScale": 0,
    "PositionX": 0,
    "PositionY": 0,
    "FloorLevel": 0,
    "Scale": 0
}'

Response

200

Status
integer
HTTP status code. 200 on success.
Message
string
A human-readable message confirming the creation.
Value
object
Contains the Id of the newly created record.
WasSuccessful
boolean
true if the floorplan was created successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "FloorPlan was successfully created.",
  "Value": {
    "Id": 87654321
  },
  "OpenInDialog": false,
  "OpenInWindow": false,
  "RedirectURL": null,
  "JavaScript": null,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "UpdatedBy": "admin@example.com",
  "Errors": null,
  "WasSuccessful": true
}

400

Message
string
A summary of the validation error(s), in the format PropertyName: error message.
Value
any
null on validation failure.
Errors
object[]
Array of validation errors.
WasSuccessful
boolean
false when the request fails validation.
Example Response
{
  "Message": "Name: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "Name"
    }
  ],
  "WasSuccessful": false
}