Amadeus · Schema

HotelOffer

Hotel Offer

TravelTravel TechnologyReservationsFlightsHotelsAirlinesHospitalityTours and ActivitiesCars and TransfersDestination ContentItinerary ManagementTrip PlanningArtificial IntelligenceMarket Insights

Properties

Name Type Description
type string data type
id string Unique identifier of this offer. Might be valid for a temporary period only.
checkInDate string check-in date of the stay (hotel local date). Format YYYY-MM-DD The lowest accepted value is today date (no dates in the past).
checkOutDate string check-out date of the stay (hotel local date). Format YYYY-MM-DD The lowest accepted value is `checkInDate`+1.
roomQuantity string number of rooms (1-9)
rateCode string Special Rate - Provider Response Code (3 chars) Examples * RAC - Rack * BAR - Best Available Rate * PRO - Promotional * COR - Corporate * GOV - Government (qualified) * AAA - AAA (qualified) * BNB - B
rateFamilyEstimated object The estimated rate code family of the offer. Grouping various rate plan codes that belongs to the same family and indicates the type of the rate
category string Special Rate Category Examples: ASSOCIATION FAMILY_PLAN
description object Specific type to convey a list of string for specific information type ( via qualifier) in specific character set, or language
commission object
boardType string The included Breakfast/Meals
room object
guests object
price object price information
policies object Booking Rules
self string A self link to the object. Use this to refresh the Offer price
View JSON Schema on GitHub

JSON Schema

