---
title: "Add, update or remove property-level facilities"
method: PUT
path: "/properties/{propertyId}"
tags: ["Manage property facilities"]
---

# Add, update or remove property-level facilities

`PUT /properties/{propertyId}`

Add or update single or multi-instances facilities using this endpoint. Try any of the three request examples in the specification.


To delete a facility or all instances of a multi-instance facility (for example: all parking facility), you can change the facility state to `MISSING`.

## Path parameters

- `propertyId` integer, required

## Request body

- PropertyFacility[]
  - `facility_id` integer, required — Property Facility ID
  - `instances` Instance[] — Array of instances
    - `instance_id` integer — Instance ID
    - `restaurant_details` RestaurantDetails
      - `name` string, required — Name
      - `guests_only` boolean — Open only to guests staying at the property
      - `accept_reservations` boolean — Reservations welcomed
      - `outdoor_seating` boolean — Outdoor seating
      - `meal_types_list` string[] — Dietary options. Corresponding legacy object in HDCN: Restaurant/TPA_Extensions/@DietaryOption
      - `ambiances_list` string[] — Ambiance types. Corresponding legacy object in HDCN: Restaurant/TPA_Extensions/@Ambiance
      - `open_for_meals_list` string[] — Open for which meals? Corresponding legacy object in HDCN: Restaurant/ @OfferBreakfast, @OfferBrunch, @OfferLunch, @OfferDinner
      - `cuisines_list` string[] — Cuisine. Corresponding legacy object in HDCN: Restaurant/CuisineCodes
      - `is_buffet` boolean — Buffet menu
      - `is_alacarte` boolean — A la carte menu
    - `parking_details` ParkingDetails — Parking Details
      - `name` string, required — Name
      - `parking_type` 'UNKNOWN_PARKING_TYPE' | 'PARKING_GARAGE' | 'PARKING_LOT' | 'STREET_PARKING' — Type of parking. Corresponding legacy object in HDCN: ParkingFeePolicy/@ParkingType
      - `parking_location` 'ON_SITE' | 'NEARBY', required — Where is this parking located?
      - `parking_access` 'ONLY_GUESTS' | 'GENERAL_PUBLIC', required — Who can park here? Corresponding legacy object in HDCN: ParkingFeePolicy/@ParkingProperty
      - `parking_reservation` 'NEEDED' | 'NOT_NEEDED' | 'NOT_POSSIBLE', required — Is reservation possible/required?
      - `max_height_m` number, double — Height limit for cars. Corresponding legacy object in HDCN: ParkingFeePolicy/@ParkingReservation
      - `has_valet_service` 'NOT_SPECIFIED' | 'PRESENT' | 'MISSING' — Valet service available
      - `has_onsite_staff` 'NOT_SPECIFIED' | 'PRESENT' | 'MISSING' — Staff at the parking area
      - `has_gated_parking` 'NOT_SPECIFIED' | 'PRESENT' | 'MISSING' — Gate at the entrance / exit
      - `has_security_cameras` 'NOT_SPECIFIED' | 'PRESENT' | 'MISSING' — Security camera
      - `has_ev_charging_station` 'NOT_SPECIFIED' | 'PRESENT' | 'MISSING' — Electric vehicle charging station
      - `has_accessible_parking_spots` 'NOT_SPECIFIED' | 'PRESENT' | 'MISSING' — Accessible parking
    - `payment_details` PaymentDetails — Payment Details
      - `charge_mode` 'UNKNOWN_CHARGE_MODE' | 'FREE' | 'PAID' | 'CHARGES_MAY_APPLY', required — Charge mode
      - `charge_details` ChargeDetails — Charge details
        - `price` number, double — Price, in property's currency
        - `frequency` 'UNKNOWN_FREQUENCY' | 'PER_STAY' | 'PER_MINUTE' | 'PER_HALF_HOUR' | 'PER_HOUR' | 'PER_DAY' | 'PER_WEEK' — Charging frequency
    - `swimming_pool_details` SwimmingPoolDetails
      - `name` string, required
      - `swimming_pool_type` 'UNKNOWN_POOL_TYPE' | 'INDOOR' | 'OUTDOOR' | 'INDOOR_AND_OUTDOOR', required — Swimming Pool Type
      - `availability_type` 'UNKNOWN_AVAILABILITY' | 'ALL_SEASON' | 'SEASONABLE' — Availability
      - `allowed_age_type` 'UNKNOWN_AGE_TYPE' | 'ADULTS_ONLY' | 'KIDS_ONLY' | 'ALL_AGES' — Age restrictions
      - `has_loungers` boolean — Loungers available
      - `has_water_slide` boolean — Water slide
      - `has_pool_bar` boolean — Pool bar
      - `has_pool_cover` boolean — Pool cover
      - `has_free_towels` boolean — Free towels
      - `has_pool_toys` boolean — Pool toys
      - `has_sun_umbrellas` boolean — Sun umbrellas
      - `has_fence_around_pool` boolean — Safety fence
      - `has_snake_trap` boolean — Has a snake trap
      - `is_shared` boolean — Is the swimming pool shared?
      - `is_rooftop` boolean — Is a rooftop pool?
      - `is_shallow_end` boolean — Is there a shallow end?
      - `is_infinity` boolean — Is an infinity pool?
      - `is_heated` boolean — Is a heated pool?
      - `is_salt_water` boolean — Is a salt water pool?
      - `is_pool_with_view` boolean — Scenic view
      - `is_plunge_pool` boolean — Is a plunge pool?
    - `internet_details` InternetDetails — Defines details of the Internet connection
      - `area` 'UNKNOWN_COVERAGE' | 'ALL_ROOMS' | 'SOME_ROOMS' | 'PUBLIC_AREAS' | 'BUSINESS_CENTER' | 'ENTIRE_PROPERTY', required — Connection location
      - `type` 'NONE' | 'WIRED' | 'WIFI', required — Connection type
      - `wifi_info` WifiInfo — Provides information about Wi-Fi connection
        - `network_name` string — Wi-fi network name (SSID)
        - `speed_download` number, double — Download speed, mbps
        - `speed_upload` number, double — Upload speed, mbps
    - `kids_pool_details` KidsPoolDetails
      - `swimming_pool_dimensions` SwimmingPoolDimensions
        - `length` number, double — Pool length
        - `width` number, double — Pool width
        - `depth_min` number, double — Pool minimal depth
        - `depth_max` number, double — Pool maximal depth
        - `unit` 'METER' — Measurement unit
      - `has_shallow_end` boolean — Is there a shallow end?
    - `on_site_details` OnSiteDetails — Facility location details
      - `onsite_type` 'DEFAULT' | 'ONSITE' | 'OFFSITE' — Facility location
    - `age_limit_details` AgeLimitDetails
      - `age_limit` 'AGE_1' | 'AGE_2' | 'AGE_3' | 'AGE_4' | 'AGE_5' | 'AGE_6' | 'AGE_7' | 'AGE_8' | 'AGE_9' | 'AGE_10' | 'AGE_11' | 'AGE_12' | 'NO_RESTRICTION' — Minimum age allowed
    - `schedule_details` ScheduleDetails — Defines a schedule for a Facility. Corresponding legacy object in HDCN: OperationTimes
      - `schedule` WeekTimeEntry[]
        - `from` Daytime, required — Definition of a time in the day
          - `hours` integer — Hours, in 24h format
          - `minutes` integer — Minutes
        - `to` Daytime, required — Definition of a time in the day
          - `hours` integer — Hours, in 24h format
          - `minutes` integer — Minutes
        - `day_of_week` 'UNKNOWN_DAY' | 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY', required — Day of the week. Corresponding legacy object in HDCN: OperationTimes/OperationTime/
    - `temporarily_closed_details` TemporarilyClosedDetails — Temporarily Closed Facility Details
      - `closed` TemporarilyClosedEntry[]
        - `start_date` StartTimestamp — Start date
          - `epoch_seconds` integer
        - `end_date` EndTimestamp — End date
          - `epoch_seconds` integer
    - `surcharge_details` SurchargeDetails — Surcharge Details
      - `surcharge_type` 'DEFAULT' | 'FREE' | 'PAID' — Surcharge type (free/paid)
    - `meal_details` MealDetails
      - `breakfast_types` string[]
      - `breakfast_food_item_types` string[]
      - `price` number, required
  - `state` 'MISSING' | 'PRESENT', required — Is facility Present/Missing?
  - `property_facility_meta` PropertyFacilityMeta — DEBUG ONLY. Contains Property Facility meta
    - `facility_id` integer — Booking.com Facility ID
    - `ota_hotel_amenity_type` integer — OTA HAC (HotelAmenityCode)
    - `booking_extended_legacy_code` integer — [Legacy] Booking.com Extended HAC Facility Code
    - `facility_name` string — Name
    - `allowed_details_list` DetailsType[] — List of applicable details types for this facility. Each item is the name of a details object that may be used in facility instances (for example: 'ScheduleDetails', 'SurchargeDetails').
    - `required_details_list` DetailsType[] — List of required details types for this facility. Each item is the name of a details object that must be provided in facility instances.
  - `facilityMetaType` PropertyFacilityMeta — DEBUG ONLY. Contains Property Facility meta
    - `facility_id` integer — Booking.com Facility ID
    - `ota_hotel_amenity_type` integer — OTA HAC (HotelAmenityCode)
    - `booking_extended_legacy_code` integer — [Legacy] Booking.com Extended HAC Facility Code
    - `facility_name` string — Name
    - `allowed_details_list` DetailsType[] — List of applicable details types for this facility. Each item is the name of a details object that may be used in facility instances (for example: 'ScheduleDetails', 'SurchargeDetails').
    - `required_details_list` DetailsType[] — List of required details types for this facility. Each item is the name of a details object that must be provided in facility instances.

## Response `200`

OK

- ApiResponseSuccessObject
  - `data` SuccessObject
    - `success` boolean
  - `warnings` ApiError[]
    - `message` string
    - `code` string
    - `details` object
  - `errors` ApiError[]
    - `message` string
    - `code` string
    - `details` object
  - `meta` ResponseMeta
    - `ruid` string

---

[API](https://skmtc.net/booking/apis/facilities-api.md) · [All operations](https://skmtc.net/booking/apis/facilities-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/booking/facilities-api/revisions/4073eeee9d1a/schema)
