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 rating above is Google's. Confirm a stay with the place itself.