// the find
amadeus4dev/amadeus-node
Node library for the Amadeus Self-Service travel APIs
Official Node.js SDK for Amadeus's self-service travel APIs, covering flights, hotels, transfers, and analytics. It's a thin wrapper that maps API paths to a chained object hierarchy, handling OAuth2 token management and pagination. Primarily useful for startups and indie developers building travel booking or search features without a GDS contract.
- OAuth2 token refresh is handled automatically and transparently — you never touch access tokens directly.
- The path-mirroring API design (e.g. `amadeus.referenceData.urls.checkinLinks.get()`) is predictable once you know the REST path, reducing the need to read SDK docs beyond the API docs.
- Pagination is a first-class concept with `.next()`, `.previous()`, etc. returning Promises, which is a nicer interface than manually managing offset parameters.
- Pluggable logger interface lets you drop in any console-compatible logger and set verbosity at init time, useful for debugging API issues in production.
- No TypeScript types shipped. For a booking API where you're passing complex nested objects (traveler info, payment, seat maps), missing types means missing validation at compile time and a lot of guessing at payload shapes.
- The endpoint namespace hierarchy has inconsistencies — `amadeus.location.analytics` and `amadeus.travel.analytics` are separate top-level objects for no obvious reason, and some endpoints like hotel booking have two competing versions (v1 `hotelBookings` vs v2 `hotelOrders`) with no clear deprecation guidance.
- Test coverage only exists at the namespace/client unit level with mocked HTTP — there are no integration or contract tests, so breaking API changes on Amadeus's side won't be caught until runtime.
- Still uses CommonJS (`require`) as the primary interface with no ESM build, and the build toolchain is Babel with no apparent modern bundler setup, which creates friction in ESM-first projects.