API партнёрских ссылок Travelpayouts

С помощью API партнёрских ссылок от Travelpayouts можно быстро преобразовывать прямые ссылки на сайты туристических брендов в партнёрские без необходимости использования личного кабинета Travelpayouts. 

Требования

  1. Зарегистрироваться на платформе Travelpayouts
  2. Подписаться на программы брендов, ссылки которых вы хотите получать с помощью API.
  3. Скопировать API-ключ (токен). Он доступен партнёрам сразу после регистрации на платформе Travelpayouts. Вы сможете найти AP-ключ в разделе Профиль на вкладке API-ключ.Он передаётся в Header запроса в параметре X-Access-Token.

Ограничения

  • Максимум 100 запросов в минуту на один маркер.
  • В одном запросе можно передавать не более 10 ссылок.
  • Для корректной работы API нельзя использовать короткие ссылки брендов, используйте длинные ссылки.
  • Для указанных ниже брендов API партнёрских ссылок не работает:
    • Т-Банк
    • Сравни.ру
    • Альфа Банк
    • Park&Fly
    • Ticketmaster
    • Expedia UK
    • HolidayTaxis
    • inDrive

Запрос

https://api.travelpayouts.com/links/v1/create

Пример запроса

{
   "trs": 197987,
   "marker": 339296,
   "shorten": true,
   "links": [
       {
           "url": "https://travel.yandex.ru/hotels/moscow/beta-izmailovo/?adults=2&checkinDate=2025-03-24&checkoutDate=2025-03-29",
           "sub_id": "example"
       }
   ]
}
Пример запроса с несколькими ссылками
{
   "trs": 197987,
   "marker": 339296,
   "shorten": false,
   "links": [
       { "url": "https://www.aviasales.ge/search/TBS1803PAR1" },
       { "url": "https://travel.yandex.ru/hotels/moscow/beta-izmailovo/" }
   ]
}

Параметры запроса

  • trs – ID проекта, подписанного на программу бренда (можно найти в списке проектов)
  • markerуникальный ID партнёра в Travelpayouts:
  • shorten – флаг для генерации короткой ссылки. Возможные значения true/false, если true — на выходе получится короткая ссылка, если false — длинная.
  • links – массив ссылок, которые нужно преобразовать.
  • url – исходная брендовая ссылка.
    Обратите внимание! Для корректной работы API используйте длинные ссылки 
  • sub_id (необязательно) – текстовое значение, которое впоследствии можно использовать, чтобы отслеживать статистику по партнёрским ссылкам. Подробнее.

Пример ответа

{
   "result": {
       "trs": 197987,
       "marker": 339296,
       "shorten": true,
       "links": [
           {
               "url": "https://travel.yandex.ru/hotels/moscow/beta-izmailovo/?adults=2&checkinDate=2025-03-24&checkoutDate=2025-03-29",
               "code": "success",
               "partner_url": "https://yandex.tp.st/NHifzZw5"
           }
       ]
   },
   "code": "success",
   "status": 200
}

Параметры ответа

  • trs – ID проекта, подписанного на программу бренда
  • markerуникальный ID партнёра в Travelpayouts:
  • shorten – если true — то ссылка короткая, если false — длинная.
  • links – исходные ссылки для преобразования
  • code – идентификатор успешности преобразования ссылки
  • partner_url – итоговая партнёрская ссылка
  • code – идентификатор успешности выполнения запроса
  • status – статус выполнения запроса

Возможные ошибки

Ошибка в API-ключе

  • Код: 401 Unauthorized

Ошибка в trs

{
    "code": "incorrect_request_body",
    "error": "invalid traffic source",
    "status": 400
}

Ошибка в marker

{
    "code": "incorrect_request_body",
    "error": "incorrect marker in the request",
    "status": 400
}

Ошибка в url

{
    "result": {
        "trs": 197987,
        "marker": 339296,
        "shorten": true,
        "links": [
            {
                "url": "1https://travel.yandex.ru/hotels/moscow/beta-izmailovo/",
                "code": "failed",
                "message": "can't create partner link",
                "partner_url": ""
            }
        ]
    },
    "code": "success",
    "status": 200
}

Ошибка: Нет подписки на бренд

{
    "result": {
        "trs": 197987,
        "marker": 339296,
        "shorten": true,
        "links": [
            {
                "url": "https://www.airalo.com/ru/georgia-esim/kargi-mobile-7days-1gb",
                "code": "failed",
                "message": "trs is not subscribed for brand",
                "partner_url": ""
            }
        ]
    },
    "code": "success",
    "status": 200
}

Ошибка: Бренд не поддерживается в Travelpayouts

{
    "result": {
        "trs": 197987,
        "marker": 339296,
        "shorten": true,
        "links": [
            {
                "url": "https://www.ozon.ru/travel/?__rr=1",
                "code": "failed",
                "message": "can't create partner link",
                "partner_url": ""
            }
        ]
    },
    "code": "success",
    "status": 200
}