# List accommodation properties

Returns the Booking.com property inventory as a newline-delimited JSON (NDJSON) stream, one property object per line. Each record carries static content such as names, addresses, categories, images, ratings, and policies. API consumers use it to build and refresh a local copy of the inventory.

## Parameters
- languages (required): a single BCP-47 language code (e.g. fr, en-gb). Localizable fields such as name, description, location.city, and location.province are returned in this language.
- updated_since (optional): an ISO-8601 UTC timestamp with millisecond precision (e.g. 2026-04-20T00:00:00.000Z). When set, only properties changed at or after this instant are returned (delta sync). When omitted, the full inventory is returned.
- image_size (optional): the size token applied to every image URL. One of thumbnail, thumbnail_large, standard, or large. Defaults to standard.

## Response protocol
Each line is one complete JSON object. A data row carries the property fields:


{"property_id":1377102,"name":"Grand Central Hotel","description":"Featuring air-conditioned accommodation with a balcony, the property offers a private pool.","category":"hotel","number_of_rooms":1,"images":[{"url":"https://q-xx.bstatic.com/xdata/images/hotel/max500/681992303.jpg?k=&o=","type":"main"}],"language":"en-gb","updated_at":"2026-07-06T14:21:56.000Z","location":{"country":"nl","latitude":52.3702,"longitude":4.8952,"street_address":"Prins Hendrikkade 59","city":"Amsterdam","postal_code":"1012 AD","province":"North Holland"},"ratings":{"star_rating":5.0,"is_star_rating_estimated":false,"guest_review_score":8.6,"guest_review_count":1243},"policies":{"check_in_start_time":"15:00","check_in_end_time":"23:00","check_out_start_time":"07:00","check_out_end_time":"11:00","is_instant_bookable":true},"links":{"booking_url":"https://www.booking.com/hotel/nl/grand-central.html?aid=343802","booking_deep_link_url":"https://www.booking.com/hotel/nl/grand-central.html?aid=343802&utm_medium=deeplink"},"status":{"property_status":"open","last_active_date":"2026-07-07"}}


The final line is a completion marker:


{"_control":"complete","data_row_count":4055137}


Every line may carry a _control field that marks the line type:
- Data rows use "_control":"data". This is the default and is omitted to reduce response size, so a line with no _control field is a data row.
- The final line is the completion marker, "_control":"complete". It reports data_row_count, the number of data rows emitted.

To confirm the stream is complete, match data_row_count against the number of data rows received. If the completion marker is absent, the stream was truncated and the response must be discarded.

> Preview version: temporary constraints (subject to change without notice)
>
> This endpoint is a preview version. Only one language per request is currently supported; requesting more than one returns HTTP 400. An API consumer that needs several languages sends one request per language, in parallel.

## Errors
400 Bad Request with a JSON error body is returned for invalid input: more than one languages entry, an unsupported image_size, or a malformed updated_since timestamp.

Endpoint: POST /inventory/properties
Version: 1.2.1
Security: BearerAuth

## Request fields (application/json):

  - `languages` (array)
    Exactly one BCP-47 language code. Localizable fields are returned in this language. More than one language is not currently supported and returns HTTP 400.
    Example: ["en-gb"]

  - `updated_since` (string)
    Optional ISO-8601 UTC timestamp with millisecond precision. When set, only properties changed at or after this instant are returned (delta sync); when omitted, the full inventory is returned.
    Example: "2026-04-20T00:00:00.000Z"

  - `image_size` (string)
    Size token applied to every image URL:
- thumbnail: 100×100, square, center-cropped
- thumbnail_large: 300×300, square, center-cropped
- standard: up to 500px on the longest side (default)
- large: up to 1280px on the longest side
    Enum: "thumbnail", "thumbnail_large", "standard", "large"

