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>]

departure

The departure airport code. It should be an IATA code or a Sirena-Travel code.

arrival

The arrival airport code. It should be an IATA code or a Sirena-Travel code.

date_forward

Date of the direct flight in "YYYY-MM-DD" format.

date_backward

Date of the return flight in "YYYY-MM-DD" format. May be absent.

class

An alphabetic travel class code. Possible values:

  • "BUSINESS" for business class.
  • "ECONOMY" for economy class.

adults

The number of passengers who are over 12 years of age.

children

The number of passengers who are 2 to 12 (inclusive) years of age. May be absent.

infants

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

url*

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

price*

The option price.

Object (Price)

route_forward*

Information about the outbound flight.

Object list (Segment)

route_backward*

Information about the return flight. Omitted if the request didn't have a return flight date.

Object list (Segment)

value*

The option price in this travel class.

Number

currency*

The currency.

String

tariff_adult

Including the cost for the passengers who are over 12 years of age.

Number

tariff_child

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

tariff_infant

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

refundable

Whether the ticket is refundable.

Boolean

seats_remaining

The number of remaining seats at this price.

Number

Segment

flight_number*

The flight number.

String

marketing_carrier*

The code of the airline selling the ticket. It should be an IATA code or a Sirena-Travel code.

String

operating_carrier*

The operating carrier.

String

operating_flight_number*

The flight number from the operating carrier.

String

validating_carrier

The code of the validating carrier.

String

fare_family

The name of the fare family.

String

carrier_name

The airline name.

String

departure_airport_code*

The departure airport code. It should be an IATA code or a Sirena-Travel code.

String

arrival_airport_code*

The arrival airport code. It should be an IATA code or a Sirena-Travel code.

String

departure_datetime*

The departure date and time (local).

String

arrival_datetime*

The arrival date and time (local).

String

fare_code*

The fare code.

String

class*

The travel class code.

String

charter*

A flag indicating a charter fare.

Boolean

technical_stop*

A flag indicating a technical stop.

Boolean

selfconnect*

Whether separate tickets are issued for this journey's flights.

Boolean

luggage*

Whether checked baggage is included in the ticket price. An object containing fields with information about baggage.

Boolean

Object (Baggage)

hand_luggage*

An object containing fields with information about the maximum size of hand baggage.

Object (Baggage)

Baggage

included*

Whether baggage can be checked in free of charge.

Boolean

pieces*

The number of baggage pieces.

Number

weight*

The baggage weight.

Number

units*

The unit of weight.

String

dimensions

An object containing fields with information about the maximum size of baggage.

Object (Dimensions)

Dimensions

length

The length.

Number

width

The width.

Number

height

The height.

Number

sum

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:

  1. After selecting an offer, users can view detailed information about the flight and choose a partner in a separate window.

  2. The user clicks the link to go to the partner's site.

  3. The user is taken to the partner site address that was received in the "url" field of the "variant" response object for this offer.

  4. The user starts the booking process on the partner site:

    1. 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).

    2. 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.

    3. 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.

    4. 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.

    5. 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.

  5. 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

  1. The site of the airline or online agency must allow booking plane tickets with instant confirmation.

  2. 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.

  3. Partners using the Sirena-Travel system must respond to requests with internal codes that are used in this system.

  4. The partner is obligated to use the secure HTTPS communication protocol on their site when it is opened from Yandex search results.

  5. 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.

  6. 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.

  7. The file must be encoded in UTF-8.

  8. An example of setting allowed destinations:

    ATH;CMB;1,3,5
    ATH;DXB;1,2,3,4,5,6,7
    СХТ;RHO;2,4
    СХТ;СПТ;5
    

    The data is retrieved once a day.

  9. 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 marker GET 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:

    • paid for a paid order.
    • booked for a booked order that hasn't been paid for.
    • cancel for a canceled booking.
    • refunded for 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: OW or RT.

    [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.
Subscribe to updates