- query
- What you submitted for this row - a hotel URL or a bare slug - echoed back. The scraper writes it, so it is there even when nothing else is.
- id
- Booking's own identifier for the property. Stable across our runs of the same hotel, which makes it the key to join on rather than the name.
- name
- The property name.
- description
- The property blurb. In our rows it arrived truncated with a trailing ellipsis rather than in full.
- reviews
- The property's review count, as a string rather than a number. It moved between our runs, which is what you would expect of a live figure.
- rating
- The property's guest score, again as a string -
8.0 in our rows, on Booking's ten-point scale. - stars
- The star classification. Treat this one with suspicion. Across seven populated rows of the same hotel we saw 3, 5, 2, 4 and twice nothing at all, so on our evidence it is not a reliable property attribute.
- city
- The city. Uppercase in our rows, and empty on two of the seven.
- country
- The two-letter country code - and worth reading, because it tells you which national path the URL resolved under.
- address
- The street address as one string.
- latitude
- Decimal latitude, as a string. Filled on five of our seven populated rows.
- longitude
- Decimal longitude, same shape and the same gaps.
- detailed_rating
- The sub-scores as a JSON object - in our rows Staff, Facilities, Cleanliness, Comfort, Value for money, Location and Free Wifi. Parse it; do not read it as a number.
- checkin
- The check-in date the prices were quoted for, ISO format. Added automatically.
- checkout
- The check-out date, same format. In every row we hold it was the day after
checkin. - gallery
- A JSON array of image URLs at mixed sizes.
- room_N_type
- The room type's name - Economy Twin Room, Deluxe Suite and so on.
N counts up from 1, and the widest row we saw carried seven. - room_N_prices
- A JSON array of price objects, each with
currency, value and display. More than one, because a room type is usually offered on several rate plans. No currency is promised - ours varied between runs, so read the field rather than assuming. - room_N_options
- The occupancy each rate was offered at, as a JSON array - in our rows phrased like Max. people: 2.
- room_N_facilities
- A JSON array of the room's features. The first entry is usually the size, and the unit is not fixed: our runs returned both square feet and square metres for the same room.
- room_N_choices
- The booking conditions attached to the rates, as a JSON array - prepay, modification and breakfast terms in our rows. This is the column that tells you whether a low number is actually comparable.
- postal_code
- The postal code.
- price_range
- Intended to carry a price band for the property.
- url
- The Booking page the row was read from. Compare it against
query - if you submitted a bare slug, this is where it actually went.