API voyage · v1
Construisez sur l’ensemble du voyage
Une intégration, deux produits : l’API Vols (calendrier tarifaire, recherche, tarification, services annexes, commande, billet, annulation) et l’API Hôtels (recherche par ville ou par codes d’hôtels, chambres, vérification du tarif, réservation, annulation), plus le contenu statique. Du JSON propre via HTTPS, des requêtes signées, une seule URL de base pour le bac à sable et la production.
URL de base
https://api.dubaitrip.com/v1Une seule URL pour le bac à sable et la production — c’est la clé qui décide : les clés dt_sbx_ atteignent les systèmes de test de nos fournisseurs, les clés dt_live_ l’offre réelle.
Guides
- Démarrage rapideDe l’inscription à un vol réservé dans le bac à sable, en cinq étapes.
- AuthentificationDeux méthodes d’authentification, toutes deux liées à votre identifiant de clé : les requêtes signées (recommandé) ou les jetons Bearer OAuth 2 de type client credentials.
- Environnements, limites et versionsUne seule URL de base pour le bac à sable et la production ; c’est la clé avec laquelle vous signez qui sélectionne l’environnement.
- ErreursChaque échec est un document de problème RFC 7807 avec un code stable lisible par machine.
- API VolsCalendrier tarifaire, recherche sur 900+ compagnies aériennes, tarification d’une offre, ajout de services annexes, création d’une commande, émission de billets, devis et traitement des remboursements.
- API HôtelsRecherchez parmi 1.5M+ établissements par code de ville (de type IATA, p. ex. DXB) ou par les codes d’hôtel que vous conservez depuis notre catalogue, consultez les tarifs par chambre avec formule de repas et conditions d’annulation, validez et réservez, puis annulez selon les conditions.
- Contenu statiqueDes référentiels pour construire une interface de recherche et pour stocker notre catalogue d’hôtels par ville : aéroports, compagnies aériennes, villes et hôtels.
- Journal des modificationsChaque modification de l’API voyage, de la plus récente à la plus ancienne.
Endpoints
Authentification
Compte
Vols
- get
/v1/flights/price-calendarCheapest fare per day for a route over a date window, from our price cache — instant and never a live supplier call. Draw a fare calendar before searching. Omit the return window for one-way prices. - post
/v1/flights/searchSearch flights. Returns a session to poll, or the complete result when `wait` is true. - get
/v1/flights/search/{searchId}Read the next page of a running search. `status` becomes `complete` when every supplier answered. - post
/v1/flights/offers/{offerId}/priceRe-price an offer right before booking. `priceChanged` tells you the total moved. - get
/v1/flights/offers/{offerId}/fare-rulesFare rules and conditions of an offer. - get
/v1/flights/offers/{offerId}/ancillariesChargeable extras available for an offer — today extra checked-baggage allowances, priced by the airline per passenger. Add them to the order via `ancillaries[]` on POST /v1/flights/orders. - post
/v1/flights/ordersCreate an order (hold) from an offer. Requires an `Idempotency-Key` header. - get
/v1/flights/orders/{orderId}Read an order: status, time limit, tickets. - post
/v1/flights/orders/{orderId}/issueIssue the tickets of a held order (charges your deposit balance). - get
/v1/flights/orders/{orderId}/refund-quoteWhat a cancellation would refund, before you commit. - post
/v1/flights/orders/{orderId}/cancelCancel: a held order is released; a ticketed order is voided inside the void window, else refunded. - get
/v1/flights/scheduleTimetable for a route on one day: which flights operate, with local times and equipment — no fares. Query: `origin`, `destination` (IATA), `date` (yyyy-MM-dd). - post
/v1/flights/orders/{orderId}/exchange/searchExchange step 1: search replacement itineraries for a ticketed order. Offers come back in the search shape and expire the same way. - post
/v1/flights/orders/{orderId}/exchange/quoteExchange step 2: what exchanging the listed tickets onto an offer would cost. No side effects. - post
/v1/flights/orders/{orderId}/exchangeExchange step 3: re-issue the listed tickets onto the offer (charges your deposit balance). Requires an `Idempotency-Key` header.
Hôtels
- post
/v1/hotels/searchSearch hotels by city code (IATA-style, e.g. DXB — see /v1/content/cities), by hotel codes from your stored catalogue, or by a geo circle. Returns a session to poll, or the complete result when `wait` is true. - get
/v1/hotels/search/{searchId}Read the next page of a running search. Pass the same dates and room count as the search so rate keys stay bookable. - get
/v1/hotels/{hotelCode}/roomsRoom types of a hotel. Pass any `rateKey` from the same search so the right supplier answers. - post
/v1/hotels/rates/{rateKey}/checkPre-book check: confirms the rate is still bookable and its price. - post
/v1/hotels/bookingsBook a rate. Requires an `Idempotency-Key` header. - get
/v1/hotels/bookings/{bookingId}Read a booking (voucher). - get
/v1/hotels/bookings/{bookingId}/cancellation-quoteWhat a cancellation would refund, before you commit. - post
/v1/hotels/bookings/{bookingId}/cancelCancel a booking under its cancellation policy.
Contenu
- get
/v1/content/airportsAirports (IATA), optionally filtered by a free-text term or a country. - get
/v1/content/citiesCities usable as a hotel search destination, optionally filtered by term or country. - get
/v1/content/airlinesAirlines (IATA two-letter codes). - get
/v1/content/hotelsLook up hotels by city and/or name — a lookup, not a catalogue export: a cityCode or a name of 3+ characters is required, 50 per page, 20 pages per query. Store the codes you need: availability is searched by `cityCode` or `hotelCodes`.