Holidu Group Offers API Documentation List the offers of one property group, each with its provider. Use the group id of a search result or of the property detail, and the destination of the search that listed it. Only offers of the requested group are returned, so the list can hold a single offer.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
2 required parameters needed before sending a request.
4 optional filters available.
string
Required
Group id (a number) from a search result or the property detail.
1234567890
string
Required
Destination of the search that listed the property, e.g. Paris.
coffee shops
string
Optional
Optional check-in date. Prices are totals of the stay when dates are sent.
example
string
Optional
Optional check-out date. Send with check_in.
example
integer
Optional
Number of adults, 1 to 30. Defaults to 2.
10
string
Optional
Country site: com (USD), de (EUR), uk (GBP) or fr (EUR). Defaults to com. An unknown value is rejected.
US
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
data
meta
success
{
"data": {
"total": 1,
"market": "com",
"offers": [
{
"id": "63793870",
"url": "https://www.holidu.com/d/63793870",
"tags": [],
"usps": [
{
"id": "USP_PEOPLE",
"unit": null,
"group": "PEOPLE",
"value": 2,
"format": "NUMBER"
},
{
"id": "USP_BED_ROOM",
"unit": null,
"group": "LAYOUT",
"value": 1,
"format": "NUMBER"
}
],
"dates": null,
"likes": null,
"price": {
"ccy": "USD",
"daily": 107,
"total": 749,
"nights": null,
"currency": "USD",
"is_exact": false,
"discount_type": null,
"discount_amount": null,
"discount_percentage": null,
"discount_description": null,
"strike_through_daily": null,
"strike_through_total": null
},
"photos": [
{
"large": "https://img.holidu.com/images/0c36dc2e-0ccb-4794-8118-a6665a49d01c/l.jpg",
"medium": "https://img.holidu.com/images/0c36dc2e-0ccb-4794-8118-a6665a49d01c/m.jpg",
"overlay": false,
"high_res": "https://img.holidu.com/images/0c36dc2e-0ccb-4794-8118-a6665a49d01c/hr.jpg",
"thumbnail": "https://img.holidu.com/images/0c36dc2e-0ccb-4794-8118-a6665a49d01c/t.jpg"
},
{
"large": "https://img.holidu.com/images/dda288b4-16cb-4662-b02e-dd35cd34150e/l.jpg",
"medium": "https://img.holidu.com/images/dda288b4-16cb-4662-b02e-dd35cd34150e/m.jpg",
"overlay": false,
"high_res": "https://img.holidu.com/images/dda288b4-16cb-4662-b02e-dd35cd34150e/hr.jpg",
"thumbnail": "https://img.holidu.com/images/dda288b4-16cb-4662-b02e-dd35cd34150e/t.jpg"
}
],
"rating": {
"count": 36,
"value": 90
},
"details": {
"area": {
"unit": "UNIT_SF",
"value": 237
},
"name": "GuestReady - Cozy Parisian Escape for 2",
"bed_types": [
"BED_QUEEN"
],
"long_name": "Vacation apartment for 2 people",
"unit_name": null,
"pets_count": null,
"short_name": [
"237 ft\u00b2",
"Apartment"
],
"guests_count": 2,
"apartment_type": "APARTMENT",
"bedrooms_count": 1,
"short_description": null,
"apartment_type_name": "Apartment",
"apartment_type_title": "Apartment",
"alternative_long_name": null,
"sleeping_arrangements": {
"rooms": [
[]
]
}
},
"group_id": "61393870",
"location": {
"lat": 48.896812,
"lng": 2.335526,
"name": "Paris, Ile de France",
"geo_hash": "u09wjjkstdqm",
"distance_to_search_region_center": {
"id": null,
"unit": "UNIT_MI",
"value": 1,
"format": "NUMBER_WITH_UNIT"
},
"distance_to_original_search_region_center": null
},
"position": 1,
"provider": {
"id": "NEXTPAX_GUESTREADY",
"logo_url": "https://static.holidu.com/img/provider/logos/NEXTPAX_GUESTREADY_1.png",
"legal_name": "GUESTREADY FRANCE SAS",
"short_name": "GuestReady",
"statistics": null,
"is_premium_partner": false
},
"meta_data": {
"multi_unit_data": {
"units": [],
"number_of_units": 3,
"part_of_multi_unit": true
}
},
"fuzzy_tags": [],
"amenities_v2": {
"AMENITY_IMPORTANT": [
{
"id": "KITCHEN",
"count": 1,
"group": "KITCHEN",
"value": "Kitchen",
"format": "STRING"
},
{
"id": "INTERNET",
"count": 1,
"group": "INTERNET",
"value": "Internet",
"format": "STRING"
}
]
},
"amenities_v3": null,
"is_available": null,
"routing_type": "DETAIL",
"holidu_rating": null,
"review_extract": null,
"missing_filters": [],
"ski_resort_names": [],
"external_group_id": "NEXTPAX_GUESTREADY_61393870",
"cancellation_policy": {
"free_cancellation": {
"amount": null,
"percentage": null,
"until_date": null,
"days_before_arrival": 14
},
"light_cancellation": null
},
"is_express_bookable": true,
"is_instant_bookable": true,
"alternative_price_rates": []
}
],
"currency": "USD",
"group_id": "61393870",
"price_basis": "per_night"
},
"meta": {
"billable": true,
"endpoint_family": "property_offers"
},
"success": true
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
A required query parameter is missing or invalid. This response is not billable.
{
"errors": {
"market": [
"The market is one of com, de, uk, fr."
]
},
"message": "The request validation failed"
}Service Unavailable
Holidu could not be reached, answered with an unexpected shape or returned a result that does not match the request. This response is not billable. Retry later.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "property_offers"
},
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "The Holidu API is temporarily unavailable. Please retry."
},
"success": false
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.