Units

Unit Information

Retrieve physical information about a unit

This can be used for retrieving a unit's descriptive information for listing distribution

This unit query should not be used for retrieving rates, fees, availability, etc and is only for the physical details of a unit.

Constraints:

  • Unit info can only be queried for a single property manager at a time
  • Unit info should only be queried for a single unit at a time
  • The provided propertyManagerId cannot be null
  • The provided unitId cannot be null

Sample Request

query {
    propertyManager(propertyManagerId: 1234) {
        unit(unitId: 645321) {
            unitId
            propertyManagerId
            marketingHeadline
            unitCode
            maxOccupancy
            numberOfFloors
            name
            unitType {
                value
                description
            }
            municipalityLicenseNumber
            livableArea {
                value
                measuringUnit
            }
            descriptions {
                type,
                text
            }
            rooms {
                numberOfBedRooms
                numberOfBathRooms
                numberOfLofts
                beds {
                    quantity
                    type
                }
                bedrooms {
                    type
                    beds {
                        quantity
                        type
                    }
                }
                bathrooms {
                    type
                    facilities
                }
            }
            selectedAmenities {
                categoryId
                categoryName
                id
                name
            }
            policies {
                isSmokingAllowed
                arePetsAllowed
                checkInTime
                checkOutTime
                minimumAge
                acceptedPaymentOptions
                acceptedPaymentCardTypes
            }
            safetyFeatures {
                enhancedCleaning,
                disinfectant,
                noPersonToPerson,
                daysBetweenGuests,
                exteriorLighting
                deadboltLock,
                smokeDetector {
                    installed,
                    location
                }
                carbonMonoxideDetector{
                    installed,
                    location
                }
                fireExtinguisher{
                    installed,
                    location
                }
                firstAidKit{
                    installed,
                    location
                }
                emergencyExitRoute,
                hospitalContact
                policeContact
                fireContact
                highTouchSurfaceWithDisinfectant
                towelsAndBeddingWash
                industryCleaningPractice
            }
            location {
                publicUnitAddress {
                    addressLine1
                    addressLine2
                    city
                    stateProvince {
                        name
                        isoCode
                    }
                    postalCode
                    country {
                        name
                        isoCode
                    }
                }
                publicDirections
                displayAddress
                showExactLocation
                latitude
                longitude
            }
            multiMedia {
                virtualTourURL
                mediaContent
                images  {
                    category
                    isPrimary
                    caption
                    description
                    sizes {
                        original {
                            url
                            fileName
                            width
                            height
                        }
                        large {
                            url
                            fileName
                            width
                            height
                        }
                    }
                }
            }
        }
    }
}

Sample Response