hotel-search-hotel-offer-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amadeus/refs/heads/main/json-schema/hotel-search-hotel-offer-schema.json",
  "title": "HotelOffer",
  "description": "Hotel Offer",
  "type": "object",
  "properties": {
    "type": {
      "title": "Type",
      "description": "data type",
      "type": "string",
      "enum": [
        "hotel-offer"
      ]
    },
    "id": {
      "description": "Unique identifier of this offer. Might be valid for a temporary period only.",
      "example": "TSXOJ6LFQ2",
      "type": "string",
      "minLength": 2,
      "maxLength": 100,
      "pattern": "^[A-Z0-9]*$"
    },
    "checkInDate": {
      "description": "check-in date of the stay (hotel local date). Format YYYY-MM-DD\nThe lowest accepted value is today date (no dates in the past).",
      "example": "2020-12-30",
      "type": "string",
      "format": "date"
    },
    "checkOutDate": {
      "description": "check-out date of the stay (hotel local date). Format YYYY-MM-DD\nThe lowest accepted value is `checkInDate`+1.",
      "example": "2020-12-31",
      "type": "string",
      "format": "date"
    },
    "roomQuantity": {
      "description": "number of rooms (1-9)",
      "example": "1",
      "type": "string"
    },
    "rateCode": {
      "description": "Special Rate - Provider Response Code (3 chars)\nExamples\n\n  * RAC - Rack\n\n  * BAR - Best Available Rate\n\n  * PRO - Promotional\n\n  * COR - Corporate\n\n  * GOV - Government (qualified)\n\n  * AAA - AAA (qualified)\n\n  * BNB - Bed and Breakfast\n\n  * PKG - Package\n\n  * TVL - Travel Industry\n\n  * SPC - Special Promo Rate\n\n  * WKD - Weekend\n\n  * CON - Convention\n\n  * SNR - Senior (Europe) (qualified)\n\n  * ARP - AARP - American Association of Retired People (50+) (qualified)\n\n  * SRS - Senior (qualified)\n\n  * ROR - Room Only Rate (no breakfast)\n\n  * FAM - Family\n\n  * DAY - Day rate",
      "example": "RAC",
      "type": "string",
      "minLength": 3,
      "maxLength": 3,
      "pattern": "^[A-Z0-9*]{3}$"
    },
    "rateFamilyEstimated": {
      "title": "HotelProduct_RateFamily",
      "description": "The estimated rate code family of the offer. Grouping various rate plan codes that belongs to the same family and indicates the type of the rate",
      "type": "object",
      "properties": {
        "code": {
          "description": "The estimated rate family (PRO,FAM,GOV)",
          "type": "string",
          "pattern": "[A-Z0-9]{3}",
          "example": "string-value"
        },
        "type": {
          "description": "The type of the rate (public=P, negotiated=N, conditional=C)",
          "type": "string",
          "pattern": "[PNC]",
          "example": "string-value"
        }
      }
    },
    "category": {
      "description": "Special Rate Category\nExamples:\n  ASSOCIATION\n  FAMILY_PLAN",
      "example": "FAMILY_PLAN",
      "type": "string"
    },
    "description": {
      "title": "QualifiedFreeText",
      "description": "Specific type to convey a list of string for specific information type ( via qualifier) in specific character set, or language",
      "type": "object",
      "properties": {
        "text": {
          "description": "Free Text",
          "example": "A description",
          "type": "string"
        },
        "lang": {
          "description": "see RFC 5646",
          "example": "fr-FR",
          "type": "string"
        }
      }
    },
    "commission": {
      "title": "HotelProduct_Commission",
      "type": "object",
      "properties": {
        "percentage": {
          "description": "Percentage of the commission paid to the travel seller. Value is between 0 and 100",
          "type": "string",
          "pattern": "^\\\\d+(\\\\.\\\\d+)?$",
          "example": 50
        },
        "amount": {
          "description": "Amount of the commission paid to the travel seller. The amount is always linked to the currency code of the offer",
          "type": "string",
          "pattern": "^\\\\d+(\\\\.\\\\d+)?$",
          "example": "199.50"
        },
        "description": {
          "title": "QualifiedFreeText",
          "description": "Specific type to convey a list of string for specific information type ( via qualifier) in specific character set, or language",
          "type": "object",
          "properties": {
            "text": {
              "description": "Free Text",
              "example": "A description",
              "type": "string"
            },
            "lang": {
              "description": "see RFC 5646",
              "example": "fr-FR",
              "type": "string"
            }
          }
        }
      }
    },
    "boardType": {
      "title": "BoardType",
      "description": "The included Breakfast/Meals",
      "type": "string",
      "enum": [
        "ROOM_ONLY",
        "BREAKFAST",
        "HALF_BOARD",
        "FULL_BOARD",
        "ALL_INCLUSIVE",
        "BUFFET_BREAKFAST",
        "CARIBBEAN_BREAKFAST",
        "CONTINENTAL_BREAKFAST",
        "ENGLISH_BREAKFAST",
        "FULL_BREAKFAST",
        "DINNER_BED_AND_BREAKFAST",
        "LUNCH",
        "DINNER",
        "FAMILY_PLAN",
        "AS_BROCHURED",
        "SELF_CATERING",
        "BERMUDA",
        "AMERICAN",
        "FAMILY_AMERICAN",
        "MODIFIED"
      ]
    },
    "room": {
      "title": "HotelProduct_RoomDetails",
      "type": "object",
      "properties": {
        "type": {
          "description": "Room type code, 3 character identifier of the room.\nThe first character identifies the room type category. \nThe second numeric character identifies the number of beds. \nThe third character identifies the bed type. \nThere is a special case where ROH is returned, this value stands for Run Of House.",
          "type": "string",
          "pattern": "^[A-Z0-9*]{3}$",
          "example": "string-value"
        },
        "typeEstimated": {
          "title": "HotelProduct_EstimatedRoomType",
          "description": "estimated room category, bed type and number of beds in the room. This information has been parsed from the room description, and is thus only provided for informational purposes",
          "type": "object",
          "properties": {
            "category": {
              "description": "Category code",
              "type": "string",
              "example": "string-value"
            },
            "beds": {
              "description": "Number of beds in the room (1-9)",
              "type": "integer",
              "format": "int32",
              "example": 1
            },
            "bedType": {
              "description": "Type of the bed",
              "type": "string",
              "example": "string-value"
            }
          }
        },
        "description": {
          "title": "QualifiedFreeText",
          "description": "Specific type to convey a list of string for specific information type ( via qualifier) in specific character set, or language",
          "type": "object",
          "properties": {
            "text": {
              "description": "Free Text",
              "example": "A description",
              "type": "string"
            },
            "lang": {
              "description": "see RFC 5646",
              "example": "fr-FR",
              "type": "string"
            }
          }
        }
      }
    },
    "guests": {
      "title": "HotelProduct_Guests",
      "type": "object",
      "properties": {
        "adults": {
          "description": "number of adult guests (1-9) per room",
          "example": 2,
          "type": "integer",
          "minimum": 1,
          "maximum": 9,
          "format": "int32"
        },
        "childAges": {
          "description": "Comma separated list of ages of each child at the time of check-out from the hotel. If several children have the same age, the ages will be repeated.",
          "type": "array",
          "items": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20,
            "format": "int32"
          }
        }
      }
    },
    "price": {
      "title": "HotelProduct_HotelPrice",
      "description": "price information",
      "type": "object",
      "properties": {
        "currency": {
          "description": "currency Code apply to all elements of the price",
          "type": "string",
          "example": "EUR"
        },
        "sellingTotal": {
          "description": "sellingTotal = Total + margins + markup + totalFees - discounts",
          "type": "string",
          "example": "199.50"
        },
        "total": {
          "description": "total = base + totalTaxes",
          "type": "string",
          "example": "199.50"
        },
        "base": {
          "type": "string",
          "example": "string-value"
        },
        "taxes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Tax"
          }
        },
        "markups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Markup"
          }
        },
        "variations": {
          "title": "HotelProduct_PriceVariations",
          "description": "Daily price variations and the average daily price (when available) is shown here",
          "type": "object",
          "properties": {
            "average": {
              "$ref": "#/definitions/Price"
            },
            "changes": {
              "description": "A collection of price periods if the daily price changes during the stay",
              "type": "array",
              "items": {
                "$ref": "#/definitions/HotelProduct_PriceVariation"
              }
            }
          }
        }
      }
    },
    "policies": {
      "title": "HotelProduct_PolicyDetails",
      "description": "Booking Rules",
      "type": "object",
      "properties": {
        "paymentType": {
          "title": "PaymentType",
          "description": "payment type. Guarantee means Pay at Check Out. Check the `methods` in `guarantee` or `deposit` or `prepay`.",
          "type": "string",
          "enum": [
            "GUARANTEE",
            "DEPOSIT",
            "PREPAY",
            "HOLDTIME"
          ]
        },
        "guarantee": {
          "title": "HotelProduct_GuaranteePolicy",
          "description": "the guarantee policy information applicable to the offer. It includes accepted payments",
          "type": "object",
          "properties": {
            "description": {
              "$ref": "#/definitions/QualifiedFreeText"
            },
            "acceptedPayments": {
              "$ref": "#/definitions/HotelProduct_PaymentPolicy"
            }
          }
        },
        "deposit": {
          "title": "HotelProduct_DepositPolicy",
          "description": "the deposit/prepay policy information applicable to the offer. It includes accepted payments, deadline and the amount due",
          "type": "object",
          "properties": {
            "amount": {
              "description": "Deposit-Prepay amount",
              "type": "string",
              "pattern": "^\\\\d+(\\\\.\\\\d+)?$",
              "example": "199.50"
            },
            "deadline": {
              "description": "The date and time of the deadline in ISO 8601[https://www.w3.org/TR/NOTE-datetime]. \n Example: 2010-08-14T13:00:00\n Please note that this value is expressed in the hotels local time zone",
              "type": "string",
              "format": "date-time",
              "example": "2026-08-15T10:30:00Z"
            },
            "description": {
              "$ref": "#/definitions/QualifiedFreeText"
            },
            "acceptedPayments": {
              "$ref": "#/definitions/HotelProduct_PaymentPolicy"
            }
          }
        },
        "prepay": {
          "title": "HotelProduct_DepositPolicy",
          "description": "the deposit/prepay policy information applicable to the offer. It includes accepted payments, deadline and the amount due",
          "type": "object",
          "properties": {
            "amount": {
              "description": "Deposit-Prepay amount",
              "type": "string",
              "pattern": "^\\\\d+(\\\\.\\\\d+)?$",
              "example": "199.50"
            },
            "deadline": {
              "description": "The date and time of the deadline in ISO 8601[https://www.w3.org/TR/NOTE-datetime]. \n Example: 2010-08-14T13:00:00\n Please note that this value is expressed in the hotels local time zone",
              "type": "string",
              "format": "date-time",
              "example": "2026-08-15T10:30:00Z"
            },
            "description": {
              "$ref": "#/definitions/QualifiedFreeText"
            },
            "acceptedPayments": {
              "$ref": "#/definitions/HotelProduct_PaymentPolicy"
            }
          }
        },
        "holdTime": {
          "title": "HotelProduct_HoldPolicy",
          "description": "the hold policy",
          "type": "object",
          "properties": {
            "deadline": {
              "description": "The date and time of the deadline in ISO 8601[https://www.w3.org/TR/NOTE-datetime]. \n Example: 2010-08-14T13:00:00\n Please note that this value is expressed in the hotels local time zone",
              "type": "string",
              "format": "date-time",
              "example": "2026-08-15T10:30:00Z"
            }
          },
          "required": [
            "deadline"
          ]
        },
        "cancellations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/HotelProduct_CancellationPolicy"
          }
        },
        "checkInOut": {
          "title": "HotelProduct_CheckInOutPolicy",
          "type": "object",
          "properties": {
            "checkIn": {
              "description": "Check-in From time limit in ISO-8601 format [http://www.w3.org/TR/xmlschema-2/#time]",
              "example": "13:00:00",
              "type": "string"
            },
            "checkInDescription": {
              "$ref": "#/definitions/QualifiedFreeText"
            },
            "checkOut": {
              "description": "Check-out Until time limit in ISO-8601 format [http://www.w3.org/TR/xmlschema-2/#time]",
              "example": "11:00:00",
              "type": "string"
            },
            "checkOutDescription": {
              "$ref": "#/definitions/QualifiedFreeText"
            }
          }
        }
      }
    },
    "self": {
      "description": "A self link to the object. Use this to refresh the Offer price",
      "example": "https://test.travel.api.amadeus.com/v2/shopping/hotel-offers/63A93695B58821ABB0EC2B33FE9FAB24D72BF34B1BD7D707293763D8D9378FC3",
      "type": "string"
    }
  },
  "required": [
    "id",
    "rateCode",
    "room",
    "price"
  ]
}