Aviasales Data API (Travelpayouts) API

Отрасль: Путешествия и транспорт. Актуально на 2026-10-24.

Публичный API данных Aviasales для партнёров Travelpayouts: цены на авиабилеты из кэша поисков пользователей Aviasales — самые дешёвые билеты на даты, календари цен на месяц и неделю, альтернативные направления, популярные направления, спецпредложения, поиск по диапазону цен. Данные хранятся в кэше 7 дней, поэтому API рекомендуется для статических страниц, а не для живого поиска.

Сценарии

Показать дешёвые билеты по направлению

Блок «Билеты Москва — Сочи от …» на странице направления или в статье: самые дешёвые варианты на нужный месяц.

  1. Возьми API-токен в профиле Travelpayouts и передавай его в заголовке X-Access-Token (или параметром token).
  2. Запроси билеты: GET /aviasales/v3/prices_for_dates с origin и destination (IATA-коды), departure_at (YYYY-MM или YYYY-MM-DD), для туда-обратно — return_at и one_way = false. Только прямые — direct = true.
  3. В data[] для каждого билета: price, airline, flight_number, departure_at, return_at, transfers, duration и link — путь к билету на Aviasales, его дополняют до полного адреса сайта.
  4. Цены берутся из кэша поисков пользователей за последние 48 часов: показывай их как «цены от», а не как гарантированные, и обновляй блок регулярно.
  5. Проверяй success в ответе: при ошибке data пустой, а текст — в error.
curl -G "https://api.travelpayouts.com/aviasales/v3/prices_for_dates" \
  -H "X-Access-Token: $TP_TOKEN" -H 'Accept-Encoding: gzip, deflate' --compressed \
  -d origin=MOW -d destination=AER -d departure_at=2026-12 \
  -d one_way=true -d direct=false -d sorting=price -d currency=rub -d limit=10

Построить календарь цен

Календарь «самая низкая цена на каждый день» — чтобы пользователь сразу видел дешёвые даты.

  1. Запроси минимальные цены с группировкой по дням: GET /aviasales/v3/grouped_prices с origin, destination, departure_at (месяц) и group_by = departure_at. Для обзора по месяцам — group_by = month.
  2. В data — объект, где ключ — дата (или месяц), значение — самый дешёвый билет на неё. Пустые дни в кэше просто отсутствуют — так и показывай их в календаре.
  3. Для поездок туда-обратно ограничь длительность: min_trip_duration и max_trip_duration в днях.
  4. Цены на соседние даты вокруг выбранных (3 дня до и 4 после) отдаёт GET /v2/prices/week-matrix с depart_date и return_date.
curl -G "https://api.travelpayouts.com/aviasales/v3/grouped_prices" \
  -H "X-Access-Token: $TP_TOKEN" --compressed \
  -d origin=LED -d destination=KZN -d departure_at=2026-12 -d group_by=departure_at -d currency=rub

Подобрать, куда дёшево улететь из города

Подборка «Куда полететь из Екатеринбурга» — направления с самыми низкими ценами.

  1. Запроси билеты только с городом вылета: GET /aviasales/v3/prices_for_dates с origin, departure_at, unique = true (по одному билету на направление) и sorting = price.
  2. Для акцентов добавь аномально дешёвые предложения: GET /aviasales/v3/get_special_offers с origin и currency.
  3. Если направление задано, а даты гибкие, подскажи соседние аэропорты: GET /v2/prices/nearest-places-matrix с origin, destination, flexibility (0–7 дней) и distance (число вариантов).
  4. Названия городов по IATA-кодам храни у себя: API возвращает только коды.
curl -G "https://api.travelpayouts.com/aviasales/v3/prices_for_dates" \
  -H "X-Access-Token: $TP_TOKEN" --compressed \
  -d origin=SVX -d departure_at=2026-12 -d unique=true -d sorting=price -d limit=20 -d currency=rub

curl -G "https://api.travelpayouts.com/aviasales/v3/get_special_offers" \
  -H "X-Access-Token: $TP_TOKEN" --compressed -d origin=SVX -d currency=rub

Найти билеты в рамках бюджета

Фильтр «до 10 000 ₽» для подборок и рассылок.

  1. Запроси билеты в диапазоне цен: GET /aviasales/v3/search_by_price_range с origin, destination (или «-» — все направления), value_min и value_max.
  2. Ограничь выдачу: one_way, direct, limit и page для постраничного вывода.
  3. Сверяй актуальность по сроку из ответа и не показывай устаревшие цены: данные в кэше хранятся до 7 дней.
curl -G "https://api.travelpayouts.com/aviasales/v3/search_by_price_range" \
  -H "X-Access-Token: $TP_TOKEN" --compressed \
  -d origin=MOW -d destination=- -d value_min=3000 -d value_max=10000 \
  -d one_way=true -d direct=false -d limit=30 -d page=1 -d currency=rub

Базовые URL

Авторизация

Тип: API-ключ

API-токен из профиля Travelpayouts (раздел «API-токен») передаётся в заголовке X-Access-Token или в параметре token.

https://api.travelpayouts.com/aviasales/v3/prices_for_dates?origin=MAD&destination=BCN&departure_at=2023-07&return_at=2023-08&unique=false&sorting=price&direct=false&cy=usd&limit=30&page=1&one_way=true&token=PutYourTokenHere

Методы

GET /aviasales/v3/prices_for_dates — Билеты на конкретные даты

Самые дешёвые билеты на даты, найденные за последние 48 часов. Заменяет /v1/city-directions, /v1/prices/cheap, /v1/prices/direct, /v2/prices/latest.

В ответе для каждого билета: origin, destination, price, airline, flight_number, departure_at, return_at, transfers, duration, link. Ссылку link добавляют к https://www.aviasales.com/.