{
  "data": {
    "propertyManager": {
      "unit": {
        "unitId": 654321,
        "propertyManagerId": 1234,
        "marketingHeadline": "Breathtaking oceanviews with beach access path steps away.",
        "unitCode": "Foo",
        "maxOccupancy": 14,
        "numberOfFloors": 1,
        "name": "Foo-Bar",
        "unitType": {
          "value": "HOUSE",
          "description": "House"
        },
        "municipalityLicenseNumber": "",
        "livableArea": {
          "value": 2250,
          "measuringUnit": "SQUARE_FEET"
        },
        "descriptions": [
          {
            "type": "SHORT_DESCRIPTION",
            "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Auctor augue mauris augue neque. Auctor elit sed vulputate mi sit amet mauris commodo quis. "
          },
          {
            "type": "LONG_DESCRIPTION",
            "text": "Neque ornare aenean euismod elementum. Sit amet aliquam id diam maecenas. Suscipit adipiscing bibendum est ultricies integer quis auctor elit. Eu ultrices vitae auctor eu. Lacus sed turpis tincidunt id. Vitae sapien pellentesque habitant morbi tristique senectus et netus et. Est pellentesque elit ullamcorper dignissim cras. Quis lectus nulla at volutpat diam ut venenatis. Lobortis feugiat vivamus at augue eget arcu. Tincidunt vitae semper quis lectus nulla. Vel facilisis volutpat est velit egestas dui. Pulvinar elementum integer enim neque. Ultricies mi eget mauris pharetra et ultrices neque. Sit amet commodo nulla facilisi nullam vehicula ipsum. Curabitur gravida arcu ac tortor dignissim. Volutpat est velit egestas dui. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Mauris pellentesque pulvinar pellentesque habitant morbi tristique. Risus sed vulputate odio ut enim. Nisi lacus sed viverra tellus in. Auctor elit sed vulputate mi sit amet mauris. Aliquet bibendum enim facilisis gravida neque."
          }
        ],
        "rooms": {
          "numberOfBedRooms": 5,
          "numberOfBathRooms": 3.5,
          "numberOfLofts": 1,
          "beds": [
            {
              "quantity": 2,
              "type": "KING"
            },
            {
              "quantity": 2,
              "type": "QUEEN"
            },
            {
              "quantity": 2,
              "type": "TWINSINGLE"
            },
            {
              "quantity": 3,
              "type": "SOFABEDFUTON"
            }
          ],
          “bedrooms”: [
            {
              “type”: “BEDROOM”,
              “beds”: [
                {
                  "quantity": 1,
                  "type": "KING"
                },
                {
                  "quantity": 1,
                  "type": "QUEEN"
                }
              ]
            },
            {
              “type”: “BEDROOM”,
              “beds”: [
                {
                  "quantity": 1,
                  "type": "KING"
                }
              ]
            },
            {
              “type”: “OTHER”,
              “beds”: [
                {
                  "quantity": 1,
                  "type": "SOFABEDFUTON"
                }
              ]
            },
            {
              “type”: “LOFT”,
              “beds”: [
                {
                  "quantity": 1,
                  "type": "TWINSINGLE"
                }
              ]
            }
          ],
          “bathrooms”: [
            {
              “type”: “FULL”,
              “facilities”: [
                “TOILET”,
                “SHOWER”
              ]
            },
            {
              “type”: “HALF”,
              “facilities”: [
                “TOILET”
              ]
            }
          ]
        },
        "selectedAmenities": [
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144408",
              "name": "Full Kitchen"
          },
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144410",
              "name": "Refrigerator"
          },
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144411",
              "name": "Coffee Maker"
          },
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144412",
              "name": "Ice Maker"
          },
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144413",
              "name": "Microwave"
          },
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144414",
              "name": "Toaster"
          },
            ...
            Additional Amenities removed for brevity
        ],
        "policies": {
          "isSmokingAllowed": null,
          "arePetsAllowed": true,
          "checkInTime": "14:59",
          "checkOutTime": "12:00",
          "minimumAge": 25,
          "acceptedPaymentOptions": [
            "CREDIT_CARD"
          ],
          "acceptedPaymentCardTypes": [
            "VISA",
            "MASTERCARD",
            "AMEX",
            "DINERS_CLUB",
            "EN_ROUTE",
            "DISCOVER",
            "JCB"
          ]
        }
        "safetyFeatures": {
          "enhancedCleaning": false,
          "disinfectant": false,
          "noPersonToPerson": true,
          "daysBetweenGuests": 2,
          "exteriorLighting": false,
          "deadboltLock": false,
          "smokeDetector": {
            "installed": false,
            "location": null
          },
          "carbonMonoxideDetector": {
            "installed": false,
            "location": null
          },
          "fireExtinguisher": {
            "installed": false,
            "location": null
          },
          "firstAidKit": {
            "installed": true,
            "location": "kitchen"
          },
          "emergencyExitRoute": null,
          "hospitalContact": null,
          "policeContact": null,
          "fireContact": "555-7895",
          "highTouchSurfaceWithDisinfectant": false,
          "towelsAndBeddingWash": false,
          "industryCleaningPractice": "THIRDPARTY"
        },
        "location": {
          "publicUnitAddress": {
            "addressLine1": "1111 Expedia Group Way West,",
            "addressLine2": null,
            "city": "Seattle",
            "stateProvince": {
              "name": "Washington",
              "isoCode": "WA"
            },
            "postalCode": "98119",
            "country": {
              "name": "United States",
              "isoCode": "US"
            }
          },
          "publicDirections": null,
          "displayAddress": true,
          "showExactLocation": true,
          "latitude": 39.555101,
          "longitude": -123.765131
        },
        "multiMedia": {
          "virtualTourURL": null,
          "mediaContent": [],
          "images": [
            {
              "category": "EXTERIOR",
              "isPrimary": true,
              "caption": "View",
              "description": "",
              "sizes": {
                "original": {
                   "url": "https://pictures.escapia.stg/XXXX/98719/8132389978.jpg",
                  "fileName": "7113650101.jpg",
                  "width": 912,
                  "height": 684
                },
                "large": {
                   "url": "https://pictures.escapia.stg/XXXX/98719/8132389978.jpg",
                  "fileName": "5685200101.jpg",
                  "width": 640,
                  "height": 457
                }
              }
            },
            {
              "category": "EXTERIOR",
              "isPrimary": false,
              "caption": "Front ext",
              "description": "",
              "sizes": {
                "original": {
                   "url": "https://pictures.escapia.stg/XXXX/98719/8132389978.jpg",
                  "fileName": "8059440333.JPG",
                  "width": 4376,
                  "height": 3456
                },
                "large": {
                   "url": "https://pictures.escapia.stg/XXXX/98719/8132389978.jpg",
                  "fileName": "3976100333.jpg",
                  "width": 640,
                  "height": 457
                }
              }
            },
            ... Additional Images removed for brevity
          ]
        }
      }
    }
}

