واجهة السفر البرمجية · v1
ابنِ على الرحلة كاملةً
تكامل واحد ومنتجان: واجهة الطيران (تقويم الأسعار، والبحث، والتسعير، والخدمات الإضافية، والطلب، والتذكرة، والإلغاء) وواجهة الفنادق (البحث حسب المدينة أو رموز الفنادق، والغرف، والتحقق من السعر، والحجز، والإلغاء)، إضافةً إلى المحتوى الثابت. JSON نظيف عبر HTTPS، وطلبات موقّعة، وعنوان URL أساسي واحد للبيئة التجريبية والإنتاج.
عنوان URL الأساسي
https://api.dubaitrip.com/v1عنوان URL واحد للبيئة التجريبية والإنتاج — والمفتاح هو ما يحدد: مفاتيح dt_sbx_ تصل إلى أنظمة الاختبار لدى مورّدينا، ومفاتيح dt_live_ تصل إلى المخزون الحي.
الأدلة
- البدء السريعمن التسجيل إلى رحلة طيران محجوزة في البيئة التجريبية، في خمس خطوات.
- المصادقةطريقتان للمصادقة، كلتاهما مرتبطة بمعرّف مفتاحك: الطلبات الموقّعة (موصى بها) أو رموز Bearer عبر OAuth 2 بمنح client credentials.
- البيئات والحدود والإصداراتعنوان URL أساسي واحد للبيئة التجريبية والإنتاج؛ والمفتاح الذي توقّع به هو ما يحدد البيئة.
- الأخطاءكل إخفاق هو مستند مشكلة وفق RFC 7807 مع رمز ثابت قابل للقراءة آليًا.
- واجهة الطيرانتقويم الأسعار، والبحث عبر 900+ شركة طيران، وتسعير عرض، وإضافة خدمات إضافية، وإنشاء طلب، وإصدار التذاكر، وطلب عروض الاسترجاع وتنفيذه.
- واجهة الفنادقابحث في 1.5M+ منشأة حسب رمز المدينة (بنمط IATA، مثل DXB) أو حسب رموز الفنادق التي تخزّنها من كتالوجنا، واطّلع على الأسعار على مستوى الغرفة مع نظام الوجبات وسياسة الإلغاء، ثم تحقّق واحجز، وألغِ وفق السياسة.
- المحتوى الثابتعمليات بحث مرجعية لبناء واجهة بحث ولتخزين كتالوج الفنادق لدينا حسب المدينة: المطارات، وشركات الطيران، والمدن، والفنادق.
- سجل التغييراتكل تغيير على واجهة السفر البرمجية، الأحدث أولًا.
نقاط النهاية
المصادقة
الحساب
الطيران
- 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.
الفنادق
- 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.
المحتوى
- 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`.