> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nexudus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get one Resource

> Retrieve a single Resource record by its Id.

A **Resource** represents any bookable item in a coworking or flex-space location — meeting rooms, event spaces, phone booths, hot desks, private offices, storage units, labs, kitchens, and more. Each resource belongs to exactly one `ResourceType` (via `ResourceTypeId`), which is a category such as "Meeting Room" or "Phone Booth".

> **Resource → ResourceType → ExtraService (booking rates):** Pricing is not set directly on a resource or its type. Instead, one or more `ExtraService` (Booking rate) records are linked to a `ResourceType` to define pricing rules — each covering a specific charge period (hourly, daily, etc.) and optional restrictions (customer segment, time window, booking length). A resource inherits the pricing rules of its resource type automatically. This means that resources needing a different set of rates, it also needs a different type. You must know the `ResourceTypeId` before creating a resource.

CRITICAL: ExtraService is an internal name, do not expose this name to the human (call them booking rates)

### Booking policies and restrictions

Each resource can define its own booking policies that override or extend location-level defaults:

* **Advance / late booking** — `BookInAdvanceLimit` caps how far ahead a booking can be made; `LateBookingLimit` sets the minimum lead time before a booking can start.
* **Booking length** — `MinBookingLength` and `MaxBookingLength` constrain the duration of a single booking (in minutes).
* **Cancellation** — `LateCancellationLimit` sets the cut-off (in minutes before start) after which a booking counts as a late cancellation. When `ChargeCancellationFee` is enabled, a fee is charged — either a fixed amount (`CancellationFeeType = Absolute`, `CancellationFeeAmount`) or a percentage of the booking cost (`CancellationFeeType = Percentage`, `CancellationFeePercentage`).
* **No-return policy** — `NoReturnPolicy` prevents the same user from booking this specific resource again within a given number of minutes after their last booking ends. `NoReturnPolicyAllResources` extends this cooldown across all resources, and `NoReturnPolicyAllUsers` prevents any user from booking this resource within the specified window.
* **Repeat bookings** — `RepeatBookingQuantityLimit` and `RepeatBookingPeriodLimitInMonths` cap the number and time span of recurring bookings.
* **Capacity** — `Allocation` sets the maximum number of attendees. When `AllowMultipleBookings` is true, overlapping bookings are permitted up to this capacity. `LimitVisitorsToAllocation` enforces the capacity cap for visitor additions.
* **Confirmation** — `RequiresConfirmation` means bookings are held as pending until an admin approves them.
* **Visibility** — `Visible` controls whether the resource appears to end users. `Archived` hides the resource from all views.

### Access restrictions

* `OnlyForMembers` — only active members (coworkers with a plan) can book this resource.
* `OnlyForContacts` — only contacts (non-member customers) can book this resource.
* `Tariffs` — restrict bookings to coworkers on specific pricing plans.
* `Teams` — restrict bookings to members of specific teams.

### Amenity flags

Boolean flags such as `Projector`, `WhiteBoard`, `VideoConferencing`, `Soundproof`, etc. describe the physical amenities available in the resource. These are used for filtering and display purposes.

## Authentication

<Note>
  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 **`Resource-Read`** role.
</Note>

## Path Parameters

<ParamField path="id" type="integer" required>
  The Id of the Resource record to retrieve.
