Room Rates

Smart Feedopen in new window provides fresh, highly scalable data from web pages and existing APIs as a single feed for your customers or internal intelligence.


List Room Rates

Returns a list of room rates for a given hotel or set of hotels based on the check-in date and the number of nights to stay.

Code sample

GET/Pull/SmartFeed
curl -X GET 'https://hotels.automationcloud.net/Pull/SmartFeed' \
    -H 'Authorization: Basic QVBJX0tFWTo=' \
    -G \
    -d 'hotelIds=1ab2CD&hotelIds=44B85' \
    -d 'checkIn=2022-02-15' \
    -d 'nights=1' \
    -d 'guests=2' 

Success Responses

Response Schema

Status 200

{
  "type": "array",
  "minItems": 0,
  "items": {
    "type": "object",
    "properties": {
      "hotelId": {
        "type": "string",
        "maxLength": 200
      },
      "checkIn": {
        "type": "string",
        "format": "date"
      },
      "nights": {
        "type": "integer",
        "minimum": 1
      },
      "guests": {
        "type": "number",
        "default": 2
      },
      "rooms": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 200,
              "description": "The name of the room, as presented to users."
            },
            "id": {
              "type": "string",
              "description": "A room identifier, unique per hotel"
            },
            "description": {
              "type": "string"
            },
            "capacity": {
              "type": "integer",
              "description": "The maximum number of guests that a room can physically accommodate."
            },
            "occupancy": {
              "type": "integer",
              "description": "The maximum number of guests that a room is intended for."
            },
            "images": {
              "type": "array",
              "minItems": 0,
              "items": {
                "type": "object",
                "description": "A document accessible on the target website.",
                "properties": {
                  "type": {
                    "enum": [
                      "Link"
                    ]
                  },
                  "name": {
                    "type": "string",
                    "description": "The name or title of the document."
                  },
                  "url": {
                    "type": "string",
                    "format": "url",
                    "description": "Location of the resource."
                  }
                },
                "required": [
                  "type",
                  "name",
                  "url"
                ],
                "additionalProperties": false
              }
            },
            "canBeShared": {
              "type": "boolean"
            },
            "rates": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 200,
                    "description": "The name of the rate, as presented to users."
                  },
                  "id": {
                    "type": "string",
                    "description": "A rate identifier, unique per hotel"
                  },
                  "rule": {
                    "type": "string",
                    "description": "A rate rule ID, currently only 'member' or 'default'"
                  },
                  "description": {
                    "type": "string"
                  },
                  "occupancy": {
                    "type": "integer",
                    "description": "The number of guests that the rate is intended for."
                  },
                  "breakfastIncluded": {
                    "type": "boolean"
                  },
                  "lunchIncluded": {
                    "type": "boolean"
                  },
                  "dinnerIncluded": {
                    "type": "boolean"
                  },
                  "allInclusive": {
                    "type": "boolean"
                  },
                  "parkingIncluded": {
                    "type": "boolean"
                  },
                  "internetIncluded": {
                    "type": "boolean"
                  },
                  "refundable": {
                    "type": "object",
                    "description": "Hotel refund policy",
                    "properties": {
                      "available": {
                        "type": "boolean"
                      },
                      "untilDate": {
                        "type": "string",
                        "description": "Date until which refund is available. Format yyyy-MM-dd. Not present if available is false."
                      },
                      "untilTime": {
                        "type": "string",
                        "description": "Time until which refund is available. Format HH:mm. Not present if available is false."
                      }
                    },
                    "required": [
                      "available"
                    ]
                  },
                  "baseRate": {
                    "type": "object",
                    "description": "Basic price information.",
                    "properties": {
                      "currencyCode": {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 3,
                        "title": "ISO 4217 Currency Code",
                        "description": "ISO 4217 3-letter code representing the currency. Lowercase.",
                        "example": "usd",
                        "enum": [
                          "aed",
                          "afn",
                          "all",
                          "amd",
                          "ang",
                          "aoa",
                          "ars",
                          "aud",
                          "awg",
                          "azn",
                          "bam",
                          "bdt",
                          "bbd",
                          "bgn",
                          "bhd",
                          "bmd",
                          "bnd",
                          "bob",
                          "brl",
                          "bsd",
                          "bwp",
                          "byn",
                          "bzd",
                          "cad",
                          "chf",
                          "clp",
                          "cny",
                          "cop",
                          "crc",
                          "cup",
                          "cve",
                          "czk",
                          "djf",
                          "dkk",
                          "dop",
                          "dzd",
                          "egp",
                          "etb",
                          "eur",
                          "fjd",
                          "fkp",
                          "gbp",
                          "gel",
                          "ggp",
                          "ghs",
                          "gip",
                          "gtq",
                          "gyd",
                          "hkd",
                          "hnl",
                          "hrk",
                          "huf",
                          "idr",
                          "ils",
                          "imp",
                          "inr",
                          "iqd",
                          "irr",
                          "isk",
                          "jep",
                          "jmd",
                          "jod",
                          "jpy",
                          "kes",
                          "kgs",
                          "khr",
                          "kpw",
                          "krw",
                          "kwd",
                          "kyd",
                          "kzt",
                          "lak",
                          "lbp",
                          "lkr",
                          "lrd",
                          "mad",
                          "mkd",
                          "mmk",
                          "mnt",
                          "mop",
                          "mur",
                          "mvr",
                          "mxn",
                          "myr",
                          "mzn",
                          "nad",
                          "ngn",
                          "nio",
                          "nok",
                          "npr",
                          "nzd",
                          "omr",
                          "pab",
                          "pen",
                          "pgk",
                          "php",
                          "pkr",
                          "pln",
                          "pyg",
                          "qar",
                          "ron",
                          "rsd",
                          "rub",
                          "rwf",
                          "sar",
                          "sbd",
                          "scr",
                          "sek",
                          "sgd",
                          "shp",
                          "sos",
                          "srd",
                          "svc",
                          "syp",
                          "thb",
                          "tjs",
                          "tnd",
                          "try",
                          "ttd",
                          "tvd",
                          "twd",
                          "tzs",
                          "uah",
                          "ugx",
                          "usd",
                          "uyu",
                          "uzs",
                          "vef",
                          "ves",
                          "vnd",
                          "xaf",
                          "xcd",
                          "xof",
                          "yer",
                          "zar",
                          "zmw",
                          "zwd"
                        ]
                      },
                      "value": {
                        "type": "integer",
                        "description": "An integer in the smallest currency unit (100 for £1.00).",
                        "example": "12300"
                      }
                    },
                    "required": [
                      "currencyCode",
                      "value"
                    ],
                    "additionalProperties": false
                  },
                  "taxes": {
                    "type": "array",
                    "minItems": 0,
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "enum": [
                            "NamedPrice"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "description": "The name or title of the price."
                        },
                        "code": {
                          "type": {
                            "enum": [
                              "city-tax",
                              "vat",
                              "hotel-fee",
                              "resort-fee",
                              "service-fee",
                              "booking-fee",
                              "other"
                            ]
                          },
                          "description": "The tax code inferred based on the tax name."
                        },
                        "price": {
                          "type": "object",
                          "description": "Basic price information.",
                          "properties": {
                            "currencyCode": {
                              "type": "string",
                              "minLength": 3,
                              "maxLength": 3,
                              "title": "ISO 4217 Currency Code",
                              "description": "ISO 4217 3-letter code representing the currency. Lowercase.",
                              "example": "usd",
                              "enum": [
                                "aed",
                                "afn",
                                "all",
                                "amd",
                                "ang",
                                "aoa",
                                "ars",
                                "aud",
                                "awg",
                                "azn",
                                "bam",
                                "bdt",
                                "bbd",
                                "bgn",
                                "bhd",
                                "bmd",
                                "bnd",
                                "bob",
                                "brl",
                                "bsd",
                                "bwp",
                                "byn",
                                "bzd",
                                "cad",
                                "chf",
                                "clp",
                                "cny",
                                "cop",
                                "crc",
                                "cup",
                                "cve",
                                "czk",
                                "djf",
                                "dkk",
                                "dop",
                                "dzd",
                                "egp",
                                "etb",
                                "eur",
                                "fjd",
                                "fkp",
                                "gbp",
                                "gel",
                                "ggp",
                                "ghs",
                                "gip",
                                "gtq",
                                "gyd",
                                "hkd",
                                "hnl",
                                "hrk",
                                "huf",
                                "idr",
                                "ils",
                                "imp",
                                "inr",
                                "iqd",
                                "irr",
                                "isk",
                                "jep",
                                "jmd",
                                "jod",
                                "jpy",
                                "kes",
                                "kgs",
                                "khr",
                                "kpw",
                                "krw",
                                "kwd",
                                "kyd",
                                "kzt",
                                "lak",
                                "lbp",
                                "lkr",
                                "lrd",
                                "mad",
                                "mkd",
                                "mmk",
                                "mnt",
                                "mop",
                                "mur",
                                "mvr",
                                "mxn",
                                "myr",
                                "mzn",
                                "nad",
                                "ngn",
                                "nio",
                                "nok",
                                "npr",
                                "nzd",
                                "omr",
                                "pab",
                                "pen",
                                "pgk",
                                "php",
                                "pkr",
                                "pln",
                                "pyg",
                                "qar",
                                "ron",
                                "rsd",
                                "rub",
                                "rwf",
                                "sar",
                                "sbd",
                                "scr",
                                "sek",
                                "sgd",
                                "shp",
                                "sos",
                                "srd",
                                "svc",
                                "syp",
                                "thb",
                                "tjs",
                                "tnd",
                                "try",
                                "ttd",
                                "tvd",
                                "twd",
                                "tzs",
                                "uah",
                                "ugx",
                                "usd",
                                "uyu",
                                "uzs",
                                "vef",
                                "ves",
                                "vnd",
                                "xaf",
                                "xcd",
                                "xof",
                                "yer",
                                "zar",
                                "zmw",
                                "zwd"
                              ]
                            },
                            "value": {
                              "type": "integer",
                              "description": "An integer in the smallest currency unit (100 for £1.00).",
                              "example": "12300"
                            }
                          },
                          "required": [
                            "currencyCode",
                            "value"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "price"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "isShared": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "name",
                  "baseRate",
                  "taxes"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "id",
            "name",
            "rates"
          ],
          "additionalProperties": false
        }
      }
    }
  }
}

