جستوجوی پرواز
جستوجوی پرواز مسیر و مسافران شما را میگیرد و پیشنهادهای (offer) قیمتدار برمیگرداند. هر پیشنهاد یک برنامهٔ سفر کامل و قابلرزرو با قیمت مشخص است. یکی را انتخاب میکنید، آن را دوباره اعتبارسنجی میکنید و به سفارش تبدیلش میکنید.
یافتن مبدأ و مقصد#
تکمیل خودکار برای فرم جستوجو: نام شهر یا فرودگاهی را که کاربر تایپ کرده (یا یک کد 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) به کار ببرید.
ایجاد جستوجو#
به اسکوپ flights:read نیاز دارد.
بدنه#
| فیلد | نوع | الزامی | توضیح |
|---|---|---|---|
slices | array | الزامی | یک ورودی برای هر مسیر. یک اسلایس یعنی یکطرفه، دو اسلایس یعنی رفتوبرگشت و بیشتر از آن یعنی چندمسیره. |
slices[].origin | string | الزامی | کد IATA مبدأ، مثلاً IST. |
slices[].destination | string | الزامی | کد IATA مقصد، مثلاً DXB. |
slices[].departure_date | string | الزامی | روز حرکت، با قالب YYYY-MM-DD. |
passengers.adults | integer | الزامی | تعداد بزرگسالان (دستکم ۱). |
passengers.children | integer | اختیاری | تعداد کودکان. |
passengers.infants | integer | اختیاری | تعداد نوزادان. |
cabin_class | string | اختیاری | یکی از economy، premium_economy، business، first. |
max_offers | integer | اختیاری | سقف تعداد پیشنهادهای برگشتی. |
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_ یک نرخ را بهطور کامل مشخص میکند. آن را برای اعتبارسنجی مجدد پیشنهاد و سپس برای ایجاد سفارش بفرستید. این شناسه را مات در نظر بگیرید.