Browse documentation
GET

Google Travel API

Rich hotel data from Google Travel — review summary, address and metadata, photos, live prices, similar hotels, and nearby places. Resolve a hotel once to get a durable entity_token, then fetch any slice.

Overview

Two-step workflow

Call /resolve with a hotel name to get its entity_token, then pass that token to any of the data endpoints. The token is durable — cache it and reuse it across all Google Travel endpoints.

Google Travel exposes one hotel data panel that this API slices into seven lean, independently cacheable endpoints. All are keyed on a Google Travel entity_token (a Ch… id) returned by /resolve. Aggregate data (summary, info) changes slowly and caches well; prices are live for Google-chosen default dates.

Endpoints

GET https://api.stayapi.com/v1/google_travel/resolve
GET https://api.stayapi.com/v1/google_travel/summary
GET https://api.stayapi.com/v1/google_travel/info
GET https://api.stayapi.com/v1/google_travel/photos
GET https://api.stayapi.com/v1/google_travel/prices
GET https://api.stayapi.com/v1/google_travel/similar
GET https://api.stayapi.com/v1/google_travel/nearby

Common parameters

Every data endpoint takes the same three parameters. /resolve takes query instead of entity_token, and /prices adds an optional currency.

Parameter Type Required Description
entity_token string Required Google Travel token from /resolve (a Ch… id). Not needed for /resolve itself.
query string Required /resolve only — hotel name plus city, e.g. Barceló Fortina Sliema Malta.
currency string Optional /prices only — ISO 4217 code shaping every money field. Default USD.
hl string Optional UI language code. Default en.
gl string Optional Region/country code. Default us.

1. Resolve a hotel

Turn a hotel name into candidate entity_tokens. Pick the best match and reuse its token.

GET /v1/google_travel/resolve?query=Barcelo+Fortina+Sliema+Malta
{
  "success": true,
  "query": "Barcelo Fortina Sliema Malta",
  "results": [
    {
      "entity_token": "ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE",
      "place_name": "Barceló Fortina Malta"
    }
  ]
}

2. Review summary

Overall rating, total review count, per-star histogram, review-topic sub-scores, and the review-source breakdown. Google Travel has no 1–5 category ratings; topics carry positive/negative mention counts with a signed sentiment (−1 to 1).

GET /v1/google_travel/summary?entity_token=ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE
{
  "success": true,
  "entity_token": "ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE",
  "place_name": "Barceló Fortina Malta",
  "average_rating": 4.4,
  "total_reviews": 526,
  "histogram": [
    { "stars": 5, "count": 380, "percent": 74 },
    { "stars": 4, "count": 62,  "percent": 11 },
    { "stars": 3, "count": 31,  "percent": 5 },
    { "stars": 2, "count": 16,  "percent": 3 },
    { "stars": 1, "count": 37,  "percent": 7 }
  ],
  "topics": [
    { "category": "Service", "label": "Service", "mentions": 118,
      "positive": 88, "negative": 25, "sentiment": 0.3 }
  ],
  "sources": [
    { "name": "Google",   "review_count": null },
    { "name": "Trip.com", "review_count": 84 }
  ]
}

3. Hotel info

Identity and metadata: name, star class, coordinates, address, phone, check-in/out times, website, neighborhood, locality chain, and Google Maps ids.

GET /v1/google_travel/info?entity_token=ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE
{
  "success": true,
  "entity_token": "ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE",
  "place_name": "Barceló Fortina Malta",
  "hotel_class": { "label": "5-star hotel", "stars": 5 },
  "latitude": 35.9071922,
  "longitude": 14.5092363,
  "address": "Tigné Seafront, Tas-Sliema SLM 3012, Malta",
  "phone": "+356 2605 0000",
  "check_in": "3:00 PM",
  "check_out": "12:00 PM",
  "website": "https://www.barcelo.com/en-gb/barcelo-fortina-malta/",
  "localities": [
    { "name": "Sliema", "feature_id": "0x130e453980dcb865:0xa7354d721f145949" }
  ],
  "feature_id": "0x130e45582a65cd61:0x3bc5a1301b046a7a",
  "google_maps_place_id": "ChIJYc1lKlhFDhMRemoEGzChxTs"
}

