WSD Search API

  • Release version: Washingtondc
  • Updated February 1, 2024
  • 49 minutes to read
  • The Workplace Service Delivery (WSD) Search API provides endpoints for search for available locations and workplace items such as reservables, reservable modules, and available shifts.

    To access this API, the caller must have the sn_wsd_core.workplace_user role and the Workplace Safety Management (sn_wsd_core) and Workplace Reservation Management (sn_wsd_rsv) plugins must be activated.

    This API runs in the sn_wsd_rsv namespace.

    For additional information on Workplace Reservation Management, see Workplace Reservation Management.

    WSD Search - GET /api/sn_wsd_rsv/search/availability

    Checks whether the specified reservables are available for the specified times.

    URL format

    Versioned URL: /api/sn_wsd_rsv/{api_version}/search/availability

    Default URL: /api/sn_wsd_rsv/search/availability

    Supported request parameters

    Table 1. Path parameters
    Name Description
    api_version Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest.

    Data type: String

    Table 2. Query parameters
    Name Description
    end Required. End time to use to search for available reservable modules. This value must be later than the value specified in the start parameter.

    Data type: String

    Format: UTC or local time (yyyy-mm-dd hh:mm:ss)

    include_reservations_within_days Flag that indicates whether to return all free slots of available times in the response for each reservable for the whole day.
    Valid values:
    • true: Return all free slots.
    • false: Don't return all free slots.

    Data type: Boolean

    Default: false

    reservable_ids Required. Comma-separated list of reservable sys_ids to evaluate for availability. Located in the Workplace Location [sn_wsd_core_workplace_location] table.

    Data type: String

    reservation_ids Comma-separated list of existing reservation sys_ids. Pass this parameter if you want to edit the associated reservations. Located in the Workplace Reservation [sn_wsd_rsv_reservation] table.

    The time blocked for these sys_ids for the corresponding reservables are treated as available.

    Data type: String

    Default: None

    reservable_module Required. Sys_id of the reservable module to include in the search. A reservable module groups similar types of workplace items. Located in the Reservable Module [sn_wsd_rsv_reservable_module] table.

    Data type: String

    schedule_view_obj Details about the schedule view to return. Pass this object if you need 24-hour availability data for reservations that span more than one day. The return results will only contain available times and reservations for the specified date.

    For this functionality to work properly, the parameters ignore_same_day_validation and include_reservations_within_days must be set to true.

    Data type: Object

    "schedule_view_obj": {
      "schedule_view_date": "String",
      "timezone": "String"
    }
    schedule_view_obj.schedule_view_date Date for which to start returning reservation availability. This date must be in the time zone specified in the schedule_view_obj.timezone parameter.

    Data type: String

    Format: YYYY-MM-DD

    schedule_view_obj.timezone Building time zone to use to determine the reservation availability data to return. For example: US/Pacific.

    Data type: String

    shift Required if the specified reservable modules are based on a shift.
    Sys_id of the shift to associate with the reservation. Located in the Shift [sn_wsd_core_shift] table. If this parameter is passed in, the end parameter isn't required.

    For additional information on shift-based reservations, see Enable shift-based reservation.

    Data type: String

    start Required. Start time to use to search for available reservable modules. This value must be prior to the value specified in the end parameter.

    Data type: String

    Format: UTC or local time (yyyy-mm-dd hh:mm:ss)

    Table 3. Request body parameters
    Name Description
    None

    Headers

    The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

    Table 4. Request headers
    Header Description
    Accept Data format of the request body. Supported types: application/json, application/xml or, text/xml.

    Default: application/json

    Table 5. Response headers
    Header Description
    None

    Status codes

    The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

    Table 6. Status codes
    Status code Description
    200 Successful. The request was successfully processed.
    401 Unauthorized. The user credentials are incorrect or have not been passed.
    404 Not found. The requested item wasn't found.
    500 Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error.

    Response body parameters

    Name Description
    result List of all available resevables for the specified times.

    Data type: Array of Objects

    "result": [
      {
        "availableTimes": [Array],
        "building": {Object},
        "campus": {Object},
        "email": "String",
        "floor": {Object},
        "is_available": Boolean,
        "name": "String",
        "reservations": [Array],
        "sys_id": "String"
      }
    ]
    result.availableTimes List of dates/times that the associated reservable is available.

    Data type: Array

    result.building Details about the building associated with the reservable.

    Data type: Object

    "building": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.building.display_value Display value for the building.

    Data type: String

    result.building.name Name of the building.

    Data type: String

    result.building.sys_id Sys_id of the associated building record.

    Data type: String

    result.campus Details about the campus associated with the reservable.

    Data type: Object

    "campus": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.campus.display_value Display number of the Campus on which the reservable resides, such as East Bay.

    Data type: String

    result.campus.name Name of the campus.

    Data type: String

    result.campus.sys_id Sys_id of the associated record. Located in the Campus [sn_wsd_core_campus] table.

    Data type: String

    result.email Email address for the associated reservable.

    Data type: String

    result.floor Details about the floor associated with the reservable.

    Data type: Object

    "floor": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.floor.display_value Display number of the floor on which the reservable resides, such as 12.

    Data type: String

    result.floor.name Name of the floor on which the reservable resides.

    Data type: String

    result.floor.sys_id Sys_id of the associated record in the Floor [sn_wsd_core_floor] table.

    Data type: String

    result.is_available Flag that indicates whether the reservable is available to reserve.
    Valid values:
    • true: Available to reserve.
    • false: Not available to reserve.

    Data type: Boolean

    result.name Name of the reservable.

    Data type: String

    result.reservations Details about the associated reservation.

    Data type: Array of Objects

    "reservations": [
      {
        "configuration_item": "String",
        "end": "String",
        "is_collided": Boolean,
        "location": {Object},
        "number": "String",
        "requested_for": {Object},
        "reservation_purpose": {Object},
        "start": "String",
        "state": {Object},
        "subject": "String",
        "sys_id": "String"
      }
    ]
    result.reservations.configuration_item Configuration items corresponding to the reservation. Located in the cmdb_ci table.

    Data type: String

    result.reservations.end Reservation end date and time.

    Data type: String

    Format: UTC: yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

    result.reservations.is_collided Flag that indicates whether the reservation collides with the start and end time of the search.

    This indicates that the associated reservable location is already reserved for the specified search timespan.

    Possible values:
    • true: Collision.
    • false: No collision.

    Data type: Boolean

    result.reservations.location Details about the location of the reservation.

    Data type: Object

    "location": {
      "location": "String",
      "timezone": {Object}
    }
    result.reservations.location.location Sys_id of the associated location record. Located in the Workplace Location [sn_wsd_core_workplace_location] table.

    Data type: String

    result.reservations.location.timezone Details about the time zone associated with the location.

    Data type: Object

    "timezone": {
      "displayValue": "String",
      "value": "String"
    }
    result.reservations.location.timezone.​displayValue Display value for the time zone to which this location belongs.

    Data type: String

    result.reservations.location.timezone.value Internal value for the time zone to which this location belongs.

    Data type: String

    result.reservations.number Reservation number.

    Data type: String

    result.reservations.requested_for Details about the person for whom the reservation was requested on behalf of.

    Data type: Object

    "requested_for": {
      "name": "String",
      "sys_id": "String"
    }
    result.reservations.requested_for.name Name of the user for whom the reservation was requested for.

    Data type: String

    result.reservations.requested_for.sys_id Sys_id of the user for whom the reservation is being requested. Located in the User [sys_user] table.

    Data type: String

    result.reservations.reservation_purpose Details about the purpose of the reservation.

    Data type: Object

    "reservation_purpose": {
      "display_value": "String,"
      "value": "String"
    }
    result.reservations.reservation_purpose.​display_value Display value for the purpose of the reservation, such as Company meeting.

    Data type: String

    result.reservations.reservation_purpose.value Internal value for the purpose of the reservation, such as company_meeting.

    Data type: String

    result.reservations.start Reservation start date and time.

    Data type: String

    Format: UTC - yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

    result.reservations.state Details about the state of the reservation for the location.

    Data type: Object

    "state": {
      "display_value": "String,"
      "value": "String"
    }
    result.reservations.state.display_value Display value for the current state of the reservation, such as confirmed.

    Data type: String

    result.reservations.state.value Internal value for the current state of the reservation, such as 2.

    Data type: String

    result.reservations.subject Reservation's subject.

    Data type: String

    result.reservations.sys_id Required.
    Sys_id of the reservation record. Located in the Workplace Reservation [sn_wsd_rsv_reservation] table.

    Data type: String

    cURL request

    The following code example shows how to call this endpoint. Note: Line breaks have been added to the query parameters for easier reading.

    curl "https://instance.servicenow.com/api/sn_wsd_rsv/search/availability?
    reservable_module=5db44502dbb650106c731dcd13961937&
    start=2023-10-12T11:00:00Z&
    end=2023-10-15T12:00:00Z&
    reservable_ids=adb35f1977220110b3d7be377b5a99fc&
    reservation_ids=undefined&
    shift=undefined&
    schedule_view_obj={"schedule_view_date":"2023-10-12","timezone":"Europe/Paris"}&
    timezone=Europe/Paris&
    include_reservations_within_days=true&
    ignore_same_day_validation=true&
    include_unavailable_items=true"  \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"
    

    Return results:

    {
      "result": [
        {
          "sys_id": "fe1f744edb7650106c731dcd139619ca",
          "email": null,
          "name": "Aspen",
          "is_available": true,
          "availableTimes": [
            [
              "2022-04-23 07:00:00",
              "2022-04-23 08:30:00"
            ],
            [
              "2022-04-23 09:30:00",
              "2022-04-23 23:00:00"
            ],
            [
              "2022-04-24 00:00:00",
              "2022-04-24 06:59:59"
            ]
          ],
          "floor": {
            "sys_id": "2f554296dbba10106c731dcd139619ed",
            "display_value": "Floor 2",
            "name": "Floor 2"
          },
          "building": {
            "sys_id": "94e264cedb3650106c731dcd13961919",
            "display_value": "CAL-B1",
            "name": "CAL-B1"
          },
          "campus": {
            "sys_id": "82b2a0cedb3650106c731dcd139619e9",
            "display_value": "California Campus",
            "name": "California Campus"
          },
          "reservations": [
            {
              "sys_id": "5fe65830874bc9106342b846dabb352b",
              "number": "WRES0001001",
              "location": {
                "location": "fe1f744edb7650106c731dcd139619ca",
                "timezone": {
                  "value": "US/Pacific",
                  "displayValue": "US/Pacific"
                }
              },
              "configuration_item": null,
              "start": "2022-04-23T08:30:00Z",
              "end": "2022-04-23T09:30:00Z",
              "subject": null,
              "reservation_purpose": {
                "value": "meeting",
                "display_value": "Meeting"
              },
              "state": {
                "value": "confirmed",
                "display_value": "Confirmed"
              },
              "is_collided": false,
              "requested_for": {
                "sys_id": "2de07e1887cb89106342b846dabb35fe",
                "name": "Workplace User"
              }
            }
          ]
        }
      ]
    }

    WSD Search - GET /api/sn_wsd_rsv/search/best_match

    Searches for the best reservable item match based on provided search criteria.

    URL format

    Versioned URL: /api/sn_wsd_rsv/{api_version}/search/best_match

    Default URL: /api/sn_wsd_rsv/search/best_match

    Supported request parameters

    Table 7. Path parameters
    Name Description
    api_version Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest.

    Data type: String

    Table 8. Query parameters
    Name Description
    best_match_count Number of best matched reservables to return.

    Data type: Number

    Default: 1

    end Required. End time to use to search for available reservable modules. This value must be later than the value specified in the start parameter.

    Data type: String

    Format: UTC or local time (yyyy-mm-dd hh:mm:ss)

    include_reservable_purposes Flag that indicates whether to return the purpose of reserving the workplace location for each reservable in the return results. This information is located in the Reservable Purpose [sn_wsd_rsv_reservable_purpose] table.
    Valid values:
    • true: Return the reservable purposes.
    • false: Don't return the reservable purposes.

    Data type: Boolean

    Default: false

    include_reservations_within_days Flag that indicates whether to return all free slots of available times in the response for each reservable for the whole day.
    Valid values:
    • true: Return all free slots.
    • false: Don't return all free slots.

    Data type: Boolean

    Default: false

    include_standard_​services Flag that indicates whether to return the standard services information in the response.

    A standard service describes basic provisions available with a reservable workplace item when the reservation is made, such as white boards, additional monitors, and similar services. For additional information on standard services, see Standard services. This information is located in the Standard Service [sn_wsd_rsv_standard_service] table.

    Valid values:
    • true: Return the standard services information.
    • false: Don't return the standard services information.

    Data type: Boolean

    Default: false

    q Required. Encoded query to use to filter the search return results. Within this query you must specify the building sys_id and you can specify parameters such as floor, area, capacity, standard services, and reservable_purposes.

    All passed parameters must be sys_ids, except for capacity, which is a number.

    For example: q=building=94e264cedb3650106c731dcd13961919​^floorINfc7368cedb3650106c731dcd13961902​^capacity>=1​^standard_services=55c0818edb7650106c731dcd13961904​^reservable_purposes=d6e5c7cd1ba4e01051848489cc4bcb81

    You can locate this information in the following tables:
    • Building: sn_wsd_core_building
    • Floor: sn_wsd_core_floor
    • Area: sn_wsd_core_area
    • Standard services: sn_wsd_rsv_standard_service
    • Reservable purposes: sn_wsd_rsv_reservable_purpose

    Data type: String

    reservable_module Required. Sys_id of the reservable module to include in the search. A reservable module groups similar types of workplace items. Located in the Reservable Module [sn_wsd_rsv_reservable_module] table.

    Data type: String

    start Required. Start time to use to search for available reservable modules. This value must be prior to the value specified in the end parameter.

    Data type: String

    Format: UTC or local time (yyyy-mm-dd hh:mm:ss)

    time_slot Sys_id of a time slot record for which we are trying to look for the best matching reservable. Located in the Time Slot [sn_wsd_rsv_time_slot] table.

    Data Type: String

    Default: None

    timezone Preferred time zone, such as Europe/Amsterdam.

    Data type: String

    Default: None

    Table 9. Request body parameters
    Header Description
    None

    Headers

    The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

    Table 10. Request headers
    Header Description
    Accept Data format of the response body. Supported types: application/json or application/xml.

    Default: application/json

    Table 11. Response headers
    Header Description
    None

    Status codes

    The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

    Table 12. Status codes
    Status code Description
    200 Successful. The request was successfully processed.
    401 Unauthorized. The user credentials are incorrect or have not been passed.
    404 Not found. The requested item wasn't found.
    500 Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error.

    Response body parameters

    Name Description
    result Return results for the best reservable match.

    Data type: Object

    "result": { 
      "floorsOfSelectedBuilding": [Array],
      "hasMore": Boolean,
      "nextItemIndex": Number,
      "reservableContainers": [Array],
      "reservableUnits": [Array]
    }
    result.floorsOfSelectedBuilding Details about the floors on which the reservable is located.

    Data type: Array of Objects

    "floorsOfSelectedBuilding": [
      {
        "display_value": "String",
        "external_id": "String",
        "name": "String",
        "sys_id": "String"
      }
    ]
    result.floorsOfSelectedBuilding.display_value Display number of the floor on which the reservable resides, such as 12.

    Data type: String

    result.floorsOfSelectedBuilding.external_id External identifier for the floor.

    Data type: String

    result.floorsOfSelectedBuilding.name Name of the floor on which the reservable resides.

    Data type: String

    result.floorsOfSelectedBuilding.sys_id Sys_id of the associated record in the Floor [sn_wsd_core_floor] table.

    Data type: String

    result.hasMore Flag that indicates whether there are more reservables in the return results.
    Possible values:
    • true: More reservables available.
    • false: No more reservables available.

    Data type: Boolean

    result.nextItemIndex Index for the next reservable record to fetch. Use this value when paginating through reservable records.

    Data type: Number

    result.reservableContainers Only returned for reservable modules whose selection_type field is set to container. A container is a grouping of similar items, such as a group of desks.

    Data type: Array of Objects

    "reservableContainers": [
      {
        "building": {Object},
        "campus": {Object},
        "capacity": Number,
        "display_value": "String",
        "floor": {Object},
        "image": {Object}
        "sys_id": "String"
      } 
    ]
    result.reservableContainers.building Details about the building associated with the reservable container.

    Data type: Object

    "building": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.reservableContainers.building.​display_value Display value for the building.

    Data type: String

    result.reservableContainers.building.name Name of the building.

    Data type: String

    result.reservableContainers.building.sys_id Sys_id of the associated building record.

    Data type: String

    result.reservableContainers.campus
    Details about the campus on which the reservable is located.

    Located in the Campus [sn_wsd_core_campus] table.

    Data type: Object

    "campus": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.reservableContainers.campus.​display_value Display number of the Campus on which the reservable resides, such as East Bay.

    Data type: String

    result.reservableContainers.campus.name Name of the campus.

    Data type: String

    result.reservableContainers.campus.sys_id Sys_id of the associated record. Located in the Campus [sn_wsd_core_campus] table.

    Data type: String

    result.reservableContainers.capacity Maximum number of occupants for the reservable.

    Data type: Number

    result.reservableContainers.display_value Display value for the reservable container.

    Data type: String

    result.reservableContainers.floor Details about the floor associated with the reservable container.

    Data type: Object

    "floor": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.reservableContainers.floor.​display_value Display number of the floor on which the reservable resides, such as 12.

    Data type: String

    result.reservableContainers.floor.name Name of the floor on which the reservable resides.

    Data type: String

    result.reservableContainers.floor.sys_id Sys_id of the associated record in the Floor [sn_wsd_core_floor] table.

    Data type: String

    result.reservableContainers.image Details about an image that represents the layout for the associated reservable.

    Located in the Images [db_image] table.

    "image": {
      "link": "String",
      "sys_id": "String"
    }
    result.reservableContainers.image.link Link to an image that represents the layout for this reservable. Located in the Images [db_image] table.

    Data type: String

    result.reservableContainers.image.sys_id Sys_id of the associated image record.

    Data type: String

    result.reservableContainers.sys_id Sys_id of the associated container record. The table in which this resides can be configured for any container type. By default it is in the Area [sn_wsd_core_area] table.

    Data type: String

    result.reservableUnits Details about the reservable units that match the specified search criteria. A reservable unit is a singe reservable item such as a desk or a chair.

    Data type: Object

    "reservableUnits": [
      {
        "area": "String",
        "availableTimes": [Array],
        "building": {Object},
        "campus": {Object},
        "capacity": "String",
        "defaultPrivacyValue": Boolean,
        "description": "String",
        "email": "String",
        "external_id": "String",
        "floor": {Object},
        "image": {Object},
        "includedInResult": Boolean,
        "is_available": Boolean,
        "is_favorite": Boolean,
        "is_reservable": "String",
        "is_reserved": Boolean,
        "is_selected": Boolean,
        "location_type": {Object},
        "name": "String",
        "number": "String",
        "order": "String",
        "require_approval": Boolean,
        "requires_check_in": Boolean,
        "reservable_quantity": "String",
        "showPrivacyOption": Boolean,
        "site": {Object},
        "standard_services": [Array],
        "tableName": "String",
        "title": "String",
        “reservable_purposes”: [Array],
        "reservations": [Array],
        "sys_id": "String"
      }
    ]
    result.reservableUnits.area Details about the area in which the reservable module is located. Located in the Area [sn_wsd_core_area] table.

    Data type: Object

    "area": {
      "display_value": "String",
      "sys_id": "String"
    }
    result.reservableUnits.area.display_value Display value for the reservable module area.

    Data type: String

    result.reservableUnits.area.sys_id Sys_id of the area record associated with the reservable.

    Data type: String

    result.reservableUnits.availableTimes List of dates/times that the associated reservable is available.

    Data type: Array

    result.reservableUnits.building Details about the building in which the reservable is located. Located in the Building [sn_wsd_core_building] table.

    Data type: Object

    "building": {
      "display_value": "String",
      "sys_id": "String"
    }
    result.reservableUnits.building.display_value Display value for the building.

    Data type: String

    result.reservableUnits.building.sys_id Sys_id of the associated building record.

    Data type: String

    result.reservableUnits.campus
    Details about the campus on which the reservable is located.

    Located in the Campus [sn_wsd_core_campus] table.

    Data type: Object

    "campus": {
      "display_value": "String",
      "sys_id": "String"
    }
    result.reservableUnits.campus.display_value Display number of the Campus on which the reservable resides, such as East Bay.

    Data type: String

    result.reservableUnits.campus.sys_id Sys_id of the associated record. Located in the Campus [sn_wsd_core_campus] table.

    Data type: String

    result.reservableUnits.capacity Maximum number of occupants for the reservable.

    Data type: Number

    result.reservableUnits.defaultPrivacyValue Flag that indicates the default privacy setting for the reservable.

    For additional information on these privacy settings, see Location privacy settings and impact.

    Possible values:
    • true: Privacy setting for the reservable can be overridden.
    • false: Privacy setting for the reservable cannot be overridden.

    Data type: Boolean

    result.reservableUnits.description Brief description of the reservable.

    Data type: String

    result.reservableUnits.email Email address for the reservable.

    Data type: String

    result.reservableUnits.external_id External ID of the reservable used to sync a space mapped in CMS. This value is only populated if there is a map associated with this location.

    Data type: String

    result.reservableUnits.floor
    Details about the floor on which the reservable is located.

    Located in the Floor [sn_wsd_core_floor] table.

    Data type: Object

    "floor": {
      "display_value": "String",
      "sys_id": "String"
    }
    result.reservableUnits.floor.display_value Display number of the floor on which the reservable resides, such as 12.

    Data type: String

    result.reservableUnits.floor.sys_id Sys_id of the associated record in the Floor [sn_wsd_core_floor] table.

    Data type: String

    result.reservableUnits.image Details about an image that represents the layout for the associated reservable.

    Located in the Images [db_image] table.

    "image": {
      "link": "String",
      "sys_id": "String"
    }
    result.reservableUnits.image.link Link to an image that represents the layout for this reservable. Located in the Images [db_image] table.

    Data type: String

    result.reservableUnits.image.sys_id Sys_id of the associated image record.

    Data type: String

    result.reservableUnits.includedInResult Flag that indicates whether the current reservable is included in the return results.
    Valid values:
    • true: Included in the return results.
    • false: Not included in the return results.

    Data type: Boolean

    result.reservableUnits.is_available Flag that indicates whether the reservable is available to reserve.
    Valid values:
    • true: Available to reserve.
    • false: Not available to reserve.

    Data type: Boolean

    result.reservableUnits.is_favorite Flag that indicates whether the reservable is flagged as one of the associated user's favorites.
    Valid values:
    • true: Favorite.
    • false: Not a favorite.

    Data type: Boolean

    result.reservableUnits.is_reservable Flag that indicates whether it's possible to reserve this reservable.
    Note:
    If the include_unavailable_items query parameter is set to true, unavailable locations are also returned. In this case, if a location is already reserved, then the is_available parameter is false, but is_reservable is true.
    Valid values:
    • true: Available to reserve.
    • false: Not available to reserve.

    Data type: Boolean

    result.reservableUnits.is_reserved Flag that indicates whether the reservable is already reserved.
    Valid values:
    • true: Available to reserve.
    • false: Already reserved.

    Data type: Boolean

    result.reservableUnits.is_selected Flag that indicates whether the reservable is already reserved.
    Valid values:
    • true: Available to reserve.
    • false: Already reserved.

    Data type: Boolean

    result.reservableUnits.location_type Details about the type of location of the reservable, such as workplace/desk, cafe, or gym.

    Located in the Workplace Location [sn_wsd_core_workplace_location] table.

    "location_type": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.reservableUnits.location_type.​display_value Display value of the location type.

    Data type: String

    result.reservableUnits.location_type.name Name of the location type, such as basement or storage. Same as display value.

    Data type: String

    result.reservableUnits.location_type.sys_id Sys_id of the associated record in the Space Type [sn_wsd_core_space_type] table.

    Data type: String

    result.reservableUnits.name Name of the reservable.

    Data type: String

    result.reservableUnits.number Unique identifier of the reservable. This value is more human readable than the sys_id.

    Data type: String

    result.reservableUnits.order Order number for the reservable.

    Data type: Number

    result.reservableUnits.require_approval Flag that indicates whether reserving the reservable requires an approval.
    Possible values:
    • true: Approval required.
    • false: Approval isn't required.

    Data type: Boolean

    result.reservableUnits.requires_check_in Flag that indicates whether the reservable requires the user to check in.
    Valid values:
    • true: Check in required.
    • false: Check in isn't required.

    Data type: Boolean

    result.reservableUnits.reservable_purposes Details about the purpose for reserving the associated reservable.

    Data type: Array of Objects

    "reservable_purposes": [
      {
        "name": "String",
        "short_description": "String",
        "sys_id": "String"
      }
    ]
    result.reservableUnits.reservable_purposes.​name Name of the reservable.

    Data type: String

    result.reservableUnits.reservable_purposes.​short_description Brief description of the reservable.

    Data type: String

    result.reservableUnits.reservable_purposes.​sys_id Sys_id of the reservable purpose record. Located in the Reservable Purpose [sn_wsd_rsv_reservable_purpose] table.

    Data type: String

    result.reservableUnits.reservations Details about the reservations associated with the reservable. Only populated if the include_reservations_within_days query parameter is true and the reservation_ids parameter contains reservation IDs, meaning there are reservations already present for this reservable.

    Data type: Array of Objects

    "reservations": [
      {
        "configuration_item": "String",
        "end": "String",
        "is_collided": Boolean,
        "location": {Object},
        "number": "String",
        "requested_for": {Object},
        "reservation_purpose": {Object},
        "start": "String",
        "state": {Object},
        "subject": "String",
        "sys_id": "String"
      }
    ]
    result.reservableUnits.reservations.​configuration_item Configuration items corresponding to the reservation. Located in the cmdb_ci table.

    Data type: String

    result.reservableUnits.reservations.end Reservation end date and time.

    Data type: String

    Format: UTC: yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

    result.reservableUnits.reservations.is_collided Flag that indicates whether the reservation collides with the start and end time of the search.

    This indicates that the associated reservable location is already reserved for the specified search timespan.

    Possible values:
    • true: Collision.
    • false: No collision.

    Data type: Boolean

    result.reservableUnits.reservations.location Details about the location of the reservation.

    Data type: Object

    "location": {
      "location": "String",
      "timezone": {Object}
    }
    result.reservableUnits.reservations.location.​location Sys_id of the associated location record. Located in the Workplace Location [sn_wsd_core_workplace_location] table.

    Data type: String

    result.reservableUnits.reservations.location.​timezone Details about the time zone associated with the location.

    Data type: Object

    "timezone": {
      "displayValue": "String",
      "value": "String"
    }
    result.reservableUnits.reservations.location.​timezone.displayValue Display value for the time zone to which this location belongs.

    Data type: String

    result.reservableUnits.reservations.location.​timezone.value Internal value for the time zone to which this location belongs.

    Data type: String

    result.reservableUnits.reservations.number Unique identifier of the reservable. This value is more human readable than the sys_id.

    Data type: String

    result.reservableUnits.reservations.​requested_for Details about the person for whom the reservation was requested on behalf of.

    Data type: Object

    "requested_for": {
      "name": "String",
      "sys_id": "String"
    }
    result.reservableUnits.reservations.​requested_for.name Name of the user for whom the reservation was requested for.

    Data type: String

    result.reservableUnits.reservations.​requested_for.sys_id Sys_id of the user for whom the reservation is being requested. Located in the User [sys_user] table.

    Data type: String

    result.reservableUnits.reservations.​reservation_purpose Details about the purpose of the reservation.

    Data type: Object

    "reservation_purpose": {
      "display_value": "String,"
      "value": "String"
    }
    result.reservableUnits.reservations.​reservation_purpose.display_value Display value for the purpose of the reservation, such as Company meeting.

    Data type: String

    result.reservableUnits.reservations.​reservation_purpose.value Internal value for the purpose of the reservation, such as company_meeting.

    Data type: String

    result.reservableUnits.reservations.start Reservation start date and time.

    Data type: String

    Format: UTC - yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

    result.reservableUnits.reservations.state Details about the state of the reservation for the location.

    Data type: Object

    "state": {
      "display_value": "String,"
      "value": "String"
    }
    result.reservableUnits.reservations.state.​display_value Display value for the current state of the reservation, such as confirmed.

    Data type: String

    result.reservableUnits.reservations.state.value Internal value for the current state of the reservation, such as 2.

    Data type: String

    result.reservableUnits.reservations.subject Reservation's subject.

    Data type: String

    result.reservableUnits.reservations.sys_id Required.
    Sys_id of the reservation record. Located in the Workplace Reservation [sn_wsd_rsv_reservation] table.

    Data type: String

    result.reservableUnits.reservable_quantity Maximum number of times the associated reservable can be reserved for the same time. This value is used when assigning neighborhood spaces to an area.

    Data type: Integer

    result.reservableUnits.showPrivacyOption Flag that indicates whether an employee can override the privacy settings for the associated reservable.

    For additional information on these privacy settings, see Location privacy settings and impact.

    Valid values:
    • true: Privacy settings can be overridden.
    • false: Privacy setting cannot be overridden.

    Data type: Boolean

    result.reservableUnits.site Details about the site where the reservable resides.

    Located in the Site [sn_wsd_core_site] table.

    "site": {
      "display_value": "String",
      "sys_id": "String"
    }
    result.reservableUnits.site.display_value Display value of the site.

    Data type: String

    result.reservableUnits.site.sys_id Sys_id of the associated site record in the Site [sn_wsd_core_site] table.

    Data type: String

    result.reservableUnits.standard_services
    Associated standard services, such as flip chart, projector screen, and whiteboard and markers.

    Data type: Array of Objects

    "standard_services": [
      {
        "font_awesome_icon": "String",
        "name": "String",
        "short_description": "String",
        "sys_id": "String"
      }
    ]
    result.reservableUnits.standard_services.​font_awesome_icon Name of the thumbnail icon associated with the standard service.

    Data type: String

    result.reservableUnits.standard_services.name Name of the thumbnail icon associated with the standard service.

    Data type: String

    result.reservableUnits.standard_services.​short_description Brief description of the standard service.

    Data type: String

    result.reservableUnits.standard_services.sys_id Sys_id of the standard service record. Located in the Standard Service [sn_wsd_rsv_standard_service] table.

    Data type: String

    result.reservableUnits.sys_id Sys_id of the reservable record. Located in the Workplace Location [sn_wsd_core_workplace_location] table.

    Data type: String

    result.reservableUnits.tableName Name of the table in which the reservable record resides.

    Data type: String

    result.reservableUnits.title Title of the reservable.

    Data type: String

    cURL request

    The following code example shows how to call this endpoint.

    curl "https://instance.servicenow.com/api/sn_wsd_rsv/search/best_match?q=building%3D9e0364cedb3650106c731dcd1396192b&start=2023-01-04T07%3A00%3A00Z&time_slot=d5331cf2dbb5f01038e42b24ca961906&end=2023-01-04T17%3A00%3A00Z&best_match_count=1&reservable_module=2b636b7e1b4e60103523ff751a4bcbe2&timezone=Europe%2FAmsterdam" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"

    Return results:

    {
      "result": {
        "hasMore": false,
        "reservableUnits": [
          {
            "sys_id": "fe1f744edb7650106c731dcd139619ca",
            "external_id": null,
            "email": null,
            "name": "Aspen",
            "title": "Aspen",
            "description": "A room with large windows, dark leather seats and a large wooden table.",
            "image": {
              "sys_id": "41c74902dbb650106c731dcd13961944",
              "link": "41c74902dbb650106c731dcd13961944.iix"
            },
            "number": "ROOM0000903",
            "site": {
              "sys_id": "628eec06db7650106c731dcd139619dd",
              "display_value": "North America"
            },
            "campus": {
              "sys_id": "82b2a0cedb3650106c731dcd139619e9",
              "display_value": "California Campus"
            },
            "building": {
              "sys_id": "94e264cedb3650106c731dcd13961919",
              "display_value": "CAL-B1"
            },
            "floor": {
              "sys_id": "2f554296dbba10106c731dcd139619ed",
              "display_value": "Floor 2"
            },
            "area": null,
            "capacity": "16",
            "reservable_quantity": null,
            "location_type": {
              "sys_id": "20713b83eb512010b89bfdfc9c522899",
              "display_value": "Room",
              "name": "Room"
            },
            "order": null,
            "requires_check_in": null,
            "is_reservable": "1",
            "tableName": "sn_wsd_core_room",
            "require_approval": false,
            "standard_services": [
              {
                "sys_id": "abd0c18edb7650106c731dcd13961965",
                "name": "Projector screen",
                "short_description": "Connect laptop to screen (HDMI and DVI)",
                "font_awesome_icon": "fa-caret-square-o-right"
              }
            ],
            "reservable_purposes": [
              {
                "sys_id": "18f4c3cd1ba4e01051848489cc4bcb82",
                "name": "Board room",
                "short_description": null
              }
            ],
            "is_available": true,
            "reservations": [
              {
                "sys_id": "5fe65830874bc9106342b846dabb352b",
                "number": "WRES0001001",
                "location": {
                  "location": "fe1f744edb7650106c731dcd139619ca",
                  "timezone": {
                    "value": "US/Pacific",
                    "displayValue": "US/Pacific"
                  }
                },
                "configuration_item": null,
                "start": "2022-04-23T08:30:00Z",
                "end": "2022-04-23T09:30:00Z",
                "subject": null,
                "reservation_purpose": {
                  "value": "meeting",
                  "display_value": "Meeting"
                },
                "state": {
                  "value": "confirmed",
                  "display_value": "Confirmed"
                },
                "is_collided": false,
                "requested_for": {
                  "sys_id": "2de07e1887cb89106342b846dabb35fe",
                  "name": "Workplace User"
                }
              },
              {
                "sys_id": "af075c30874bc9106342b846dabb3572",
                "number": "WRES0001002",
                "location": {
                  "location": "fe1f744edb7650106c731dcd139619ca",
                  "timezone": {
                    "value": "US/Pacific",
                    "displayValue": "US/Pacific"
                  }
                },
                "configuration_item": null,
                "start": "2022-04-23T23:00:00Z",
                "end": "2022-04-24T00:00:00Z",
                "subject": null,
                "reservation_purpose": {
                  "value": "meeting",
                  "display_value": "Meeting"
                },
                "state": {
                  "value": "confirmed",
                  "display_value": "Confirmed"
                },
                "is_collided": false,
                "requested_for": {
                  "sys_id": "2de07e1887cb89106342b846dabb35fe",
                  "name": "Workplace User"
                }
              }
            ],
            "availableTimes": [
              [
                "2022-04-23 07:00:00",
                "2022-04-23 08:30:00"
              ],
              [
                "2022-04-23 09:30:00",
                "2022-04-23 23:00:00"
              ],
              [
                "2022-04-24 00:00:00",
                "2022-04-24 06:59:59"
              ]
            ],
            "is_favorite": false
          }
        ],
        "reservableContainers": [],
        "nextItemIndex": -1,
        "floorsOfSelectedBuilding": [
          {
            "sys_id": "2f554296dbba10106c731dcd139619ed",
            "display_value": "Floor 2",
            "external_id": null,
            "name": "Floor 2"
          }
        ]
      }
    }{
      "result": {
        "hasMore": false,
        "reservableUnits": [
          {
            "sys_id": "32f2a98adb7210106c731dcd13961972",
            "external_id": null,
            "wsd_email": null,
            "name": "B1-03-04",
            "title": "B1-03-04",
            "description": "Desk reserved for the Team-C. After 10am, free to reserve for everyone.",
            "image": {
              "sys_id": "57b42dcadb7210106c731dcd13961945",
              "link": "57b42dcadb7210106c731dcd13961945.iix"
            },
            "number": "SPCE0009018",
            "site": {
              "sys_id": "b17220cedb3650106c731dcd1396197a",
              "display_value": "Western Europe"
            },
            "campus": {
              "sys_id": "44d2e0cedb3650106c731dcd13961988",
              "display_value": "Amsterdam Campus"
            },
            "building": {
              "sys_id": "9e0364cedb3650106c731dcd1396192b",
              "display_value": "AMS-B1"
            },
            "floor": {
              "sys_id": "5373a8cedb3650106c731dcd1396198a",
              "display_value": "Floor 3"
            },
            "area": {
              "sys_id": "410ff04edb7650106c731dcd13961973",
              "display_value": "Desks C1"
            },
            "capacity": "1",
            "reservable_quantity": null,
            "location_type": {
              "sys_id": "5f017383eb512010b89bfdfc9c5228c8",
              "display_value": "Workspace/Desk",
              "name": "Workspace/Desk"
            },
            "order": null,
            "requires_check_in": null,
            "is_reservable": "1",
            "tableName": "sn_wsd_core_space",
            "require_approval": false,
            "is_available": true,
            "reservations": [],
            "availableTimes": [
              [
                "2023-01-04 07:00:00",
                "2023-01-04 17:00:00"
              ]
            ],
            "showPrivacyOption": false,
            "defaultPrivacyValue": false,
            "container": {
              "sys_id": "410ff04edb7650106c731dcd13961973",
              "display_value": "Desks C1",
              "floor": {
                "sys_id": "5373a8cedb3650106c731dcd1396198a",
                "display_value": "Floor 3",
                "name": "Floor 3"
              },
              "building": {
                "sys_id": "9e0364cedb3650106c731dcd1396192b",
                "display_value": "AMS-B1",
                "name": "AMS-B1"
              },
              "campus": {
                "sys_id": "44d2e0cedb3650106c731dcd13961988",
                "display_value": "Amsterdam Campus",
                "name": "Amsterdam Campus"
              },
              "capacity": 6,
              "image": {
                "sys_id": "d52c27b21b8e60103523ff751a4bcb49",
                "link": "d52c27b21b8e60103523ff751a4bcb49.iix"
              }
            },
            "includedInResult": true,
            "is_favorite": true
          }
        ],
        "reservableContainers": [
          {
            "sys_id": "410ff04edb7650106c731dcd13961973",
            "display_value": "Desks C1",
            "floor": {
              "sys_id": "5373a8cedb3650106c731dcd1396198a",
              "display_value": "Floor 3",
              "name": "Floor 3"
            },
            "building": {
              "sys_id": "9e0364cedb3650106c731dcd1396192b",
              "display_value": "AMS-B1",
              "name": "AMS-B1"
            },
            "campus": {
              "sys_id": "44d2e0cedb3650106c731dcd13961988",
              "display_value": "Amsterdam Campus",
              "name": "Amsterdam Campus"
            },
            "capacity": 6,
            "image": {
              "sys_id": "d52c27b21b8e60103523ff751a4bcb49",
              "link": "d52c27b21b8e60103523ff751a4bcb49.iix"
            }
          }
        ],
        "nextItemIndex": -1,
        "floorsOfSelectedBuilding": [
          {
            "sys_id": "5373a8cedb3650106c731dcd1396198a",
            "display_value": "Floor 3",
            "external_id": null,
            "name": "Floor 3"
          }
        ]
      }
    

    WSD Search - GET /api/sn_wsd_rsv/search/overlapping_reservation

    Determines whether an overlapping reservation exists based on the passed parameters.

    URL format

    Versioned URL: /api/sn_wsd_rsv/{api_version}/search/overlapping_reservation

    Default URL: /api/sn_wsd_rsv/search/overlapping_reservation

    Supported request parameters

    Table 13. Path parameters
    Name Description
    api_version Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest.

    Data type: String

    Table 14. Query parameters
    Name Description
    end Required. End time to use to check for overlapping reservations.

    Data type: String

    Format: YYY-MM-DDTHH:MM:SSZ

    recurring_pattern Details about the recurring pattern for the reservation.

    Data type: Object

    "recurring_pattern": {
      "duration": Number,
      "options": {Object},
      "repeats": "String",
      "startDate":"String"
    }
    recurring_pattern.duration Length of time to check.

    Data type: Number

    Unit: Seconds

    recurring_pattern.options Details about the options associated with the recurring reservation.

    Data type: Object

    "options": {
      "count": Number,
      "daysOfWeek": "String",
      "every": Number
    }
    recurring_pattern.options.count Number of times the pattern is repeated.

    Data type: Number

    recurring_pattern.options.daysOfWeek Days of the week to check for overlap.
    Valid values:
    • 1 = Monday
    • 2 = Tuesday
    • 3 = Wednesday
    • 4 = Thursday
    • 5 = Friday
    • 6 = Saturday
    • 7 = Sunday

    For example, to specify Tuesday, Thursday, and Friday, pass 245 (no delimiter).

    Data type: String

    recurring_pattern.options.every Pattern repeat interval to check. For example, if this value is 2, it checks the repeat pattern based on the selection in the repeats parameter, such as every other day or every other week.

    Data type: Number

    recurring_pattern.options.repeats Repeating pattern for the reservation overlap check.
    Possible values: (case-sensitive)
    • daily
    • monthly
    • weekly
    • yearly

    Data type: String

    reservable_id Sys_id of the reservable module to check for overlapping reservations. Located in the Reservable Module [sn_wsd_rsv_reservable_module] table.

    Data type: String

    reservation_id Sys_id of the reservation to check for overlap. This value is needed in the edit flow of multi/group parents. Located in the Workplace Reservation [sn_wsd_rsv_reservation] table.

    Data type: String

    shift_info_object Details of the shift to check for overlap.

    For additional information on shift-based reservations, see Enable shift-based reservation.

    Data type: Object

    "shift_info_object": {
      "applyToShift": Boolean,
      "shift": "String",
      "timezone": "String"
    }
    shift_info_object.applyToShift Flag that indicates whether shift-based reservations are enabled for the reservable module.
    Valid values:
    • true: Allow shift-based reservations.
    • false: Don't allow shift-based reservations.

    Data type: Boolean

    shift_info_object.shift Sys_id of the shift to associate with the reservation. Located in the Shift [sn_wsd_core_shift] table. If this parameter is passed in, the end parameter isn't required.

    Data type: String

    shift_info_object.timezone Time zone of the shift to check for overlap.

    Data type: String

    start Required. Start time to use to check for overlapping reservations.

    Data type: String

    Format: YYY-MM-DDTHH:MM:SSZ

    user_id Required. Sys_id of the user to check for overlapping reservations. Located in the User [sys_user] table.

    Data type: String

    Table 15. Request body parameters (XML or JSON)
    Name Description
    None

    Headers

    The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

    Table 16. Request headers
    Header Description
    Accept Data format of the response body. Supported types: application/json or application/xml.

    Default: application/json

    Table 17. Response headers
    Header Description
    None

    Status codes

    The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

    Table 18. Status codes
    Status code Description
    200 Successful. The request was successfully processed.
    400 Bad Request. A bad request type or malformed request was detected.
    401 Unauthorized. The user credentials are incorrect or have not been passed.
    404 Not found. The requested item wasn't found.
    500 Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error.

    Response body parameters (JSON or XML)

    Name Description
    results Details of the results of the overlap check.

    Data type: Object

    "results": {
      "isOverlapped": Boolean,
      "reservableId": "String"
    }
    results.isOverlapped Flag that indicates whether an overlapping reservation exists.

    Valid values:

    • true: Overlapping reservation exists.
    • false: Overlapping reservation doesn’t exist.

    Data type: Boolean

    results.reservableId In the case of a group reservation, the sys_id of the reservable for which the overlap occurs.

    Data type: String

    cURL request

    The following code example shows how to check for a reservation overlap for a specific user and for a specific period of time denoted by the start and end parameters.

    curl "http://instance.servicenow.com/api/sn_wsd_rsv/search/overlapping_reservation?user_id=2e617fecc3d365101e38b23bb00131ec&end=2023-06-19T8:00:00Z&start=2023-06-19T07:00:00Z" \
    --request GET \
    --header "Accept:application/json" \
    --user 'username':'password'

    Return results:

    {
    "results": {
      "isOverlapped": True,
      "reservableId": ""
      }
    }

    WSD Search - GET /api/sn_wsd_rsv/search/reservable

    Searches for available reservable items using a specified reservable model configuration.

    URL format

    Versioned URL: /api/sn_wsd_rsv/{api_version}/search/reservable

    Default URL: /api/sn_wsd_rsv/search/reservable

    Supported request parameters

    Table 19. Path parameters
    Name Description
    api_version Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest.

    Data type: String

    Table 20. Query parameters
    Name Description
    end Required. End time to use to search for available reservable modules. This value must be later than the value specified in the start parameter.

    Data type: String

    Format: UTC or local time (yyyy-mm-dd hh:mm:ss)

    exclude_reservablesList of one or more sys_ids of reservables to exclude from the search results. The table in which these sys_ids are located is specified in the reservable_table field in the Reservable Module [sn_wsd_rsv_reservable_module] table. It can be either the Space [sn_wsd_core_space] or Room [sn_wsd_core_room] table.

    Data type: String or Array

    ignore_same_day_validation Flag that indicates whether the reservation search ignores the change of the date validation between the start and end parameters.
    Valid values:
    • true: Ignore the change date validation.
    • false: Don't ignore the change date validation.

    Data type: Boolean

    Default: false

    include_reservable_purposes Flag that indicates whether to return the purpose of reserving the workplace location for each reservable in the return results. This information is located in the Reservable Purpose [sn_wsd_rsv_reservable_purpose] table.
    Valid values:
    • true: Return the reservable purposes.
    • false: Don't return the reservable purposes.

    Data type: Boolean

    Default: false

    include_reservations_within_days Flag that indicates whether to return all free slots of available times in the response for each reservable for the whole day.
    Valid values:
    • true: Return all free slots.
    • false: Don't return all free slots.

    Data type: Boolean

    Default: false

    include_standard_​services Flag that indicates whether to return the standard services information in the response.

    A standard service describes basic provisions available with a reservable workplace item when the reservation is made, such as white boards, additional monitors, and similar services. For additional information on standard services, see Standard services. This information is located in the Standard Service [sn_wsd_rsv_standard_service] table.

    Valid values:
    • true: Return the standard services information.
    • false: Don't return the standard services information.

    Data type: Boolean

    Default: false

    near_by_location_id Required if the rsv_path parameter is set to browse_near_a_person. Sys_id of the location to use in the encoded query. Located in the Workplace Location [sn_wsd_core_workplace_location] table.

    Data type: String

    neighborhood

    Required if the rsv_path parameter is set to browse_by_neighborhood.

    Only available if the Space Management (sn_wsd_spc_mgmt_neighborhood) plugin is activated.

    Sys_id of the neighborhood record to use in the encoded query. Located in the Neighborhood [sn_wsd_spcmgmt_neighborhood] table.

    For additional information on neighborhood space reservations, see Create neighborhood reservations.

    Data type: String

    next_item_index Index of next item to retrieve. Pass this parameter when paginating the return results.

    Data type: Number

    Default: 0

    page_size Maximum number of records to return in the return results.

    Data type: Number

    Default: 6

    q Required. Encoded query to use to filter the search return results. Within this query you must specify the building sys_id and you can specify parameters such as floor, area, capacity, standard services, and reservable_purposes.

    All passed parameters must be sys_ids, except for capacity, which is a number.

    For example: q=building=94e264cedb3650106c731dcd13961919​^floorINfc7368cedb3650106c731dcd13961902​^capacity>=1​^standard_services=55c0818edb7650106c731dcd13961904​^reservable_purposes=d6e5c7cd1ba4e01051848489cc4bcb81

    You can locate this information in the following tables:
    • Building: sn_wsd_core_building
    • Floor: sn_wsd_core_floor
    • Area: sn_wsd_core_area
    • Standard services: sn_wsd_rsv_standard_service
    • Reservable purposes: sn_wsd_rsv_reservable_purpose

    Data type: String

    reservable_module Required. Sys_id of the reservable module to include in the search. A reservable module groups similar types of workplace items. Located in the Reservable Module [sn_wsd_rsv_reservable_module] table.

    Data type: String

    reservation_ids Comma-separated list of existing reservation sys_ids. Pass this parameter if you want to edit the associated reservations. Located in the Workplace Reservation [sn_wsd_rsv_reservation] table.

    The time blocked for these sys_ids for the corresponding reservables are treated as available.

    Data type: String

    Default: None

    rsv_path Reservation path to apply to the search.
    Valid values:
    • browse_all: Search all reservables.
    • browse_by_area: Search the reservables near a specific location. An area identifier must be passed in the encoded query (q parameter).
    • browse_by_neighborhood: Search the reservables near the neighborhood specified in the neighborhood parameter.
    • browse_near_a_person: Search the reservables near the workplace location of the person specified in the near_by_location_id parameter.

    Data type: String

    Default: browse_all

    schedule_view_obj Details about the schedule view to return. Pass this object if you need 24-hour availability data for reservations that span more than one day. The return results will only contain available times and reservations for the specified date.

    For this functionality to work properly, the parameters ignore_same_day_validation and include_reservations_within_days must be set to true.

    Data type: Object

    "schedule_view_obj": {
      "schedule_view_date": "String",
      "timezone": "String"
    }
    schedule_view_obj.schedule_view_date Date for which to start returning reservation availability. This date must be in the time zone specified in the schedule_view_obj.timezone parameter.

    Data type: String

    Format: YYYY-MM-DD

    schedule_view_obj.timezone Building time zone to use to determine the reservation availability data to return. For example: US/Pacific.

    Data type: String

    start Required. Start time to use to search for available reservable modules. This value must be prior to the value specified in the end parameter.

    Data type: String

    Format: UTC or local time (yyyy-mm-dd hh:mm:ss)

    shift
    Sys_id of the shift to associate with the reservation. Located in the Shift [sn_wsd_core_shift] table. If this parameter is passed in, the end parameter isn't required.

    For additional information on shift-based reservations, see Enable shift-based reservation.

    Data type: String

    sort_by Desired sort order of the returned reservable items.
    Valid values:
    • a_z: Ascending sort order.
    • favorites_first: Sorted by the user's favorite workplace reservables first, ascending for the rest.
    • z_a: Descending sort order.

    Data type: String

    Default: a_z

    timezone Preferred time zone, such as Europe/Amsterdam.

    Data type: String

    Default: None

    Table 21. Request body parameters
    Name Description
    None

    Headers

    The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

    Table 22. Request headers
    Header Description
    Accept Data format of the request body. Supported types: application/json, application/xml or, text/xml.

    Default: application/json

    Table 23. Response headers
    Header Description
    None

    Status codes

    The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

    Table 24. Status codes
    Status code Description
    200 Successful. The request was successfully processed.
    401 Unauthorized. The user credentials are incorrect or have not been passed.
    404 Not found. The requested item wasn't found.
    500 Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error.

    Response body parameters

    Name Description
    result Return results for the specified search.

    Data type: Object

    "result": { 
      "filter": {Object},
      "hasMore": Boolean,
      "nextFavIndex": Number,
      "nextItemIndex": Number,
      "reservableContainers": [Array],
      "reservableUnits": [Array],
      "totalProcessed": Number
    }
    result.filter Details about the floors, standard services, and reservable purposes of the reservables. If the include_standard_services or include_reservable_purposes parameters are set to false, standard_services and reservable_purposes are empty arrays.

    Data type: Object

    "filter": {
       "floors": [Array],
       "reservable_purposes": [Array],
       "standard_services": [Array]
    }
    result.filter.floors
    Details about the floor on which the reservable is located.

    Located in the Floor [sn_wsd_core_floor] table.

    Data type: Object

    "floors": [
      {
        "display_value": "String",
        "sys_id": "String"
      }
    ]
    result.filter.floors.display_value Display number of the floor on which the reservable resides, such as 12.

    Data type: String

    result.filter.floors.sys_id Sys_id of the associated record in the Floor [sn_wsd_core_floor] table.

    Data type: String

    result.filter.standard_services Only populated if the include_standard_services parameter is set to true.
    Associated standard services, such as flip chart, projector screen, and whiteboard and markers.

    Data type: Array of Objects

    "standard_services": [
      {
        "font_awesome_icon": "String",
        "name": "String",
        "short_description": "String",
        "sys_id": "String"
      }
    ]
    result.filter.standard_services.​font_awesome_icon Name of the thumbnail icon associated with the standard service.

    Data type: String

    result.filter.standard_services.name Name of the standard service.

    Data type: String

    result.filter.standard_services.short_description Brief description of the standard service.

    Data type: String

    result.filter.standard_services.sys_id Sys_id of the standard service record. Located in the Standard Service [sn_wsd_rsv_standard_service] table.

    Data type: String

    result.filter.reservable_purposes Details about the purpose for reserving the associated reservable.

    Data type: Array of Objects

    "reservable_purposes": [
      {
        "name": "String",
        "short_description": "String",
        "sys_id": "String"
      }
    ]
    result.filter.reservable_purposes.name Name of the reservable.

    Data type: String

    result.filter.reservable_purposes.​short_description Brief description of the reservable.

    Data type: String

    result.filter.reservable_purposes.sys_id Sys_id of the reservable purpose record. Located in the Reservable Purpose [sn_wsd_rsv_reservable_purpose] table.

    Data type: String

    result.hasMore Flag that indicates whether there are more reservables in the return results.
    Possible values:
    • true: More reservables available.
    • false: No more reservables available.

    Data type: Boolean

    result.nextFavIndex Index for the next favorite reservable for the user. Use this value when paginating through the user's favorite reservables.

    Data type: Number

    result.nextItemIndex Index for the next reservable record to fetch. Use this value when paginating through reservable records.

    Data type: Number

    result.reservableContainers Only returned for reservable modules whose selection_type field is set to container. A container is a grouping of similar items, such as a group of desks.

    Data type: Array of Objects

    "reservableContainers": [
      {
        "building": {Object},
        "campus": {Object},
        "capacity": Number,
        "display_value": "String",
        "floor": {Object},
        "image": {Object}
        "sys_id": "String"
      } 
    ]
    result.reservableContainers.building Details about the building associated with the reservable container.

    Data type: Object

    "building": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.reservableContainers.building.​display_value Display value for the building.

    Data type: String

    result.reservableContainers.building.name Name of the building.

    Data type: String

    result.reservableContainers.building.sys_id Sys_id of the associated building record.

    Data type: String

    result.reservableContainers.campus
    Details about the campus on which the reservable is located.

    Located in the Campus [sn_wsd_core_campus] table.

    Data type: Object

    "campus": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.reservableContainers.campus.​display_value Display number of the Campus on which the reservable resides, such as East Bay.

    Data type: String

    result.reservableContainers.campus.name Name of the campus.

    Data type: String

    result.reservableContainers.campus.sys_id Sys_id of the associated record. Located in the Campus [sn_wsd_core_campus] table.

    Data type: String

    result.reservableContainers.capacity Maximum number of occupants for the reservable.

    Data type: Number

    result.reservableContainers.display_value Display value for the reservable container.

    Data type: String

    result.reservableContainers.floor Details about the floor associated with the reservable container.

    Data type: Object

    "floor": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.reservableContainers.floor.​display_value Display number of the floor on which the reservable resides, such as 12.

    Data type: String

    result.reservableContainers.floor.name Name of the floor on which the reservable resides.

    Data type: String

    result.reservableContainers.floor.sys_id Sys_id of the associated record in the Floor [sn_wsd_core_floor] table.

    Data type: String

    result.reservableContainers.image Link to an image that represents the layout for this reservable. Located in the Images [db_image] table.

    Data type: String

    result.reservableContainers.image.link Link to an image that represents the layout for this reservable. Located in the Images [db_image] table.

    Data type: String

    result.reservableContainers.image.sys_id Sys_id of the associated image record.

    Data type: String

    result.reservableContainers.sys_id Sys_id of the associated container record. The table in which this resides can be configured for any container type. By default it is in the Area [sn_wsd_core_area] table.

    Data type: String

    result.reservableUnits Details about the reservable units that match the specified search criteria. A reservable unit is a singe reservable item such as a desk or a chair.

    Data type: Object

    "reservableUnits": [
      {
        "area": "String",
        "availableTimes": [Array],
        "building": {Object},
        "campus": {Object},
        "capacity": "String",
        "defaultPrivacyValue": Boolean,
        "description": "String",
        "email": "String",
        "external_id": "String",
        "floor": {Object},
        "image": {Object},
        "includedInResult": Boolean,
        "is_available": Boolean,
        "is_favorite": Boolean,
        "is_reservable": "String",
        "is_reserved": Boolean,
        "is_selected": Boolean,
        "location_type": {Object},
        "name": "String",
        "number": "String",
        "order": "String",
        "require_approval": Boolean,
        "requires_check_in": Boolean,
        "reservable_quantity": "String",
        "showPrivacyOption": Boolean,
        "site": {Object},
        "standard_services": [Array],
        "tableName": "String",
        "title": "String",
        “reservable_purposes”: [Array],
        "reservations": [Array],
        "sys_id": "String"
      }
    ]
    result.reservableUnits.area Details about the area in which the reservable module is located. Located in the Area [sn_wsd_core_area] table.

    Data type: Object

    "area": {
      "display_value": "String",
      "sys_id": "String"
    }
    result.reservableUnits.area.display_value Display value for the reservable module area.

    Data type: String

    result.reservableUnits.area.sys_id Sys_id of the area record associated with the reservable.

    Data type: String

    result.reservableUnits.availableTimes List of dates/times that the associated reservable is available.

    Data type: Array

    result.reservableUnits.building Details about the building in which the reservable is located. Located in the Building [sn_wsd_core_building] table.

    Data type: Object

    "building": {
      "display_value": "String",
      "sys_id": "String"
    }
    result.reservableUnits.building.display_value Display value for the building.

    Data type: String

    result.reservableUnits.building.sys_id Sys_id of the associated building record.

    Data type: String

    result.reservableUnits.campus
    Details about the campus on which the reservable is located.

    Located in the Campus [sn_wsd_core_campus] table.

    Data type: Object

    "campus": {
      "display_value": "String",
      "sys_id": "String"
    }
    result.reservableUnits.campus.display_value Display number of the Campus on which the reservable resides, such as East Bay.

    Data type: String

    result.reservableUnits.campus.sys_id Sys_id of the associated record. Located in the Campus [sn_wsd_core_campus] table.

    Data type: String

    result.reservableUnits.capacity Maximum number of occupants for the reservable.

    Data type: Number

    result.reservableUnits.description Brief description of the reservable.

    Data type: String

    result.reservableUnits.email Email address for the reservable.

    Data type: String

    result.reservableUnits.external_id External ID of the reservable used to sync a space mapped in CMS. This value is only populated if there is a map associated with this location.

    Data type: String

    result.reservableUnits.floor
    Details about the floor on which the reservable is located.

    Located in the Floor [sn_wsd_core_floor] table.

    Data type: Object

    "floor": {
      "display_value": "String",
      "sys_id": "String"
    }
    result.reservableUnits.floor.display_value Display number of the floor on which the reservable resides, such as 12.

    Data type: String

    result.reservableUnits.floor.sys_id Sys_id of the associated record in the Floor [sn_wsd_core_floor] table.

    Data type: String

    result.reservableUnits.image Details about an image that represents the layout for the associated reservable.

    Located in the Images [db_image] table.

    "image": {
      "link": "String",
      "sys_id": "String"
    }
    result.reservableUnits.image.link Link to an image that represents the layout for this reservable. Located in the Images [db_image] table.

    Data type: String

    result.reservableUnits.image.sys_id Sys_id of the associated image record.

    Data type: String

    result.reservableUnits.includedInResult Flag that indicates whether the current reservable is included in the return results.
    Valid values:
    • true: Included in the return results.
    • false: Not included in the return results.

    Data type: Boolean

    result.reservableUnits.is_available Flag that indicates whether the reservable is available to reserve.
    Valid values:
    • true: Available to reserve.
    • false: Not available to reserve.

    Data type: Boolean

    result.reservableUnits.is_favorite Flag that indicates whether the reservable is flagged as one of the associated user's favorites.
    Valid values:
    • true: Favorite.
    • false: Not a favorite.

    Data type: Boolean

    result.reservableUnits.is_reservable Flag that indicates whether it's possible to reserve this reservable.
    Note:
    If the include_unavailable_items query parameter is set to true, unavailable locations are also returned. In this case, if a location is already reserved, then the is_available parameter is false, but is_reservable is true.
    Valid values:
    • true: Available to reserve.
    • false: Not available to reserve.

    Data type: Boolean

    result.reservableUnits.is_reserved Flag that indicates whether the reservable is already reserved.
    Valid values:
    • true: Available to reserve.
    • false: Already reserved.

    Data type: Boolean

    result.reservableUnits.is_selected Flag that indicates whether the reservable is already reserved.
    Valid values:
    • true: Available to reserve.
    • false: Already reserved.

    Data type: Boolean

    result.reservableUnits.location_type Details about the type of location of the reservable, such as workplace/desk, cafe, or gym.

    Located in the Workplace Location [sn_wsd_core_workplace_location] table.

    "location_type": {
      "display_value": "String",
      "name": "String",
      "sys_id": "String"
    }
    result.reservableUnits.location_type.​display_value Display value of the location type.

    Data type: String

    result.reservableUnits.location_type.name Name of the location type, such as basement or storage. Same as display value.

    Data type: String

    result.reservableUnits.location_type.sys_id Sys_id of the associated record in the Space Type [sn_wsd_core_space_type] table.

    Data type: String

    result.reservableUnits.name Name of the reservable.

    Data type: String

    result.reservableUnits.number Unique identifier of the reservable. This value is more human readable than the sys_id.

    Data type: String

    result.reservableUnits.order Order number for the reservable.

    Data type: Number

    result.reservableUnits.require_approval Flag that indicates whether reserving the reservable requires an approval.
    Possible values:
    • true: Approval required.
    • false: Approval isn't required.

    Data type: Boolean

    result.reservableUnits.requires_check_in Flag that indicates whether the reservable requires the user to check in.
    Valid values:
    • true: Check in required.
    • false: Check in isn't required.

    Data type: Boolean

    result.reservableUnits.reservable_purposes Details about the purpose for reserving the associated reservable.

    Data type: Array of Objects

    "reservable_purposes": [
      {
        "name": "String",
        "short_description": "String",
        "sys_id": "String"
      }
    ]
    result.reservableUnits.reservable_purposes.​name Name of the reservable.

    Data type: String

    result.reservableUnits.reservable_purposes.​short_description Brief description of the reservable.

    Data type: String

    result.reservableUnits.reservable_purposes.​sys_id Sys_id of the reservable purpose record. Located in the Reservable Purpose [sn_wsd_rsv_reservable_purpose] table.

    Data type: String

    result.reservableUnits.reservations Details about the reservations associated with the reservable. Only populated if the include_reservations_within_days query parameter is true and the reservation_ids parameter contains reservation IDs, meaning there are reservations already present for this reservable.

    Data type: Array of Objects

    "reservations": [
      {
        "configuration_item": "String",
        "end": "String",
        "is_collided": Boolean,
        "location": {Object},
        "number": "String",
        "requested_for": {Object},
        "reservation_purpose": {Object},
        "start": "String",
        "state": {Object},
        "subject": "String",
        "sys_id": "String"
      }
    ]
    result.reservableUnits.reservations.​configuration_item Configuration items corresponding to the reservation. Located in the cmdb_ci table.

    Data type: String

    result.reservableUnits.reservations.end Reservation end date and time.

    Data type: String

    Format: UTC: yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

    result.reservableUnits.reservations.is_collided Flag that indicates whether the reservation collides with the start and end time of the search.

    This indicates that the associated reservable location is already reserved for the specified search timespan.

    Possible values:
    • true: Collision.
    • false: No collision.

    Data type: Boolean

    result.reservableUnits.reservations.location Details about the location of the reservation.

    Data type: Object

    "location": {
      "location": "String",
      "timezone": {Object}
    }
    result.reservableUnits.reservations.location.​location Sys_id of the associated location record. Located in the Workplace Location [sn_wsd_core_workplace_location] table.

    Data type: String

    result.reservableUnits.reservations.location.​timezone Details about the time zone associated with the location.

    Data type: Object

    "timezone": {
      "displayValue": "String",
      "value": "String"
    }
    result.reservableUnits.reservations.location.​timezone.displayValue Display value for the time zone to which this location belongs.

    Data type: String

    result.reservableUnits.reservations.location.​timezone.value Internal value for the time zone to which this location belongs.

    Data type: String

    result.reservableUnits.reservations.number Unique identifier of the reservable. This value is more human readable than the sys_id.

    Data type: String

    result.reservableUnits.reservations.​requested_for Details about the person for whom the reservation was requested on behalf of.

    Data type: Object

    "requested_for": {
      "name": "String",
      "sys_id": "String"
    }
    result.reservableUnits.reservations.​requested_for.name Name of the user for whom the reservation was requested for.

    Data type: String

    result.reservableUnits.reservations.​requested_for.sys_id Sys_id of the user for whom the reservation is being requested. Located in the User [sys_user] table.

    Data type: String

    result.reservableUnits.reservations.​reservation_purpose Details about the purpose of the reservation.

    Data type: Object

    "reservation_purpose": {
      "display_value": "String,"
      "value": "String"
    }
    result.reservableUnits.reservations.​reservation_purpose.display_value Display value for the purpose of the reservation, such as Company meeting.

    Data type: String

    result.reservableUnits.reservations.​reservation_purpose.value Internal value for the purpose of the reservation, such as company_meeting.

    Data type: String

    result.reservableUnits.reservations.start Reservation start date and time.

    Data type: String

    Format: UTC - yyyy-mm-ddThh:mm:ssZ, such as 2021-02-05T18:00:00Z

    result.reservableUnits.reservations.state Details about the state of the reservation for the location.

    Data type: Object

    "state": {
      "display_value": "String,"
      "value": "String"
    }
    result.reservableUnits.reservations.state.​display_value Display value for the current state of the reservation, such as confirmed.

    Data type: String

    result.reservableUnits.reservations.state.value Internal value for the current state of the reservation, such as 2.

    Data type: String

    result.reservableUnits.reservations.subject Reservation's subject.

    Data type: String

    result.reservableUnits.reservations.sys_id Required.
    Sys_id of the reservation record. Located in the Workplace Reservation [sn_wsd_rsv_reservation] table.

    Data type: String

    result.reservableUnits.reservable_quantity Maximum number of times the associated reservable can be reserved for the same time. This value is used when assigning neighborhood spaces to an area.

    Data type: Integer

    result.reservableUnits.site Details about the site where the reservable resides.

    Located in the Site [sn_wsd_core_site] table.

    "site": {
      "display_value": "String",
      "sys_id": "String"
    }
    result.reservableUnits.site.display_value Display value of the site.

    Data type: String

    result.reservableUnits.site.sys_id Sys_id of the associated site record in the Site [sn_wsd_core_site] table.

    Data type: String

    result.reservableUnits.standard_services
    Associated standard services, such as flip chart, projector screen, and whiteboard and markers.

    Data type: Array of Objects

    "standard_services": [
      {
        "font_awesome_icon": "String",
        "name": "String",
        "short_description": "String",
        "sys_id": "String"
      }
    ]
    result.reservableUnits.standard_services.​font_awesome_icon Name of the thumbnail icon associated with the standard service.

    Data type: String

    result.reservableUnits.standard_services.name Name of the thumbnail icon associated with the standard service.

    Data type: String

    result.reservableUnits.standard_services.​short_description Brief description of the standard service.

    Data type: String

    result.reservableUnits.standard_services.sys_id Sys_id of the standard service record. Located in the Standard Service [sn_wsd_rsv_standard_service] table.

    Data type: String

    result.reservableUnits.sys_id Sys_id of the reservable record. Located in the Workplace Location [sn_wsd_core_workplace_location] table.

    Data type: String

    result.reservableUnits.tableName Name of the table in which the reservable record resides.

    Data type: String

    result.reservableUnits.title Title of the reservable.

    Data type: String

    result.totalProcessed Total number of records processed.

    Data type: Number

    cURL request

    This example shows how to search for reservables using this endpoint. Note: Line breaks have been added to the query parameters for easier reading.

    curl "https://instance.servicenow.com/api/sn_wsd_rsv/search/reservable?
    reservable_module=d9864189c3653910977396cb05013100&
    start=2023-10-12T10:30:00Z&
    end=2023-10-13T11:30:00Z&
    include_standard_services=true&
    include_reservable_purposes=true&
    include_reservations_within_days=true&
    include_unavailable_items=true&
    near_by_location_id=undefined&
    timezone=Europe/Paris&
    page_size=6&
    sort_by=a_z&
    view=schedule&
    rsv_path=browse_all&
    ignore_same_day_validation=true&
    schedule_view_obj={"schedule_view_date":"2023-10-12","timezone":"Europe/Paris"}&
    q=building=dea39b1977220110b3d7be377b5a9955\
    --request GET \
    --header "Accept:application/json" 
    --user "username":"password"

    Return results:

    {
      "result": {
        "hasMore": true,
        "reservableUnits": [
          {
            "sys_id": "fe1f744edb7650106c731dcd139619ca",
            "external_id": null,
            "email": null,
            "name": "Aspen",
            "title": "Aspen",
            "description": "A room with large windows, dark leather seats and a large wooden table.",
            "image": {
              "sys_id": "41c74902dbb650106c731dcd13961944",
              "link": "41c74902dbb650106c731dcd13961944.iix"
            },
            "number": "ROOM0000903",
            "site": {
              "sys_id": "628eec06db7650106c731dcd139619dd",
              "display_value": "North America"
            },
            "campus": {
              "sys_id": "82b2a0cedb3650106c731dcd139619e9",
              "display_value": "California Campus"
            },
            "building": {
              "sys_id": "94e264cedb3650106c731dcd13961919",
              "display_value": "CAL-B1"
            },
            "floor": {
              "sys_id": "2f554296dbba10106c731dcd139619ed",
              "display_value": "Floor 2"
            },
            "area": null,
            "capacity": "16",
            "reservable_quantity": null,
            "location_type": {
              "sys_id": "20713b83eb512010b89bfdfc9c522899",
              "display_value": "Room",
              "name": "Room"
            },
            "order": null,
            "requires_check_in": null,
            "is_reservable": "1",
            "tableName": "sn_wsd_core_room",
            "require_approval": false,
            "standard_services": [
              {
                "sys_id": "9b01458edb7650106c731dcd13961945",
                "name": "Flip chart",
                "short_description": "Flip chart with paper sheets",
                "font_awesome_icon": "fa-calendar-o"
              }
            ],
            "reservable_purposes": [
              {
                "sys_id": "18f4c3cd1ba4e01051848489cc4bcb82",
                "name": "Board room",
                "short_description": null
              }
            ],
            "is_available": true,
            "reservations": [
              {
                "sys_id": "5fe65830874bc9106342b846dabb352b",
                "number": "WRES0001001",
                "location": {
                  "location": "fe1f744edb7650106c731dcd139619ca",
                  "timezone": {
                    "value": "US/Pacific",
                    "displayValue": "US/Pacific"
                  }
                },
                "configuration_item": null,
                "start": "2022-04-23T08:30:00Z",
                "end": "2022-04-23T09:30:00Z",
                "subject": null,
                "reservation_purpose": {
                  "value": "meeting",
                  "display_value": "Meeting"
                },
                "state": {
                  "value": "confirmed",
                  "display_value": "Confirmed"
                },
                "is_collided": false,
                "requested_for": {
                  "sys_id": "2de07e1887cb89106342b846dabb35fe",
                  "name": "Workplace User"
                }
              }
            ],
            "availableTimes": [
              [
                "2022-04-23 07:00:00",
                "2022-04-23 08:30:00"
              ],
              [
                "2022-04-23 09:30:00",
                "2022-04-23 23:00:00"
              ]
            ],
           "is_reserved": true,
           "is_selected": true,
            "includedInResult": true,
            "is_favorite": false
          }
        ],
        "reservableContainers": [],
        "nextItemIndex": -1,
        "filter": {
          "floors": [],
          "standard_services": [
            {
              "sys_id": "9b01458edb7650106c731dcd13961945",
              "name": "Flip chart",
              "short_description": "Flip chart with paper sheets",
              "font_awesome_icon": "fa-calendar-o"
            }
          ],
          "reservable_purposes": [
            {
              "sys_id": "18f4c3cd1ba4e01051848489cc4bcb82",
              "name": "Board room",
              "short_description": null
            }
          ]
        },
        "totalProcessed": 2,
        "nextFavIndex": 0
      }
    }

    WSD Search - GET /api/sn_wsd_rsv/search/shift/{building_id}/{module_id}

    Returns an encoded query that you can use to search for available shifts in the Shift [sn_wsd_core_shift] table.

    Only applicable if the appy_to_shift field in the specified reservable module is enabled. Otherwise, the returned encoded query string will be empty.

    URL format

    Versioned URL: /api/sn_wsd_rsv/{api_version}/search/shift/{building_id}/{module_id}

    Default URL: /api/sn_wsd_rsv/search/shift/{building_id}/{module_id}

    Supported request parameters

    Table 25. Path parameters
    Name Description
    api_version Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest.

    Data type: String

    building_id Sys_id of the building to include in the search query. Located in the Building [sn_wsd_core_building] table.

    Data type: String

    module_id Sys_id of the reservable module to include in the search query. Located in the Reservable Module [sn_wsd_core_reservable_module] table. A reservable module groups similar types of workplace items, such a chairs or desks.

    Data type: String

    Table 26. Query parameters
    Name Description
    None
    Table 27. Request body parameters
    Name Description
    end_date Shift end date and time to include in the encoded query.

    Data type: String

    Format: yyyy-mm-dd hh:mm:ss

    start_date Shift start date and time to include in the encoded query.

    Data type: String

    Format: yyyy-mm-dd hh:mm:ss

    Headers

    The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

    Table 28. Request headers
    Header Description
    Accept Data format of the request body. Supported types: application/json, application/xml or, text/xml.

    Default: application/json

    Table 29. Response headers
    Header Description
    None

    Status codes

    The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

    Table 30. Status codes
    Status code Description
    200 Successful. The request was successfully processed.
    401 Unauthorized. The user credentials are incorrect or have not been passed.
    404 Not found. The requested item wasn't found.
    500 Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error.

    Response body parameters

    Name Description
    result Encoded query to use to acquire the specified available shifts.

    Data type: Object

    "result": { 
      "moduleHasShift" : Boolean,
      "query": "String"
    }
    moduleHasShift Flag that indicates whether the specified reservable module has shifts enabled.
    Valid values:
    • true: Reservable module has shifts enabled.
    • false: Reservable module does not has shifts enabled. No encoded query returned.

    Data type: Boolean

    query Encoded query to use to retrieve shift information for the specified reservable module.

    Data type: String

    cURL request

    The following code example shows how to use this endpoint to obtain a shift encoded query.

    curl "https://instance.servicenow.com/api/sn_wsd_rsv/search/shift/94e264cedb3650106c731dcd13961919/fc71f64fdb42a01097acc900399619a8?start_date=2022-04-23 16:00:00&end_date=2022-04-28 16:00:00"  \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"

    Return results:

    {
      "result": { 
        "moduleHasShift" : true,
        "query" : "active=true^state=2^building=94e264cedb3650106c731dcd13961919^building.is_reservable=true^building.active=true^floorISEMPTY^ORfloor.is_reservable=true^floorISEMPTY^ORfloor.active=true^start<=2022-04-26 16:00:00^ORstartISEMPTY^end>=2022-04-28 16:00:00^ORendISEMPTY^start<=2022-04-28 16:00:00^ORstartISEMPTY^end>=2022-04-28 16:00:00^ORendISEMPTY"
      }
    }

    WSD Search - POST /api/sn_wsd_rsv/search/availability_score

    Returns an availability score for reservable items for specified timeslots.

    URL format

    Versioned URL: /api/sn_wsd_rsv/{api_version}/search/availability_score

    Default URL: /api/sn_wsd_rsv/search/availability_score

    Supported request parameters

    Table 31. Path parameters
    Name Description
    api_version Optional. Version of the endpoint to access. For example, v1 or v2. Only specify this value to use an endpoint version other than the latest.

    Data type: String

    Table 32. Query parameters
    Name Description
    None
    Table 33. Request body parameters
    Name Description
    recurringPattern Required if startEndDateTimes parameter is not specified. Recurring pattern to use to search for reservables that are available for the specified recurring events.

    Data type: Object

    "recurringPattern": {
      "duration": Number,
      "label": "String",
      "options": {Object},
      "repeats": "String",
      "startDate": "String"
    }
    recurringPattern.duration Required. Length of time for which the reservable must be available.

    Data type: Number

    Unit: Milliseconds

    recurringPattern.label Description of the recurring pattern, such as Repeats daily, 5 times.

    Data type: String

    recurringPattern.options Availability options for the recurring reservation to search for.

    Data type: Object

    "options": {
      "count": Number,
      "daysOfWeek": "String",
      "endDate": "String",
      "every": Number
    }
    recurringPattern.options.count Required if endDate is not passed. If both are passed, count is used. Number of times to repeat the meeting pattern.

    Data type: Number

    recurringPattern.options.daysOfWeek Required if the recurringPattern.repeats parameter is set to weekly. Days of the week that the reservable is needed.
    Valid values:
    • 1 = Monday
    • 2 = Tuesday
    • 3 = Wednesday
    • 4 = Thursday
    • 5 = Friday
    • 6 = Saturday
    • 7 = Sunday

    For example, to specify Tuesday, Thursday, and Friday, pass 245 (no delimiter). If repeat is weekly, count is 5, and daysOfWeek is 245, then in the return results, the total is equal to count*daysOfWeek.length (5*3=15).

    Data type: String

    recurringPattern.options.endDate Required if recurringPattern.options.count is not passed. If both are passed, count is used. End date and time of the recurrence of the meeting, such as "2022-07-08T14:00:00Z".

    Data type: String

    Format: UTC yyyy-mm-dd hh:mm:ss

    recurringPattern.options.every Pattern repeat interval. For example, if this value is 2, repeat the pattern alternatively based on the selection in the repeats parameter, such as every other day or every other week.

    Data type: Number

    recurringPattern.repeats Required. Repeating pattern for the reservable.
    Valid values (case-sensitive):
    • daily
    • monthly
    • weekly
    • yearly

    Data type: String

    recurringPattern.startDate Required. Start date and time for the recurring pattern, such as "2022-07-08T14:00:00Z".

    Data type: String

    Format: UTC yyyy-mm-dd hh:mm:ss

    reservableIds Required. List of sys_ids of the reservables to include in the availability score. Located in the Workplace Location [sn_wsd_core_workplace_location] table.

    Data type: Array

    reservableType Required. Type of reservable to include in the availability score. Used to refine the search.
    Valid values (case-sensitive):
    • location
    • configuration_item

    Data type: String

    startEndDateTimes List of start and end dates and times in the user's timezone to search on.

    Data type: Array of Objects

    "startEndDateTimes": [
      {
        "end": "String",
        "start": "String"
      }
    ]

    Default: Must specify recurringPattern parameter.

    startEndDateTimes.end End date and time of the reservable.

    Data type: String

    Format: yyyy-mm-dd hh:mm:ss

    startEndDateTimes.start Start date and time of the reservable.

    Data type: String

    Format: yyyy-mm-dd hh:mm:ss

    Headers

    The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

    Table 34. Request headers
    Header Description
    Accept Data format of the response body. Supported types: application/json or application/xml.

    Default: application/json

    Content-Type Data format of the request body. Only supports application/json.
    Table 35. Response headers
    Header Description
    None

    Status codes

    The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

    Table 36. Status codes
    Status code Description
    200 Successful. The request was successfully processed.
    401 Unauthorized. The user credentials are incorrect or have not been passed.
    404 Not found. The requested item wasn't found.
    500 Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error.

    Response body parameters

    Name Description
    result Return results for the specified availability score.

    Data type: Object

    "result": {
      "reservable_sys_id": {
        "available": Number,
        "score": "String",
        "total": Number
      }
    }
    result.available Number of available reservables that met the specified search criteria.

    Data type: Number

    result.score Availability score. Number of available reservables over the total number of reservables that met the specified search criteria. For example, if available is 2 and total is 4, the score value is 2/4.

    Data type: String

    result.total Total number of reservables that met the specified search criteria.

    Data type: Number

    cURL request

    The following code example shows how to call this endpoint.

    curl "https://instance.servicenow.com/api/sn_wsd_rsv/search/availability_score" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      \"reservableType\": \"location\",
      \"reservableIds\": [
        \"fe1f744edb7650106c731dcd139619ca\",
        \"5eafb44edb7650106c731dcd13961943\"
      ],
      \"recurringPattern\": {
        \"duration\": 3600000,
        \"repeats\": \"daily\",
        \"options\": {
          \"count\": 150,
          \"daysOfWeek\": \"\",
          \"every\": 1
        },
        \"label\": \"Repeats daily, 5 times\",
        \"startDate\": \"2022-04-26T14:00:00Z\"
      },
      \"startEndDateTimes\": [
        {
          \"start\": \"2022-07-05 14:00:00\",
          \"end\": \"2022-07-05 15:00:00\"
        },
        {
          \"start\": \"2022-07-06 14:00:00\",
          \"end\": \"2022-07-06 15:00:00\"
        }
      ]
    }" \
    --user "username":"password"

    Return results:

    {
      "result": {
        "fe1f744edb7650106c731dcd139619ca": {
          "available": 2,
          "total": 2,
          "score": "2/2"
        },
        "5eafb44edb7650106c731dcd13961943": {
          "available": 2,
          "total": 2,
          "score": "2/2"
        }
      }