REST API quickstart#
The API uses JSON over HTTPS. Its production origin is:
https://www.hotelovia.com/api/v1
1. Create a key#
Create and copy a key in the developer console. Put it in a server environment variable:
export HOTELOVIA_API_KEY='htl_live_replace_me'
2. Search the directory#
country is required, and only a country with published data is accepted:
Spain (es), the United Kingdom (gb), France (fr) and Portugal (pt) today. France and Portugal have partial initial coverage around twenty major cities and nearby lodging. This example asks for
published Madrid
places whose primary phone appears technically capable of receiving WhatsApp
messages:
curl --get 'https://www.hotelovia.com/api/v1/places' \
--header "X-API-Key: $HOTELOVIA_API_KEY" \
--data-urlencode 'country=es' \
--data-urlencode 'city=madrid' \
--data-urlencode 'whatsapp=true' \
--data-urlencode 'limit=25'
3. Read the response#
{
"places": [
{
"id": "ChIJ…",
"name": "Hotel del Prado",
"phone": "+34900000001",
"phoneType": "mobile",
"primaryType": "Hotel",
"lodgingType": "hotel",
"rating": 4.6,
"reviewCount": 912,
"whatsappEligible": true,
"verified": false,
"profileUrl": "https://www.hotelovia.com/es/es/alojamientos/madrid/hotel-del-prado/"
}
],
"page": {
"count": 1,
"hasMore": false,
"nextCursor": null
}
}
Continue with the complete Places endpoint and pagination contracts.
Public records
The API returns only records whose publication status is
published, through an explicit field allowlist. Internal crawl and publication metadata is never part of the response.
A directory, not a booking site
Hotelovia publishes no availability, no prices and no reservations, and the
ratingabove is Google's. Confirm a stay with the place itself.