Holidu Bookings API

The Bookings API from Holidu — 3 operation(s) for bookings.

Business capability
Booking Modification & Cancellation BC-4020.20

Operations 3

PUT /v2/bookings Update booking details #
POST /v2/bookings/cancel Cancel a booking #
GET /v2/bookings/details Get booking details #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/holidu-bookings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

holidu-bookings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Connectivity Bookings API
  description: 'Please read the API Guide that will help you for your integration to Holidu.

    You''ll find there the steps you''ll go through, tips and frequently asked questions.


    If you need any support, please contact us at partnersupport@holidu.com.'
  termsOfService: https://www.holidu.com/gtc
  contact:
    name: Holidu
    url: https://www.holidu.com
    email: partnersupport@holidu.com
  license:
    name: Apache License Version 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '2.0'
servers:
- url: https://provider-api-sandbox.holidu.com
  description: Sandbox Environment
- url: https://provider-api.holidu.com
  description: Holidu Production API
security:
- api-key:
  - read
  - write
tags:
- name: Bookings
paths:
  /v2/bookings:
    put:
      tags:
      - Bookings
      summary: Update booking details
      operationId: updateBooking
      parameters:
      - name: providerBookingId
        in: query
        required: true
        schema:
          type: string
      - name: provider
        in: query
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookingUpsert'
        required: true
      responses:
        '200':
          description: Booking data has been updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingDetails'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '404':
          description: Apartment does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '418':
          description: Requested method is not available in sandbox environment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
  /v2/bookings/cancel:
    post:
      tags:
      - Bookings
      summary: Cancel a booking
      operationId: cancelBooking
      parameters:
      - name: provider
        in: query
        required: false
        schema:
          type: string
      - name: providerBookingId
        in: query
        description: Provider booking id. Either this or holiduBookingId is required.
        required: false
        schema:
          type: string
      - name: holiduBookingId
        in: query
        description: Holidu booking id. Either this or providerBookingId is required.
        required: false
        schema:
          type: integer
          format: int64
      - name: cancellationFee
        in: query
        required: false
        schema:
          type: number
      - name: reason
        in: query
        required: true
        schema:
          type: string
          enum:
          - PROVIDER_NO_PAYMENT
          - PROVIDER_OVERBOOKED
          - CUSTOMER_WRONG_PRICE
          - CUSTOMER_WRONG_FACILITIES
          - CUSTOMER_UNKNOWN_REASON
          - CUSTOMER_REBOOKING
          - CUSTOMER_PERSONAL
          - CUSTOMER_ALTERNATIVE_HOLIDU_PRICE
          - CUSTOMER_ALTERNATIVE_HOLIDU_LOCATION
          - CUSTOMER_ALTERNATIVE_HOLIDU_OTHER
          - CUSTOMER_ALTERNATIVE_ELSEWHERE_PRICE
          - CUSTOMER_ALTERNATIVE_ELSEWHERE_LOCATION
          - CUSTOMER_ALTERNATIVE_ELSEWHERE_OTHER
          - CUSTOMER_TRAVEL_RESTRICTIONS_VISA
          - CUSTOMER_TRAVEL_RESTRICTIONS_COVID
          - CUSTOMER_TRAVEL_RESTRICTIONS_OTHER
          - CUSTOMER_PROVIDER_REQUEST_BOOK_ELSEWHERE
          - CUSTOMER_PROVIDER_REQUEST_AVAILABILITY
          - CUSTOMER_PROVIDER_REQUEST_OTHER
          - CUSTOMER_PROPERTY_QUALITY
          - CUSTOMER_OTHER
          - HOLIDU_TEST_BOOKING
          - HOLIDU_NO_PAYMENT
      responses:
        '200':
          description: The booking was cancelled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingCancellationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '404':
          description: Booking does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '418':
          description: Requested method is not available in sandbox environment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
  /v2/bookings/details:
    get:
      tags:
      - Bookings
      summary: Get booking details
      operationId: getBookingDetails
      parameters:
      - name: provider
        in: query
        description: Only needed for subprovider identification.
        required: false
        schema:
          type: string
      - name: providerBookingId
        in: query
        description: Booking id. Either this or holiduBookingId is required.
        required: false
        schema:
          type: string
      - name: holiduBookingId
        in: query
        description: Holidu booking id. Either this or bookingId is required.
        required: false
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Information for the booking
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingDetails'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '404':
          description: Booking does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '418':
          description: Requested method is not available in sandbox environment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoliduErrorResponse'
components:
  schemas:
    BookingUpsertExtraCost:
      required:
      - name
      - totalPrice
      type: object
      properties:
        name:
          type: string
          description: Name of the cost
          example: FINAL_CLEANING
          enum:
          - FINAL_CLEANING
          - EXTRA_CLEANING
          - REFUNDABLE_SECURITY_DEPOSIT
          - TOURIST_OR_CITY_TAX
          - VAT_OF_RENTAL_PRICE
          - BOOKING_FEE
          - HYGIENE_SURCHARGE
          - PET
          - TRAVEL_INSURANCE
          - TOWEL
          - BEDLINEN
          - TOWEL_BEDLINEN_PACKAGE
          - KITCHEN_TOWELS
          - BEDLINEN_AND_BEDMAKING
          - BABY_BED
          - BABY_CHAIR
          - BABY_COT
          - BABY_BUGGY
          - BABY_HIGH_CHAIR
          - EXTRA_BED
          - HEATING
          - AIRCONDITION
          - FIREWOOD
          - ELECTRICITY
          - WATER
          - GAS
          - SAUNA
          - POOL
          - HOT_TUB
          - WASHING_MACHINE
          - BEACH_SERVICES
          - CLUB_CARD
          - INTERNET
          - PARKING
          - AIRPORT_SHUTTLE
          - BREAKFAST
          - SERVICE_COSTS
        paymentTime:
          type: string
          description: When the cost is paid. Treated as paid with the booking if omitted.
          example: WITH_RATES
          enum:
          - ON_BOOKING
          - WITH_RATES
          - ONSITE
        totalPrice:
          $ref: '#/components/schemas/Price'
      description: Breakdown of extra costs for the booking.
    Commission:
      type: object
      properties:
        percentage:
          type: number
          description: Holidu percentage commission for this booking, if percentage deal
        commissionToHolidu:
          $ref: '#/components/schemas/PriceDto'
    HoliduErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error Text
          example: 'Invalid Json: Unexpected character'
    PaymentRate:
      type: object
      properties:
        dueDate:
          type: string
          format: date-time
        value:
          $ref: '#/components/schemas/PriceDto'
    CustomerDetails:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        gender:
          type: string
          enum:
          - MALE
          - FEMALE
        zip:
          type: string
        city:
          type: string
        street:
          type: string
        country:
          type: string
          description: Country code represented in standard ISO 3166-1 ALPHA-2 format
          example: DE
        phone:
          type: string
        language:
          type: string
      description: Model of the Customer.
    PaymentWithBooking:
      type: object
      properties:
        paymentPlanUuid:
          type: string
        paymentHandler:
          type: string
        paymentMethod:
          type: string
        paymentTotalWithBooking:
          $ref: '#/components/schemas/PriceDto'
        paymentRates:
          type: array
          items:
            $ref: '#/components/schemas/PaymentRate'
    CancellationFee:
      type: object
      properties:
        validUntil:
          type: string
          format: date-time
        feeInPercentage:
          type: number
    Payment:
      type: object
      properties:
        paymentWithBooking:
          $ref: '#/components/schemas/PaymentWithBooking'
        paymentOnsite:
          type: array
          items:
            $ref: '#/components/schemas/PriceDto'
    BookingDiscount:
      type: object
      properties:
        discountId:
          type: integer
          format: int64
        providerDiscountId:
          type: string
        name:
          type: string
        percentage:
          type: number
        amount:
          $ref: '#/components/schemas/PriceDto'
    Guest:
      type: object
      properties:
        age:
          type: integer
          description: Age of the guest, can be null if it is not required by capacity rules or provider config
          format: int32
    BookingExtraCost:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        basisOfCalculation:
          type: string
        paymentTime:
          type: string
        type:
          type: string
        pricePerUnit:
          $ref: '#/components/schemas/PriceDto'
        unitsSelected:
          type: integer
          format: int32
        totalPrice:
          $ref: '#/components/schemas/PriceDto'
    BookingCancellationResponse:
      type: object
      properties:
        cancellationStatus:
          type: string
          description: Status of the cancellation request
          example: CANCELLATION_SUCCESSFUL
          enum:
          - ALREADY_CANCELLED
          - CANCELLATION_SUCCESSFUL
          - BOOKING_DELETED
    BookingUpsert:
      required:
      - arrival
      - bareRentalPrice
      - departure
      - providerApartmentId
      type: object
      properties:
        providerApartmentId:
          type: string
          description: ID of the apartment in provider database
          example: '123456'
        arrival:
          type: string
          description: Date of arrival
          format: date
          example: '2020-10-20'
        departure:
          type: string
          description: Date of departure
          format: date
          example: '2020-10-30'
        bareRentalPrice:
          $ref: '#/components/schemas/Price'
        totalPrice:
          $ref: '#/components/schemas/Price'
        commissionablePrice:
          $ref: '#/components/schemas/Price'
        costs:
          type: array
          description: Breakdown of extra costs for the booking.
          items:
            $ref: '#/components/schemas/BookingUpsertExtraCost'
        numberOfGuests:
          type: integer
          description: Number of guests
          format: int32
          example: 2
        rateId:
          type: string
          description: Rate identifier
          example: DEFAULT
    Price:
      required:
      - amount
      - currency
      type: object
      properties:
        amount:
          type: number
          description: Price value
          example: 100
        currency:
          type: string
          description: Price currency
          example: EUR
      description: Price with amount and currency
    MetaData:
      type: object
      properties:
        bookedAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - PENDING
          - CONFIRMED
          - CANCELLED
          - DELETED
        cancelledAt:
          type: string
          format: date-time
        holiduBookingId:
          type: integer
          format: int64
        commission:
          $ref: '#/components/schemas/Commission'
    Receipt:
      type: object
      properties:
        costs:
          type: array
          items:
            $ref: '#/components/schemas/BookingExtraCost'
        discount:
          $ref: '#/components/schemas/BookingDiscount'
        bareRentalPrice:
          $ref: '#/components/schemas/PriceDto'
    BookingDetails:
      type: object
      properties:
        providerApartmentId:
          type: string
        arrival:
          type: string
          format: date
        departure:
          type: string
          format: date
        guests:
          type: array
          items:
            $ref: '#/components/schemas/Guest'
        customer:
          $ref: '#/components/schemas/CustomerDetails'
        specialCustomerRequest:
          type: string
        guestReceipt:
          $ref: '#/components/schemas/Receipt'
        paymentProcessing:
          $ref: '#/components/schemas/Payment'
        cancellationFees:
          type: array
          items:
            $ref: '#/components/schemas/CancellationFee'
        metaData:
          $ref: '#/components/schemas/MetaData'
        rateId:
          type: string
    PriceDto:
      type: object
      properties:
        amount:
          type: number
        currency:
          type: string
  securitySchemes:
    api-key:
      type: apiKey
      name: api-key
      in: header