Rooms configurations: bedrooms and bathrooms

You can get the room setups for bedrooms and bathrooms instead of just the counts. This means you can retrieve what features are in each room and what type of room it is.

Please refer to the schema section to see the list of possible values for Bedroom Types, Bed Types, Bathroom Types, and Bathroom Facilities.

For more information on the user experience that agencies will use to input this information, please click here.

Sample request snippet

rooms {
    numberOfBedRooms
    numberOfBathRooms
    numberOfLofts
    beds {
        quantity
        type
    }
    bedrooms {
        type
        beds {
            quantity
            type
        }
    }
    bathrooms {
        type
        facilities
    }
}

Sample response snippet

"rooms": {
    "numberOfBedRooms": 2,
    "numberOfBathRooms": 1.5,
    “numberOfLofts”:1,
    "beds": [
      {
        "quantity": 2,
        "type": "KING"
      },
      {
        "quantity": 1,
        "type": "QUEEN"
      },
      {
        "quantity": 1,
        "type": "SOFABEDFUTON"
      },
      {
        "quantity": 1,
        "type": "TWINSINGLE"
      }
    ],
    “bedrooms”: [
      {
        “type”: “BEDROOM”,
        “beds”: [
          {
            "quantity": 1,
            "type": "KING"
          },
          {
            "quantity": 1,
            "type": "QUEEN"
          }
        ]
      },
      {
        “type”: “BEDROOM”,
        “beds”: [
          {
            "quantity": 1,
            "type": "KING"
          }
        ]
      },
      {
        “type”: “OTHER”,
        “beds”: [
          {
            "quantity": 1,
            "type": "SOFABEDFUTON"
          }
        ]
      },
      {
        “type”: “LOFT”,
        “beds”: [
          {
            "quantity": 1,
            "type": "TWINSINGLE"
          }
        ]
      }
    ],
    “bathrooms”: [
      {
        “type”: “FULL”,
        “facilities”: [
          “TOILET”,
          “SHOWER”
        ]
      },
      {
        “type”: “HALF”,
        “facilities”: [
          “TOILET”
        ]
      }
    ]
}

Using legacy values

Not all agencies have setup all of their units to have this configuration setup for bedrooms and bathrooms and may be relying on the legacy counts in some units. This means an agency may have set up their bedrooms but not their bathrooms, or they may have set up some of their units but not others, or they may not have set up anything at all.

To account for this, you will have to add additional logic to check if they have setup their units with the configuration of features in their rooms. If they have it setup, then you should use the values. If they have not set it up you should use the legacy values. Please make sure you test this case before going live with this endpoint.

rooms {
    numberOfBedRooms
    numberOfBathRooms
    numberOfLofts
    beds {
        quantity
        type
    }
}

These fields will provide the legacy values for counts of bedroom, bathrooms, and counts of each bed type.

Bedrooms

  • Bedrooms of type “BEDROOM” are the only type that will be included in the bedroom count as seen in the example above. All other bedroom types (LOFT, STUDIO, OTHER) will not be included in the bedroom count.
  • Bedrooms of type “STUDIO” are intended to indicate that the unit itself is of the studio format, meaning the living area and sleeping area are 1, like a studio apartment.

