مستندات

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

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

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

API جست‌وجوی پرواز برای یک مسیر، تاریخ‌ها و ترکیب مسافران مشخص، ارزان‌ترین برنامهٔ سفر هر گروه پروازی را برمی‌گرداند.

POST/Air/AirLowFareSearch

دسترسی نیازمند مجوز air_low_fare_search

یک درخواست POST بفرستید که برای هر مسیر (leg) یک مورد در OriginDestinationInformations داشته باشد: یک مورد برای یک‌طرفه، دو مورد برای رفت‌وبرگشت و بیشتر برای سفر چندمقصدی. پاسخ مجموعه‌ای از برنامه‌های سفر قیمت‌گذاری‌شده است و هر کدام یک FareSourceCode دارد که آن را به اعتبارسنجی مجدد و رزرو می‌برید.

می‌خواهید نتایج را همان لحظهٔ رسیدن بگیرید؟ از اندپوینت جریانی AirLowFareSearchIncremental استفاده کنید. همین درخواست را می‌گیرد و برنامه‌های سفر را از طریق Server-Sent Events می‌فرستد.

پارامترهای مسیر#

ندارد.

پارامترهای کوئری#

ندارد.

پارامترهای بدنه#

نامنوعالزامیپیش‌فرضتوضیح
SessionIdstringالزامی-شناسهٔ نشست شما.
AdultCountintegerالزامی-تعداد مسافران بزرگسال؛ دست‌کم ۱.
ChildCountintegerالزامی-تعداد مسافران کودک؛ دست‌کم ۰.
InfantCountintegerالزامی-تعداد نوزادان (بدون صندلی)؛ دست‌کم ۰.
PricingSourceTypestringالزامی-دامنهٔ قیمت‌گذاری. مقدار All را بفرستید.
RequestOptionstringالزامی-گزینهٔ مجموعهٔ نتایج. مقدار All را بفرستید.
NumberOfResultsintegerاختیاری100اندازهٔ سبد نتایج. 0 یا ارسال‌نکردن به معنای ۱۰۰ است. هر مقدار دیگر، همان ترکیب را به همان نسبت بزرگ یا کوچک می‌کند. حداکثر ۵۰۰۰.
Providerstringاختیاری-راهنمایی اختیاری برای انتخاب منبع موجودی. اگر نفرستید، درگاه همهٔ منابع را تجمیع می‌کند و بهترین را انتخاب می‌کند. مقدار ناشناخته به پیش‌فرض پیکربندی‌شده برمی‌گردد.
TravelPreference object، اختیاری
نامنوعالزامیپیش‌فرضتوضیح
CabinTypeintegerاختیاری1کلاس کابین: 1 اکونومی، 2 پریمیوم اکونومی، 3 بیزینس، 4 پریمیوم بیزینس، 5 فرست، 6 پریمیوم فرست.
MaxStopsQuantitystringاختیاریAllحداکثر تعداد توقف. All برای هر تعداد، یا 0 برای پرواز مستقیم.
AirTripTypestringاختیاریمحاسبه‌شدهOneWay یا Return. پیش‌فرض آن از تعداد مسیرها تعیین می‌شود.
VendorPreferenceCodesarray of stringاختیاری-محدودکردن نتایج به این کدهای ایرلاین، مثلاً ["TK","EK"].
VendorExcludeCodesarray of stringاختیاری-حذف این کدهای ایرلاین از نتایج.
OriginDestinationInformations array of object، الزامی

برای هر مسیر یک مورد؛ دست‌کم یکی.

نامنوعالزامیتوضیح
OriginLocationCodestringالزامیکد IATA مبدأ، مثلاً IST.
DestinationLocationCodestringالزامیکد IATA مقصد، مثلاً DXB.
DepartureDateTimestringالزامیتاریخ و ساعت محلی حرکت، مثلاً 2026-10-12T00:00:00.
OriginTypestringاختیارینوع نقطه: فرودگاه یا شهر.
DestinationTypestringاختیارینوع نقطه: فرودگاه یا شهر.

درخواست#

curl -X POST https://api.simorghapi.com/api/Air/AirLowFareSearch \
  -H "Content-Type: application/json" \
  -d '{
    "SessionId": "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
    "AdultCount": 1,
    "ChildCount": 0,
    "InfantCount": 0,
    "PricingSourceType": "All",
    "RequestOption": "All",
    "TravelPreference": { "CabinType": 3, "AirTripType": "OneWay" },
    "OriginDestinationInformations": [
      {
        "OriginLocationCode": "IST",
        "DestinationLocationCode": "DXB",
        "DepartureDateTime": "2026-10-12T00:00:00"
      }
    ]
  }'
const res = await fetch("https://api.simorghapi.com/api/Air/AirLowFareSearch", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    SessionId: "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
    AdultCount: 1,
    ChildCount: 0,
    InfantCount: 0,
    PricingSourceType: "All",
    RequestOption: "All",
    TravelPreference: { CabinType: 3, AirTripType: "OneWay" },
    OriginDestinationInformations: [
      {
        OriginLocationCode: "IST",
        DestinationLocationCode: "DXB",
        DepartureDateTime: "2026-10-12T00:00:00"
      }
    ]
  })
});

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

