مستندات

جست‌وجو در مستندات

نام اندپوینت، موضوع یا کلیدواژه را بنویسید

جست‌وجوی پرواز

جست‌وجوی پرواز مسیر و مسافران شما را می‌گیرد و پیشنهادهای (offer) قیمت‌دار برمی‌گرداند. هر پیشنهاد یک برنامهٔ سفر کامل و قابل‌رزرو با قیمت مشخص است. یکی را انتخاب می‌کنید، آن را دوباره اعتبارسنجی می‌کنید و به سفارش تبدیلش می‌کنید.

یافتن مبدأ و مقصد#

GET/v3/HAPI/flights/places

تکمیل خودکار برای فرم جست‌وجو: نام شهر یا فرودگاهی را که کاربر تایپ کرده (یا یک کد IATA) به مکان‌های دارای پرواز تبدیل می‌کند. به اسکوپ flights:read نیاز دارد.

GET https://api.simorghapi.com/v3/HAPI/flights/places?query=istan&limit=5
{
  "object": "flight_place_list",
  "data": [
    { "object": "flight_place", "code": "IST", "name": "Istanbul", "type": "city",
      "city_code": "IST", "country_code": "TR", "country": "Türkiye" },
    { "object": "flight_place", "code": "IST", "name": "Istanbul Airport", "type": "airport",
      "city_code": "IST", "country_code": "TR", "country": "Türkiye" }
  ]
}

مقدار code برگشتی را به‌عنوان origin / destination یک اسلایس (slice) به کار ببرید.

ایجاد جست‌وجو#

POST/v3/HAPI/flights/searches

به اسکوپ flights:read نیاز دارد.

بدنه#

فیلدنوعالزامیتوضیح
slicesarrayالزامییک ورودی برای هر مسیر. یک اسلایس یعنی یک‌طرفه، دو اسلایس یعنی رفت‌وبرگشت و بیشتر از آن یعنی چندمسیره.
slices[].originstringالزامیکد IATA مبدأ، مثلاً IST.
slices[].destinationstringالزامیکد IATA مقصد، مثلاً DXB.
slices[].departure_datestringالزامیروز حرکت، با قالب YYYY-MM-DD.
passengers.adultsintegerالزامیتعداد بزرگسالان (دست‌کم ۱).
passengers.childrenintegerاختیاریتعداد کودکان.
passengers.infantsintegerاختیاریتعداد نوزادان.
cabin_classstringاختیارییکی از economy، premium_economy، business، first.
max_offersintegerاختیاریسقف تعداد پیشنهادهای برگشتی.
curl -X POST https://api.simorghapi.com/v3/HAPI/flights/searches \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "slices": [
      { "origin": "IST", "destination": "DXB", "departure_date": "2026-11-14" }
    ],
    "passengers": { "adults": 1 },
    "cabin_class": "economy"
  }'
const res = await fetch("https://api.simorghapi.com/v3/HAPI/flights/searches", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${accessToken}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    slices: [
      { origin: "IST", destination: "DXB", departure_date: "2026-11-14" }
    ],
    passengers: { adults: 1 },
    cabin_class: "economy"
  })
});

const search = await res.json();
import requests

res = requests.post(
    "https://api.simorghapi.com/v3/HAPI/flights/searches",
    headers={"Authorization": f"Bearer {access_token}"},
    json={
        "slices": [
            {"origin": "IST", "destination": "DXB", "departure_date": "2026-11-14"}
        ],
        "passengers": {"adults": 1},
        "cabin_class": "economy",
    },
)

search = res.json()

پاسخ#

یک شیء flight_search که پیشنهادها را در خود دارد. مبالغ همیشه یک شیء { amount, currency } به دلار آمریکا (USD) هستند.

{
  "object": "flight_search",
  "id": "srch_1837",
  "status": "completed",
  "offer_count": 1,
  "offers": [
    {
      "object": "flight_offer",
      "id": "ofr_dHJhdmVscGF5b3V0czphYmMxMjNfcDA",
      "owner": "TP",
      "validating_airline": "PC",
      "airline_name": "Pegasus Airlines",
      "cabin_class": "economy",
      "total": { "amount": "412.00", "currency": "USD" },
      "base":  { "amount": "250.00", "currency": "USD" },
      "tax":   { "amount": "162.00", "currency": "USD" },
      "passengers": [
        { "type": "adult", "count": 1,
          "total": { "amount": "412.00", "currency": "USD" },
          "base":  { "amount": "250.00", "currency": "USD" } }
      ],
      "slices": [
        {
          "origin": "IST",
          "destination": "DXB",
          "duration_minutes": 185,
          "segments": [
            {
              "origin": "IST",
              "destination": "DXB",
              "departing_at": "2026-11-14T08:10:00",
              "arriving_at": "2026-11-14T11:15:00",
              "marketing_carrier": "PC",
              "operating_carrier": "PC",
              "flight_number": "695",
              "aircraft": "320",
              "aircraft_name": "Airbus A320",
              "booking_class": "Y",
              "cabin_class": "economy",
              "stops": 0,
              "seats_remaining": 9,
              "baggage": { "checked": "20 Kilogram(s)", "cabin": "8 Kilogram(s)" },
              "duration_minutes": 185
            }
          ]
        }
      ]
    }
  ]
}
پیشنهاد، استعلام قیمت است نه رزرو موقت. هر پیشنهاد موجودی لحظهٔ جست‌وجو را نشان می‌دهد. قیمت و صندلی‌ها ممکن است تغییر کنند؛ پس درست پیش از رزرو، پیشنهاد را دوباره اعتبارسنجی کنید. قدم بعدی، یعنی دریافت پیشنهاد، دقیقاً همین کار را انجام می‌دهد.

شناسهٔ پیشنهاد#

شناسهٔ ofr_ یک نرخ را به‌طور کامل مشخص می‌کند. آن را برای اعتبارسنجی مجدد پیشنهاد و سپس برای ایجاد سفارش بفرستید. این شناسه را مات در نظر بگیرید.

ویرایش این صفحه در گیت‌هابمشکلی دیدید؟ از پنل ← پشتیبانی خبرمان کنید.