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.