ETS API
    ETS API
    • Try it and Run in ApiDog
    • AVIA API
    • AVIA Flows example
    • HOTELS API
    • AVIA
      • 1 REQ B2B Login
        POST
      • 1 REQ B2B Login Token
        POST
      • 1 REQ B2C Login
        GET
      • 2A Search Direct flight
        POST
      • 2B Search Connecting flight
        POST
      • 2C Search Round trip
        POST
      • 3 Schedule - Amadeus optional
        POST
      • 4 Offers request
        GET
      • 4B Smart Offer Request optional
        GET
      • 5 Documents types for offer
        GET
      • 6 Offer info UPD LATER
        GET
      • 7 Availability of Offer
        GET
      • 8 OPT Available Services
        GET
      • 9 OPT Select services
        POST
      • 10 Create Order
        POST
      • 11 Split Order
        PATCH
      • 12 Order payment
        POST
      • 13 Сheckout status
        GET
      • 14 Refund order
        GET
      • 15 Get order info
        GET
      • 16 Print E-Tiket
        GET
      • 17 Receiving a cancellation fee
        GET
      • 18 Cancel Order
        GET
      • 19 Get airports
        GET
      • 20 Get cities
        GET
      • 21 Get countries
        GET
    • HOTELS
      • REQUIRED
        • 1 REQ B2B Login
        • 1 REQ B2C Login
        • 2 REQ Destination
        • 2 REQ Search
        • 3 REQ Receiving found hotels
        • 4 REQ Getting a Hotel Offer
        • 5 REQ Create order
        • 6 REQ Cancel order
      • OPTIONAL
        • 1 REQ B2B Login
        • 1 REQ B2C Login
        • 2 REQ Search
        • 3 OPT Destination point info
        • 4 OPT List of popular destinations Copy
        • 5 OPT List of filtered destinations
        • 6 OPT Group guide
        • 7 OPT Getting information on possible hotels
        • 8 OPT Getting the list of currencies
        • 9 REQ Receiving found hotels
        • 10 REQ Getting a Hotel Offer
        • 11 OPT Cancel-policies
        • 12 OPT Account number and info
        • 13 OPT Receiving information on the hotel offer
        • 14 OPT Receive detailed information about the cost of an offer
        • 15 REQ Create order
        • 16 OPT Receive hotel services

    AVIA API

    Welcome to the official documentation of ETS Group AVIA API platform.
    This documentation provides full access to methods used for searching, booking, managing, and cancelling air tickets and hotels, including auxiliary services and authorization flows.

    🧭 API Structure#

    Authorization
    B2B Login – used by partners and corporate clients to obtain a session token
    B2C Login – used for end-user login in direct integrations
    Search
    One-way, round-trip and multi-segment flight offers
    Based on departure/arrival city, date, passengers
    Offer Details
    Pricing, passenger document types, baggage and seat options
    Order Creation
    Flight booking, ancillary services, passenger data
    Payment & Confirmation
    Confirm, hold or cancel payment status
    Cancellations / Refunds
    Full or partial refund methods, with different scenarios
    Reference Dictionaries
    Airports, cities, countries, airlines, document types

    🔐 Authorization Methods#

    Two login methods are supported:
    B2B
    This API endpoint allows users to log in and receive authentication details.
    Request
    Method: POST
    Endpoint: {{url}}/api/login
    Body (x-www-form-urlencoded):
    login (text): User's login username
    password (text): User's login password
    Response
    The response for this request is a JSON object with the following properties:
    etm_auth_key (string): The authentication key for the user
    locale (string): The user's preferred locale
    currency (string): The user's preferred currency
    max_expiry_time (number): The maximum expiry time for the authentication
    max_timeout (number): The maximum timeout for the authentication
    B2C
    This endpoint retrieves login information for a specific app based on the provided app ID and locale.
    Request
    Method: GET
    URL: {{url}}/api/login/{{app_id}}
    Query Parameter:
    locale: The locale for which the login information is requested (e.g., EN).
    Response
    The response will include the following fields:
    etm_auth_key: The authentication key
    locale: The locale
    currency: The currency
    max_expiry_time: The maximum expiry time
    max_timeout: The maximum timeout
    site: Object containing site-specific information such as currency, UI settings, product statuses, socials, logos, and more
    agent: Object containing agent-specific information such as ID, usertype, company, contact details, and more
    Please note that the actual values for the fields will be returned in the response.

    Search#

    POST /api/air/search
    This endpoint is used to search for air travel options based on the provided directions and other parameters.
    Request Body
    directions (array of objects) - Specifies the departure and arrival details for the travel.
    departure_country (string) - The departure country code.
    departure_name (string) - The name of the departure location.
    departure_code (string) - The code of the departure location.
    departure_city (string) - The city of the departure location.
    arrival_country (string) - The arrival country code.
    arrival_name (string) - The name of the arrival location.
    arrival_code (string) - The code of the arrival location.
    arrival_city (string) - The city of the arrival location.
    date (string) - The date of travel.
    time (string) - The time of travel.
    dir_number (number) - The direction number.
    adult_qnt (number) - The quantity of adult passengers.
    child_qnt (number) - The quantity of child passengers.
    infant_qnt (number) - The quantity of infant passengers.
    class (string) - The class of travel.
    fare_types (array of strings) - The types of fares.
    Pissible "sort" values: price, profit, duration
    Default value : price
    Response
    The response is in JSON format and follows the schema below:
    {
    "type": "object",
    "properties": {
    "status": { "type": "string" },
    "message": { "type": "string" },
    "request_id": { "type": "string" },
    "old_request_id": { "type": ["string", "null"] },
    "travel_policy_id": { "type": ["string", "null"] },
    "one_order_id": { "type": "number" },
    "show_mode": { "type": "string" },
    "currency": { "type": "string" },
    "available_currencies": { "type": "array", "items": { "type": "string" } },
    "is_round": { "type": "boolean" },
    "is_multy": { "type": "boolean" },
    "group_avia_offers": { "type": "boolean" },
    "is_groups": { "type": "number" }
    }
    }

    Get Airline offers#

    This endpoint retrieves airline offers based on the provided request ID.
    Only in Connecting flight, note that the first block of segments returns general information about the flight (destination-arrival) without specifying buy_id, then subsequent blocks return information about each specific router with the buy_id of that router.
    Request
    Method: GET
    Endpoint: {{url}}/api/air/offers
    Query Parameters:
    request_id (string, required): The unique identifier for the request.
    After requesting the offer, you need to call the endpoint:
    {{url}}/api/documents/types/site?locale=DE&pid={{pcc_id}}
    Extract the pcc_id from the offer request response. For example:
    var pcc_id = response.offers[0].offers[0].segments[0].pcc_id;
    This will return a list of document types for the specific offer.

    Smart offer#

    This API endpoint makes an HTTP GET request to retrieve offers related to a specific air purchase identified by the unique ID (buy_uid) and the smart_ff parameter. The response is in JSON format and includes various fields.
    Request
    The request does not require any specific input parameters. It retrieves smart frequent flyer offers based on the provided buy ID.
    Response Fields:
    status (string): Represents the status of the response.
    message (string): Provides a message related to the response.
    offers (array): Contains a list of offers.
    buy_id (string): Represents the unique ID associated with the offer.
    price (number): Indicates the price of the offer.
    currency (string): Specifies the currency in which the price is denoted.
    price_details (array): Contains details related to the price.
    qty (number): Represents the quantity.
    base (string): Indicates the base value.
    base_amount (number): Represents the amount related to the base value.
    tax (string): Specifies the tax information.
    tax_amount (number): Represents the amount of tax.
    tax_dtl (array): Contains detailed tax information.
    code (string): Represents the code associated with the tax.
    amount (number): Indicates the amount of tax.
    currency (string): Specifies the currency for the tax amount.
    fee (string): Specifies the fee information.
    fee_amount (number): Represents the amount related to the fee.
    single (string): Indicates a single value.
    single_amount (number): Represents the amount related to the single value.
    total (string): Specifies the total value.
    total_amount (number): Represents the total amount.
    base_total (number): Indicates the base total value.
    fee_total (number): Represents the total fee amount.
    tax_total (number): Represents the total tax amount.
    passenger_type (string): Specifies the type of passenger.
    type (string): Indicates the type of the offer.
    base_total (number): Represents the base total value.
    tax_total (number): Represents the total tax amount.
    fee (number): Specifies the fee information.
    comm (number): Represents the commission.
    legs (array): Contains details related to the legs of the journey.
    fare_family (string): Represents the fare family.
    segments (array): Contains details of the segments.
    baggage (string): Specifies the baggage information.
    fare_basis (string): Represents the fare basis.
    booking_class (string): Indicates the booking class.
    service_class (string): Specifies the service class.
    service_class_label (string): Provides a label for the service class.
    departure_airport (string): Indicates the departure airport.
    arrival_airport (string): Specifies the arrival airport.
    marketing_airline (string): Represents the marketing airline.
    airline_logo (string): Provides the URL for the airline logo.
    ff_code (string): Indicates the frequent flyer code.
    ff_data (object): Contains data related to frequent flyer details.
    Various fields with specific data types and constraints.
    The fields 'buy_id' and 'price' are of type string and number respectively, with no specific constraints or validations mentioned in the provided information.
    Response
    The response will be in JSON format with a status code of 200. It includes an array of offers, each containing details such as buy ID, price, currency, price details, base total, tax total, fee, commission, and legs. The legs section provides information about fare family, segments, baggage, fare basis, booking class, service class, departure and arrival airports, marketing airline, airline logo, frequent flyer code, and additional service details.

    Availability#

    GET /api/air/offers/{{buy_uid}}/availability
    This endpoint retrieves the availability status for a specific air offer identified by the buy_uid.
    Request
    No request body parameters are required for this request.
    buy_uid (path parameter): The unique identifier of the air offer.

    Get Additional Services for Air Offers#

    This endpoint retrieves additional services for a specific air offer based on the request ID and segment.
    Request
    Method: GET
    URL: {{url}}/api/air/offers/{{request_id}}/additional-services
    Query Parameters:
    segment: The buy ID for the segment

    Select Services for Air Offers#

    This endpoint allows the user to select services for a specific air offer identified by the request_id.
    Request Body
    params (object)
    data (object)
    {{passanger_id}} (object)
    {{buy_id}} (object)
    checked_baggage (object)
    id (string)
    comments (string)
    passenger_type (string)
    label (string)
    price (string)
    currency (string)
    route (string)
    image (string)
    type (string)
    maxQuantity (number)
    category (string)
    is_baggage_package (boolean)
    package_list (array)
    priority_boarding (array)
    legs (object)
    {{leg_id}} (object)
    Response
    status (number)
    data (number)
    The response returns the status of the request and the data associated with it.

    Create Air Order#

    This endpoint allows you to create a new air order.
    Request Body
    buy_id (string): The ID of the purchase.
    phone (object): The phone details including code, number, and extra.
    emails (array of strings): An array of email addresses.
    address (object): The address details including zip, country, city, and additional.
    passengers (array of objects): An array of passenger details including type, gender, last_name, first_name, middle_name, birth_date, citizenship, and document details.
    Response
    status (string): The status of the response.
    message (string): A message related to the response.
    data (object): The data object containing the details of the created order including order_id, book_id, buy_id, status, pnr_number, amount, currency, buyer, agency, operator, rl_number, stamp_create, stamp_ticket, time_till_ticket, left_to_void, left_to_void_time, directions, passengers, services, prices, price_extra, payment_methods, actions, settings, and site_log.
    Possible order statuses:
    ***"status": " T- ticketing
    "status": " V-Void
    "status": " B- booking
    "status": " E- Error
    "status": " K- Not finished (for delayed ticket issuance cases)
    "status": " G- for group booking only - group request created
    "status": " A- for group booking only - group is waiting for approval
    "status": " U- for group booking only - group is waiting for passengers to be added

    "left_to_void_time"
    Only provided by Sirena (Mixvel); this field will not be populated for other providers.
    This is the time until which the ticket can be voided (cancellation of issuance).
    **
    "time_till_ticket" - UTC +0 time
    The time by which the ticket must be issued.
    This value may change — we recommend calling air/orders/ to get the most up-to-date value.
    **

    Void order#

    for booked order (unticketed) :
    {{url}}/api/air/orders/{{order_id}}/void
    for ticketed order: {{url}}/api/air/orders/{{order_id}}/refund

    Order Split#

    Patch
    This endpoint is used to split an existing order identified by the order_id.
    Request Body
    order_id: The ID of the order to be split.
    book_id: The ID of the book related to the order.
    pax_id: The ID of the passenger related to the order.
    Response
    status: The status of the request.
    message: Additional information or error message.
    Example:
    Request:
    {
    "order_id": {number},
    "book_id": {number},
    "pax_id": {number}
    }
    Response:
    {
    "status": "{string}",
    "message": "{string}"
    }

    Create Payment for Air Order#

    This endpoint allows the client to make a payment for a specific air order.
    Request Body
    fop_type (string): The form of payment used for the transaction.
    currency (string): The currency in which the payment is made.
    total_amount (string): The total amount of the payment.
    Example:
    {
    "fop_type": "cash",
    "currency": "RUB",
    "total_amount": "132933.7"
    }
    Response
    status (string): The status of the payment request.
    payload.status (string): The status of the payment transaction.
    Example Response:
    {
    "status": "ok",
    "payload": {
    "status": "ok"
    }
    }

    Retrieve Payment Details#

    This endpoint retrieves the payment details for a specific order.
    Request
    Method: GET
    URL: {{url}}/api/air/orders/{{order_id}}/payment
    Response
    The response for this request follows the JSON schema below:
    {
    "type": "object",
    "properties": {
    "status": {
    "type": "string"
    },
    "message": {
    "type": "string"
    },
    "status_emd": {
    "type": "array"
    }
    }
    }

    Retrieve Air Order Details#

    This endpoint retrieves the details of a specific air order identified by the order_id.
    Request Body
    No request body is required for this endpoint.
    Response Body
    status (string): The status of the order.
    message (string): Any additional message related to the order.
    data (object): Contains detailed information about the air order, including order_id, book_id, buy_id, amount, currency, buyer, agency, operator, rl_number, stamp_create, stamp_ticket, time_till_ticket, left_to_void, left_to_void_time, directions, flights_info, passengers, services, prices, price_extra, payment_methods, actions, settings, and site_log.
    The data object provides comprehensive information about the air order, including flight details, passenger information, pricing, payment methods, and available actions.

    🧪 How to Use This Portal#

    You can test any API method right here:
    1.
    Select a method from the left panel
    2.
    Click Try it out
    3.
    Fill in required parameters (e.g. from = MOW, to = AYT)
    4.
    Click Send and see the live response from our API

    📬 Support and Contacts#

    For integration assistance:
    📩 support@etsgroup.travel
    We provide API keys and technical onboarding materials on request.

    📌 API Version#

    Current version: v1
    Last updated: July 2025
    Modified at 2025-08-31 04:51:26
    Previous
    Try it and Run in ApiDog
    Next
    AVIA Flows example
    Built with