4. Photos

De-duplicated hero and gallery photos. Every URL is https; some photos carry an AI-generated caption highlight.

GET /v1/google_travel/photos?entity_token=ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE
{
  "success": true,
  "entity_token": "ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE",
  "count": 22,
  "photos": [
    {
      "url": "https://lh3.googleusercontent.com/gps-cs-s/AP…=s287-w287-h192-k-no",
      "width": 287,
      "height": 192,
      "photo_id": "CIHM0ogKEICAgIC…",
      "caption": "Most rooms offer panoramic views of the Mediterranean Sea and Valletta"
    }
  ]
}

5. Prices

Nightly rate, Google's usual-price band, and partner booking offers for Google-chosen default dates (returned as check_in/check_out). Pass currency to shape every money field.

Band ordering is not guaranteed

price_range.typical is the current going rate; it can fall below low (a deal) or above high (pricey). A hotel with no bookable rate for the dates returns 404.

GET /v1/google_travel/prices?entity_token=ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE¤cy=EUR
{
  "success": true,
  "entity_token": "ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE",
  "check_in": "2026-07-04",
  "check_out": "2026-07-05",
  "currency": "EUR",
  "price": { "formatted": "€269", "value": 269.0 },
  "price_range": { "low": 232.0, "typical": 269.0, "high": 278.0 },
  "offers": [
    {
      "partner": "Barcelo.com",
      "booking_link": "https://www.google.com/travel/clk?pc=…",
      "price": "€256"
    }
  ]
}

6. Similar hotels & rentals

Similar hotels and nearby vacation rentals. Each neighbor carries its own entity_token — feed it back into any Google Travel endpoint to pivot.

GET /v1/google_travel/similar?entity_token=ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE
{
  "success": true,
  "entity_token": "ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE",
  "similar_hotels": [
    {
      "name": "Grand Hotel Excelsior Malta",
      "entity_token": "ChcIzuWhytbGxuwsGgsvZy8xdmY1NHI0ehAB",
      "place_id": "ChIJK2Ig5zJFDhMRznJIaTUa2Sw",
      "rating": 4.4,
      "review_count": 4595,
      "class": { "label": "5-star hotel", "stars": 5 },
      "distance": "1.2 km away",
      "price": { "formatted": "$266", "value": 265.54 },
      "comparison": "Also a 5-star hotel, for $119 less",
      "photo": "https://lh3.googleusercontent.com/…"
    }
  ],
  "vacation_rentals": [
    {
      "name": "Seaside Bliss - 3BR Holiday Apartment, Sliema",
      "entity_token": "CiQIo5WPjrHd-bDyARDA4sqQ2c-k3hca…",
      "price": { "formatted": "$486", "value": 485.73 }
    }
  ]
}

7. Nearby places

Points of interest grouped by kind (attractions, transit, airports, restaurants), each with rating, description, coordinates, and Google's drive/walk time estimates.

GET /v1/google_travel/nearby?entity_token=ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE
{
  "success": true,
  "entity_token": "ChkI-tSR2IGm6OI7Gg0vZy8xMWg4NThxeGJ0EAE",
  "groups": [
    {
      "category": "nearby_poi",
      "label": "Points of interest",
      "pois": [
        {
          "name": "St. John's Co-Cathedral",
          "rating": 4.8,
          "review_count": 25044,
          "description": "Elaborately adorned place of worship, completed in 1578.",
          "latitude": 35.8975921,
          "longitude": 14.5124951,
          "drive_time": "15 min",
          "walk_time": null
        }
      ]
    }
  ]
}

Example: resolve then fetch

Request
TOKEN=$(curl -s "https://api.stayapi.com/v1/google_travel/resolve?query=Barcelo+Fortina+Sliema+Malta" \
  -H "X-API-Key: YOUR_API_KEY" | jq -r ".results[0].entity_token")

curl "https://api.stayapi.com/v1/google_travel/summary?entity_token=$TOKEN" \
  -H "X-API-Key: YOUR_API_KEY"