Параметр Где Тип Обяз. Описание
token query string да API-токен (или заголовок X-Access-Token)
origin query string нет IATA-код города или аэропорта вылета
destination query string нет IATA-код назначения; обязателен, если нет origin
departure_at query string нет Дата вылета YYYY-MM или YYYY-MM-DD
return_at query string нет Дата возвращения; для билетов в одну сторону не указывать
one_way query boolean нет В одну сторону, по умолчанию true
direct query boolean нет Только прямые, по умолчанию false
currency query string нет Валюта, по умолчанию RUB
market query string нет Рынок данных, по умолчанию ru
limit query integer нет Записей на странице, по умолчанию 30, максимум 1000
page query integer нет Номер страницы
sorting query string нет price (по умолчанию) или route (популярность)
unique query boolean нет Только уникальные направления, если указан лишь origin

GET /aviasales/v3/grouped_prices — Самые дешёвые билеты с группировкой

Заменяет /v1/prices/calendar и /v1/prices/monthly.

Параметр Где Тип Обяз. Описание
token query string да API-токен
origin query string нет IATA-код вылета
destination query string нет IATA-код назначения
group_by query string нет departure_at (по умолчанию) или month
departure_at query string нет Дата вылета
return_at query string нет Дата возвращения
direct query boolean нет Только прямые
min_trip_duration query integer нет Минимальная длительность поездки, дней
max_trip_duration query integer нет Максимальная длительность поездки, дней
currency query string нет Валюта
market query string нет Рынок данных

GET /aviasales/v3/get_latest_prices — Цены за период

Параметр Где Тип Обяз. Описание
token query string да API-токен
origin query string нет IATA-код вылета
destination query string нет IATA-код назначения
period_type query string нет year, month или day; по умолчанию — текущий месяц
beginning_of_period query string нет Начало периода; обязателен при period_type=month
group_by query string нет dates (по умолчанию) или directions
one_way query boolean нет В одну сторону, по умолчанию true
sorting query string нет price, route, distance_unit_price
trip_duration query integer нет Длительность пребывания, дней
trip_class query integer нет 0 — эконом, 1 — бизнес, 2 — первый
page query integer нет Страница, по умолчанию 1
currency query string нет Валюта
market query string нет Рынок данных

GET /v2/prices/month-matrix — Календарь цен на месяц

Параметр Где Тип Обяз. Описание
token query string да API-токен
origin query string нет IATA-код города или страны вылета, 2–3 символа
destination query string нет IATA-код города или страны назначения
month query string нет Начало месяца YYYY-MM-DD
show_to_affiliates query boolean нет true — только цены по партнёрскому маркеру (по умолчанию)
trip_duration query integer нет Длительность пребывания, недель
one_way query boolean нет В одну сторону, по умолчанию true
limit query integer нет Дней в месяце, по умолчанию 30 (для 31 дня — 31)
currency query string нет Валюта
market query string нет Рынок данных

GET /v2/prices/week-matrix — Календарь цен на неделю

Цены на 7 дней вокруг дат: от 3 дней до и до 4 дней после.

Параметр Где Тип Обяз. Описание
token query string да API-токен
origin query string нет IATA-код вылета
destination query string нет IATA-код назначения
depart_date query string нет День или месяц вылета
return_date query string нет День или месяц возвращения
show_to_affiliates query boolean нет Только цены по партнёрскому маркеру
currency query string нет Валюта
market query string нет Рынок данных

GET /v2/prices/nearest-places-matrix — Цены по альтернативным направлениям

Параметр Где Тип Обяз. Описание
token query string да API-токен
origin query string нет IATA-код вылета
destination query string нет IATA-код назначения
limit query integer нет Число вариантов, 1–20
depart_date query string нет Месяц вылета yyyy-mm
return_date query string нет Месяц возвращения yyyy-mm
flexibility query integer нет Расширение диапазона дат, 0–7 дней
distance query integer нет Число вариантов, 1–20
show_to_affiliates query boolean нет Только цены по партнёрскому маркеру
currency query string нет Валюта

GET /aviasales/v3/get_popular_directions — Дешёвые билеты в популярные направления

Параметр Где Тип Обяз. Описание
token query string да API-токен
destination query string нет IATA-код города назначения
locale query string нет Язык результатов
currency query string нет Валюта
limit query integer нет 1–30
page query integer нет Номер страницы

GET /aviasales/v3/get_special_offers — Спецпредложения

Аномально низкие цены на выбранные направления. Если origin не указан, определяется по IP.

Параметр Где Тип Обяз. Описание
token query string да API-токен
origin query string нет IATA-код вылета
destination query string нет IATA-код назначения
airline query string нет IATA-код авиакомпании
locale query string нет Язык
currency query string нет Валюта
market query string нет Рынок данных

GET /aviasales/v3/search_by_price_range — Поиск билетов по диапазону цен

Параметр Где Тип Обяз. Описание
token query string да API-токен
origin query string нет IATA-код вылета
destination query string нет IATA-код назначения (- — все)
value_min query number нет Минимальная цена
value_max query number нет Максимальная цена
one_way query boolean нет В одну сторону
direct query boolean нет Только прямые, по умолчанию false
locale query string нет Язык
currency query string нет Валюта
market query string нет Рынок данных
limit query integer нет Записей на странице
page query integer нет Номер страницы

Нюансы

Ограничения

Источники


Если этого недостаточно — официальная документация: https://support.travelpayouts.com/hc/en-us/articles/203956163 JSON: https://mcp-everything.ru/api/integrations/travelpayouts-aviasales. MCP: https://mcp-everything.ru/mcp