Bathrooms

  • Bathrooms of type “FULL” should contain at least a toilet and a shower or tub or combination tub/shower or jetted tub.
  • Bathrooms of type “HALF” should contain at least a toilet and does not contain a shower or tub or combination tub/shower or jetted tub.
  • Full bathrooms count as 1 bathroom and half bathrooms count as 0.5 in the bathroom count.

Please note, these are just the definitions, but that setup is not enforced in agency UI.

Retrieve the date that the unit was last updated

Currently, the lastUpdated field encompasses updates for all fields in the listing content

Sample Request

{
  propertyManager(propertyManagerId: 1234) {
    unit(unitId: 654321) {
      descriptions {
        text
        type
      }
      lastUpdated
      livableArea {
        measuringUnit
        value
      }
      location {
        displayAddress
        latitude
        longitude
        publicDirections
        publicUnitAddress {
          addressLine1
          addressLine2
          city
          country {
            isoCode
            name
          }
          postalCode
          stateProvince {
            isoCode
            name
          }
        }
        showExactLocation
      }
      marketingHeadline
      maxOccupancy
      multiMedia {
        images {
          caption
          category
          description
          isPrimary
          sizes {
            large {
              fileName
              height
              url
              width
            }
            original {
              fileName
              height
              url
              width
            }
          }
        }
        mediaContent
        virtualTourURL
      }
      municipalityLicenseNumber
      name
      numberOfFloors
      propertyManagerId
      rooms {
        bathrooms {
          facilities
          type
        }
      }
      safetyFeatures {
        carbonMonoxideDetector {
          installed
          location
        }
        daysBetweenGuests
        deadboltLock
        disinfectant
        emergencyExitRoute
        enhancedCleaning
        exteriorLighting
        fireContact
        fireExtinguisher {
          installed
          location
        }
        firstAidKit {
          installed
          location
        }
        highTouchSurfaceWithDisinfectant
        hospitalContact
        industryCleaningPractice
        noPersonToPerson
        policeContact
        smokeDetector {
          installed
          location
        }
        towelsAndBeddingWash
      }
      selectedAmenities {
        categoryId
        categoryName
        id
        name
      }
      unitCode
      unitId
      unitType {
        description
        value
      }
    }
  }
}

Sample Response

