hotelumo
Read-only hotel availability, rooms, housekeeping, rates, extras, and aggregate stay operations.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"hotelumo": {
"url": "https://mcp.hotelumo.com/mcp"
}
}
}Remote endpoints
https://mcp.hotelumo.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
π’list_hotels(limit, offset)
List a bounded page of non-sensitive hotel metadata in the authenticated Hotelumo organization. Addresses, phone numbers, channel credentials, payment configuration, reminder configuration, and guest data are excluded.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"hotels": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"currency": {
"$ref": "#/properties/hotels/items/properties/name"
},
"locale": {
"$ref": "#/properties/hotels/items/properties/name"
},
"timezone": {
"$ref": "#/properties/hotels/items/properties/name"
},
"lastEditTime": {
"$ref": "#/properties/hotels/items/properties/name"
}
},
"required": [
"id",
"name",
"currency",
"locale",
"timezone",
"lastEditTime"
],
"additionalProperties": false
},
"maxItems": 100
},
"page": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"offset",
"returned",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"hotels",
"page"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_hotel(hotelId)
Get safe operational metadata for one organization-owned hotel. Contact details, addresses, integrations, credentials, payment configuration, reminders, and guest data are never returned.
Input Schema
{
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "24-character lowercase hexadecimal hotel id"
}
},
"required": [
"hotelId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"hotel": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"currency": {
"$ref": "#/properties/hotel/anyOf/0/properties/name"
},
"locale": {
"$ref": "#/properties/hotel/anyOf/0/properties/name"
},
"timezone": {
"$ref": "#/properties/hotel/anyOf/0/properties/name"
},
"countryCode": {
"$ref": "#/properties/hotel/anyOf/0/properties/name"
},
"checkInDefaultTime": {
"$ref": "#/properties/hotel/anyOf/0/properties/name"
},
"checkOutDefaultTime": {
"$ref": "#/properties/hotel/anyOf/0/properties/name"
},
"lastEditTime": {
"$ref": "#/properties/hotel/anyOf/0/properties/name"
}
},
"required": [
"id",
"name",
"currency",
"locale",
"timezone",
"countryCode",
"checkInDefaultTime",
"checkOutDefaultTime",
"lastEditTime"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"hotel"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_hotel_availability(hotelId, checkInDate, checkOutDate, adults, children, ...)
Review bounded, non-person-linked room-type availability and prices for one tenant-owned hotel and a stay of at most 30 nights. Amounts are minor currency units. Guest records, reservations, room assignments, access data, notes, payments, channel references, photos, free-text descriptions, and credentials are excluded.
Input Schema
{
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "24-character lowercase hexadecimal hotel id"
},
"checkInDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD check-in"
},
"checkOutDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD check-out"
},
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"children": {
"type": "integer",
"minimum": 0,
"maximum": 20
},
"infants": {
"type": "integer",
"minimum": 0,
"maximum": 20
}
},
"required": [
"hotelId",
"checkInDate",
"checkOutDate"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"search": {
"type": "object",
"properties": {
"checkInDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"checkOutDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"nights": {
"type": "integer",
"minimum": 1,
"maximum": 30
},
"adults": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"children": {
"type": "integer",
"minimum": 0,
"maximum": 20
},
"infants": {
"type": "integer",
"minimum": 0,
"maximum": 20
}
},
"required": [
"checkInDate",
"checkOutDate",
"nights",
"adults",
"children",
"infants"
],
"additionalProperties": false
},
"offers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"roomTypeId": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
{
"type": "null"
}
]
},
"roomTypeName": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"ratePlanId": {
"$ref": "#/properties/offers/items/properties/roomTypeId"
},
"ratePlanTitle": {
"$ref": "#/properties/offers/items/properties/roomTypeName"
},
"mealPlan": {
"$ref": "#/properties/offers/items/properties/roomTypeName"
},
"sellMode": {
"$ref": "#/properties/offers/items/properties/roomTypeName"
},
"availableRooms": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"nightlyRate": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
{
"type": "null"
}
]
},
"totalPrice": {
"$ref": "#/properties/offers/items/properties/nightlyRate"
},
"currency": {
"$ref": "#/properties/offers/items/properties/roomTypeName"
},
"nightlyRates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"price": {
"$ref": "#/properties/offers/items/properties/nightlyRate"
}
},
"required": [
"date",
"price"
],
"additionalProperties": false
},
"maxItems": 30
}
},
"required": [
"roomTypeId",
"roomTypeName",
"ratePlanId",
"ratePlanTitle",
"mealPlan",
"sellMode",
"availableRooms",
"nightlyRate",
"totalPrice",
"currency",
"nightlyRates"
],
"additionalProperties": false
},
"maxItems": 100
},
"offersAreTruncated": {
"type": "boolean"
}
},
"required": [
"search",
"offers",
"offersAreTruncated"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_hotel_schedule_summary(hotelId, dateFrom, dateTo)
Count tenant-owned reservations and active stays by UTC day for one hotel over at most 31 days. Returns aggregate operational counts onlyβnever reservation or allocation identifiers, individual stay records, guest data, room assignments, notes, documents, payments, access data, channel references, or credentials.
Input Schema
{
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "24-character lowercase hexadecimal hotel id"
},
"dateFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive UTC date as YYYY-MM-DD; defaults to today"
},
"dateTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive UTC date as YYYY-MM-DD; defaults to six days later"
}
},
"required": [
"hotelId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"hotel": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"timezone": {
"$ref": "#/properties/hotel/properties/name"
}
},
"required": [
"id",
"name",
"timezone"
],
"additionalProperties": false
},
"range": {
"type": "object",
"properties": {
"dateFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"dateTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"dateFrom",
"dateTo"
],
"additionalProperties": false
},
"reservationCount": {
"type": "integer",
"minimum": 0,
"maximum": 500
},
"reservationCountIsLowerBound": {
"type": "boolean"
},
"statusCounts": {
"type": "object",
"additionalProperties": {
"type": "integer",
"minimum": 0,
"maximum": 500
},
"propertyNames": {
"enum": [
"INQUIRY",
"REQUESTED",
"CONFIRMED",
"CHECKED_IN",
"CHECKED_OUT",
"NO_SHOW",
"CANCELED",
"UNSPECIFIED"
]
}
},
"days": {
"type": "array",
"items": {
"type": "object",
"properties": {
"day": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"arrivals": {
"type": "integer",
"minimum": 0,
"maximum": 500
},
"departures": {
"type": "integer",
"minimum": 0,
"maximum": 500
},
"inHouseReservations": {
"type": "integer",
"minimum": 0,
"maximum": 500
}
},
"required": [
"day",
"arrivals",
"departures",
"inHouseReservations"
],
"additionalProperties": false
},
"maxItems": 31
}
},
"required": [
"hotel",
"range",
"reservationCount",
"reservationCountIsLowerBound",
"statusCounts",
"days"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_room_types(hotelId, limit, offset)
List a bounded page of room-type inventory metadata in the authenticated organization. Photos, public descriptions, rate-plan internals, channel mappings, and credentials are excluded.
Input Schema
{
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"roomTypes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"hotelId": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
{
"type": "null"
}
]
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"maxGuests": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
},
"lastEditTime": {
"$ref": "#/properties/roomTypes/items/properties/name"
}
},
"required": [
"id",
"hotelId",
"name",
"maxGuests",
"lastEditTime"
],
"additionalProperties": false
},
"maxItems": 100
},
"page": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"offset",
"returned",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"roomTypes",
"page"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’get_room_type(roomTypeId)
Get bounded inventory metadata for one organization-owned room type. Free-text descriptions, facilities, photos, channel mappings, integrations, credentials, and arbitrary metadata are never returned.
Input Schema
{
"type": "object",
"properties": {
"roomTypeId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "24-character lowercase hexadecimal room-type id"
}
},
"required": [
"roomTypeId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"roomType": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"hotelId": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
{
"type": "null"
}
]
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"maxGuests": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100
},
{
"type": "null"
}
]
},
"lastEditTime": {
"$ref": "#/properties/roomType/anyOf/0/properties/name"
}
},
"required": [
"id",
"hotelId",
"name",
"maxGuests",
"lastEditTime"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"roomType"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_rooms(hotelId, roomTypeId, limit, offset)
List a bounded page of physical room status metadata in the authenticated organization. Reservation, occupant, guest, access-control, and channel data are excluded.
Input Schema
{
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"roomTypeId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"rooms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hotelId": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
{
"type": "null"
}
]
},
"roomTypeId": {
"$ref": "#/properties/rooms/items/properties/hotelId"
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"status": {
"$ref": "#/properties/rooms/items/properties/name"
},
"housekeepingStatus": {
"$ref": "#/properties/rooms/items/properties/name"
},
"lastEditTime": {
"$ref": "#/properties/rooms/items/properties/name"
}
},
"required": [
"hotelId",
"roomTypeId",
"name",
"status",
"housekeepingStatus",
"lastEditTime"
],
"additionalProperties": false
},
"maxItems": 100
},
"page": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"offset",
"returned",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"rooms",
"page"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_rate_plans(hotelId, roomTypeId, limit, offset)
List a bounded page of rate-plan pricing configuration for one organization-owned hotel. Channel-manager mappings, integration metadata, and credentials are excluded.
Input Schema
{
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "24-character lowercase hexadecimal hotel id"
},
"roomTypeId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": [
"hotelId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"ratePlans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"roomTypeId": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
{
"type": "null"
}
]
},
"title": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"basePrice": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
{
"type": "null"
}
]
},
"currency": {
"$ref": "#/properties/ratePlans/items/properties/title"
},
"mealPlan": {
"$ref": "#/properties/ratePlans/items/properties/title"
},
"sellMode": {
"$ref": "#/properties/ratePlans/items/properties/title"
},
"rateMode": {
"$ref": "#/properties/ratePlans/items/properties/title"
},
"isDefault": {
"type": "boolean"
}
},
"required": [
"id",
"roomTypeId",
"title",
"basePrice",
"currency",
"mealPlan",
"sellMode",
"rateMode",
"isDefault"
],
"additionalProperties": false
},
"maxItems": 100
},
"page": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"offset",
"returned",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"ratePlans",
"page"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_daily_rates(hotelId, ratePlanId, dateFrom, dateTo)
List the per-day price and stay restrictions of one organization-owned rate plan over a date range of at most 90 days. Guest, payment, channel, credential, and arbitrary metadata are excluded.
Input Schema
{
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "24-character lowercase hexadecimal hotel id"
},
"ratePlanId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "24-character lowercase hexadecimal rate-plan id"
},
"dateFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive YYYY-MM-DD start"
},
"dateTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive YYYY-MM-DD end"
}
},
"required": [
"hotelId",
"ratePlanId",
"dateFrom",
"dateTo"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"dailyRates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ratePlanId": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
{
"type": "null"
}
]
},
"date": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
]
},
"price": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
{
"type": "null"
}
]
},
"minStay": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 365
},
{
"type": "null"
}
]
},
"closedToArrival": {
"type": "boolean"
},
"closedToDeparture": {
"type": "boolean"
},
"stopSell": {
"type": "boolean"
}
},
"required": [
"ratePlanId",
"date",
"price",
"minStay",
"closedToArrival",
"closedToDeparture",
"stopSell"
],
"additionalProperties": false
},
"maxItems": 90
}
},
"required": [
"status",
"dailyRates"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’list_extras(hotelId, limit, offset)
List a bounded page of the active add-on / extra-service catalog in the authenticated organization. Guest charges, folio data, display colors, and credentials are excluded.
Input Schema
{
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"extras": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"price": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000000
},
{
"type": "null"
}
]
},
"currency": {
"$ref": "#/properties/extras/items/properties/name"
},
"taxable": {
"type": "boolean"
},
"category": {
"$ref": "#/properties/extras/items/properties/name"
}
},
"required": [
"name",
"price",
"currency",
"taxable",
"category"
],
"additionalProperties": false
},
"maxItems": 100
},
"page": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"offset",
"returned",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"extras",
"page"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}π’show_hotel_overview(hotelId)
Render a bounded tenant-scoped operational snapshot for one Hotelumo hotel. Reservation counts cover an aggregate next-seven-UTC-day sample and never expose individual stays. Guest identities, contact details, reservation or allocation identifiers, exact individual stay records, notes, documents, occupant ids, payments, access data, integration configuration, credentials, and arbitrary metadata are excluded.
Input Schema
{
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "24-character lowercase hexadecimal hotel id"
}
},
"required": [
"hotelId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"hotel": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$"
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"currency": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"locale": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"timezone": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"currency",
"locale",
"timezone"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"scheduleRange": {
"type": "object",
"properties": {
"dateFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"dateTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"dateFrom",
"dateTo"
],
"additionalProperties": false
},
"reservations": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"count",
"hasMore"
],
"additionalProperties": false
},
"rooms": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"count",
"hasMore"
],
"additionalProperties": false
},
"roomTypes": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"count",
"hasMore"
],
"additionalProperties": false
},
"reservationStatusCounts": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"INQUIRY",
"REQUESTED",
"CONFIRMED",
"CHECKED_IN",
"CHECKED_OUT",
"NO_SHOW",
"CANCELED",
"UNSPECIFIED"
]
},
"additionalProperties": {
"type": "integer",
"minimum": 0,
"maximum": 50
}
},
"roomStatusCounts": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"AVAILABLE",
"OUT_OF_ORDER",
"OUT_OF_SERVICE",
"UNSPECIFIED"
]
},
"additionalProperties": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
},
"housekeepingStatusCounts": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"CLEAN",
"DIRTY",
"INSPECTED",
"UNSPECIFIED"
]
},
"additionalProperties": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
}
},
"required": [
"hotel",
"scheduleRange",
"reservations",
"rooms",
"roomTypes",
"reservationStatusCounts",
"roomStatusCounts",
"housekeepingStatusCounts"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence