Holidu Details API

The Details API from Holidu — 1 operation(s) for details.

OpenAPI Specification

holidu-details-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Affiliate Apartment Details API
  version: 1.1.0
servers:
- url: https://external-api.holidu.com
tags:
- name: Details
paths:
  /details:
    post:
      operationId: details
      summary: Get detailed information about the provided offers
      description: Retrieve detailed static information for specified offers. The "extras" parameter allows for the inclusion of additional data points to the response. The response includes an RFC 6570-compatible "urlTemplate" for generating checkout page links with check-in and check-out dates. If some requested offers cannot be retrieved, these will be reported in the "errors" array, with the corresponding property identifier, error code, and descriptive message.
      security:
      - ApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                propertyIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 80
                  minItems: 1
                  maxItems: 50
                  description: List of property IDs
                locale:
                  type: string
                  pattern: ^[a-z]{2}-[A-Z]{2}$
                  description: Locale code in format ISO 639-1 + ISO 3166-1 alpha-2, e.g. "en-US"
                currency:
                  type: string
                  pattern: ^[A-Z]{3}$
                  description: Currency code in ISO 4217 format, e.g. "USD"
                extras:
                  type: array
                  items:
                    type: string
                    enum:
                    - description
                    - photos
                    - facilities
                    - rooms
                    - reviews
                    - guestCardsAndCertificates
                  description: 'Extra fields to include in the response. Supported values: description, photos, facilities, rooms, reviews, guestCardsAndCertificates.'
                domainId:
                  type: number
                  description: Only for special cases, consult Holidu
                salesChannelId:
                  type: string
                  description: Sales channel identifier, required for filtering by sales channel
              required:
              - propertyIds
              - locale
              - currency
              additionalProperties: false
      parameters: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                        description:
                          type: string
                          nullable: true
                          description: Short text description of the offer
                        photos:
                          type: array
                          items:
                            type: object
                            properties:
                              thumbnail:
                                type: string
                                format: uri
                              medium:
                                type: string
                                format: uri
                              large:
                                type: string
                                format: uri
                            required:
                            - thumbnail
                            - medium
                            - large
                            additionalProperties: false
                          nullable: true
                        urlTemplate:
                          type: string
                          description: RFC 6570 URI template to generate checkout page link with check-in, check-out and guest information. Date placeholders must be in ISO 8601 format.
                        area:
                          type: object
                          properties:
                            value:
                              type: number
                              minimum: 0
                            unit:
                              type: string
                              enum:
                              - UNIT_SM
                              - UNIT_SF
                              description: Unit of the area. Either UNIT_SM (square meters) of UNIT_SF (square feet)
                          required:
                          - value
                          - unit
                          additionalProperties: false
                          nullable: true
                        bedrooms:
                          type: integer
                          nullable: true
                        bathrooms:
                          type: integer
                          nullable: true
                        guests:
                          type: integer
                          minimum: 1
                        title:
                          type: string
                          minLength: 2
                          maxLength: 250
                        propertyType:
                          type: object
                          properties:
                            id:
                              type: string
                            title:
                              type: string
                              maxLength: 250
                              nullable: true
                          required:
                          - id
                          - title
                          additionalProperties: false
                        facilities:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              title:
                                type: string
                                minLength: 2
                                maxLength: 80
                              group:
                                type: string
                            required:
                            - id
                            - title
                            - group
                            additionalProperties: false
                          nullable: true
                        guestCardsAndCertificates:
                          type: object
                          properties:
                            items:
                              type: array
                              items:
                                type: object
                                properties:
                                  title:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - title
                                - name
                                additionalProperties: false
                          required:
                          - items
                          additionalProperties: false
                          nullable: true
                        petsAllowed:
                          type: boolean
                          nullable: true
                        location:
                          type: object
                          properties:
                            name:
                              type: string
                              minLength: 1
                              maxLength: 350
                            postalCode:
                              type: string
                              nullable: true
                              description: Postal code, can be null if not shared by the provider
                            city:
                              type: string
                              nullable: true
                              description: City name, can be null if not shared by the provider
                            coordinates:
                              type: object
                              properties:
                                lat:
                                  type: number
                                  minimum: -90
                                  maximum: 90
                                lng:
                                  type: number
                                  minimum: -180
                                  maximum: 180
                              required:
                              - lat
                              - lng
                              additionalProperties: false
                          required:
                          - name
                          - postalCode
                          - city
                          - coordinates
                          additionalProperties: false
                          nullable: true
                        cancellationPolicy:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                              - FREE_CANCELLATION
                              - LIGHT_CANCELLATION
                          required:
                          - type
                          additionalProperties: false
                          nullable: true
                        rating:
                          type: object
                          properties:
                            value:
                              type: number
                              minimum: 0
                              maximum: 10
                            count:
                              type: integer
                              minimum: 0
                          required:
                          - value
                          - count
                          additionalProperties: false
                          nullable: true
                        rooms:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                - BEDROOM
                                - LIVING_ROOM
                                - BATHROOM
                                - KITCHEN
                            required:
                            - type
                            additionalProperties: false
                          nullable: true
                        rules:
                          enum:
                          - 'null'
                          nullable: true
                          description: 'TODO: implement rules schema'
                        pois:
                          enum:
                          - 'null'
                          nullable: true
                          description: 'TODO: implement pois schema'
                        reviews:
                          type: object
                          properties:
                            averageRatings:
                              type: array
                              items:
                                type: object
                                properties:
                                  category:
                                    type: string
                                  rating:
                                    type: number
                                required:
                                - category
                                - rating
                                additionalProperties: false
                            reviewDetails:
                              type: array
                              items:
                                type: object
                                properties:
                                  publishedAt:
                                    type: string
                                  comment:
                                    type: string
                                  language:
                                    type: string
                                required:
                                - publishedAt
                                - comment
                                - language
                                additionalProperties: false
                          required:
                          - averageRatings
                          - reviewDetails
                          additionalProperties: false
                          nullable: true
                        price:
                          type: object
                          properties:
                            currency:
                              type: string
                              description: Currency code in ISO 4217 format, e.g. "USD"
                            daily:
                              type: number
                          required:
                          - currency
                          - daily
                          additionalProperties: false
                          description: Minimal daily price for a property, doesn't depend on travel dates
                        instantBookable:
                          type: boolean
                      required:
                      - id
                      - description
                      - urlTemplate
                      - area
                      - bedrooms
                      - bathrooms
                      - guests
                      - title
                      - propertyType
                      - petsAllowed
                      - location
                      - cancellationPolicy
                      - rating
                      - rooms
                      - rules
                      - pois
                      - reviews
                      - price
                      - instantBookable
                      additionalProperties: false
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        propertyId:
                          type: string
                        code:
                          type: number
                        message:
                          type: string
                      required:
                      - propertyId
                      - code
                      - message
                      additionalProperties: false
                required:
                - items
                additionalProperties: false
        default:
          $ref: '#/components/responses/error'
      tags:
      - Details
components:
  responses:
    error:
      description: Error response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
              code:
                type: string
              issues:
                type: array
                items:
                  type: object
                  properties:
                    message:
                      type: string
                  required:
                  - message
                  additionalProperties: false
            required:
            - message
            - code
            additionalProperties: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Holidu authenticates to the affiliate using an OAuth 2.0 Bearer Token ([RFC 6750](https://www.rfc-editor.org/rfc/rfc6750)). Token exchange details are agreed upon during onboarding.