## Response 200 fields (application/x-ndjson):

  - `property_id` (integer)
    Booking.com property identifier.
    Example: 1377102

  - `name` (string)
    Property name, localized to the requested language.
    Example: "Grand Central Hotel"

  - `description` (string)
    Free-text property description, localized to the requested language. Always present.
    Example: "Featuring air-conditioned accommodation with a balcony, the property offers a private pool."

  - `category` (string)
    Accommodation type of the property, as a lowercase snake_case token.
    Enum: "apartment", "hostel", "hotel", "motel", "resort", "bed_and_breakfast", "ryokan", "farm_stay", "holiday_park", "villa", "camping", "boat", "guest_house", "inn", "aparthotel", "holiday_home", "lodge", "homestay", "country_house", "tented_camp", "capsule_hotel", "love_hotel", "riad", "chalet", "japanese_style_business_hotel", "gite", "sanatorium", "cruise", "student_accommodation"

  - `number_of_rooms` (integer)
    Number of bookable rooms or units. Most inventory is single-unit (apartments and holiday homes), so 1 is the most common value.
    Example: 1

  - `images` (array)
    Property images on the Booking.com image CDN, each with its URL and type. Populated for ~98.6% of properties; omitted when the property has no image.

  - `images.url` (string)
    Image URL on the Booking.com image CDN, with the requested image_size applied.
    Example: "https://q-xx.bstatic.com/xdata/images/hotel/max500/681992303.jpg?k=<sig>&o="

  - `images.type` (string)
    Image type. Currently always "main".
    Example: "main"

  - `language` (string)
    BCP-47 language code the localizable fields are returned in (echoes the request).
    Example: "en-gb"

  - `updated_at` (string)
    ISO-8601 UTC timestamp of the last change to this property record.
    Example: "2026-07-06T14:21:56.000Z"

  - `location` (object)
    Geographic location of the property.

  - `location.country` (string)
    ISO 3166-1 alpha-2 country code.
    Example: "nl"

  - `location.latitude` (number)
    Latitude in decimal degrees.
    Example: 52.3702

  - `location.longitude` (number)
    Longitude in decimal degrees.
    Example: 4.8952

  - `location.street_address` (string)
    Street address, localized to the requested language.
    Example: "Prins Hendrikkade 59"

  - `location.city` (string)
    City name, localized to the requested language.
    Example: "Amsterdam"

  - `location.postal_code` (string)
    Postal or ZIP code.
    Example: "1012 AD"

  - `location.province` (string)
    Province or state, localized to the requested language.
    Example: "North Holland"

  - `ratings` (object)
    Star rating and guest review aggregates.

  - `ratings.star_rating` (number)
    Official star rating from 1.0 to 5.0. Unrated properties (e.g. many apartments) use 0.0, not null.
    Example: 5

  - `ratings.is_star_rating_estimated` (boolean)
    Whether the star rating is estimated by Booking.com rather than officially assigned. Always present.

  - `ratings.guest_review_score` (number)
    Average guest review score, from 1 to 10.
    Example: 8.6

  - `ratings.guest_review_count` (integer)
    Number of guest reviews the score is based on.
    Example: 1243

  - `policies` (object)
    Check-in/check-out times and bookability policies.

  - `policies.check_in_start_time` (string)
    Earliest check-in time, local to the property (HH:mm).
    Example: "15:00"

  - `policies.check_in_end_time` (string)
    Latest check-in time, local to the property (HH:mm).
    Example: "23:00"

  - `policies.check_out_start_time` (string)
    Earliest check-out time, local to the property (HH:mm).
    Example: "07:00"

  - `policies.check_out_end_time` (string)
    Latest check-out time, local to the property (HH:mm).
    Example: "11:00"

  - `policies.is_instant_bookable` (boolean)
    Whether the property can be booked instantly (no host confirmation).
    Example: true

  - `links` (object)
    Partner-facing links to the property.

  - `links.booking_url` (string)
    Partner-attributed link to the property page on Booking.com.
    Example: "https://www.booking.com/hotel/nl/grand-central.html?aid=343802"

  - `links.booking_deep_link_url` (string)
    Partner-attributed deep link that opens the property in the Booking.com app.
    Example: "https://www.booking.com/hotel/nl/grand-central.html?aid=343802&utm_medium=deeplink"

  - `status` (object)
    Lifecycle status of the property.

  - `status.property_status` (string)
    Lifecycle status of the property: open (bookable) or closed (not bookable).
    Enum: "open", "closed"

  - `status.last_active_date` (string)
    Date the property was last active in the feed, as an ISO date (YYYY-MM-DD).
    Example: "2026-07-07"

## Response 400 fields (application/json):

  - `errors` (array)
    List of errors that occurred during request processing.

  - `errors.id` (string)
    Machine-readable error identifier.
    Example: "invalid_parameter"

  - `errors.name` (string)
    Human-readable error name.
    Example: "Invalid Value"

  - `errors.message` (string)
    Detailed error message explaining what went wrong.
    Example: "The request contains an invalid parameter."

  - `request_id` (string)
    Unique identifier for this request, useful for debugging and support.
    Example: "req_abc123xyz"

  - `account_id` (string)
    Account ID that triggered request, useful for debugging and support.
    Example: "1234654"


