Как сформировать сигнатуру (md5 signature)

Рассмотрим пример формирования сигнатуры (подписи) для запроса к API поиска авиабилетов от Aviasales. 

К примеру, у нас есть набор параметров, которые мы хотим передать в API, чтобы получить данные по авиабилетам:

{
    "signature": "YourSignature",
    "currency_code": "USD",
    "marker": "YourMarker",
    "market_code": "US",
    "locale": "US",
    "search_params": {
        "directions": [
            {
                "origin": "LAX",
                "destination": "NYC",
                "date": "2026-09-09"
            },
            {
                "origin": "NYC",
                "destination": "LAX",
                "date": "2026-09-25"
            }
        ],
        "trip_class": "Y",
        "passengers": {
            "adults": 1,
            "children": 0,
            "infants": 0
        }
    }
}

В примере выше слева от двоеточия находятся параметры, а справа их значения.

  1. Для начала вам нужно переставить параметры (и их значения) так, чтобы они шли в алфавитном порядке.

    Обратите внимание, при сортировке учитывается вложенность данных. Это значит, что если элемент содержит массив (например, segments) или список параметров (например, passengers), то содержимое данного элемента сортируется отдельно и ставится на его место в общем списке. При этом содержимое не сортируется с параметрами верхнего уровня. Параметры внутри массива сортируются в порядке следования фигурных скобок { }.
     
  2. В результате у вас получится отсортированный список, например:
{
    "currency_code": "USD",
    "locale": "US",
    "marker": "YourMarker",
    "market_code": "US",
    "search_params": {
        "directions": [
            {
                "date": "2026-09-09",
                "destination": "NYC",
                "origin": "LAX"
            },
            {
                "date": "2026-09-25",
                "destination": "LAX",
                "origin": "NYC"
            }
        ],
        "passengers": {
            "adults": 1,
            "children": 0,
            "infants": 0
        },
        "trip_class": "Y"
    }
}
  1. После сортировки соберите строку, содержащую только значения параметров, отделяя их друг от друга двоеточием, например:
USD:US:YourMarker:US:2026-09-09:NYC:LAX:2026-09-25:LAX:NYC:1:0:0:Y

Маркер находится в нижнем левом углу личного кабинета:

  1. Добавьте в начало строки ваш API-ключ. Он находится в разделе Профиль на вкладке API-ключ
  2. У вас получится строка вида:
ВашКлюч:USD:US:ВашМаркер:US:2026-09-09:NYC:LAX:2026-09-25:LAX:NYC:1:0:0:Y
  1. Возьмите её и сформируйте md-5 подпись. Полученный результат и является сигнатурой запроса. Используйте подпись для отправки запроса к API поиска.

Обратите внимание: Сигнатура чувствительна к регистру.