booking-com Accommodations API

Endpoints to search for stays such as hotels and apartments, check availability, retrieve reviews, and get detailed property information.

OpenAPI Specification

booking-com-accommodations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Booking.com Car Rentals Accommodations API
  description: The Booking.com Car Rentals API is part of the Demand API and provides endpoints specific to the car rental segment of the connected trip experience. Developers can use it to search for available car rentals, retrieve car details, look up depots and suppliers, and access depot review scores. The API enables affiliate partners to integrate Booking.com's car rental inventory into their own platforms, offering users the ability to find and book vehicles as part of their travel planning workflow.
  version: '3.1'
  contact:
    name: Booking.com Developer Support
    url: https://developers.booking.com/demand/docs
  termsOfService: https://www.booking.com/content/terms.html
servers:
- url: https://demandapi.booking.com/3.1
  description: Production Server
security:
- bearerAuth: []
  affiliateId: []
tags:
- name: Accommodations
  description: Endpoints to search for stays such as hotels and apartments, check availability, retrieve reviews, and get detailed property information.
paths:
  /accommodations/search:
    post:
      operationId: searchAccommodations
      summary: Search accommodations
      description: Returns the cheapest available product for each accommodation that matches the specified search criteria. When location filters such as country or region ID are applied, results are sorted by Booking.com popularity instead of price. Results include product availability, price, and charges by default.
      tags:
      - Accommodations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccommodationSearchRequest'
      responses:
        '200':
          description: Successful search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccommodationSearchResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /accommodations/details:
    post:
      operationId: getAccommodationDetails
      summary: Get accommodation details
      description: Returns detailed information on all accommodation properties matching the given criteria including property descriptions, facilities, photos, location data, and policies.
      tags:
      - Accommodations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccommodationDetailsRequest'
      responses:
        '200':
          description: Accommodation details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccommodationDetailsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /accommodations/availability:
    post:
      operationId: checkAccommodationAvailability
      summary: Check accommodation availability
      description: Checks availability for a specific accommodation, returning detailed product availability, pricing, and extra charges. The checkin date must be within 500 days and checkout must be between 1 and 90 days after checkin.
      tags:
      - Accommodations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccommodationAvailabilityRequest'
      responses:
        '200':
          description: Availability information retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccommodationAvailabilityResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /accommodations/bulk-availability:
    post:
      operationId: checkBulkAccommodationAvailability
      summary: Check multiple accommodation availability
      description: Checks availability for multiple accommodations at once. Accepts an array of accommodation IDs along with dates, guest information, and optional filters for meal plan and cancellation type.
      tags:
      - Accommodations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkAvailabilityRequest'
      responses:
        '200':
          description: Bulk availability results retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkAvailabilityResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /accommodations/reviews:
    post:
      operationId: getAccommodationReviews
      summary: Get accommodation reviews
      description: Retrieves traveler reviews for specified accommodations, providing feedback associated with particular properties. Reviews can be filtered by reviewer parameters and languages.
      tags:
      - Accommodations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccommodationReviewsRequest'
      responses:
        '200':
          description: Reviews retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccommodationReviewsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /accommodations/reviews/scores:
    post:
      operationId: getAccommodationReviewScores
      summary: Get accommodation review scores
      description: Returns score distribution and score breakdown for the specified accommodations. The scores information can be filtered by reviewer parameters and languages.
      tags:
      - Accommodations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccommodationReviewScoresRequest'
      responses:
        '200':
          description: Review scores retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccommodationReviewScoresResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /accommodations/chains:
    post:
      operationId: getAccommodationChains
      summary: Get accommodation chains
      description: Retrieves information about hotel chains and brand affiliations for accommodations listed on Booking.com.
      tags:
      - Accommodations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                chain_ids:
                  type: array
                  description: List of chain IDs to retrieve
                  items:
                    type: integer
      responses:
        '200':
          description: Chain information retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccommodationChainsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    Photo:
      type: object
      description: Property photo
      properties:
        url:
          type: string
          format: uri
          description: Photo URL
        tag:
          type: string
          description: Photo category tag
    Price:
      type: object
      description: Price information
      properties:
        amount:
          type: number
          description: Price amount
        currency:
          type: string
          description: ISO 4217 currency code
    AccommodationReviewScoresResponse:
      type: object
      properties:
        result:
          type: array
          description: List of review score breakdowns
          items:
            $ref: '#/components/schemas/ReviewScores'
    Guests:
      type: object
      description: Guest allocation for the search or booking
      required:
      - number_of_adults
      - number_of_rooms
      properties:
        number_of_adults:
          type: integer
          description: Number of adult guests
          minimum: 1
          example: 2
        number_of_rooms:
          type: integer
          description: Number of rooms needed
          minimum: 1
          example: 1
        children_ages:
          type: array
          description: Ages of children traveling
          items:
            type: integer
            minimum: 0
            maximum: 17
    AccommodationReviewsResponse:
      type: object
      properties:
        result:
          type: array
          description: List of reviews
          items:
            $ref: '#/components/schemas/Review'
    AccommodationAvailabilityResponse:
      type: object
      properties:
        result:
          $ref: '#/components/schemas/AvailabilityResult'
    BulkAvailabilityResponse:
      type: object
      properties:
        result:
          type: array
          description: Availability results for each accommodation
          items:
            $ref: '#/components/schemas/AvailabilityResult'
    AvailabilityResult:
      type: object
      properties:
        accommodation_id:
          type: integer
          description: Unique identifier for the accommodation
        products:
          type: array
          description: Available products with pricing
          items:
            $ref: '#/components/schemas/Product'
    Facility:
      type: object
      description: Property facility or amenity
      properties:
        facility_id:
          type: integer
          description: Facility identifier
        name:
          type: string
          description: Facility name
    AccommodationDetail:
      type: object
      properties:
        accommodation_id:
          type: integer
          description: Unique identifier for the accommodation
        name:
          type: string
          description: Name of the accommodation
        description:
          type: string
          description: Detailed description of the accommodation
        address:
          type: string
          description: Street address
        city:
          type: string
          description: City name
        country:
          type: string
          description: Country code
        zip:
          type: string
          description: Postal/ZIP code
        location:
          $ref: '#/components/schemas/GeoLocation'
        star_rating:
          type: number
          description: Star rating of the accommodation
        review_score:
          type: number
          description: Average review score
        photos:
          type: array
          description: Property photos
          items:
            $ref: '#/components/schemas/Photo'
        facilities:
          type: array
          description: Available facilities
          items:
            $ref: '#/components/schemas/Facility'
        accommodation_type:
          type: integer
          description: Type identifier for the accommodation
        chain_id:
          type: integer
          description: Hotel chain identifier
    Product:
      type: object
      description: An available room or product at an accommodation
      properties:
        product_id:
          type: string
          description: Unique product identifier
        room_name:
          type: string
          description: Name of the room type
        meal_plan:
          type: string
          description: Included meal plan
        cancellation_type:
          type: string
          description: Cancellation policy type
        price:
          $ref: '#/components/schemas/Price'
    AccommodationAvailabilityRequest:
      type: object
      required:
      - accommodation_id
      - booker
      - checkin
      - checkout
      - guests
      properties:
        accommodation_id:
          type: integer
          description: Unique identifier for the accommodation
        booker:
          $ref: '#/components/schemas/Booker'
        checkin:
          type: string
          format: date
          description: Check-in date in yyyy-mm-dd format
        checkout:
          type: string
          format: date
          description: Check-out date in yyyy-mm-dd format
        guests:
          $ref: '#/components/schemas/Guests'
        extras:
          type: array
          description: Additional data to include
          items:
            type: string
            enum:
            - extra_charges
    AccommodationSearchResponse:
      type: object
      properties:
        result:
          type: array
          description: List of matching accommodations
          items:
            $ref: '#/components/schemas/AccommodationSearchResult'
    ErrorResponse:
      type: object
      description: Standard error response
      properties:
        errors:
          type: array
          description: List of errors
          items:
            type: object
            properties:
              code:
                type: string
                description: Error code
              message:
                type: string
                description: Human-readable error message
    AccommodationReviewScoresRequest:
      type: object
      required:
      - accommodation_ids
      properties:
        accommodation_ids:
          type: array
          description: Accommodation IDs to retrieve scores for
          items:
            type: integer
        language:
          type: string
          description: Language code to filter
    AccommodationDetailsResponse:
      type: object
      properties:
        result:
          type: array
          description: List of accommodation details
          items:
            $ref: '#/components/schemas/AccommodationDetail'
    BulkAvailabilityRequest:
      type: object
      required:
      - accommodations
      - booker
      - checkin
      - checkout
      - guests
      properties:
        accommodations:
          type: array
          description: List of accommodation IDs to check availability for
          items:
            type: integer
        booker:
          $ref: '#/components/schemas/Booker'
        checkin:
          type: string
          format: date
          description: Check-in date in yyyy-mm-dd format
        checkout:
          type: string
          format: date
          description: Check-out date in yyyy-mm-dd format
        guests:
          $ref: '#/components/schemas/Guests'
        extras:
          type: array
          description: Additional data to include
          items:
            type: string
        filters:
          type: object
          description: Filters for availability results
          properties:
            meal_plan:
              type: string
              description: Filter by meal plan type
            cancellation_type:
              type: string
              description: Filter by cancellation policy type
    AccommodationReviewsRequest:
      type: object
      required:
      - accommodation_id
      properties:
        accommodation_id:
          type: integer
          description: Accommodation to retrieve reviews for
        language:
          type: string
          description: Language code to filter reviews
        sort:
          type: string
          description: Sort order for reviews
        rows:
          type: integer
          description: Number of reviews to return
          maximum: 100
        offset:
          type: integer
          description: Offset for pagination
    ReviewScores:
      type: object
      description: Review score breakdown for an accommodation
      properties:
        accommodation_id:
          type: integer
          description: Accommodation identifier
        overall_score:
          type: number
          description: Overall average score
        total_reviews:
          type: integer
          description: Total number of reviews
        categories:
          type: object
          description: Scores by category
          properties:
            cleanliness:
              type: number
              description: Cleanliness score
            comfort:
              type: number
              description: Comfort score
            location:
              type: number
              description: Location score
            facilities:
              type: number
              description: Facilities score
            staff:
              type: number
              description: Staff score
            value_for_money:
              type: number
              description: Value for money score
    AccommodationSearchRequest:
      type: object
      required:
      - booker
      - checkin
      - checkout
      - guests
      properties:
        booker:
          $ref: '#/components/schemas/Booker'
        checkin:
          type: string
          format: date
          description: Check-in date in yyyy-mm-dd format. Must be within 500 days in the future.
        checkout:
          type: string
          format: date
          description: Check-out date in yyyy-mm-dd format. Must be between 1 and 90 days after checkin and within 500 days in the future.
        city:
          type: integer
          description: City identifier for location-based search
          example: -2140479
        country:
          type: string
          description: Country code to filter by
        region:
          type: integer
          description: Region identifier for location-based search
        accommodation_ids:
          type: array
          description: Specific accommodation IDs to search
          items:
            type: integer
        guests:
          $ref: '#/components/schemas/Guests'
        extras:
          type: array
          description: Additional data to include in the response
          items:
            type: string
            enum:
            - extra_charges
            - products
        filters:
          type: object
          description: Filters to narrow search results
          properties:
            meal_plan:
              type: string
              description: Filter by meal plan type
            cancellation_type:
              type: string
              description: Filter by cancellation policy type
    AccommodationSearchResult:
      type: object
      properties:
        accommodation_id:
          type: integer
          description: Unique identifier for the accommodation
        name:
          type: string
          description: Name of the accommodation
        city:
          type: string
          description: City where the accommodation is located
        country:
          type: string
          description: Country code of the accommodation
        price:
          $ref: '#/components/schemas/Price'
        products:
          type: array
          description: Available products/rooms
          items:
            $ref: '#/components/schemas/Product'
    AccommodationDetailsRequest:
      type: object
      required:
      - accommodation_ids
      properties:
        accommodation_ids:
          type: array
          description: List of accommodation IDs to retrieve details for
          items:
            type: integer
        extras:
          type: array
          description: Additional detail categories to include
          items:
            type: string
    AccommodationChainsResponse:
      type: object
      properties:
        result:
          type: array
          description: List of accommodation chains
          items:
            type: object
            properties:
              chain_id:
                type: integer
                description: Unique chain identifier
              name:
                type: string
                description: Chain name
    Booker:
      type: object
      description: Information about the person making the booking
      properties:
        country:
          type: string
          description: Two-letter country code of the booker
          example: nl
        platform:
          type: string
          description: Platform the booker is using
          enum:
          - desktop
          - mobile
          - tablet
          example: desktop
    GeoLocation:
      type: object
      description: Geographic coordinates
      properties:
        latitude:
          type: number
          description: Latitude coordinate
        longitude:
          type: number
          description: Longitude coordinate
    Review:
      type: object
      description: Guest review
      properties:
        review_id:
          type: string
          description: Unique review identifier
        score:
          type: number
          description: Review score
        title:
          type: string
          description: Review title
        positive:
          type: string
          description: Positive feedback text
        negative:
          type: string
          description: Negative feedback text
        author:
          type: string
          description: Reviewer name
        date:
          type: string
          format: date
          description: Review date
        language:
          type: string
          description: Review language code
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication. Include your API key token in the Authorization header.
    affiliateId:
      type: apiKey
      in: header
      name: X-Affiliate-Id
      description: Your Booking.com Affiliate ID, required with every request.
externalDocs:
  description: Booking.com Car Rentals API Documentation
  url: https://developers.booking.com/demand/docs/open-api/demand-api/cars