Response Examples

Status 200

[
  {
    "hotelId": "1ab2CD",
    "checkIn": "2022-02-15",
    "nights": 2,
    "guests": 2,
    "rooms": []
  }
]

An empty rooms array on a populated array of hotel objects indicates no availability for that hotel due to no online bookable rooms/rates.

[]

An empty array of hotel objects indicates no coverage for the hotels in your query (either the date is too far ahead, or there is an issue).

[
  {
    "hotelId": "14885",
    "checkIn": "2022-02-15",
    "nights": 1,
    "guests": 2,
    "rooms": [
      {
        "name": "Standard Double/Twin",
        "id": "C-DBL-2",
        "description": "Room description, potentially long poorly formatted plain text",
        "images": [
          {
            "type": "Link",
            "name": "Imgname",
            "url": "http://example.com/room/image1.jpg"
          }
        ],
        "capacity": 2,
        "rates": [
          {
            "name": "BAR - 5% discount",
            "id": "5PCTBAR",
            "baseRate": {
              "value": 16485,
              "currencyCode": "chf"
            },
            "taxes": [
              {
                "type": "NamedPrice",
                "name": "Tax name",
                "code": "tax-code",
                "price": {
                  "value": 16485,
                  "currencyCode": "chf"
                }
              }
            ]
          }
        ]
      },
      {
        "name": "Superior Double/Twin",
        "id": "D-DBLS-2",
        "capacity": 2,
        "rates": [
          {
            "name": "BAR - 5% discount",
            "id": "5PCTBAR",
            "baseRate": {
              "value": 16485,
              "currencyCode": "chf"
            },
            "taxes": []
          }
        ]
      }
    ]
  },
  {
    "hotelId": "1ab2CD",
    "checkIn": "2022-02-15",
    "nights": 1,
    "guests": 2,
    "rooms": []
  }
]

