Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Coding
Google Hotels API - Hotel Search, Rates, Ratings, Amenities
Try itSearch Google Hotels for a destination and dates, then fetch per-property vendor pricing and full details — as structured JSON. Price, rating, class, and amenity filters. v2 engine, 1 credit per request.
What it does
Google Hotels API - Hotel Search, Rates, Ratings, Amenities
The skill document
Google Hotels API - Hotel Search, Rates, Ratings, Amenities
Search Google Hotels for a destination and stay dates, then open any property for full details and per-vendor pricing — all as structured JSON. Two endpoints, each 1 credit.
When to trigger
Use this skill when the user asks to:
- Find hotels or vacation rentals for a destination and dates
- Compare lodging by price, rating, class, or amenities
- Get full details and booking-site prices for a specific property
Setup
Get a free API key at scavio.dev (50 free credits to get started, no card required):
export SCAVIO_API_KEY=sk_live_your_key
Endpoints
| Endpoint | Credits | Description |
|---|---|---|
POST https://api.scavio.dev/api/v2/google/hotels | 1 | Search lodging, returns properties[] |
POST https://api.scavio.dev/api/v2/google/hotels/detail | 1 | Full property details + vendor prices |
Authorization: Bearer $SCAVIO_API_KEY
Workflow
- Search: call
/hotelswithquery(use the" hotels"form),check_in_date, andcheck_out_date. Filter with price, rating, class, and amenities. - Read
properties[]; each has aname,rate_per_night,overall_rating, and adetail_token. - Details: call
/hotels/detailwith a property'sdetail_tokenand the same stay dates to get full info and booking-site prices inproperty.booking_sources. - Page more results with
next_page_tokenfrom the search response.
Hotels Search Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | required | Use the " hotels" form (e.g. Bali hotels) |
check_in_date | string | required | Check-in YYYY-MM-DD |
check_out_date | string | required | Check-out YYYY-MM-DD |
sort_by | number | -- | 3 lowest price, 8 highest rating, 13 most reviewed |
min_price | number | -- | Minimum nightly price |
max_price | number | -- | Maximum nightly price |
rating | number | -- | 7 (3.5+), 8 (4.0+), 9 (4.5+) |
hotel_class | string | -- | Comma-separated 2-5 (e.g. 4,5) |
amenities | string | -- | Amenity filter ids |
property_types | string | -- | 12 = vacation rentals |
free_cancellation | boolean | -- | Only free-cancellation offers |
eco_certified | boolean | -- | Only eco-certified properties |
special_offers | boolean | -- | Only special offers |
next_page_token | string | -- | Pagination cursor from a prior response |
limit | number | -- | Cap properties returned (1-20) |
hl | string | -- | UI language |
gl | string | -- | Geo country |
currency | string | -- | Currency code (e.g. USD) |
Hotels Detail Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
detail_token | string | required | From a listing property's detail_token |
check_in_date | string | required | Check-in YYYY-MM-DD |
check_out_date | string | required | Check-out YYYY-MM-DD |
currency | string | -- | Currency code |
gl | string | -- | Geo country |
hl | string | -- | UI language |
Example
import requests
BASE = "https://api.scavio.dev"
# Your key from https://scavio.dev/?utm_source=clawhub&utm_medium=skill&utm_campaign=google-hotels-api. Load it from your environment or secret
# store in real code - keep it out of source control.
API_KEY = "sk_your_key_here"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
DATES = {"check_in_date": "2026-10-01", "check_out_date": "2026-10-05"}
# 1. Search hotels, highest rated first
search = requests.post(f"{BASE}/api/v2/google/hotels", headers=HEADERS,
json={"query": "Bali hotels", **DATES, "sort_by": 8, "rating": 8}).json()
prop = search["properties"][0]
print(prop["name"], prop.get("overall_rating"), prop.get("rate_per_night"))
# 2. Full details + vendor prices for that property
detail = requests.post(f"{BASE}/api/v2/google/hotels/detail", headers=HEADERS,
json={"detail_token": prop["detail_token"], **DATES, "currency": "USD"}).json()
for src in detail["property"]["booking_sources"]:
print(src.get("source"), src.get("rate_per_night"))
Responses
Search returns properties[]; detail returns property with booking_sources[]. Each also includes response_time, credits_used, credits_remaining, and cached.
{
"properties": [
{
"name": "Example Resort",
"type": "hotel",
"overall_rating": 4.6,
"reviews": 3120,
"hotel_class": 5,
"rate_per_night": { "lowest": "$180", "extracted_lowest": 180 },
"detail_token": "CggI...Aw"
}
],
"response_time": 1760,
"credits_used": 1,
"credits_remaining": 993,
"cached": false
}
Guardrails
- Each call costs 1 credit.
- Never fabricate property names, ratings, prices, or vendors. Only return API data.
- The detail call needs a
detail_tokenfrom a search result plus the same stay dates — always run/hotelsfirst. - Prices reflect the requested
currency; state the currency and the stay dates when quoting.
Failure handling
400means an invalid parameter (e.g. missing dates ordetail_token) — fix and retry.401means the API key is invalid or missing. CheckSCAVIO_API_KEY.429means rate or usage limit exceeded. Wait before retrying. See https://scavio.dev/docs/rate-limits?utm_source=clawhub&utm_medium=skill&utm_campaign=google-hotels-api.502/503mean upstream is temporarily unavailable. Wait a few seconds before retrying.- If no properties are returned, loosen price/rating/class filters or try different dates.
- If
SCAVIO_API_KEYis not set, prompt the user to export it before continuing.
Related skills
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Site audit, content writing, and competitor analysis for organic search rankings.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
More from scavio-ai
Browse all skillsAccess the GitHub REST API with managed OAuth for repos, issues, PRs, commits, branches, and users.
Pull a Facebook page's profile, posts, reels and photos, one post with its comments, a single reel/video with downloadable URLs, a public group and its posts, an event, and hashtag posts. 11 endpoints, 1 credit each, structured JSON.
Search the Meta Ad Library by keyword or Facebook Page id and walk full cursor pagination through every ad, with creative, run dates, platforms and political spend. 3 endpoints, 1 credit per page.
Search YouTube and retrieve videos, shorts, comments, transcripts, streams, channel data, and community posts with their comments as structured JSON. 17 endpoints across video and channel surfaces.
Search live or SOLD eBay listings, read a listing in full, and look up a seller's profile card as structured JSON. 3 endpoints, 1 credit each. Sold-listing search is the price-research feature eBay itself hides.
Search Google Shopping for products, fetch a full product page, and page through every store selling a product — as structured JSON. Price, seller, rating, and price/sale filters. v2 engine, 1 credit per request.