{
  "data": {
    "propertyManager": {
      "unit": {
        "unitId": 654321,
        "propertyManagerId": 1234,
        "marketingHeadline": "Breathtaking oceanviews with beach access path steps away.",
        "unitCode": "Foo",
        "lastUpdated": "2022-01-23T11:23:00Z",
        "maxOccupancy": 14,
        "numberOfFloors": 1,
        "name": "Foo-Bar",
        "unitType": {
          "value": "HOUSE",
          "description": "House"
        },
        "municipalityLicenseNumber": "",
        "livableArea": {
          "value": 2250,
          "measuringUnit": "SQUARE_FEET"
        },
        "descriptions": [
          {
            "type": "SHORT_DESCRIPTION",
            "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Auctor augue mauris augue neque. Auctor elit sed vulputate mi sit amet mauris commodo quis. "
          },
          {
            "type": "LONG_DESCRIPTION",
            "text": "Neque ornare aenean euismod elementum. Sit amet aliquam id diam maecenas. Suscipit adipiscing bibendum est ultricies integer quis auctor elit. Eu ultrices vitae auctor eu. Lacus sed turpis tincidunt id. Vitae sapien pellentesque habitant morbi tristique senectus et netus et. Est pellentesque elit ullamcorper dignissim cras. Quis lectus nulla at volutpat diam ut venenatis. Lobortis feugiat vivamus at augue eget arcu. Tincidunt vitae semper quis lectus nulla. Vel facilisis volutpat est velit egestas dui. Pulvinar elementum integer enim neque. Ultricies mi eget mauris pharetra et ultrices neque. Sit amet commodo nulla facilisi nullam vehicula ipsum. Curabitur gravida arcu ac tortor dignissim. Volutpat est velit egestas dui. Tincidunt tortor aliquam nulla facilisi cras fermentum odio eu. Mauris pellentesque pulvinar pellentesque habitant morbi tristique. Risus sed vulputate odio ut enim. Nisi lacus sed viverra tellus in. Auctor elit sed vulputate mi sit amet mauris. Aliquet bibendum enim facilisis gravida neque."
          }
        ],
        "lastUpdated": "2022-01-23T11:23:00Z",
        "rooms": {
          "numberOfBedRooms": 5,
          "numberOfBathRooms": 3.5,
          "numberOfLofts": 1,
          "beds": [
            {
              "quantity": 2,
              "type": "KING"
            },
            {
              "quantity": 2,
              "type": "QUEEN"
            },
            {
              "quantity": 2,
              "type": "TWINSINGLE"
            },
            {
              "quantity": 3,
              "type": "SOFABEDFUTON"
            }
          ],
          “bedrooms”: [
            {
              “type”: “BEDROOM”,
              “beds”: [
                {
                  "quantity": 1,
                  "type": "KING"
                },
                {
                  "quantity": 1,
                  "type": "QUEEN"
                }
              ]
            },
            {
              “type”: “BEDROOM”,
              “beds”: [
                {
                  "quantity": 1,
                  "type": "KING"
                }
              ]
            },
            {
              “type”: “OTHER”,
              “beds”: [
                {
                  "quantity": 1,
                  "type": "SOFABEDFUTON"
                }
              ]
            },
            {
              “type”: “LOFT”,
              “beds”: [
                {
                  "quantity": 1,
                  "type": "TWINSINGLE"
                }
              ]
            }
          ],
          “bathrooms”: [
            {
              “type”: “FULL”,
              “facilities”: [
                “TOILET”,
                “SHOWER”
              ]
            },
            {
              “type”: “HALF”,
              “facilities”: [
                “TOILET”
              ]
            }
          ]
        },
        "selectedAmenities": [
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144408",
              "name": "Full Kitchen"
          },
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144410",
              "name": "Refrigerator"
          },
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144411",
              "name": "Coffee Maker"
          },
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144412",
              "name": "Ice Maker"
          },
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144413",
              "name": "Microwave"
          },
          {
              "categoryId": "13517",
              "categoryName": "Kitchen",
              "id": "144414",
              "name": "Toaster"
          },
            ...
            Additional Amenities removed for brevity
        ],
        "policies": {
          "isSmokingAllowed": null,
          "arePetsAllowed": true,
          "checkInTime": "14:59",
          "checkOutTime": "12:00",
          "minimumAge": 25,
          "acceptedPaymentOptions": [
            "CREDIT_CARD"
          ],
          "acceptedPaymentCardTypes": [
            "VISA",
            "MASTERCARD",
            "AMEX",
            "DINERS_CLUB",
            "EN_ROUTE",
            "DISCOVER",
            "JCB"
          ]
        }
        "safetyFeatures": {
          "enhancedCleaning": false,
          "disinfectant": false,
          "noPersonToPerson": true,
          "daysBetweenGuests": 2,
          "exteriorLighting": false,
          "deadboltLock": false,
          "smokeDetector": {
            "installed": false,
            "location": null
          },
          "carbonMonoxideDetector": {
            "installed": false,
            "location": null
          },
          "fireExtinguisher": {
            "installed": false,
            "location": null
          },
          "firstAidKit": {
            "installed": true,
            "location": "kitchen"
          },
          "emergencyExitRoute": null,
          "hospitalContact": null,
          "policeContact": null,
          "fireContact": "555-7895",
          "highTouchSurfaceWithDisinfectant": false,
          "towelsAndBeddingWash": false,
          "industryCleaningPractice": "THIRDPARTY"
        },
        "location": {
          "publicUnitAddress": {
            "addressLine1": "1111 Expedia Group Way West,",
            "addressLine2": null,
            "city": "Seattle",
            "stateProvince": {
              "name": "Washington",
              "isoCode": "WA"
            },
            "postalCode": "98119",
            "country": {
              "name": "United States",
              "isoCode": "US"
            }
          },
          "publicDirections": null,
          "displayAddress": true,
          "showExactLocation": true,
          "latitude": 39.555101,
          "longitude": -123.765131
        },
        "multiMedia": {
          "virtualTourURL": null,
          "mediaContent": [],
          "images": [
            {
              "category": "EXTERIOR",
              "isPrimary": true,
              "caption": "View",
              "description": "",
              "sizes": {
                "original": {
                   "url": "https://pictures.escapia.stg/XXXX/98719/8132389978.jpg",
                  "fileName": "7113650101.jpg",
                  "width": 912,
                  "height": 684
                },
                "large": {
                   "url": "https://pictures.escapia.stg/XXXX/98719/8132389978.jpg",
                  "fileName": "5685200101.jpg",
                  "width": 640,
                  "height": 457
                }
              }
            },
            {
              "category": "EXTERIOR",
              "isPrimary": false,
              "caption": "Front ext",
              "description": "",
              "sizes": {
                "original": {
                   "url": "https://pictures.escapia.stg/XXXX/98719/8132389978.jpg",
                  "fileName": "8059440333.JPG",
                  "width": 4376,
                  "height": 3456
                },
                "large": {
                   "url": "https://pictures.escapia.stg/XXXX/98719/8132389978.jpg",
                  "fileName": "3976100333.jpg",
                  "width": 640,
                  "height": 457
                }
              }
            },
            ... Additional Images removed for brevity
          ]
        }
      }
    }
  }
}

