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

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

Требования

  1. Зарегистрироваться на платформе Travelpayouts
  2. Подписаться на программы брендов, ссылки которых вы хотите получать с помощью API.
  3. Скопировать API токен. Он доступен партнёрам сразу после регистрации на платформе Travelpayouts. Вы сможете найти API токен в разделе Профиль на вкладке 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 – статус выполнения запроса

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

Ошибка в токене

  • Код: 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
}