res = requests.post(
    "https://api.simorghapi.com/api/Air/AirLowFareSearch",
    json={
        "SessionId": "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f",
        "AdultCount": 1,
        "ChildCount": 0,
        "InfantCount": 0,
        "PricingSourceType": "All",
        "RequestOption": "All",
        "TravelPreference": {"CabinType": 3, "AirTripType": "OneWay"},
        "OriginDestinationInformations": [
            {
                "OriginLocationCode": "IST",
                "DestinationLocationCode": "DXB",
                "DepartureDateTime": "2026-10-12T00:00:00",
            }
        ],
    },
)

data = res.json()

پاسخ#

شناسهٔ جست‌وجو و برنامه‌های سفر قیمت‌گذاری‌شده را برمی‌گرداند.

فیلدنوعتوضیح
Successbooleanدر صورت موفقیت true.
SearchIdintegerشناسهٔ این جست‌وجو. می‌توانید آن را با AirSearchData دوباره به کار ببرید.
PricedItinerariesarray of objectنتایج. جزئیات در ادامه.
Errorobjectدر صورت موفقیت null.
PricedItineraries[] object
فیلدنوعتوضیح
FareSourceCodestringشناسهٔ مات (opaque) نرخ. آن را به اعتبارسنجی مجدد و رزرو ببرید.
ValidatingAirlineCodestringایرلاین صادرکنندهٔ بلیت، مثلاً TK.
DirectionIndintegerنشانگر جهت سفر.
IsPassportMandatorybooleanآیا برای رزرو، اطلاعات گذرنامه لازم است.
AirItineraryPricingInfoobjectجمع نرخ و ریز آن به تفکیک مسافر.
OriginDestinationOptionsarray of objectبرای هر مسیر یک مورد که سگمنت‌های پروازی آن را در خود دارد.
AirItineraryPricingInfo object
فیلدنوعتوضیح
FareTypeintegerکد دستهٔ نرخ.
ItinTotalFareobjectBaseFare، TotalTax، TotalFare (عددی) و Currency (رشته). همهٔ مبالغ به دلار آمریکا (USD) هستند.
PtcFareBreakdownarray of objectنرخ به تفکیک نوع مسافر.
OriginDestinationOptions[].FlightSegments[] object
فیلدنوعتوضیح
DepartureAirportLocationCodestringکد IATA مبدأ.
ArrivalAirportLocationCodestringکد IATA مقصد.
DepartureDateTimestringساعت محلی حرکت.
ArrivalDateTimestringساعت محلی رسیدن.
MarketingAirlineCodestringکد ایرلاین فروشنده (Marketing).
FlightNumberstringشمارهٔ پرواز.
ResBookDesigCodestringحرف کلاس رزرو.
Baggagestringبار مجاز، مثلاً 1PC.
CabinClassCodeintegerکلاس کابین سگمنت، با همان مقادیر CabinType: از 1 اکونومی تا 6 پریمیوم فرست.
SeatsRemainingintegerتعداد صندلی‌های باقی‌مانده با این نرخ.
{
  "Success": true,
  "SearchId": 428713,
  "PricedItineraries": [
    {
      "FareSourceCode": "dHA6ODc0NTE6ZmwxMjM0OjMyNw==",
      "ValidatingAirlineCode": "TK",
      "DirectionInd": 1,
      "IsPassportMandatory": true,
      "AirItineraryPricingInfo": {
        "FareType": 1,
        "ItinTotalFare": {
          "BaseFare": 182.40,
          "TotalTax": 37.20,
          "TotalFare": 219.60,
          "Currency": "USD"
        },
        "PtcFareBreakdown": [
          {
            "PassengerType": 1,
            "PassengerQuantity": 1,
            "BaseFare": 182.40,
            "TotalTax": 37.20,
            "TotalFare": 219.60,
            "Currency": "USD"
          }
        ]
      },
      "OriginDestinationOptions": [
        {
          "JourneyDurationPerMinute": 270,
          "FlightSegments": [
            {
              "DepartureAirportLocationCode": "IST",
              "ArrivalAirportLocationCode": "DXB",
              "DepartureDateTime": "2026-10-12T08:25:00",
              "ArrivalDateTime": "2026-10-12T14:55:00",
              "MarketingAirlineCode": "TK",
              "FlightNumber": "764",
              "ResBookDesigCode": "C",
              "Baggage": "2PC",
              "CabinClassCode": 3,
              "SeatsRemaining": 7
            }
          ]
        }
      ]
    }
  ],
  "Error": null
}

خطاها#

کدمعناراه‌حل
Err0106001یک فیلد الزامی ارسال نشده یا نامعتبر است؛ نام آن در پیام آمده است.فیلدی را که در پیام آمده اصلاح کنید.
Err0101001نشست ارسال نشده یا نامعتبر است.یک نشست جدید بسازید و دوباره تلاش کنید.
Err0101006دفتر مجوز air_low_fare_search را ندارد.درخواست فعال‌سازی آن را بدهید.

فهرست کامل را در مرجع خطاها ببینید.

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