canonical: https://jentic.com/apis/amadeus.com/amadeus-points-of-interest

# Amadeus Points of Interest

The Amadeus Points of Interest API returns named landmarks and attractions around a geographic location, with category labels (sights, restaurants, shopping, nightlife) and popularity ranks. Three endpoints cover the common access patterns: a radius search around a coordinate, a bounding-box search across a rectangular area, and a detail lookup by point-of-interest id. The API is designed for travel itinerary builders, city-guide apps, and AI agents that need to populate a destination with concrete things to do.

## For AI agents

Find named landmarks, restaurants, and attractions around a coordinate or inside a bounding box, with category and popularity metadata for ranking and filtering.

## Scope

Does not handle bookings, ticket prices, or live availability - use for discovering and looking up named points of interest only.

## Capabilities

- Search points of interest within a radius of a latitude/longitude pair
- Search points of interest inside a bounding box defined by north, south, east, west coordinates
- Retrieve full detail for a single point of interest by its poisId
- Filter results by category - sights, restaurants, shopping, nightlife
- Surface category and rank metadata so an itinerary builder can prioritise top attractions

## Use cases

### Hotel-area attractions panel

Populate a 'things to do nearby' panel on a hotel detail page using the radius search endpoint. Pass the hotel's coordinates and a small radius (typically 1-2km) and render the returned points of interest grouped by category. The detail endpoint lets users tap into a specific landmark for richer information without hitting the search endpoint again. Implementation is two GET calls and renders in seconds.

Example prompt: Call GET /reference-data/locations/pois with latitude, longitude from a hotel record and radius=1 and return the top 10 sights and restaurants.

### City itinerary builder

Build a multi-day itinerary by querying the bounding-box endpoint over neighbourhood-sized areas of a city and ranking the returned points of interest by category and popularity. The bounding-box variant is ideal for clustering - a route planner can divide a city into walkable zones and pull top sights for each. Combine with Tours and Activities to add bookable experiences alongside free landmarks.

Example prompt: Call /reference-data/locations/pois/by-square with north, south, east, west bounding the Marais district and return the top 5 sights ranked by popularity.

### Detail page for a specific landmark

Once a user taps a point of interest in a list view, call the detail endpoint with that poisId to retrieve the full information needed for a detail page - categories, tags, geocode, and any descriptive metadata available. This pattern keeps list-view payloads small and fetches richer data only on demand. Useful for mobile travel apps where bandwidth matters.

Example prompt: Given poisId=9CB40CB5D0, call /reference-data/locations/pois/{poisId} and return the name, category, and coordinates.

### AI travel agent destination explorer

An AI agent answering 'what should I do in Paris on Sunday' uses Points of Interest to ground its recommendations in real, geocoded landmarks rather than generic suggestions. The agent calls Jentic to discover the radius search, executes it for a destination coordinate filtered by category, and returns a ranked list with names, categories, and walking distances - citable, verifiable recommendations rather than hallucinated attractions.

Example prompt: Use Jentic to search 'find points of interest near a location', execute the radius search for the user's destination, and return the top 10 attractions filtered to category=SIGHTS.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /reference-data/locations/pois | Search points of interest within a radius |
| GET | /reference-data/locations/pois/by-square | Search points of interest inside a bounding box |
| GET | /reference-data/locations/pois/{poisId} | Retrieve a single point of interest by id |

## Key resources

- **Locations - POIs** — Search points of interest by radius, by bounding box, or by id.

## Why Jentic

- **Setup:** Wiring Points of Interest by hand means running the Amadeus Self-Service OAuth 2.0 client_credentials exchange, refreshing the bearer token before it expires, choosing the test or production host, and handling three access patterns: radius search, bounding-box search, and detail lookup. Through Jentic you install once, import Points of Interest from the API Directory, store the client_id and client_secret once, and your agent calls it.
- **Permission scoping:** All three endpoints are read-only, with the detail lookup carrying the poisId in the URL path and the searches taking coordinates or a bounding box as query parameters, so scoping is by operation rather than by a specific place. Limit the agent to the operations it needs, such as searching points of interest within a radius, and it cannot reach any write operation because this API has none.
- **Credential handling:** Your Amadeus client_id and client_secret are stored once, encrypted, by your own Jentic One instance, which runs the client_credentials exchange and injects a fresh bearer token at execution time. The secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'find points of interest near a location', and Jentic returns the radius-search, bounding-box, and detail-lookup operations with their parameter schemas so the agent calls the right one.

## Related APIs

- **Amadeus Tours and Activities** — Tours and Activities surfaces bookable experiences; Points of Interest surfaces named landmarks.
- **Amadeus Location Score** — Location Score quantifies an area at the category level; Points of Interest lists the named places inside it.
- **Amadeus Travel Recommendations** — Travel Recommendations suggests cities; Points of Interest fills each city with attractions.

## FAQ

### What authentication does the Points of Interest API use?

OAuth 2.0 client credentials. Exchange your Amadeus API key and secret for a bearer access token, then pass it as the Authorization header on every call. Through Jentic, the client secret is stored encrypted in the vault and only a scoped token is ever exposed to the agent.

### Can I search by area rather than radius?

Yes. GET /reference-data/locations/pois/by-square accepts north, south, east, and west query parameters defining a bounding box, which is useful when you want to query an irregular zone like a neighbourhood rather than a circular radius.

### How do I fetch full detail for a single point of interest?

Call GET /reference-data/locations/pois/{poisId} with the id from a previous search result. The detail response is richer than the list-view representation and is the recommended pattern for tap-to-expand UIs.

### What are the rate limits for the Points of Interest API?

Amadeus enforces per-second and per-month transaction quotas that vary by environment. Test (test.api.amadeus.com/v1) has low quotas suitable for development; production limits depend on your Amadeus for Developers contract.

### How do I find points of interest near a location through Jentic?

Install with pip install jentic, then search 'find points of interest near a location' to discover the radius search operation. Load its schema and execute with latitude, longitude, and optional radius and category. Jentic returns the parsed results ready to render. Get started with Jentic One, the self-hosted execution layer.

### Does the test environment cover all cities?

No, the test environment returns POIs for a few selected cities only. For broader coverage you must upgrade to production via the Amadeus for Developers self-service portal.

### Can I limit what my agent is allowed to do with the Points of Interest API?

Yes. Because you run Jentic One yourself, your own rules decide which of the three operations the agent may call: the radius search, the bounding-box search, and the detail lookup by poisId. You can restrict the agent to just the operation it needs, such as searching points of interest within a radius, and grant it nothing more. All three endpoints are read-only, so a scoped agent cannot reach any write operation because this API has none.
