Search for hotels and create a hotel booking in Amadeus

domain: amadeus · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Search for hotels near a city using GET /v1/reference-data/locations/hotels/by-city with cityCode (IATA city code) and optional radius, radiusUnit, hotelSource params to get a list of hotelId values.
  2. Fetch available rates by calling GET /v3/shopping/hotel-offers with hotelIds (comma-separated), checkInDate, checkOutDate, adults, roomQuantity; each result contains offers[] with rate, room type, and cancellation policy.
  3. Confirm current availability and price immediately before booking by calling GET /v3/shopping/hotel-offers/{offerId} — list-level prices are dynamic and may be stale.
  4. Create the booking with POST /v2/booking/hotel-orders (the current Hotel Booking v2 resource — the older /v1/booking/hotel-bookings endpoint is a different, deprecated resource with a different payload shape). Set data.type='hotel-order', data.roomAssociations[].hotelOfferId to the confirmed offer id, data.guests[] (tid, title, firstName, lastName, phone, email), and data.payment.paymentCard with card details.
  5. On success, read the hotel's own confirmation number from data.hotelBookings[].hotelProviderInformation[].confirmationNumber, and store it alongside the Amadeus order id at data.id.
  6. Check data.hotelBookings[].hotelOffer.policies.cancellations and paymentType before booking to know whether the card is charged immediately (guarantee) or a deposit applies.

Known gotchas

Related routes

Apply hotel corporate and negotiated rate codes when searching and booking via a travel booking API
developers.amadeus.com · 5 steps · unrated
Complete a search-to-order flight booking using the Amadeus Self-Service API with seat selection
developers.amadeus.com · 5 steps · unrated
Price a flight offer and create a confirmed order in Amadeus
amadeus · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans