← Back to all apps

Valpas Hotels

Travelby LISTO LABS
Launched Mar 11, 2026 on ChatGPT

Search for hotels equipped with Valpas patented bed bug prevention technology. Every hotel in our results is Valpas-certified, so you can travel with confidence knowing your accommodation prioritises hygiene, cleanliness, and guest safety.

What you can do:

  • Search for Valpas-protected hotels by city, neighbourhood, price, and style
  • Browse detailed hotel information including photos, amenities, ratings, and guest reviews
  • Get direct booking links to reserve your room

Whether you're planning a leisure trip, a business stay, or managing travel for a group, simply describe what you're looking for - "Find a boutique hotel in Paris with great reviews" or "Show me safe, clean hotels in Berlin near the city center" - and Valpas will recommend verified properties that match.

All results are limited to hotels using Valpas anti-bed-bug technology. If no protected hotels match your exact criteria, the app will let you know and suggest adjusting your filters.

2ChatGPT Tools
LISTO LABS Developer
TravelCategory

Available Tools

Show Hotel Details

get_hotel_details
Full Description

Use this tool when the user wants to see full details about a specific hotel — including photos, amenities, reviews, rating breakdown, and booking links.

When to use

  • User asks about a specific hotel by name (e.g., 'Tell me about Hotel Le Marais').
  • User clicks on or asks about a specific hotel from search results.
  • User wants to see photos, amenities, reviews, or booking options for a hotel.
  • User asks to compare two specific hotels — call this once per hotel.

When NOT to use

  • User wants to browse or search for hotels — use search_hotels instead.

How to use

  • Pass either the hotel's id from search results, or the hotel's name if the user mentions it directly.
  • If you have an id from a previous search, prefer using id for an exact match.
  • The response includes: name, address, rating, price level, photos, amenities, review count, rating breakdown, trip types, booking URL, and website URL.

Policy

  • Read-only — does not book or modify anything.
  • Always provide the booking URL and website URL so the user can take action.
Parameters (0 required, 2 optional)
Optional
idstring

The hotel's unique identifier — either a UUID or a TripAdvisor location id. Use this if you have an id from search_hotels results.

namestring

The hotel name to look up (e.g., 'Hotel Le Marais'). Use this when the user asks about a hotel by name and you don't have an id.

Search Hotels

search_hotels
Full Description

Use this tool ONLY when the user explicitly asks for HOTELS. The user's message must contain the word 'hotel' or 'hotels'. If the user asks for an Airbnb, apartment, hostel, or vacation rental, do NOT use this tool — it only has hotels.

When to use

  • User explicitly mentions 'hotel' or 'hotels' (e.g., 'Find hotels in Paris', 'Show me hotels near the Eiffel Tower').
  • User requests hotels by style or type (e.g., 'boutique hotels in Rome', 'luxury eco-friendly hotels').

When NOT to use — DO NOT TRIGGER for:

  • Airbnb, apartments, hostels, vacation rentals, or any non-hotel lodging — even if the user mentions a city. 'Find an Airbnb in Barcelona' is NOT a hotel request.
  • Restaurants, cafés, bars, or dining recommendations (e.g., 'best restaurants near the Eiffel Tower').
  • Flights, transportation, car rentals, or travel logistics.
  • Tourist attractions, activities, sightseeing, or things to do.
  • General city guides, weather, or travel tips.
  • Details about a specific hotel the user already knows — use get_hotel_details instead.
  • Multi-city comparisons in one query — run one search per city.

How to use

1. Start broad: set q to the city name (e.g., q='Paris'). Add filters only if the user specifies them. 2. If a search returns 0 results, relax filters progressively — remove neighborhoods first, then widen price_levels, then remove styles. 3. The q parameter matches each word independently, so 'boutique Paris' finds Paris hotels with 'boutique' in their description. 4. Do NOT repeat terms in q that are already covered by neighborhoods or styles filters.

Parameter guidance

  • q: Primary location keyword. Use ONE city or country name. Keep simple.
  • min_rating: Only set when user explicitly asks for quality (nice ≈ 4.2, great ≈ 4.5, excellent ≈ 4.7). Omit otherwise.
  • price_levels: Map budget hints to $/$$/$$$/$$$$. Note: $ hotels are rare — if 0 results, retry with $$ included.
  • neighborhoods: Use TripAdvisor format (e.g., '1st Arr.
  • Louvre', 'Le Marais'). Partial names work. If unsure, omit.
  • styles: Available values include Boutique, Mid-range, Luxury, Budget, Trendy, Romantic, Business, Family, Charming, Great View, Quaint, Historic, Classic.
  • travel_type: Infer from context — leisure for vacation, business for work trips, travel_manager for group bookings.
  • limit: Use 3–5 for quick picks, 10–20 for browsing.
  • offset: For pagination. To see the next page, set offset to the previous offset + limit (e.g., first call offset=0, second call offset=10).

Policy

  • All results are Valpas-verified hotels only.
  • This tool is search-only — it does not book or reserve rooms.
Parameters (0 required, 9 optional)
Optional
limitinteger

Max number of hotels to return (1–50). Defaults to 10. Use a smaller limit (3–5) for quick recommendations, or larger (15–20) when the user wants to browse options.

Default: 10
min_ratingnumber

Minimum rating threshold (0-5). Only include this when the user explicitly asks for a rating filter or uses qualitative phrasing; otherwise omit it. If the user uses qualitative phrasing, map it to a threshold (e.g., nice/good ≈ 4.2, great/really nice ≈ 4.5, excellent/amazing/best ≈ 4.7). If they say they have no rating preference (e.g., 'any rating'), omit it.

neighborhoodsarray

Neighborhood names to filter by (fuzzy/substring matching, accent-insensitive). Names follow TripAdvisor format, e.g., '1st Arr. - Louvre', 'Champs-Elysees', 'Le Marais', 'Odeon', 'Faubourg Saint-Germain'. Partial names work — '1st Arr' matches '1st Arr. - Louvre'. If unsure of exact neighborhood names, prefer using q with the city name instead.

Default: []
offsetinteger

Number of results to skip for pagination. Defaults to 0. To fetch the next page, set offset to the previous offset + limit (e.g., offset=10 for page 2 with limit=10).

Default: 0
price_levelsarray

List of price levels to include (e.g., $, $$, $$$, $$$$). If the user gives a per-night budget, map it to: $ (<~$100), $$ (~$100–200), $$$ (~$200–400), $$$$ ($400+). If they give a max budget, include all levels up to that; if they say budget/mid-range/upscale/luxury, pick $, $$, $$$, $$$$ respectively. Note: $ level hotels are rare and may not exist in all cities — if searching for budget options returns 0 results, try with $$ included.

Default: []
qstring

Free-text search keywords matched against hotel name, description, city, country, and neighborhoods. Each word is matched independently. Keep this simple — typically just a city name (e.g., 'Paris'). Do NOT repeat terms already covered by the neighborhoods or styles filters. If you set neighborhoods, use q only for the city.

querystring

Alias for q. Use q or query, not both.

stylesarray

Hotel style tags to filter by (fuzzy matching, accent-insensitive). Available styles include: Boutique, Mid-range, Luxury, Budget, Trendy, Romantic, Business, Family, Charming, Great View, Quaint, Historic, Classic. Partial names work.

Default: []
travel_typestring

The traveler's trip type. Infer from conversation context: 'leisure' for vacation/holiday/sightseeing, 'business' for work trips/conferences/corporate travel, 'travel_manager' if the user is booking on behalf of others or managing group travel. Pass 'unknown' if there is no context to determine the type.

Options:leisurebusinesstravel_managerunknown
Default: unknown