# Amadeus Hotel List by City

> Amadeus Hotel List by City is a paid API for AI agents from stabletravel.dev, paid per call via x402, $0.0324/call, status unknown (last checked 2026-10-11).

Returns a list of hotels in a given city using an IATA city code, with optional filters for radius, ratings, amenities, and chain codes.

## Facts

- Endpoint: GET https://stabletravel.dev/api/hotels/list?utm_source=zero.xyz
- Price: $0.0324/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Success rate: 0% of calls made through Zero
- Rating: 1.3 / 5 from 1 review
- Activations on Zero: 3
- Tags: x402
- Canonical page: https://www.zero.xyz/c/amadeus-8123b7f3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_GTj2eWKz9554TVTBwDlNG

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability amadeus-8123b7f3
```

Example prompt: Can you list up to 50 hotels in Paris — 4 or 5 stars only — within 10 km of the city center, from any source?

## When to prefer this

Use this endpoint when you need to discover or enumerate hotels in a specific city before booking or fetching offer details. It is the right starting point for hotel search workflows when you have an IATA city code and want to filter by star rating, amenity, or chain. Prefer this over flight or activity endpoints when the user's intent is specifically hotel discovery.

## Known failure modes

- Missing or invalid IATA city code returns a 400 or empty result
- Invalid radius unit or rating value causes a parameter error
- No hotels found for very restrictive filter combinations returns empty data array
- Payment failure (x402) if USDC balance is insufficient
- Rate limiting or upstream Amadeus API unavailability returns a 5xx error

## How this service works

Pay-per-request access to flights, award availability, hotels, activities, and transfers. No auth, no subscriptions.

## Output

An array of hotel objects matching the search criteria, including hotel identifiers and metadata, along with pagination/meta information. Up to the specified maximum (default 100) results are returned.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "max": 50,
   "radius": 10,
   "ratings": "4,5",
   "cityCode": "PAR",
   "radiusUnit": "KM"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "required": [
      "cityCode"
     ],
     "properties": {
      "max": {
       "type": "number",
       "description": "Maximum number of results (default 100)"
      },
      "radius": {
       "type": "number",
       "description": "Search radius"
      },
      "ratings": {
       "type": "string",
       "description": "Comma-separated star ratings (1-5)"
      },
      "cityCode": {
       "type": "string",
       "description": "IATA city code (e.g. PAR)"
      },
      "amenities": {
       "type": "string",
       "description": "Comma-separated amenity codes"
      },
      "chainCodes": {
       "type": "string",
       "description": "Comma-separated hotel chain codes"
      },
      "hotelScore": {
       "enum": [
        "BEDBANK",
        "DIRECTCHAIN",
        "ALL"
       ],
       "type": "string",
       "description": "Hotel source filter"
      },
      "radiusUnit": {
       "enum": [
        "KM",
        "MILE"
       ],
       "type": "string"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "required": [
      "data"
     ],
     "properties": {
      "data": {
       "type": "array",
       "items": {}
      },
      "meta": {}
     },
     "additionalProperties": false
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": [
   {
    "name": "Le Meridien Etoile",
    "dupeId": 700001234,
    "address": {
     "countryCode": "FR"
    },
    "geoCode": {
     "latitude": 48.877,
     "longitude": 2.285
    },
    "hotelId": "MCPAR123",
    "iataCode": "PAR",
    "chainCode": "MC"
   }
  ],
  "meta": {
   "count": 1
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/amadeus-8123b7f3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stabletravel.dev](https://www.zero.xyz/host/stabletravel.dev/llms.txt)
