Holidu Search API

The Search API from Holidu — 1 operation(s) for search.

Operations 1

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-search-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-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Affiliate Apartment Search API
  version: 1.1.0
servers:
- url: https://external-api.holidu.com
tags:
- name: Search
paths:
  /search:
    post:
      operationId: search
      summary: Search for offers based on the provided criteria
      description: Retrieve a paginated list of offers matching specified filtering criteria, ranked by relevance. If dates are provided, only available offers for those dates are returned with exact pricing. Each offer includes basic property information.
      security:
      - ApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                pageIndex:
                  type: integer
                  minimum: 0
                  maximum: 10000
                  description: Zero-based page index
                pageSize:
                  type: integer
                  minimum: 1
                  maximum: 50
                  description: Number of results per page
                searchTerm:
                  type: string
                locationBoundingBox:
                  type: object
                  properties:
                    neLat:
                      type: number
                      minimum: -90
                      maximum: 90
                    neLng:
                      type: number
                      minimum: -180
                      maximum: 180
                    swLat:
                      type: number
                      minimum: -90
                      maximum: 90
                    swLng:
                      type: number
                      minimum: -180
                      maximum: 180
                  required:
                  - neLat
                  - neLng
                  - swLat
                  - swLng
                  additionalProperties: false
                  description: Bounding box of the search location. Overrides the searchTerm parameter
                checkin:
                  type: string
                  format: date
                  description: Check-in date in ISO format YYYY-MM-DD
                checkout:
                  type: string
                  format: date
                  description: Check-out date in ISO format YYYY-MM-DD
                adults:
                  type: integer
                  minimum: 1
                  maximum: 50
                  description: Number of adult guests
                children:
                  type: integer
                  minimum: 0
                  maximum: 50
                  description: Number of child guests
                childrenAges:
                  type: array
                  items:
                    type: integer
                    minimum: 0
                    maximum: 17
                  minItems: 1
                  maxItems: 50
                  description: Ages of child guests, defaults to 10 if not specified
                bedrooms:
                  type: integer
                  minimum: 1
                  description: Number of bedrooms
                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"
                propertyTypes:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 80
                  description: List of property types
                propertyIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 80
                  minItems: 1
                  maxItems: 50
                  description: List of property IDs to search for specifically (max 50)
                facilities:
                  type: array
                  items:
                    type: string
                  description: List of facilities
                extras:
                  type: array
                  items:
                    type: string
                    enum:
                    - description
                    - photos
                    - facilities
                  description: 'Extra fields to include in the response. Supported values: description, photos, facilities'
                salesChannelId:
                  type: string
                  minLength: 1
                  maxLength: 80
                  description: Only for special cases, consult Holidu
                domainId:
                  type: integer
                  minimum: 1
                  maximum: 99999
                  description: Only for special cases, consult Holidu
              required:
              - adults
              - children
              - locale
              - currency
              additionalProperties: false
      parameters: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    type: object
                    properties:
                      totalCount:
                        type: integer
                        description: Total number of results matching the search criteria
                    required:
                    - totalCount
                    additionalProperties: false
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                        description:
                          type:
                          - string
                          - 'null'
                          description: Short text description of the offer
                        photos:
                          type:
                          - array
                          - 'null'
                          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
                        url:
                          type: string
                        area:
                          type:
                          - object
                          - 'null'
                          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
                        bedroomCount:
                          type:
                          - integer
                          - 'null'
                        bathroomCount:
                          type:
                          - integer
                          - 'null'
                        guestCount:
                          type: integer
                          description: Number of guests the offer can accommodate
                        title:
                          type: string
                        propertyType:
                          type: object
                          properties:
                            id:
                              type: string
                            title:
                              type: string
                              minLength: 1
                              maxLength: 80
                          required:
                          - id
                          - title
                          additionalProperties: false
                        facilities:
                          type:
                          - array
                          - 'null'
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              title:
                                type: string
                                minLength: 2
                                maxLength: 80
                              group:
                                type: string
                            required:
                            - id
                            - title
                            - group
                            additionalProperties: false
                        petsAllowed:
                          type: boolean
                        location:
                          type:
                          - object
                          - 'null'
                          properties:
                            name:
                              type: string
                              minLength: 1
                              maxLength: 350
                            distance:
                              type:
                              - string
                              - 'null'
                              description: Distance in meters to the center of search region if specified, otherwise null
                            postalCode:
                              type:
                              - string
                              - 'null'
                              description: Postal code, can be null if not shared by the provider
                            city:
                              type:
                              - string
                              - 'null'
                              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
                          - distance
                          - postalCode
                          - city
                          - coordinates
                          additionalProperties: false
                        price:
                          anyOf:
                          - type: object
                            properties:
                              currency:
                                type: string
                                description: Currency code in ISO 4217 format, e.g. "USD"
                              daily:
                                type: number
                              total:
                                type: number
                              nights:
                                type: integer
                              discountAmount:
                                type:
                                - number
                                - 'null'
                                minimum: 0
                                description: Absolute discount amount in given currency
                              discountPercentage:
                                type:
                                - number
                                - 'null'
                              totalBeforeDiscount:
                                type:
                                - number
                                - 'null'
                              dailyBeforeDiscount:
                                type:
                                - number
                                - 'null'
                            required:
                            - currency
                            - daily
                            - total
                            - nights
                            - discountAmount
                            - discountPercentage
                            - totalBeforeDiscount
                            - dailyBeforeDiscount
                            additionalProperties: false
                            description: Price information for the offer for a given travel dates
                          - 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
                          description: Price information for the offer, either for a given travel dates or as a starting price
                        cancellationPolicy:
                          type:
                          - object
                          - 'null'
                          properties:
                            type:
                              type: string
                              enum:
                              - FREE_CANCELLATION
                              - LIGHT_CANCELLATION
                          required:
                          - type
                          additionalProperties: false
                        rating:
                          type:
                          - object
                          - 'null'
                          properties:
                            value:
                              type: number
                              minimum: 0
                              maximum: 10
                            count:
                              type: integer
                              minimum: 0
                          required:
                          - value
                          - count
                          additionalProperties: false
                        licenseId:
                          type:
                          - string
                          - 'null'
                      required:
                      - id
                      - description
                      - photos
                      - url
                      - area
                      - bedroomCount
                      - bathroomCount
                      - guestCount
                      - title
                      - propertyType
                      - facilities
                      - petsAllowed
                      - location
                      - price
                      - cancellationPolicy
                      - rating
                      - licenseId
                      additionalProperties: false
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        apartmentId:
                          type: string
                        code:
                          type: number
                        message:
                          type: string
                      required:
                      - apartmentId
                      - code
                      - message
                      additionalProperties: false
                required:
                - metadata
                - items
                additionalProperties: false
        default:
          $ref: '#/components/responses/error'
      tags:
      - Search
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.