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#
B2B Login – used by partners and corporate clients to obtain a session token
B2C Login – used for end-user login in direct integrations
One-way, round-trip and multi-segment flight offers
Based on departure/arrival city, date, passengers
Pricing, passenger document types, baggage and seat options
Flight booking, ancillary services, passenger data
Confirm, hold or cancel payment status
Full or partial refund methods, with different scenarios
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 passwordResponse
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 authenticationThis 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 morePlease 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 : priceResponse
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 segmentSelect 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}}/voidfor ticketed order: {{url}}/api/air/orders/{{order_id}}/refundOrder 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.{
"order_id": {number},
"book_id": {number},
"pax_id": {number}
}{
"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.{
"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.{
"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}}/paymentResponse
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
3.
Fill in required parameters (e.g. from = MOW, to = AYT)
4.
Click Send and see the live response from our API
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