Holidu Discounts API
The Discounts API from Holidu — 2 operation(s) for discounts.
The Discounts API from Holidu — 2 operation(s) for discounts.
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-discounts-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: Connectivity Discounts 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: Discounts
paths:
/v2/discount:
get:
tags:
- Discounts
summary: Get a single discount for an apartment by discount id
operationId: getDiscountById
parameters:
- name: providerApartmentId
in: query
required: false
schema:
type: string
- name: provider
in: query
required: false
schema:
type: string
- name: holiduApartmentId
in: query
required: false
schema:
type: integer
format: int64
- name: discountId
in: query
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Successful retrieval of discount by id
content:
application/json:
schema:
$ref: '#/components/schemas/DiscountDto'
'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: Apartment or discount does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/HoliduErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/HoliduErrorResponse'
post:
tags:
- Discounts
summary: Create or update a single discount for an apartment
operationId: upsertDiscount
parameters:
- name: providerApartmentId
in: query
required: false
schema:
type: string
- name: provider
in: query
required: false
schema:
type: string
- name: holiduApartmentId
in: query
required: false
schema:
type: integer
format: int64
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DiscountDto'
examples:
Adding new Discount:
summary: Adding new Discount
description: Adding new Discount
value:
status: ACTIVE
name: Long stay Discount
discountType: LONG_STAY
discountPercent: '10'
conditions:
minStay: '15'
Updating existing Discount:
summary: Updating existing Discount
description: Updating existing Discount
value:
id: '18321'
status: INACTIVE
name: Early bird Discount
discountType: EARLY_BIRD
discountPercent: '12'
conditions:
daysBeforeCheckIn: '60'
required: true
responses:
'200':
description: Discount created or updated
content:
application/json:
schema:
$ref: '#/components/schemas/DiscountDto'
'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: Apartment does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/HoliduErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/HoliduErrorResponse'
/v2/discounts:
get:
tags:
- Discounts
summary: Get discounts for an apartment
operationId: getDiscounts
parameters:
- name: providerApartmentId
in: query
required: false
schema:
type: string
- name: provider
in: query
required: false
schema:
type: string
- name: holiduApartmentId
in: query
required: false
schema:
type: integer
format: int64
responses:
'200':
description: Successful retrieval of discounts for an apartment
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DiscountDto'
'401':
description: Authentication error
content:
application/json:
schema:
$ref: '#/components/schemas/HoliduErrorResponse'
'404':
description: Apartment does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/HoliduErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/HoliduErrorResponse'
components:
schemas:
HoliduErrorResponse:
type: object
properties:
error:
type: string
description: Error Text
example: 'Invalid Json: Unexpected character'
DiscountConditions:
type: object
properties:
daysBeforeCheckIn:
type: integer
description: Number of days before checkin the booking has to be made
format: int32
example: 60
minStay:
type: integer
description: Minimum Stay (days) if required to get the discount
format: int32
example: 5
bookingSeason:
type: array
description: Booking date must be in seasons for the discount to apply
items:
$ref: '#/components/schemas/SeasonApplicable'
travelSeason:
type: array
description: Stay must be within seasons for the discount to apply
items:
$ref: '#/components/schemas/SeasonApplicable'
deviceType:
type: string
description: If the discount is applicable only for specific device.
enum:
- MOBILE
- DESKTOP
userType:
type: string
description: If discount is applicable based on user type.
enum:
- USER_AUTHENTICATED
description: Conditions for this discount
DiscountDto:
required:
- discountPercent
- discountType
- status
type: object
properties:
id:
type: integer
description: Discount id in Holidu system
format: int64
providerDiscountId:
type: string
description: Provider's own external discount ID for reconciliation
status:
type: string
description: Discount Status
example: ACTIVE
enum:
- ACTIVE
- INACTIVE
- DELETED
name:
type: string
description: Name of the discount
example: Pre Season Discount
discountType:
type: string
description: Type of discount
example: EARLY_BIRD
enum:
- EARLY_BIRD
- LAST_MINUTE
- LONG_STAY
- DEVICE_SPECIFIC
- NEW_LISTING
- LOYALTY
- OFFER
discountPercent:
maximum: 100
minimum: 0
type: number
description: Percentage of discount
example: 12
conditions:
$ref: '#/components/schemas/DiscountConditions'
SeasonApplicable:
type: object
properties:
onlyApplicableFrom:
type: string
description: Only applicable from date
format: date
example: '2020-08-01'
onlyApplicableUntil:
type: string
description: Only applicable until date
format: date
example: '2021-04-30'
description: Season for which extra cost is applicable
securitySchemes:
api-key:
type: apiKey
name: api-key
in: header