Travel and places
Structured hotel and place results that cloro surfaces inside a Perplexity response whenever the prompt carries travel intent.
Overview
Travel and places data is not a standalone endpoint — it rides along inside the regular Perplexity extraction response, so no extra request or feature flag is needed. cloro classifies the intent of each prompt, and when it recognizes a travel-shaped query (looking for hotels, sightseeing, or things to do in a location), it populates two extra arrays alongside the usual answer.
Both arrays follow Perplexity's own ranking order: the item at index 0 is the top-ranked result of its kind, and entries descend from there. If the prompt shows no travel intent, the arrays are simply absent from the payload.
Triggering travel results
To receive travel and places data, submit a prompt whose wording expresses a travel goal — for instance asking about hotels in a specific city, notable places to visit, or activities in a destination. A short example request body:
{
"prompt": "best hotels in Lisbon for families",
"country": "PT"
}
Top-level travel fields
| Field | Type | Description |
|---|---|---|
result.hotels | array | Ranked hotel listings, present only when travel intent is detected. |
result.places | array | General points of interest and locations tied to the query. |
Hotel object
Every entry in result.hotels may carry the following fields:
| Field | Type | Description |
|---|---|---|
name | string | Display name of the hotel. |
url | string | Link to the hotel's detail page. |
rating | number | Aggregate score on a 0–5 scale. |
num_reviews | number | Count of reviews behind the rating. |
address | array | Address broken into individual lines. |
phone | string | Contact phone number. |
description | string | Short summary of the property. |
image_url | string | URL of the primary photo. |
images | array | URLs of any additional photos. |
lat | number | Latitude coordinate. |
lng | number | Longitude coordinate. |
price_level | string | Relative price band indicator. |
categories | array | Category or amenity tags for the hotel. |
Place object
Every entry in result.places may carry the following fields:
| Field | Type | Description |
|---|---|---|
name | string | Display name of the place. |
url | string | Link to the place's detail page. |
address | array | Address broken into individual lines. |
rating | number | Aggregate score on a 0–5 scale. |
lat | number | Latitude coordinate. |
lng | number | Longitude coordinate. |
categories | array | Category tags describing the place. |
map_url | string | Link to the location on a map. |
images | array | URLs of photos for the place. |
Response example
{
"success": true,
"result": {
"text": "Lisbon offers several family-friendly hotels clustered around its central districts...",
"hotels": [
{
"name": "Hotel Mundial",
"url": "https://www.hotel-mundial.pt",
"rating": 4.3,
"num_reviews": 6421,
"address": ["Praca Martim Moniz 2", "1100-341 Lisboa"],
"phone": "+351 21 884 2000",
"description": "Central family hotel with rooftop views over the old town.",
"image_url": "https://example.com/mundial.jpg",
"images": [
"https://example.com/mundial-1.jpg",
"https://example.com/mundial-2.jpg"
],
"lat": 38.7167,
"lng": -9.1357,
"price_level": "$$$",
"categories": ["Family-friendly", "Rooftop bar"]
}
],
"places": [
{
"name": "Oceanario de Lisboa",
"url": "https://www.oceanario.pt",
"address": ["Esplanada Dom Carlos I", "1990-005 Lisboa"],
"rating": 4.7,
"lat": 38.7635,
"lng": -9.0939,
"categories": ["Aquarium", "Attraction"],
"map_url": "https://maps.example.com/oceanario",
"images": ["https://example.com/oceanario-1.jpg"]
}
]
}
}
Notes
All travel fields are best-effort: any individual property may be omitted when the source does not expose it, so treat every field as optional when parsing. Because these arrays only appear on travel-intent prompts, always check for their presence before reading them. Questions about coverage or field behavior can go to [email protected].