Schema

Query

type Query {
    propertyManager(propertyManagerId: Int!): PropertyManager
}

types, inputs & enums

type PropertyManager {
    id: ID!
    propertyManagerId: Int!
    unit(unitId: Int!): Unit
}

type Unit {
    id: ID!
    unitId: Int! @deprecated(reason: "use classicUnitId instead")
    classicUnitId: Int!
    propertyManagerId: Int!
    unitCode: String
    location: UnitLocation
    marketingHeadline: String

    """
    In EVRN name is labelled as UnitShortName, in escapia it is  labelled as Friendly Unit Name, in VRBO it is labelled as Property Name.
    """
    name: String
    rooms: Rooms
    livableArea: AreaMeasurement
    maxOccupancy: Int
    numberOfFloors: Int
    lastUpdated: DateUTC
    municipalityLicenseNumber: String
    unitType: UnitTypeDetail
    multiMedia: UnitMultiMedia
    policies: LodgingPolicies
    descriptions: [UnitDescription!]
    features: UnitSelectedFeatures!
    safetyFeatures: SafetyFeatures
}

type UnitLocation {
    publicUnitAddress: Address
    publicDirections: String
    displayAddress: Boolean
    showExactLocation: Boolean
    latitude: Float
    longitude: Float
}

type Address {
    addressLine1: String
    addressLine2: String
    city: String
    stateProvince: AddressStateProvince
    postalCode: String
    country: AddressCountry
}

type AddressCountry {
    name: String
    isoCode: CountryIsoCode
}

type AddressStateProvince {
    name: String
    isoCode: StateProvinceIsoCode
}

type AreaMeasurement {
    value: Int!
    measuringUnit: AreaMeasuringUnit!
}

type UnitDescription {
    type: UnitDescriptionType
    text: String
}

enum UnitDescriptionType {
    SHORT_DESCRIPTION
    LONG_DESCRIPTION
}

type Bathroom {
    description: String
    facilities: [BathroomFacility!]
    name: String!
    type: BathroomType!
}

type Bed {
    quantity: Int!
    type: BedType!
}

type Bedroom {
    beds: [Bed!]
    description: String
    name: String!
    type: BedroomType!
}

type Country {
    name: String
    isoCode: String
}

interface Error {
    message: String!
    code: String!
}

type EscapiaError implements Error {
    message: String!
    code: String!
    category: String
    subcategory: String
    marker: String
    instanceId: String
}

type ItemLocation {
    installed: Boolean!
    location: String
}

type LodgingPolicies {
    isSmokingAllowed: Boolean
    arePetsAllowed: Boolean
    isSmokingAllowed: Boolean
    minimumAge: Int
    checkInTime: String
    checkOutTime: String
    acceptedPaymentOptions: [AcceptedPaymentOptions!]
    acceptedPaymentCardTypes: [PaymentCardType!]
}

type Rooms {
    bedrooms: [Bedroom!]
    bathrooms: [Bathroom!]
    numberOfBedRooms: Float
    numberOfBathRooms: Float
    numberOfLofts: Float
    bathroomsDescription: String
    bedroomsDescription: String
    beds: [Bed!]
}

