Airline tickets
Eligible sites
Airlines, travel agencies, and airline ticket agents.
What it adds to search results
Flight options with prices for the dates that the user selects. Tickets tagged as Cheap, Fast, Convenient can appear at the top of the list.
Tags are assigned automatically, based on the user's query:
- Cheap — the option with the lowest flight price.
- Fast — the option with the minimum travel time.
- Convenient — the direct flight or the option with a minimal number of connections.
Users can set their preferences for connections, change destinations and dates, specify baggage and passenger count, and select an airline.
How to set it up
When a Yandex Search user enters the point of departure, destination, date (optional), and the name of the site or service (optional) where they want to buy tickets, Yandex sends a GET request to the partner site according to this format:
https://api.aviapartner.ru/search?
[departure = <IATA or Sirena code of the departure location>]
&[arrival = <IATA or Sirena code of the arrival location>]
&[date_forward = <date of departure>]
&[date_backward = <date of return>]
&[class = <service class>]
&[adults =<number of adult passengers>]
&[children = <number of children>]
&[infants = <number of infants>]
|
|
The departure airport code. It should be an IATA code or a Sirena-Travel code. |
|
|
The arrival airport code. It should be an IATA code or a Sirena-Travel code. |
|
|
Date of the direct flight in "YYYY-MM-DD" format. |
|
|
Date of the return flight in "YYYY-MM-DD" format. May be absent. |
|
|
An alphabetic travel class code. Possible values:
|
|
|
The number of passengers who are over 12 years of age. |
|
|
The number of passengers who are 2 to 12 (inclusive) years of age. May be absent. |
|
|
The number of infants who are under 2 (inclusive) years of age. May be absent. |
Request example:
https://api.aviapartner.ru/search?departure=MOW&arrival=AGP&date_forward=2022-03-19&date_backward=2022-03-26&class=ECONOMY&adults=2&children=0&infants=1"
The partner site returns information about the available offers in JSON format. HTTP basic access authorization is supported. The response includes one or more variant objects. Each object contains journey details: a link for buying a ticket on the partner site and information about the outbound flight (the route_forward object) and the return flight (the route_backward object). A journey can consist of multiple flights.
The following is specified for each option (variant):
- The price, with passenger type differentiation if applicable.
- The currency.
- The URL for redirecting the user to the partner site.
- The number of remaining seats.
- Whether the ticket is refundable (judged by the segment with the strictest conditions).
Other parameters are set for each segment.
* The fields that must have values and can't be omitted from the response.
|
Field |
Description |
Format |
|
|
The URL for redirecting the user to the partner site. The partner must process URLs in accordance with section 3.4 of RFC 2396 — Uniform Resource Identifiers (URI): Generic Syntax. The maximum size is 1024 bytes. |
String |
|
|
The option price. |
Object (Price) |
|
|
Information about the outbound flight. |
Object list (Segment) |
|
|
Information about the return flight. Omitted if the request didn't have a return flight date. |
Object list (Segment) |
|
|
The option price in this travel class. |
Number |
|
|
The currency. |
String |
|
|
Including the cost for the passengers who are over 12 years of age. |
Number |
|
|
Including the cost for children who are 2 to 12 (inclusive) years of age. Omitted if the request didn't specify the number of children. |
Number |
|
|
Including the cost for infants who are under 2 (inclusive) years of age. Omitted if the request didn't specify the number of infants. |
Number |
|
|
Whether the ticket is refundable. |
Boolean |
|
|
The number of remaining seats at this price. |
Number |
|
Segment |
||
|
|
The flight number. |
String |
|
|
The code of the airline selling the ticket. It should be an IATA code or a Sirena-Travel code. |
String |
|
|
The operating carrier. |
String |
|
|
The flight number from the operating carrier. |
String |
|
|
The code of the validating carrier. |
String |
|
|
The name of the fare family. |
String |
|
|
The airline name. |
String |
|
|
The departure airport code. It should be an IATA code or a Sirena-Travel code. |
String |
|
|
The arrival airport code. It should be an IATA code or a Sirena-Travel code. |
String |
|
|
The departure date and time (local). |
String |
|
|
The arrival date and time (local). |
String |
|
|
The fare code. |
String |
|
|
The travel class code. |
String |
|
|
A flag indicating a charter fare. |
Boolean |
|
|
A flag indicating a technical stop. |
Boolean |
|
|
Whether separate tickets are issued for this journey's flights. |
Boolean |
|
|
Whether checked baggage is included in the ticket price. An object containing fields with information about baggage. |
Boolean Object (Baggage) |
|
|
An object containing fields with information about the maximum size of hand baggage. |
Object (Baggage) |
|
Baggage |
||
|
|
Whether baggage can be checked in free of charge. |
Boolean |
|
|
The number of baggage pieces. |
Number |
|
|
The baggage weight. |
Number |
|
|
The unit of weight. |
String |
|
|
An object containing fields with information about the maximum size of baggage. |
Object (Dimensions) |
|
Dimensions |
||
|
|
The length. |
Number |
|
|
The width. |
Number |
|
|
The height. |
Number |
|
|
The sum of the length, width, and height. |
Number |
All the flight details above must be included in the response (matching the passenger types in the request).
Response example
{
"variant": [
{
"url": "https://api.aviapartner.ru/redirect?key=gdfkj435lkfg",
"price": {
"value": 123.45,
"currency": "RUB",
"tariff_adult": 80.00,
"tariff_child": 40.00,
"tariff_infant": 3.45,
"refundable": false,
"seats_remaining": 9
},
"route_forward": [
{
"flight_number": "BL 123",
"carrier_name": "Jetstar Pacific AirLines",
"marketing_carrier": "BL",
"operating_flight_number": "OH 123",
"operating_carrier": "OH",
"validating_carrier": 'OH',
"departure_airport_code": "DME",
"arrival_airport_code": "SVO",
"departure_datetime": "2011-04-01 18:12",
"arrival_datetime": "2011-04-01 21:20",
"fare_code": "WFLOWCS",
"fare_family": "FLEX ECONOMY",
"class": "E",
"charter": false,
"selfconnect": false,
"technical_stop": false,
"luggage": {
"included": true,
"pieces": 1,
"weight": 20,
"units": "kg",
"dimensions": {
"length": 110,
"width": 90,
"height": 50,
"sum": 213
}
},
"hand_luggage": {
"included": true,
"pieces": 1,
"weight": 7,
"units": "kg",
"dimensions": {
"length": 55,
"width": 35,
"height": 20
}
}
},
{...}
],
"route_backward": [
{...}
]
},
{...}
]
}
Please note that the interaction under the agreement is subject to a fee. To learn more, submit a request.
Interaction logic for the selling process
This is how users are taken from universal Yandex Search to partner sites:
-
After selecting an offer, users can view detailed information about the flight and choose a partner in a separate window.
-
The user clicks the link to go to the partner's site.
-
The user is taken to the partner site address that was received in the "url" field of the "variant" response object for this offer.
-
The user starts the booking process on the partner site:
-
The partner site must automatically check whether the offer selected by the user in Yandex Search can be booked (this check must happen before the user starts the booking process on the partner site).
-
If the booking option that the user selected isn't available, the partner site must display a message informing the user about that and offer other relevant options.
-
The URL for taking the user to the partner site must be valid for 30 hours in accordance with the logic described in section 3.2.
-
If the booking option that the user selected is available, the partner site must display a page with detailed information about that option: the departure and arrival airports and cities, dates, flight duration, connection times and cities (if applicable), information about the services covered by the fare, the number of passengers and their age distribution, the cost, and a prompt to enter passenger details for booking. The page must also meet the following conditions:
- For online payment with a bank card, the plane ticket price displayed on the page must exactly match the price provided by the partner to Yandex over the API. The displayed price must also be in a prominent position and visually distinct from other possible options offered by the partner.
- The description of the selected booking option must contain exhaustive information about the checked baggage and hand baggage allowances for this ticket. This information must be available on the same page and can't be placed in sections that are hidden by default.
- A user opening the partner site from a mobile device must be able to see the complete flight information too. The following parameters must be visible within a single screen: the option price, the departure and arrival airports, information about baggage and connections, the flight duration and connection times, information about whether it's a charter flight, and, if applicable, a warning that multiple tickets will be issued within one option. The page must be adapted to mobile screen sizes and provide a user-friendly interface for booking tickets.
If more than one ticket will be issued for the journey, the booking page must include the following information:
- The number of tickets that will be issued if the user buys this option.
- If one of the flights comprising such a journey is canceled or delayed, the tickets for the other flights may not be exchangeable.
- During a connection, the passengers have to get their baggage on their own and check it in again if necessary.
This information must be visible with no additional clicks needed.
-
Throughout the booking process, the price shown when the user opened the partner site from Yandex Search must be explicitly highlighted, and all additional services must be explicitly excluded. It's also not allowed to use pop-up windows, separate pages with lists of services, and similar tools that disrupt the booking process.
-
-
If the user starts the booking process on the partner site and the partner's confirmation is needed for the selected option, the following requirements must be met:
- For airline tickets that require manual confirmation, the service must send an automatic response indicating the time until the booking is confirmed.
- The waiting time for the final response regarding the availability and cost of the selected offer must not exceed one business day.
- If the offer can't be confirmed, the partner must inform the user about that.
The partner shall not to provide data in response to a request from Yandex Search in the following cases:
- The parameters described in this document are not fully displayed on the partner site at the time of data retrieval.
- The partner site at the address that was received in the response according to section 2 of the Interaction logic for the selling process isn't loading and displays error messages.
- Any technical or other issues prevent the user from going to the page with detailed information about the selected option (according to section 3.3 of this document) and completing the purchase on the partner site.
If technical issues occur, the partner must immediately inform Yandex representatives by email. The partner is obligated to respond to an inquiry from Yandex Search within three hours and provide all the technical information that is needed for troubleshooting as soon as possible.
Following the above, the purchase process should continue in line with the technology employed on the partner site.
Terms
-
The site of the airline or online agency must allow booking plane tickets with instant confirmation.
-
Offers that are received later than 120 seconds after the start of a lookup are not saved in Yandex cache and are requested again when a repeat search is done.
-
Partners using the Sirena-Travel system must respond to requests with internal codes that are used in this system.
-
The partner is obligated to use the secure HTTPS communication protocol on their site when it is opened from Yandex search results.
-
The partner is obligated to inform Yandex about switching to a new protocol for providing information (and about changes in the current protocol) at least 30 calendar days in advance.
-
To limit the number of requests, the partner can set allowed regional destinations. To do this, send a link to a CSV file with pairs of city or airport codes and days of the week (one pair per line, with ";" as a delimiter) to the address specified in the agreement. You can use either IATA or Sirena-Travel codes. Each pair allows lookup in both directions.
-
The file must be encoded in UTF-8.
-
An example of setting allowed destinations:
ATH;CMB;1,3,5 ATH;DXB;1,2,3,4,5,6,7 СХТ;RHO;2,4 СХТ;СПТ;5The data is retrieved once a day.
-
The partner is obligated to provide a report with the following information about the bookings that users have made after going to the partner site from Yandex search results.
The sales report must be available for retrieval through the API with a minimum request depth of 60 days.
A request in JSON format is sent to the host:
https://{HOST}/api/statistics?date1=2021-05-14&date2=2021-05-14&partner=yandex&password=Response example
{ "result":{ "isSuccess":true, "msgs":null }, "bookings":{ "booking":[ { "id":"XXXXXXXXXX", "pnr":"XXXXXX", "created_at":"2021-05-14 23:25:43", "marker":"123-234-234-234232", "price":10000.0, "currency":"RUB", "status":"paid", "segment":{ "flight":[ { "operatingCarrier":"XX", "number":"XXX", "departure":"AER", "departureDate":"2022-05-26", "departureTime":"12:00", "arrival":"VKO", "arrivalDate":"2021-05-26", "arrivalTime":"14:00", "cabin":"ST" } ] }, "adults":1, "children":0, "infants":0 }, { "id":"REFID124", "pnr":"BGDDR2", "created_at":"2022-01-14 20:46:53", "marker":"6745-3434-3434-23423", "price":180.0, "currency":"EUR", "status":"refunded", "segment":{ "flight":[ { "operatingCarrier":"XX", "number":"XXX", "departure":"AER", "departureDate":"2022-08-21", "departureTime":"12:00", "arrival":"VKO", "arrivalDate":"2021-08-21", "arrivalTime":"13:50", "cabin":"ST" } ] }, "adults":1, "children":1, "infants":0 } ] } }In the URL of the partner site page that is opened from Yandex search results, the
markerGET parameter must be passed, which is a unique string up to 200 characters long.Required parameter:
Parameter
Description
[marker]Value of the GET parameter passed in the deeplink.
[status]A value that depends on the event type.
Possible values:
paidfor a paid order.bookedfor a booked order that hasn't been paid for.cancelfor a canceled booking.refundedfor a refund on a paid order.
[id]The order number or its equivalent, such as PNR.
[price]The order price.
[currency]The order currency in ISO 4217 format.
[created_at]The order creation date.
[changed_at]The order status change date.
Optional parameters:
Parameter
Description
[type]The journey type. Possible values:
OWorRT.[from]The departure point.
[to]The destination point.
If the order has changed, update the amount in the current order, leaving the ID and creation date the same.
The report data is used for settlements between the parties based on the CPA model and for ranking the offers in the dedicated search results section.
The site must ensure that the data is correct and the offers match the subject. It is also responsible for dissemination of illegal information. In the event the terms are violated, Yandex has the right not to use the site data for changing the display in the search results.
If you're interested in integration or you have questions about your existing integration, use the form below to submit a request.
Submit a request
Page updated: March 13, 2025.
Change history
- Added icons Cheap, Fast, and Convenient for the flight ticket table.
- Added information about the pop-up window with flight details and partner selection options, which appears after the user selects an offer.