This is normal successful response with regular room rates.

[
  {
    "hotelId": "14885",
    "checkIn": "2022-02-15",
    "nights": 1,
    "guests": 2,
    "rooms": [
      {
        "name": "Superior Double/Twin",
        "id": "D-DBLS-2",
        "capacity": 2,
        "rates": [
          {
            "name": "BAR - 5% discount",
            "id": "5PCTBAR",
            "rule": "member",
            "baseRate": {
              "value": 16485,
              "currencyCode": "chf"
            },
            "taxes": []
          }
        ]
      }
    ]
  }
]

Member rates, also known as reward rates, conditional rates or private rates has additional `rule` field which indicates type of rate.

[
  {
    "hotelId": "14885",
    "checkIn": "2022-02-15",
    "nights": 1,
    "guests": 2,
    "rooms": [
      {
        "name": "Superior Double/Twin",
        "id": "D-DBLS-2",
        "capacity": 2,
        "rates": [
          {
            "name": "BAR - 5% discount",
            "id": "5PCTBAR",
            "rule": "member",
            "baseRate": {
              "value": 16485,
              "currencyCode": "chf"
            },
            "taxes": [],
            "breakfastIncluded": true,
            "lunchIncluded": false,
            "allInclusive": false
          },
          {
            "name": "BAR - ALL INCLUSIVE",
            "id": "5PCTBAR",
            "baseRate": {
              "value": 16485,
              "currencyCode": "chf"
            },
            "taxes": [],
            "allInclusive": true
          }
        ]
      }
    ]
  }
]

There's an example with several new board options included

Error Responses

Status 400

{
  "object": "error",
  "name": "RequestParametersValidationError",
  "message": "Invalid request parameters:\n    - must have required property 'nights'\n    - must have required property 'checkIn'",
  "details": {
    "messages": [
      "must have required property 'nights'",
      "must have required property 'checkIn'"
    ]
  }
}

When something goes wrong, the Smart Feed returns an error object. Most common reason for an error is a wrong request parameter. Here's an error with HTTP status "400".

Status 401

{
  "object": "error",
  "name": "EndpointAccessAuthorizationError",
  "message": "Access to the endpoint is not authorised",
  "details": {}
}

Authenticated user doesn’t have access to this endpoint.