Inside ChatGPT's Hotel Search Engine
A technical teardown of what happens when someone asks ChatGPT for a hotel recommendation β from query classification to entity fusion.
TL;DR: ChatGPT's hotel search runs through 12 interconnected systems. Google powers ~94% of the data via SerpAPI and Places API. Hotels get linked to Google Place IDs through entity recognition (89% success rate). Results are ranked using RRF fusion, rewarding hotels that appear across multiple sources. The Google vs SerpAPI lawsuit could break it all.
Executive Summary
Google Powers Everything
~94% of ChatGPT hotel data flows through Google β via SerpAPI for web results and Google Places for entity data.
Entity Recognition is Key
89% of hotel mentions get linked to Google Place IDs. The 11% that don't may appear as duplicates or lose visibility entirely.
Multi-Source Wins
RRF fusion rewards hotels that rank well across multiple sources. Being present on TripAdvisor, Booking, AND editorial lists compounds your score.
Search Decision: The Sonic Classifier
Before ChatGPT's main language model even sees your hotel query, a fast classifier called "Sonic" decides whether to trigger web search. It assigns a probability score β if above ~65%, web search activates. We first explored this mechanism in our November 2025 analysis.
Search Trigger Rate by Hotel Query Type
Search Trigger Rate by Hotel Query Type
| Query Type | Example | Trigger Rate |
|---|---|---|
| Location-specific | "Best hotels in Paris" | 98% |
| Price queries | "Cheap hotels near me" | 91% |
| Amenity queries | "Hotels with pool in Miami" | 87% |
| Comparison | "Hilton vs Marriott Paris" | 72% |
| Definitional | "What is a boutique hotel" | 8% |
Hotel queries almost always trigger web search because they're location-specific and time-sensitive. Questions asking for recommendations ("best hotels in...") trigger 98% of the time. Price queries are high too (91%) β likely because they require real-time ARI (Availability Rate Inventory) data that the model can't answer from training data alone. Pure definitions ("what is a hotel") rely on training data alone.
Query Classification: Prompt Taxonomy
Once web search is triggered, ChatGPT classifies the query with boolean flags: Local (location-based), Image (needs visuals), Recency (time-sensitive). It also assigns a "thinking mode" β System 1 for quick answers, System 2 for research-heavy queries.
Query Classification Examples
| Query | Local | Image | Recency | Mode |
|---|---|---|---|---|
| Best hotels in Paris for couples | System 2 | |||
| Cheap hotels near Times Square | System 2 | |||
| Four Seasons Paris reviews | System 2 | |||
| What is a boutique hotel? | System 1 | |||
| Hotel check-in time | System 1 |
Most hotel queries activate all three flags simultaneously: they're local (city-specific), image-heavy (travelers want to see rooms), and time-sensitive (prices and availability change). This triggers the most comprehensive search mode.
Fan-Out Engine: Parallel Query Expansion
ChatGPT doesn't run one search β it fans out your query into 3-5 parallel sub-queries. Each sub-query averages 8-10 words and is a rephrasing of the original prompt designed to trigger web search. In practice, this means massively scraping Google Search results via SerpAPI β each fan-out fires a separate Google query and pulls back a full SERP page.
Hotel queries average 3-5 parallel searches, each rephrased in 8-10 words to capture editorial lists, user reviews, entity data, and alternative phrasings β then merges everything.
Update β March 6, 2026
Since the release of GPT-5.4 (API) and GPT-5.3 (UI), fan-outs seem to have disappeared from the UI β sometimes replaced by a single search, sometimes nothing visible at all. It's moving. This could be temporary and fan-outs may return. Fan-outs are still observed in the API. See Section 10 for full details.
The bigger signal: OpenAI is actively building its own search index. Their web search API docs now expose an external_web_access parameter β set it to false and the model searches only cached/indexed results. This confirms OpenAI maintains its own index alongside live Google scraping. The disappearance of fan-outs in the UI may signal a shift from scraping Google in real-time to querying their own index first.
Data Providers: Who Supplies What
ChatGPT pulls hotel data from 5 providers. Google dominates: SerpAPI provides web search results, Google Places provides entity data. Yelp was integrated in January 2026 for US cities and Berlin β see our Yelp in ChatGPT study for the full analysis.
Data Provider Usage Rate for Hotel Queries
Data Provider Details
| Provider | Purpose | Underlying Source | Usage % |
|---|---|---|---|
| SerpAPI (Google Web) | Web search results, snippets | Google Search | 94% |
| Google Places API | Entity data, ratings, reviews | Google Maps | 89% |
| Bing Image Search | Secondary image source | Bing | 67% |
| Yelp | Reviews, ratings, business data (US cities + Berlin) | Yelp Fusion API | 33% |
| OpenStreetMap | Map tiles, location data | OSM | 100% |
Google powers ~94% of ChatGPT's hotel data through intermediaries. If Google restricts access to SerpAPI or Places API, ChatGPT's hotel recommendations would fundamentally degrade.
Yelp is US-mostly and restaurant-heavy. Since January 2026, Yelp data appears in ~33% of hotel queries β but almost exclusively for US cities (Las Vegas, LA, San Francisco) plus Berlin. Hotels with on-site restaurants benefit the most, as Yelp's restaurant data enriches the hotel's overall entity profile. See our full Yelp study.
Hotel Images: Dual Pipeline
ChatGPT uses two image pipelines: "Entity images" come from Google Business Profile (higher quality, pre-verified), while "Web images" come from Bing search (lower quality, more variety).
Image Quality Score by Source
Image Sources by Type and Quality
| Source | Type | Quality Score | Usage % |
|---|---|---|---|
| Google Business Profile | Entity | 8.7/10 | 71% |
| Bing Image Search | Web | 6.4/10 | 67% |
| Hotel Website | Web | 7.1/10 | 34% |
Watch out for wrong images. It's not uncommon for ChatGPT to display images that aren't actually your hotel β a competitor's lobby, a stock photo, or a completely unrelated building. This happens because the Bing Image Search pipeline matches on query keywords, not on verified entity data. If your hotel has a generic name, the risk is even higher. Your best defense: a well-optimized Google Business Profile with plenty of photos, so the entity pipeline wins over the web pipeline.
Entity Recognition: Linking Hotels to Place IDs
When ChatGPT encounters "The Ritz Paris" in search results, entity recognition confirms it's the same hotel across all sources by linking to Google Place ID. Hotels without Place IDs become "orphaned" β they may appear as duplicates or lose visibility entirely.
Since GPT-5.2, we've observed that hotels with inconsistent entity data across the web β different names on GBP, their website, their schema markup, and OTAs β get penalized. If your GBP says "HΓ΄tel Le Printemps", your website says "Hotel Printemps Paris", and Booking.com lists "Printemps Hotel", the entity linker struggles β and your hotel loses visibility.
Entity Recognition Examples
| Hotel Name | Place ID | Signals Used |
|---|---|---|
| The Ritz Paris | ChIJAVkDPz... | Name, Address, Reviews |
| Hotel Negresco Nice | ChIJ8SjBnC... | Name, Photos, Category |
| Le Marais Boutique | (not linked) | Name only |
| Hotel & Spa Resort | (not linked) | Generic name |
89% of hotels get successfully linked to Google Place IDs. The 11% that fail often have generic names ("Hotel & Spa") or inconsistent NAP data across sources. A verified Google Business Profile dramatically increases your link rate. Your hotel name, address, phone, and category must be identical everywhere: Google Business Profile, Booking.com, Expedia, TripAdvisor, your website, your Schema.org markup, social media profiles β every digital touchpoint. One inconsistency and the entity linker may split you into two hotels or fail to link entirely.
The generic name problem is real. Hotels named "The Hotel", "Hotel Printemps", or "Grand Hotel" face constant entity confusion β AI models can't tell which one you are. We've seen some of these properties actively consider rebranding because of this. It makes sense: in a world where AI needs to match a name to a unique entity, a distinctive name is no longer just marketing β it's infrastructure.
Entity recognition paves the way to ads. Once AI models can reliably link a hotel mention to a structured entity (name, ID, location, attributes) rather than just plain text, the door opens to paid placements. This is the shift from "Hotel A" as a string in a paragraph to {name: "Hotel A", id: "ChIJ...", stars: 5} as a structured object that can be sponsored, tracked, and measured. Expect hotel ads inside AI recommendations soon.
Result Fusion: Reciprocal Rank Fusion (RRF)
After fan-out queries return results from multiple providers, ChatGPT merges them using Reciprocal Rank Fusion (RRF). RRF doesn't care about absolute relevance scores β it only uses rank positions. This makes it ideal for combining results from completely different sources (SerpAPI, Google Places, Yelp) that have no common scoring scale.
The RRF Formula
rrf_alpha: 1 suggesting forced weighting.Retrieval Pool: 38-65 Sources
Per query, ChatGPT retrieves 38 to 65 total sources depending on query complexity. These form the "retrieval pool" β only pages in this pool can ever be cited. If your hotel isn't fetched, it scores zero. Rank #60 in a source that isn't queried is effectively invisible.
Citation Threshold: Ο β₯ 0.020
Pages with a fused RRF score of 0.020 or above almost always land in the final top-60 citation pool. Below that, you're retrieved but not cited.
Three Citation Tiers
Not all retrieved sources are shown equally. ChatGPT uses three tiers of citation visibility:
Inline citation at sentence end + Sources panel. Maximum visibility. This is what you want.
"More" section below citations. Medium visibility. Users rarely click these.
Internal grounding links (Wikipedia, Arxiv). Never shown to users. Used for fact-checking only.
RRF Worked Example: 'Best boutique hotel Paris'
| Hotel | SerpAPI Rank | Places Rank | TripAdvisor Rank | RRF Score | Final Rank |
|---|---|---|---|---|---|
| Hotel Le Pavillon | #2 | #1 | #3 | 0.0492 | 1 |
| The Hoxton Paris | #1 | #4 | #2 | 0.0476 | 2 |
| Hotel Providence | #3 | #2 | #5 | 0.0473 | 3 |
| Maison Souquet | #5 | #3 | #1 | 0.0469 | 4 |
It's better to rank #10 for three specific queries than #60 for everything. The math is clear: a hotel appearing in 3 fan-out sub-queries at rank 10 each scores 3 Γ 1/(60+10) = 0.0429 β well above the 0.020 citation threshold. A hotel at rank 60 in a single query scores just 1/(60+60) = 0.0083 β invisible.
For hotels, multi-source presence is the strategy. Being listed on TripAdvisor, Booking.com, your own website, AND editorial lists (CondΓ© Nast, Time Out) means you appear across multiple fan-out sub-queries. Each appearance compounds your RRF score. A hotel with a strong GBP, active OTA listings, and editorial coverage is mathematically hard to beat.
Local & Maps: The Hybrid Stack
ChatGPT's maps use OpenStreetMap for tiles but Google Places for business data. The Place ID is the crucial link β hotels without one can't appear on ChatGPT's maps.
Local/Maps Component Stack
| Component | Source | Data Included | Update Frequency |
|---|---|---|---|
| Map Tiles | OpenStreetMap | Street layout, POIs | Daily |
| Place Markers | Google Places | Hotel locations, pins | Real-time |
| Routing | OpenStreetMap | Directions, distances | Weekly |
| Business Info | Google Places | Hours, contact, photos | Daily |
Yelp adds a local layer β but only in the US. For hotels in Las Vegas, Los Angeles, San Francisco, and Berlin, Yelp data now feeds into ChatGPT's local results alongside Google Places. Hotels with on-site restaurants benefit the most: Yelp's restaurant reviews and ratings enrich the hotel's local entity profile, giving it more data points in the map/local stack. If your hotel has a restaurant, make sure it has its own Yelp listing linked to the hotel. See our Yelp in ChatGPT study.
A/B Testing: Constant Experimentation
ChatGPT uses Statsig for A/B testing. At any given moment, a massive number of experiments run in parallel β testing different ranking algorithms, UI layouts, source weightings, and search behaviors. Feature gates, dynamic configs, and layer configs are constantly being toggled. The system is never static.
This means two users asking the exact same hotel query at the exact same time can get different results. Different ranking logic, different provider weights, different citation thresholds β all potentially different depending on which experiment bucket you're in.
Don't over-optimize from a single test. If you search "best hotels in Paris" and your hotel doesn't appear, that doesn't mean you're invisible β you might just be in a different A/B test group. Always test from multiple accounts, browsers, and devices before drawing conclusions. What matters is consistent presence across sources (see Section 7), not a single query result.
March 2026 Update: GPT-5.4 & Fan-Out Changes
Architecture Shift β March 2026
OpenAI released GPT-5.4 in the API and GPT-5.3 in the ChatGPT UI. The most visible change for hotel search: fan-out queries seem to have disappeared from the UI β sometimes replaced by a single search, sometimes none at all. It's moving. We're watching.
What Changed
UIChatGPT UI (GPT-5.3)
- Fan-outs seem to have disappeared β sometimes we see a single search, sometimes no visible search at all. The 3-5 parallel rephrasings described in Section 3 are no longer consistently observed.
- This could be temporary β an A/B test, a cost optimization, or a transition phase. Fan-outs may return.
- Results appear faster, but with potentially less source diversity per query.
APIAPI (GPT-5.4)
- Latest model available via API, with improved reasoning and tool use.
- API users can still implement their own fan-out patterns via function calling.
- The search infrastructure is model-version dependent β API and UI now diverge in behavior.
Impact on Hotel Search
Before vs After: Fan-Out Changes
| Aspect | Before (GPT-5.1/5.2) | After (GPT-5.3 UI) |
|---|---|---|
| Sub-queries per request | 3-5 parallel fan-outs | Unclear β sometimes 1, sometimes 0 |
| Source diversity | High β hits multiple providers simultaneously | Unclear β behavior is inconsistent |
| Speed | Slower (waits for all fan-outs) | Faster (fewer round-trips) |
| RRF fusion input | Multiple ranked lists merged | Fewer lists, heavier model weighting |
| Multi-source advantage | Strong β more sources = higher RRF | Unclear β may still work differently server-side |
| Consistency | Lower (fan-out variance) | Appears higher (fewer moving parts) |
This is an observation, not a conclusion. We're seeing single-query behavior in the UI right now, but this could be an A/B test, a temporary optimization, or a shift that gets reversed. OpenAI changes search behavior constantly (see Section 9). What we can say: if fan-outs are truly reduced, Google Business Profile and the hotel's own website become even more critical β because with fewer queries, the model will prioritize high-authority, entity-rich sources over broad web scraping. But multi-source presence remains the safest long-term strategy regardless.
Legal Context: Google vs SerpAPI
In December 2024, Google filed a lawsuit against SerpAPI alleging DMCA Β§1201 violations for scraping Google Search results. SerpAPI is ChatGPT's primary data provider. If Google wins, ChatGPT's hotel search fundamentally breaks.
Google LLC v. SerpAPI Inc. (2024)
Filed December 2024 in California. Google alleges SerpAPI violates DMCA Β§1201 by circumventing access controls. Also alleges violations of Computer Fraud and Abuse Act (CFAA) and tortious interference.
ChatGPT Functions at Risk
| Function | Google Source | Backup Option | Risk Level |
|---|---|---|---|
| Web Search Results | SerpAPI (Google) | Bing | Critical |
| Entity Data | Google Places API | None | Critical |
| Hotel Photos | GBP Images | Bing Images | Medium |
| Reviews/Ratings | Google Reviews | TripAdvisor API | High |
| Maps Display | OSM (not Google) | N/A | Low |
If SerpAPI is blocked, OpenAI would need to find alternative data sources. Bing could partially substitute for web search, but there's no replacement for Google Places entity data. Hotels visible through Google Places would retain advantage even in a restructured system.
What This Means for Hotels
Based on how ChatGPT's hotel search actually works, here are the 7 actions that matter most:
Claim & Optimize Your GBP
Your Google Business Profile is the source of truth for entity data. Complete all fields, add 50+ photos, keep hours updated. And check your star rating β we've seen hotels listed as 3-star on GBP when they're actually 4-star. If Google has it wrong, ChatGPT will too.
Be Present Across Multiple Sources
RRF rewards multi-source presence. Ensure you're on TripAdvisor, Booking.com, AND editorial lists like CondΓ© Nast Traveler.
Reply to Reviews
Review replies are free content. Every response is an opportunity to naturally mention what you want to rank for β "our rooftop pool", "our Michelin-starred restaurant", "walking distance from the Eiffel Tower". AI models read replies. Use them strategically.
Upload High-Quality Images to GBP
GBP photos get priority in ChatGPT's entity pipeline. They're shown in entity panels and maps. Prioritize professional shots β exterior, lobby, room types, amenities.
Encourage Recent Reviews
ChatGPT's recency filter prioritizes fresh content. A hotel with 10 reviews from last month outranks one with 100 reviews from last year.
Perfect Your Schema Markup
Use the Hotel type (not LocalBusiness) with starRating, amenityFeature, aggregateRating, and geo. This is how ChatGPT classifies your category, price tier, and amenities. Read our complete Schema.org guide.
Monitor the Google vs SerpAPI Case
If Google wins, ChatGPT's data sources will shift. Hotels with strong direct presence (website SEO, brand recognition) will be more resilient.
Methodology
Methods
- β’ Browser DevTools network inspection
- β’ JavaScript bundle analysis
- β’ API request/response logging
- β’ Statsig configuration extraction
Sources
- β’ ChatGPT web interface
- β’ OpenAI API documentation
- β’ Court filings (Google v. SerpAPI)
- β’ Nicolas Sitter technical research
Limitations
- β’ Investigative research, not official docs
- β’ Systems change frequently
- β’ A/B tests affect observed behavior
- β’ Hotel-focused interpretation
This analysis is based on technical investigation of ChatGPT's web search infrastructure. It is not official OpenAI documentation. ChatGPT's systems are constantly evolving; specific details may change. Based on ongoing technical research into ChatGPT web search applied to the hotel vertical.
Frequently Asked Questions
Where does ChatGPT get hotel information from?
ChatGPT gets hotel information primarily from Google through SerpAPI, which provides web search results, and Google Places API for entity data like ratings, reviews, and photos. Secondary sources include Bing for images and OpenStreetMap for mapping. Approximately 94% of ChatGPT's hotel data flows through Google-owned or Google-sourced systems.
How does ChatGPT decide when to search the web for hotels?
ChatGPT uses a fast classifier called "Sonic" that runs before the main language model. This classifier assigns a probability score to each query, and if the score exceeds roughly 65%, web search is triggered. For hotel queries, the trigger rate is very high: location-specific hotel questions trigger search 98% of the time, price queries 91%, while purely definitional questions ("What is a boutique hotel?") trigger only 8%.
What is the fan-out engine in ChatGPT hotel search?
The fan-out engine takes a single user query like "Best boutique hotel in Paris" and expands it into 5-7 parallel sub-queries sent to different data providers. For example: "best boutique hotels Paris" to SerpAPI, "boutique hotel Paris reviews" to web search, and "Paris boutique hotel" to Google Places. This parallel approach gathers diverse information quickly. Hotel queries average 5.3 parallel searches per request.
How does ChatGPT rank hotels from multiple sources?
ChatGPT uses Reciprocal Rank Fusion (RRF) to combine results from multiple sources. Each hotel gets a score based on its rank in each source using the formula 1/(k+rank), where k=60. Hotels appearing in multiple sources get their scores added together. This means a hotel ranked #1 in two sources scores much higher than one ranked #1 in just one source. Multi-source presence is the key to visibility.
What is entity recognition in ChatGPT hotel search?
Entity recognition links hotel names mentioned in search results to their canonical Google Place ID. When ChatGPT encounters "The Ritz Paris" in multiple sources, entity recognition confirms they all refer to the same hotel (Place ID: ChIJ...) and merges their information. About 89% of hotels get successfully linked to Place IDs. The 11% that fail may appear as duplicates or lose visibility entirely.
Could the Google vs SerpAPI lawsuit break ChatGPT hotel search?
Yes, it could fundamentally break it. In December 2024, Google filed a lawsuit against SerpAPI alleging DMCA violations for scraping search results. SerpAPI provides ~94% of ChatGPT's hotel search data. If Google wins, OpenAI would need to find alternative data sources, potentially degrading hotel recommendation quality significantly. The case is ongoing and represents an existential risk to current ChatGPT hotel search capabilities.
Continue Reading
Explore more Nicolas Sitter research on AI hotel search.