Меню документации

API поддержки

Связывайтесь с поддержкой Litport из скрипта или ИИ-агента: начинайте диалог, добавляйте сообщения и читайте ответы опросом.

Чат-виджет на litport.net/support просит людей пройти капчу, поэтому скрипту или агенту следует использовать этот API или электронную почту.

Базовый URL:

https://litport.net/api/v1/support

Вызовы#

Вызов Что делает Аутентификация
POST /conversations Начинает диалог с первым сообщением. Не нужна, или API-ключ аккаунта
POST /conversations/{conversationId}/messages Добавляет сообщение в диалог. Токен доступа или API-ключ аккаунта
GET /conversations/{conversationId} Читает сообщения и состояние диалога. Токен доступа или API-ключ аккаунта

Отправляйте JSON с Content-Type: application/json. Ответы приходят в JSON.

Два способа вызова#

Без аккаунта (гость). Отправьте email и message без заголовка Authorization. В ответе придёт accessToken, который начинается с lsc_. Передавайте его как Authorization: Bearer lsc_… в двух других вызовах. Токен показывается один раз, в этом ответе, поэтому сохраните его. Он открывает только тот диалог, для которого был выдан. Гостевой диалог может отвечать на общие вопросы: локации, цены, настройка.

С API-ключом аккаунта. Отправьте Authorization: Bearer lit_… (создайте ключ на странице Настройки; см. Litport API). Тогда вызовы попадают в диалог вашего аккаунта, и поддержка может говорить о ваших заказах и прокси. У аккаунта один диалог: повторный POST /conversations добавляет сообщение в тот же диалог, а email игнорируется.

Токены доступа и API-ключи передаются в одном и том же заголовке Authorization: Bearer …. Не помещайте ни то ни другое в URL.

Начало диалога#

curl -sS 'https://litport.net/api/v1/support/conversations' \
  -H 'Content-Type: application/json' \
  -d '{"email":"[email protected]","message":"Which countries do you cover with mobile proxies?","name":"Research agent"}'
Поле Обязательное Значение
message да Текст сообщения, до 4,000 символов.
email без API-ключа Адрес, по которому мы можем с вами связаться. Игнорируется, если вы отправляете API-ключ.
name нет Отображаемое имя диалога, до 100 символов.

Ответ, 201:

{
  "conversationId": "4f0c2a7e9b1d4c5a8e3f6a1b2c3d4e5f",
  "accessToken": "lsc_example_token_returned_once",
  "identity": "guest",
  "howToUpgrade": "This is a guest conversation, so we can only answer general questions here. For help with your orders or proxies, call this API with your account API key (Authorization: Bearer <key>), or email [email protected] from your account address.",
  "message": {
    "seq": 1,
    "at": "2026-10-16T17:05:00.000Z",
    "author": "you",
    "text": "Which countries do you cover with mobile proxies?",
    "files": []
  }
}

identity — это guest или account. Для гостя howToUpgrade объясняет, как получить помощь по заказам и прокси. С API-ключом accessToken и howToUpgrade равны null, а identity равно account; продолжайте отправлять API-ключ.

Добавление сообщения#

export LITPORT_SUPPORT_TOKEN='lsc_the_token_from_the_first_response'
curl -sS "https://litport.net/api/v1/support/conversations/$CONVERSATION_ID/messages" \
  -H "Authorization: Bearer $LITPORT_SUPPORT_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"message":"Thanks. Do you have mobile proxies in Texas?"}'

Ответ, 201:

{
  "message": {
    "seq": 2,
    "at": "2026-10-16T17:06:12.000Z",
    "author": "you",
    "text": "Thanks. Do you have mobile proxies in Texas?",
    "files": []
  }
}

Чтение диалога#

curl -sS "https://litport.net/api/v1/support/conversations/$CONVERSATION_ID?after=2" \
  -H "Authorization: Bearer $LITPORT_SUPPORT_TOKEN"

after — наибольший seq, который у вас уже есть. Опустите его, чтобы читать с начала.

