Travel & hotel research
Search and compare hotels, flights, attractions, short-term rentals, and
live events across seven travel platforms as normalized JSON from the
Crawlora API — no scraping OTA search-result pages.
When to use this skill
- "Find hotels in for " / compare prices across OTAs.
- "What are the reviews like for this hotel/attraction?"
- "Search flights from to ."
- "What's there to do in ?" (attractions/tours, or concerts/events).
- "Look up this Airbnb host/listing" (reviews, calendar, other listings).
- "Find tickets/events for in " (Ticketmaster).
Setup (one-time)
- Get a free Crawlora API key (2,000 credits/mo, no card) at https://crawlora.net.
- Set
CRAWLORA_API_KEY in the environment before running the helper.
- The helper reads
CRAWLORA_API_KEY from the environment and sends requests to https://api.crawlora.net/api/v1. Missing/invalid key → 401.
How it works
- Hotels —
/booking/search (params query, checkin, checkout),
/agoda/hotels/search, /tripcom/hotels/search (GET, by city) or
POST /expedia/properties/search (Expedia's Stays API is POST-only —
its exact request-body field names are undocumented, see below); detail
via /booking/hotel-detail, /agoda/hotels/{property_id},
POST /expedia/properties/detail; reviews via /booking/reviews,
POST /expedia/properties/reviews.
- Flights —
/agoda/flights/search (GET) and POST /expedia/flights/search
/ /booking-flights/search; use each platform's .../autocomplete or
.../search-locations endpoint first to resolve city/airport codes.
- Attractions & things-to-do —
/booking-attractions/search,
POST /expedia/activities/search, /agoda/activities/search,
/tripadvisor/search (hotels, restaurants, and attractions all in one).
- TripAdvisor —
/tripadvisor/autocomplete to resolve a place, then
/tripadvisor/place for the profile and /tripadvisor/reviews for guest
reviews (works for hotels, restaurants, and attractions).
- Airbnb —
/airbnb/search to find stays; /airbnb/room/{id} for a
listing (+ /calendar, /reviews); /airbnb/host/{id} for the host
profile (+ /listings, /reviews).
- Ticketmaster —
/ticketmaster/search-events (q) or
/ticketmaster/discover-city-events (city) to find events;
/ticketmaster/event for detail, /ticketmaster/venue (+ /venue-events)
for a venue, /ticketmaster/attraction (+ /attraction-events) for a
performer/team's full schedule.
Full endpoint list, methods, and params: reference/endpoints.md.
Calling the API
# Hotel search (GET):
scripts/crawlora.sh /booking/search query="Lisbon" checkin=2026-09-10 checkout=2026-09-14 | jq '.'
scripts/crawlora.sh /agoda/hotels/search city="Lisbon" | jq '.'
# Expedia (POST — exact body field names are unconfirmed, see Notes below):
scripts/crawlora.sh -X POST /expedia/properties/search '{"destination":"Lisbon","checkIn":"2026-09-10","checkOut":"2026-09-14"}' | jq '.'
# Airbnb:
scripts/crawlora.sh /airbnb/search location="Lisbon" | jq '.'
scripts/crawlora.sh /airbnb/room/12345678 | jq '.'
# Ticketmaster:
scripts/crawlora.sh /ticketmaster/search-events q="Coldplay" | jq '.'
Use scripts/crawlora.sh for all requests; it keeps the API key out of command-line arguments.
Endpoint reference
See reference/endpoints.md for every Booking,
Expedia, Agoda, TripAdvisor, Trip.com, Airbnb, and Ticketmaster endpoint
this skill uses.
Examples
- Cross-OTA price compare: search the same destination/dates on
/booking/search, /agoda/hotels/search, and POST /expedia/properties/search,
then diff nightly rates for comparable hotels.
- Stay vs. hotel:
/airbnb/search against /booking/search for the
same city to compare short-term-rental vs. hotel pricing.
- Trip planning:
/tripadvisor/search for attractions in a city, then
/tripadvisor/reviews on the top few to check recent visitor sentiment.
- Host due diligence:
/airbnb/host/{id} + /airbnb/host/{id}/reviews
before booking, or /airbnb/host/{id}/listings to see their full portfolio.
Notes & limits
- Credits / pay-on-success: billed only on
2xx; free tier 2,000 credits/mo.
Key at https://crawlora.net.
- Public data only — public search/listing/review pages; no booking or
payment actions are performed.
- Security: key lives in
CRAWLORA_API_KEY only — never hardcode, query-param, or commit it.
- Expedia and some Agoda endpoints are
POST with a JSON body — remember
-X POST when calling scripts/crawlora.sh. Most Booking/Agoda/Trip.com/
Airbnb/TripAdvisor endpoints are plain GET with query params.
- Expedia's exact request-body field names are unconfirmed — the tool
schema only exposes an opaque
option object (destination, dates,
occupancy, filters expected inside), and live-testing ruled out both a
{"option": {...}} wrapper and several plausible flat field-name guesses
(checkInDate/checkOutDate, checkIn/checkOut). Confirm the current
shape at crawlora.net/docs
or the playground
before relying on the Expedia endpoints — every other endpoint in this
skill is live-verified, Expedia's POST body shape is the one exception.
- Location/city ids are platform-specific — always resolve with the
platform's own autocomplete/locations-search endpoint first.
1---2name: travel-hotel-research3description: Researches hotels, flights, attractions, short-term rentals, and live events via the Crawlora API — Booking.com, Expedia, Agoda, TripAdvisor, Trip.com, Airbnb, and Ticketmaster — returning clean JSON. Use when the user wants to search or compare hotel/stay prices and reviews, look up flight options, find attractions/things-to-do or concerts/events, or research an Airbnb host or listing.4---56# Travel & hotel research78Search and compare hotels, flights, attractions, short-term rentals, and9live events across seven travel platforms as normalized JSON from the10Crawlora API — no scraping OTA search-result pages.1112## When to use this skill1314- "Find hotels in <city> for <dates>" / compare prices across OTAs.15- "What are the reviews like for this hotel/attraction?"16- "Search flights from <origin> to <destination>."17- "What's there to do in <city>?" (attractions/tours, or concerts/events).18- "Look up this Airbnb host/listing" (reviews, calendar, other listings).19- "Find tickets/events for <artist> in <city>" (Ticketmaster).2021## Setup (one-time)2223- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).24- Set `CRAWLORA_API_KEY` in the environment before running the helper.25- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.2627## How it works28291. **Hotels** — `/booking/search` (params `query`, `checkin`, `checkout`),30 `/agoda/hotels/search`, `/tripcom/hotels/search` (GET, by city) or31 `POST /expedia/properties/search` (Expedia's Stays API is POST-only —32 its exact request-body field names are undocumented, see below); detail33 via `/booking/hotel-detail`, `/agoda/hotels/{property_id}`,34 `POST /expedia/properties/detail`; reviews via `/booking/reviews`,35 `POST /expedia/properties/reviews`.362. **Flights** — `/agoda/flights/search` (GET) and `POST /expedia/flights/search`37 / `/booking-flights/search`; use each platform's `.../autocomplete` or38 `.../search-locations` endpoint first to resolve city/airport codes.393. **Attractions & things-to-do** — `/booking-attractions/search`,40 `POST /expedia/activities/search`, `/agoda/activities/search`,41 `/tripadvisor/search` (hotels, restaurants, and attractions all in one).424. **TripAdvisor** — `/tripadvisor/autocomplete` to resolve a place, then43 `/tripadvisor/place` for the profile and `/tripadvisor/reviews` for guest44 reviews (works for hotels, restaurants, and attractions).455. **Airbnb** — `/airbnb/search` to find stays; `/airbnb/room/{id}` for a46 listing (+ `/calendar`, `/reviews`); `/airbnb/host/{id}` for the host47 profile (+ `/listings`, `/reviews`).486. **Ticketmaster** — `/ticketmaster/search-events` (`q`) or49 `/ticketmaster/discover-city-events` (`city`) to find events;50 `/ticketmaster/event` for detail, `/ticketmaster/venue` (+ `/venue-events`)51 for a venue, `/ticketmaster/attraction` (+ `/attraction-events`) for a52 performer/team's full schedule.5354Full endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).5556## Calling the API5758```sh59# Hotel search (GET):60scripts/crawlora.sh /booking/search query="Lisbon" checkin=2026-09-10 checkout=2026-09-14 | jq '.'61scripts/crawlora.sh /agoda/hotels/search city="Lisbon" | jq '.'6263# Expedia (POST — exact body field names are unconfirmed, see Notes below):64scripts/crawlora.sh -X POST /expedia/properties/search '{"destination":"Lisbon","checkIn":"2026-09-10","checkOut":"2026-09-14"}' | jq '.'6566# Airbnb:67scripts/crawlora.sh /airbnb/search location="Lisbon" | jq '.'68scripts/crawlora.sh /airbnb/room/12345678 | jq '.'6970# Ticketmaster:71scripts/crawlora.sh /ticketmaster/search-events q="Coldplay" | jq '.'72```7374Use `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.757677## Endpoint reference7879See [`reference/endpoints.md`](reference/endpoints.md) for every Booking,80Expedia, Agoda, TripAdvisor, Trip.com, Airbnb, and Ticketmaster endpoint81this skill uses.8283## Examples8485- **Cross-OTA price compare:** search the same destination/dates on86 `/booking/search`, `/agoda/hotels/search`, and `POST /expedia/properties/search`,87 then diff nightly rates for comparable hotels.88- **Stay vs. hotel:** `/airbnb/search` against `/booking/search` for the89 same city to compare short-term-rental vs. hotel pricing.90- **Trip planning:** `/tripadvisor/search` for attractions in a city, then91 `/tripadvisor/reviews` on the top few to check recent visitor sentiment.92- **Host due diligence:** `/airbnb/host/{id}` + `/airbnb/host/{id}/reviews`93 before booking, or `/airbnb/host/{id}/listings` to see their full portfolio.9495## Notes & limits9697- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.98 Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).99- **Public data only** — public search/listing/review pages; no booking or100 payment actions are performed.101- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.102- **Expedia and some Agoda endpoints are `POST` with a JSON body** — remember103 `-X POST` when calling `scripts/crawlora.sh`. Most Booking/Agoda/Trip.com/104 Airbnb/TripAdvisor endpoints are plain `GET` with query params.105- **Expedia's exact request-body field names are unconfirmed** — the tool106 schema only exposes an opaque `option` object (destination, dates,107 occupancy, filters expected inside), and live-testing ruled out both a108 `{"option": {...}}` wrapper and several plausible flat field-name guesses109 (`checkInDate`/`checkOutDate`, `checkIn`/`checkOut`). Confirm the current110 shape at [crawlora.net/docs](https://crawlora.net/docs?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills)111 or the [playground](https://crawlora.net/playground?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills)112 before relying on the Expedia endpoints — every other endpoint in this113 skill is live-verified, Expedia's POST body shape is the one exception.114- Location/city ids are platform-specific — always resolve with the115 platform's own autocomplete/locations-search endpoint first.