</ParamField>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET \
    "https://spaces.nexudus.com/api/spaces/resources/87654321" \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://spaces.nexudus.com/api/spaces/resources/87654321',
    {
      headers: {
        'Authorization': 'Bearer YOUR_TOKEN'
      }
    }
  );

  const record = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://spaces.nexudus.com/api/spaces/resources/87654321',
      headers={
          'Authorization': 'Bearer YOUR_TOKEN'
      }
  )

  record = response.json()
  ```
</CodeGroup>

## Response

### 200

<ResponseField name="BusinessId" type="integer">
  Business Id.
</ResponseField>

<ResponseField name="BusinessName" type="string">
  Name of the location (read-only, resolved from BusinessId)..
</ResponseField>

<ResponseField name="Name" type="string">
  Display name of the resource (e.g., 'Board Room A', 'Phone Booth 3')..
</ResponseField>

<ResponseField name="SystemResourceType" type="integer">
  Built-in resource category used for system behaviour (e.g., MeetingRoom, HotDesk, PhoneBooth). Distinct from the custom ResourceType.. See `eResourceType` enum values: `0` = None, `1` = MeetingRoom, `2` = HotDesk, `3` = PrivateOffice, `4` = EventSpace, `5` = Lab, `6` = Kitchen, `7` = TreatmentRoom, `9` = StorageUnit, `10` = Machine, `11` = DayPass, `12` = PhoneBooth, `99` = Other.
</ResponseField>

<ResponseField name="ResourceTypeId" type="integer">
  Resource Type Id.
</ResponseField>

<ResponseField name="ResourceTypeName" type="string">
  Name of the resource type (read-only, resolved from ResourceTypeId)..
</ResponseField>

<ResponseField name="Description" type="string">
  Free-text description shown to users when viewing the resource details..
</ResponseField>

<ResponseField name="PictureFileName" type="string">
  Picture File Name.
</ResponseField>

<ResponseField name="NewPictureUrl" type="string">
  New Picture Url.
</ResponseField>

<ResponseField name="ClearPictureFile" type="boolean">
  Clear Picture File.
</ResponseField>

<ResponseField name="EmailConfirmationContent" type="string">
  Custom HTML or text included in booking confirmation emails for this resource..
</ResponseField>

<ResponseField name="Visible" type="boolean">
  Whether the resource is visible and bookable by end users. Hidden resources can still be booked by admins..
</ResponseField>

<ResponseField name="RequiresConfirmation" type="boolean">
  When true, bookings for this resource are held as pending until an admin approves them..
</ResponseField>

<ResponseField name="DisplayOrder" type="integer">
  Sort position when listing resources. Lower values appear first..
</ResponseField>

<ResponseField name="GroupName" type="string">
  Optional grouping label used to cluster related resources together in the UI (e.g., 'Floor 2')..
</ResponseField>

<ResponseField name="Projector" type="boolean">
  Amenity flag: resource has a projector..
</ResponseField>

<ResponseField name="Internet" type="boolean">
  Amenity flag: resource has internet access..
</ResponseField>

<ResponseField name="ConferencePhone" type="boolean">
  Amenity flag: resource has a conference phone..
</ResponseField>

<ResponseField name="StandardPhone" type="boolean">
  Amenity flag: resource has a standard phone..
</ResponseField>

<ResponseField name="WhiteBoard" type="boolean">
  Amenity flag: resource has a whiteboard..
</ResponseField>

<ResponseField name="LargeDisplay" type="boolean">
  Amenity flag: resource has a large display..
</ResponseField>

<ResponseField name="Catering" type="boolean">
  Amenity flag: catering is available for this resource..
</ResponseField>

<ResponseField name="TeaAndCoffee" type="boolean">
  Amenity flag: tea and coffee are available..
</ResponseField>

<ResponseField name="Drinks" type="boolean">
  Amenity flag: drinks are available..
</ResponseField>

<ResponseField name="SecurityLock" type="boolean">
  Amenity flag: resource has a security lock..
</ResponseField>

<ResponseField name="CCTV" type="boolean">
  Amenity flag: resource has CCTV coverage..
</ResponseField>

<ResponseField name="VoiceRecorder" type="boolean">
  Amenity flag: resource has a voice recorder..
</ResponseField>

<ResponseField name="AirConditioning" type="boolean">
  Amenity flag: resource has air conditioning..
</ResponseField>

<ResponseField name="Heating" type="boolean">
  Amenity flag: resource has heating..
</ResponseField>

<ResponseField name="NaturalLight" type="boolean">
  Amenity flag: resource has natural light..
</ResponseField>

<ResponseField name="StandingDesk" type="boolean">
  Amenity flag: resource has a standing desk..
</ResponseField>

<ResponseField name="QuietZone" type="boolean">
  Amenity flag: resource is located in a quiet zone..
</ResponseField>

<ResponseField name="WirelessCharger" type="boolean">
  Amenity flag: resource has a wireless charger..
</ResponseField>

<ResponseField name="PrivacyScreen" type="boolean">
  Amenity flag: resource has a privacy screen..
</ResponseField>

<ResponseField name="Soundproof" type="boolean">
  Amenity flag: resource is soundproof..
</ResponseField>

<ResponseField name="VideoConferencing" type="boolean">
  Amenity flag: resource has video conferencing equipment..
</ResponseField>

<ResponseField name="DualDisplayScreen" type="boolean">
  Amenity flag: resource has a dual display screen..
</ResponseField>

<ResponseField name="DisplayScreen" type="boolean">
  Amenity flag: resource has a display screen..
</ResponseField>

<ResponseField name="WirelessPresentation" type="boolean">
  Amenity flag: resource has wireless presentation capabilities..
</ResponseField>

<ResponseField name="PaSystem" type="boolean">
  Amenity flag: resource has a PA system..
</ResponseField>

<ResponseField name="DesktopMonitor" type="boolean">
  Amenity flag: resource has a desktop monitor..
</ResponseField>

<ResponseField name="FlipChart" type="boolean">
  Amenity flag: resource has a flip chart..
</ResponseField>

<ResponseField name="SecureStorage" type="boolean">
  Amenity flag: resource has secure storage..
</ResponseField>

<ResponseField name="AllowMultipleBookings" type="boolean">
  When true, overlapping bookings are permitted up to the Allocation capacity..
</ResponseField>

<ResponseField name="Allocation" type="integer">
  Maximum number of attendees or concurrent bookings allowed. Used with AllowMultipleBookings to control capacity..
</ResponseField>

<ResponseField name="LimitVisitorsToAllocation" type="boolean">
  When true, the total number of visitors added to a booking cannot exceed the Allocation capacity..
</ResponseField>

<ResponseField name="BookInAdvanceLimit" type="number">
  Maximum number of days in advance a booking can be made for this resource. Null means no limit..
</ResponseField>

<ResponseField name="LateBookingLimit" type="number">
  Minimum lead time (in minutes) required before a booking can start. Prevents last-minute bookings..
</ResponseField>

<ResponseField name="LateCancellationLimit" type="integer">
  Cut-off in minutes before the booking start time. Cancellations after this point are considered late and may incur a fee..
</ResponseField>

<ResponseField name="IntervalLimit" type="integer">
  Minimum interval (in minutes) between consecutive bookings on this resource, used as a buffer for setup or cleaning..
</ResponseField>

<ResponseField name="NoReturnPolicy" type="integer">
  Cooldown in minutes: prevents the same user from booking this specific resource again within this window after their last booking ends..
</ResponseField>

<ResponseField name="NoReturnPolicyAllResources" type="integer">
  Cooldown in minutes: prevents the same user from booking any resource after booking this one, for the specified window\..
</ResponseField>

<ResponseField name="NoReturnPolicyAllUsers" type="integer">
  Cooldown in minutes: prevents any user from booking this resource within the specified window after the previous booking ends..
</ResponseField>

<ResponseField name="MaxBookingLength" type="integer">
  Maximum allowed duration for a single booking on this resource, in minutes..
</ResponseField>

<ResponseField name="MinBookingLength" type="integer">
  Minimum allowed duration for a single booking on this resource, in minutes..
</ResponseField>

<ResponseField name="Tariffs" type="integer[]">
  Tariffs.
</ResponseField>

<ResponseField name="Teams" type="integer[]">
  Teams.
</ResponseField>

<ResponseField name="Shifts" type="string">
  JSON-encoded shifts configuration defining the resource's availability schedule..
</ResponseField>

<ResponseField name="LinkedResources" type="integer[]">
  Linked Resources.
</ResponseField>

<ResponseField name="GoogleCalendarId" type="string">
  Google Calendar Id.
</ResponseField>

<ResponseField name="KisiGroupId" type="string">
  Kisi Group Id.
</ResponseField>

<ResponseField name="AccessControlGroupId" type="string">
  Access Control Group Id.
</ResponseField>

<ResponseField name="AccessControlGroupIds" type="string">
  Access Control Group Ids.
</ResponseField>

<ResponseField name="Longitude" type="number">
  GPS longitude coordinate of the resource's physical location..
</ResponseField>

<ResponseField name="Latitude" type="number">
  GPS latitude coordinate of the resource's physical location..
</ResponseField>

<ResponseField name="HideInCalendar" type="boolean">
  When true, this resource does not appear on the booking calendar view\..
</ResponseField>

<ResponseField name="Archived" type="boolean">
  When true, the resource is archived and hidden from all views. It cannot be booked..
</ResponseField>

<ResponseField name="UseSharedZoomAccount" type="boolean">
  When true, bookings for this resource use the location's shared Zoom account to create virtual meetings..
</ResponseField>

<ResponseField name="ZoomAccessToken" type="string">
  Zoom Access Token.
</ResponseField>

<ResponseField name="ZoomRefreshToken" type="string">
  Zoom Refresh Token.
</ResponseField>

<ResponseField name="ZoomUserId" type="string">
  Zoom user ID used to host virtual meetings when UseSharedZoomAccount is false..
</ResponseField>

<ResponseField name="LastCleanedAt" type="string">
  Timestamp of the last cleaning event for this resource..
</ResponseField>

<ResponseField name="Office365CalendarId" type="string">
  Office365Calendar Id.
</ResponseField>

<ResponseField name="LinkedResourceIds" type="string">
  Comma-separated string of linked resource IDs (read-only alternative view of LinkedResources)..
</ResponseField>

<ResponseField name="OnlyForContacts" type="boolean">
  When true, only contacts (non-member customers) can book this resource..
</ResponseField>

<ResponseField name="OnlyForMembers" type="boolean">
  When true, only active members (coworkers with a plan) can book this resource..
</ResponseField>

<ResponseField name="OnlyForInvoicingBusiness" type="boolean">
  When true, only coworkers invoiced by this specific location can book this resource..
</ResponseField>

<ResponseField name="SensorLastValue" type="string">
  Last value reported by an IoT occupancy sensor attached to this resource (read-only)..
</ResponseField>

<ResponseField name="IsSensorOccupied" type="boolean">
  Whether the IoT sensor currently reports this resource as occupied (read-only)..
</ResponseField>

<ResponseField name="BookingAvailabilityExceptions" type="integer[]">
  Booking Availability Exceptions.
</ResponseField>

<ResponseField name="CancellationFeeProductId" type="integer">
  Cancellation Fee Product Id.
</ResponseField>

<ResponseField name="CancellationFeeProductName" type="string">
  Name of the cancellation fee product (read-only, resolved from CancellationFeeProductId)..
</ResponseField>

<ResponseField name="ChargeCancellationFee" type="boolean">
  When true, a fee is charged for late cancellations (past the LateCancellationLimit)..
</ResponseField>

<ResponseField name="CancellationFeeType" type="integer">
  How the cancellation fee is calculated: Absolute (fixed amount) or Percentage (of booking cost).. See `eCancellationFeeType` enum values: `0` = None, `1` = Absolute, `2` = Percentage.
</ResponseField>

<ResponseField name="CancellationFeeAmount" type="number">
  Fixed cancellation fee amount. Used when CancellationFeeType is Absolute..
</ResponseField>

<ResponseField name="CancellationFeePercentage" type="number">
  Cancellation fee as a percentage of the booking cost. Used when CancellationFeeType is Percentage..
</ResponseField>

<ResponseField name="RepeatBookingQuantityLimit" type="integer">
  Maximum number of occurrences allowed when creating a recurring booking for this resource..
</ResponseField>

<ResponseField name="RepeatBookingPeriodLimitInMonths" type="integer">
  Maximum time span (in months) over which a recurring booking series can extend..
</ResponseField>

<ResponseField name="Id" type="integer">
  Unique record identifier.
</ResponseField>

<ResponseField name="UniqueId" type="string">
  UUID of the record.
</ResponseField>

<ResponseField name="CreatedOn" type="string">
  Date and time the record was created (ISO 8601).
</ResponseField>

<ResponseField name="UpdatedOn" type="string">
  Date and time the record was last updated (ISO 8601).
</ResponseField>

<ResponseField name="UpdatedBy" type="string">
  Email of the user who last updated this record.
</ResponseField>

<ResponseField name="IsNew" type="boolean">
  Whether the record was recently created.
</ResponseField>

<ResponseField name="SystemId" type="string">
  External system identifier.
</ResponseField>

```json Example Response theme={null}
{
  "BusinessId": 0,
  "BusinessName": null,
  "Name": "",
  "SystemResourceType": 0,
  "ResourceTypeId": 0,
  "ResourceTypeName": null,
  "Description": null,
  "PictureFileName": null,
  "NewPictureUrl": null,
  "ClearPictureFile": null,
  "EmailConfirmationContent": null,
  "Visible": false,
  "RequiresConfirmation": false,
  "DisplayOrder": 0,
  "GroupName": null,
  "Projector": false,
  "Internet": false,
  "ConferencePhone": false,
  "StandardPhone": false,
  "WhiteBoard": false,
  "LargeDisplay": false,
  "Catering": false,
  "TeaAndCoffee": false,
  "Drinks": false,
  "SecurityLock": false,
  "CCTV": false,
  "VoiceRecorder": false,
  "AirConditioning": false,
  "Heating": false,
  "NaturalLight": false,
  "StandingDesk": false,
  "QuietZone": false,
  "WirelessCharger": false,
  "PrivacyScreen": false,
  "Soundproof": false,
  "VideoConferencing": false,
  "DualDisplayScreen": false,
  "DisplayScreen": false,
  "WirelessPresentation": false,
  "PaSystem": false,
  "DesktopMonitor": false,
  "FlipChart": false,
  "SecureStorage": false,
  "AllowMultipleBookings": false,
  "Allocation": null,
  "LimitVisitorsToAllocation": false,
  "BookInAdvanceLimit": null,
  "LateBookingLimit": null,
  "LateCancellationLimit": null,
  "IntervalLimit": null,
  "NoReturnPolicy": null,
  "NoReturnPolicyAllResources": null,
  "NoReturnPolicyAllUsers": null,
  "MaxBookingLength": null,
  "MinBookingLength": null,
  "Tariffs": [],
  "Teams": [],
  "Shifts": null,
  "LinkedResources": [],
  "GoogleCalendarId": null,
  "KisiGroupId": null,
  "AccessControlGroupId": null,
  "AccessControlGroupIds": null,
  "Longitude": null,
  "Latitude": null,
  "HideInCalendar": false,
  "Archived": false,
  "UseSharedZoomAccount": false,
  "ZoomAccessToken": null,
  "ZoomRefreshToken": null,
  "ZoomUserId": null,
  "LastCleanedAt": null,
  "Office365CalendarId": null,
  "LinkedResourceIds": null,
  "OnlyForContacts": false,
  "OnlyForMembers": false,
  "OnlyForInvoicingBusiness": false,
  "SensorLastValue": null,
  "IsSensorOccupied": false,
  "BookingAvailabilityExceptions": [],
  "CancellationFeeProductId": null,
  "CancellationFeeProductName": null,
  "ChargeCancellationFee": false,
  "CancellationFeeType": 0,
  "CancellationFeeAmount": null,
  "CancellationFeePercentage": null,
  "RepeatBookingQuantityLimit": null,
  "RepeatBookingPeriodLimitInMonths": null,
  "Id": 87654321,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "CreatedOn": "2025-01-10T08:00:00Z",
  "UniqueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "UpdatedBy": "admin@example.com",
  "IsNew": false,
  "SystemId": null,
  "ToStringText": "Resource Example",
  "LocalizationDetails": null,
  "CustomFields": null
}
```