type SafetyFeatures {
    enhancedCleaning: Boolean
    disinfectant: Boolean
    noPersonToPerson: Boolean
    daysBetweenGuests: Int
    exteriorLighting: Boolean
    deadboltLock: Boolean
    smokeDetector: ItemLocation
    carbonMonoxideDetector: ItemLocation
    fireExtinguisher: ItemLocation
    firstAidKit: ItemLocation
    emergencyExitRoute: String
    hospitalContact: String
    policeContact: String
    fireContact: String
    highTouchSurfaceWithDisinfectant: Boolean
    towelsAndBeddingWash: Boolean
    industryCleaningPractice: SafetyFeaturesIndustryCleaningPractice
}

type StateProvince {
    name: String
    isoCode: String
}

type UnitImage {
    category: UnitImageCategory
    isPrimary: Boolean
    caption: String
    description: String
    sizes: UnitImageSizes
}

type UnitImageDetail {
    fileName: String
    url: URL
    width: Int
    height: Int
}

input UnitImagesFilter {
    category: UnitImageCategory
    isPrimary: Boolean
    sizes: [UnitImageSizeEnum!]
}

type UnitImageSizes {
    original: UnitImageDetail
    thumbnail: UnitImageDetail
    standard: UnitImageDetail
    descriptive: UnitImageDetail
    large: UnitImageDetail
}

type UnitMultiMedia {
    images(filter: UnitImagesFilter): [UnitImage!]
    videos: [UnitVideo!]
    virtualTourURL: URL
    mediaContent: [String]
}

type UnitTypeDetail {
    value: UnitType
    description: String
}

type UnitVideo {
    url: URL!
}

enum BedroomType {
    BEDROOM
    STUDIO
    OTHER
}

enum BedType {
    BABYCRIB
    BUNKBED
    CHILDBED
    DOUBLE
    KING
    MURPHYBED
    QUEEN
    SOFABEDFUTON
    TWINSINGLE
    OTHER
}

enum BathroomFacility {
    BIDET
    COMBOTUBSHOWER
    JETTEDTUB
    OUTDOORSHOWER
    SHOWER
    TOILET
    TUB
}

enum BathroomType {
    FULL
    HALF
}

enum AcceptedPaymentOptions {
    CREDIT_CARD
}

enum AreaMeasuringUnit {
    SQUARE_FEET
}

enum UnitImageSizeEnum {
    ORIGINAL
    THUMBNAIL
    STANDARD
    DESCRIPTIVE
    LARGE
}

enum UnitImageCategory {
    EXTERIOR
    INTERIOR
    FLOORPLAN
    PANORAMIC
    SITEPLAN
    MAP
    OTHER
}

enum DayOfWeek {
    MONDAY
    TUESDAY
    WEDNESDAY
    THURSDAY
    FRIDAY
    SATURDAY
    SUNDAY
}

enum Distributors {
    VRBO
}

enum SafetyFeaturesIndustryCleaningPractice {
    """Croatian Tourism Association (HUT - Croatia)"""
    HUT

    """European Holiday Home Association (EHHA - Europe)"""
    EHHA

    """Intertek Cristal (3rd party expert - Global)"""
    THIRDPARTY

    """Reopening vacation rentals guide (DTV & DFV - Germany)"""
    DTV

    """Safe Travels (WTTC - Global)"""
    WTTC

    """SafeHome (VRMA & VRHP)"""
    VRMA

    """SafeStay (AHLA - USA)"""
    AHLA

    """Sanitary Protocol (UNPLV - France)"""
    UNPLV
}

enum UnitType {
    APARTMENT
    BARN
    BED_AND_BREAKFAST
    CABIN_BUNGALOW
    CAMPGROUND
    CASTLE
    CHALET
    CONDOMINIUM
    COTTAGE
    COUNTRY_HOUSE_CHATEAU
    DUPLEX
    ESTATE
    FARMHOUSE
    FOURPLEX
    GUEST_HOUSE_PENSION
    HOSTEL
    HOTEL
    HOUSE
    HOUSE_BOAT
    LODGE
    MILL
    MOBILE_HOME
    OTHER
    RECREATIONAL_VEHICLE
    TOWER
    TOWNHOUSE
    TRIPLEX
    VILLA
    YACHT
}

scalars

scalar URL

scalar StateProvinceIsoCode

scalar CountryIsoCode

"""Date of format YYYY-MM-DD"""
scalar Date

scalar DateUTC

""" Available card types: 'VISA', 'MASTERCARD', 'AMEX', 'DINERS_CLUB', 'EN_ROUTE', 'DISCOVER', 'JCB' """
scalar PaymentCardType