Skip to main content
POST
/
api
/
sys
/
floorplandesks
Create FloorPlanDesk
curl --request POST \
  --url https://spaces.nexudus.com/api/sys/floorplandesks \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "FloorPlanId": 123,
  "Name": "<string>",
  "ItemType": 123,
  "Size": 123,
  "Capacity": 123,
  "Price": 123,
  "PositionX": 123,
  "PositionY": 123,
  "PositionZ": 123
}
'
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
A FloorPlanDesk (referred to as a floor plan unit in the UI) represents a specific area or room placed on a floor plan. Each unit typically maps to a bookable resource or a space assigned to a customer through a contract. There are five unit types controlled by ItemType:
ItemTypeTypical use
OfficePrivate office assigned to a customer via a contract
DedicatedDeskDesk permanently assigned to a customer via a contract
HotDeskShared desk bookable via a resource or assigned to a contract
RoomMeeting room or bookable space linked to a resource
OtherAny area that does not match the types above
Link a unit to a Resource via ResourceId to let customers book it through the floor plan view on the Members Portal. Assign it to one or more contracts via CoworkerContractIds to track occupancy. Units can be monitored by an IoT sensor (SensorId). The last sensor reading is exposed via SensorLastValue and IsSensorOccupied. Position and size on the canvas are maintained by the floor plan editor. AvailableFromTime / AvailableToTime allow time-bounded availability windows.

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 FloorPlanDesk-Create role.

Enums

ValueName
1Office
2DedicatedDesk
3HotDesk
4Other
5Room
ValueName
1Individual
2Company
ValueName
1PresenceDetection
2PeopleCounter
3Temperature
4Humidity
5Light
6Noise
7CO2
8VolatileOrganicCompounds
9HarmfulParticulates
10Touch
11Water
12AtmosphericPressure
13Power
14OpenClosed
99Other

Request Body

Required Fields

FloorPlanId
integer
required
ID of the floor plan this unit belongs to.
Name
string
required
Display name of the floor plan unit (e.g. ‘Office 3’, ‘Hot Desk 12’).
ItemType
integer
required
Type of area this unit represents: Office, DedicatedDesk, HotDesk, Room, or Other.
Size
number
required
Floor area of this unit (e.g. in sq ft or sq m, depending on the location’s unit setting).
Capacity
number
required
Number of people this unit can accommodate at the same time.
Price
number
required
Indicative price displayed on the floor plan view (informational only; actual billing is handled by products and contracts).
PositionX
integer
required
X coordinate of this unit’s position on the floor plan canvas.
PositionY
integer
required
Y coordinate of this unit’s position on the floor plan canvas.
PositionZ
integer
required
Z-index (draw order) of this unit on the floor plan canvas; higher values render on top.

Optional Fields

CoworkerId
integer
ID of the customer assigned to this unit (used for dedicated desks and offices).
SensorId
integer
ID of the IoT sensor monitoring occupancy or environmental conditions in this unit.
ResourceId
integer
ID of the bookable resource linked to this unit, enabling customers to book it via the floor plan view.
SizeIsLinkedToArea
boolean
When true, the Size value is automatically calculated from the drawn shape area on the floor plan canvas.
Area
string
Computed area of the drawn shape on the floor plan canvas, set automatically by the editor.
Notes
string
Internal notes about this unit, visible to admins only.
Available
boolean
Whether this unit is currently available for assignment or booking.
AccessControlGroupId
string
Access control group identifier that governs door/entry access for this unit.
TunnelPrivateGroupId
string
Network tunnel group identifier for private network access scoped to this unit.
CoworkerContractIds
string
Comma-separated list of contract IDs currently assigned to this unit.
CoworkerContractFullNames
string
Comma-separated list of customer names from contracts assigned to this unit.
CoworkerContractStartDates
string
Comma-separated list of start dates for contracts assigned to this unit.
AvailableFromTime
string
UTC date/time from which this unit becomes available.
AvailableToTime
string
UTC date/time until which this unit is available.
AvailableFromTimeLocal
string
Local date/time from which this unit becomes available (derived from AvailableFromTime).
AvailableToTimeLocal
string
Local date/time until which this unit is available (derived from AvailableToTime).
ArchilogicUniqueId
string
Unique identifier linking this unit to its corresponding element in an Archilogic 3D model.
FloorPlanLayoutAssetUniqueId
string
Unique identifier linking this unit to a component in the associated floor plan layout template.

Code Examples

curl -X POST \
  "https://spaces.nexudus.com/api/sys/floorplandesks" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "FloorPlanId": 0,
    "Name": "",
    "ItemType": 0,
    "Size": 0,
    "Capacity": 0,
    "Price": 0,
    "PositionX": 0,
    "PositionY": 0,
    "PositionZ": 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 floorplandesk was created successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "FloorPlanDesk 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
}