Holidu Search API
The Search API from Holidu — 1 operation(s) for search.
The Search API from Holidu — 1 operation(s) for search.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/holidu-search-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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.