{
  "conversationId": "4f0c2a7e9b1d4c5a8e3f6a1b2c3d4e5f",
  "identity": "guest",
  "howToUpgrade": "This is a guest conversation, so we can only answer general questions here. For help with your orders or proxies, call this API with your account API key (Authorization: Bearer <key>), or email [email protected] from your account address.",
  "lastSeq": 3,
  "waitingOn": "customer",
  "messages": [
    {
      "seq": 3,
      "at": "2026-10-16T17:09:40.000Z",
      "author": "mike",
      "text": "Thanks, I'm checking this now and will reply here.",
      "files": []
    }
  ],
  "more": false,
  "pollAfterSeconds": 30
}
Поле Значение
lastSeq Номер самого нового сообщения, которое вам доступно.
waitingOn От кого диалог ждёт ответа: us (Litport), customer (вы) или none.
messages Сообщения с seq больше after, сначала самые старые. В каждом есть seq, at (ISO-8601 UTC), author, text и files.
more true, если есть ещё сообщения. Вызовите снова, указав в after последний полученный seq.
pollAfterSeconds Сколько ждать перед следующим чтением.

author — это you для ваших сообщений, mike для ответов поддержки и system для коротких уведомлений. В тексте ответа mike несколько коротких фраз могут быть выделены жирным с помощью двойных звёздочек Markdown (**like this**); больше ничто в тексте не является Markdown. В files указаны только name и kind. В API нет вложений и ссылок для скачивания.

Ответы приходят не мгновенно, и сервер не отправляет их вам сам. Читайте диалог снова каждые 30 секунд, пока не придёт сообщение mike. Чтение считается прочтением каждого сообщения, которое оно возвращает. Каждый ответ в гостевом диалоге также сразу отправляется по электронной почте на указанный вами адрес, а ответ на это письмо продолжает диалог. В диалоге аккаунта ответ, который остаётся непрочитанным две минуты, отправляется по электронной почте на адрес аккаунта.

Лимиты#

Лимит Значение
Новые диалоги без API-ключа 3 в час и 10 в сутки на один IP-адрес; также действует суточный лимит на всех вызывающих
Длина сообщения 4,000 символов
Сообщений в диалоге 30 за 24 часа
Чтения (GET) 20 в минуту на токен доступа или API-ключ, 60 в минуту на IP-адрес
Тело запроса 32 КиБ
Вложения Недоступны через API

При превышении лимита возвращается 429 RATE_LIMITED. Если лимит превысило чтение, также отправляется Retry-After. Подождите указанное время до следующего вызова.

Ошибки#

Ошибки используют тот же формат, что и остальной API:

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Conversation not found.",
    "requestId": "req_example",
    "docsUrl": "https://litport.net/docs/api/support"
  }
}
Статус Коды Действие клиента
400 INVALID_REQUEST, MESSAGE_TOO_LONG Исправьте запрос. У поля неверный тип, обязательное поле отсутствует или недопустимо, либо сообщение длиннее 4,000 символов. Не повторяйте его без изменений.
401 UNAUTHORIZED Отправьте действительный токен доступа или API-ключ как Authorization: Bearer ….
404 NOT_FOUND Диалога не существует, или ваши учётные данные не дают к нему доступа.
429 RATE_LIMITED Подождите и повторите. Учитывайте Retry-After, если он присутствует.

Заголовок X-Request-ID содержит тот же ID, что и requestId; указывайте его, когда сообщаете о проблеме.

Инструменты MCP#

У MCP-сервера Litport есть три инструмента для поддержки:

Инструмент Что делает
contact_support Начинает диалог. Принимает message и email, если нет API-ключа.
get_support_replies Читает диалог. Принимает необязательные conversationId и after.
reply_to_support Добавляет сообщение. Принимает message и необязательный conversationId.

Без LITPORT_API_KEY они работают как гостевой диалог, а сервер хранит токен доступа в памяти на время сессии. С LITPORT_API_KEY они используют диалог вашего аккаунта.

Электронная почта#

Вы также можете написать на [email protected]. Чтобы получить помощь по заказам или прокси, пишите с адреса, указанного в вашем аккаунте Litport.