Search airports and cities by keyword via Amadeus reference data — $0.005/request, no API key needed.
What it does
This endpoint searches for airports and cities by keyword using Amadeus reference data, exposed through StableTravel's pay-per-request gateway. It accepts a required `keyword` (e.g. "London", "JFK") and a required `subType` filter (AIRPORT, CITY, or AIRPORT,CITY), returning matching location records with IATA codes, geo-coordinates, and metadata. Optional parameters include `countryCode` for filtering by ISO country, pagination via `page[limit]` and `page[offset]`, sorting by traveler score, and a FULL/LIGHT view toggle.
The endpoint is part of StableTravel's broader travel API suite that covers flights, hotels, activities, transfers, and real-time flight tracking via Amadeus and FlightAware. Payment is handled automatically via the MPP (Tempo) or x402 protocol — no API keys, OAuth tokens, or subscriptions required. The fixed price is $0.0054 per request (approximately half a cent), settled in pathUSD on Tempo (chain ID 4217).
This is a GET-only endpoint. The response contains a `data` array of location objects and a `meta` object. It is useful as a prerequisite step before flight search, hotel lookup, or any workflow that requires resolving a human-readable place name to an IATA code. The full OpenAPI 3.1 spec is available at `/openapi.json`.
Capabilities
Use cases
- —Resolve a city or airport name to its IATA code before searching flights
- —Build autocomplete for travel booking interfaces
- —Look up airports in a specific country
- —Validate user-entered airport or city names against Amadeus data
- —Pre-populate location fields in agent-driven travel planning workflows
Fit
Best for
- —AI agents that need to convert place names to IATA codes for downstream flight/hotel searches
- —Travel chatbots needing location disambiguation
- —Developers building travel planning tools without managing Amadeus credentials
Not for
- —Searching for flights, hotels, or activities directly (use sibling endpoints for those)
- —Geocoding arbitrary street addresses (this only covers airports and cities)
- —High-volume batch geocoding where per-request pricing adds up
Quick start
npx agentcash fetch "https://stabletravel.dev/api/reference/locations?keyword=London&subType=AIRPORT,CITY"Example
Response
{
"data": [
{
"name": "LONDON",
"type": "location",
"address": {
"countryCode": "GB"
},
"geoCode": {
"latitude": 51.50853,
"longitude": -0.12574
},
"subType": "CITY",
"iataCode": "LON"
},
{
"name": "HEATHROW",
"type": "location",
"address": {
"countryCode": "GB"
},
"geoCode": {
"latitude": 51.4775,
"longitude": -0.46139
},
"subType": "AIRPORT",
"iataCode": "LHR"
}
],
"meta": {
"count": 2
}
}Endpoint
Quality
Full OpenAPI 3.1 schema with detailed parameter definitions, clear pricing in x-payment-info, live 402 MPP challenge captured, and comprehensive guidance docs. Slightly below 0.9 because no example response is provided in the spec itself (response item schema uses empty `items: {}`) and no actual 200 response was captured in the probe.
Warnings
- —Response item schema in OpenAPI uses empty `items: {}` — actual response structure must be inferred from Amadeus documentation patterns.
- —The decoded MPP amount is 5400 in pathUSD (6 decimals) = $0.0054, which is slightly higher than the $0.005 listed in the guidance table.
Citations
- —Endpoint price is $0.005 per request (listed) / $0.0054 (from OpenAPI x-payment-info)https://stabletravel.dev/openapi.json
- —Required parameters are keyword and subType (AIRPORT, CITY, or AIRPORT,CITY)https://stabletravel.dev/openapi.json
- —Payment via USDC on Base, Solana, or Tempo (x402/MPP protocol) serves as authentication — no API keys neededhttps://stabletravel.dev
- —MPP challenge captured live with method=tempo, intent=charge, amount=5400, chainId=4217https://stabletravel.dev/api/reference/locations
- —Part of StableTravel suite covering flights, hotels, activities, transfers, and FlightAware trackinghttps://stabletravel.dev