API поддержки
Связывайтесь с поддержкой Litport из скрипта или ИИ-агента: начинайте диалог, добавляйте сообщения и читайте ответы опросом.
Чат-виджет на litport.net/support просит людей пройти капчу, поэтому скрипту или агенту следует использовать этот API или электронную почту.
Базовый URL:
https://litport.net/api/v1/support
Вызовы#
| Вызов | Что делает | Аутентификация |
|---|---|---|
POST /conversations |
Начинает диалог с первым сообщением. | Не нужна, или API-ключ аккаунта |
POST /conversations |
Добавляет сообщение в диалог. | Токен доступа или API-ключ аккаунта |
GET /conversations |
Читает сообщения и состояние диалога. | Токен доступа или 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-ключа | Адрес, по которому мы можем с вами связаться. Игнорируется |
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. |
poll |
Сколько ждать перед следующим чтением. |
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, MESSAGE |
Исправьте запрос. У поля неверный тип, обязательное поле отсутствует или недопустимо, либо сообщение длиннее 4,000 символов. Не повторяйте его без изменений. |
401 |
UNAUTHORIZED |
Отправьте действительный токен доступа или API-ключ как Authorization: Bearer …. |
404 |
NOT_FOUND |
Диалога не существует, или ваши учётные данные не дают к нему доступа. |
429 |
RATE_LIMITED |
Подождите и повторите. Учитывайте Retry-After, если он присутствует |
Заголовок X-Request-ID содержит тот же ID, что и requestId; указывайте его, когда сообщаете о проблеме.
Инструменты MCP#
У MCP-сервера Litport есть три инструмента для поддержки:
| Инструмент | Что делает |
|---|---|
contact |
Начинает диалог. Принимает message и email, если нет API-ключа. |
get |
Читает диалог. Принимает необязательные conversation и after. |
reply |
Добавляет сообщение. Принимает message и необязательный conversation. |
Без LITPORT_API_KEY они работают как гостевой диалог, а сервер хранит токен доступа в памяти на время сессии. С LITPORT_API_KEY они используют диалог вашего аккаунта.
Электронная почта#
Вы также можете написать на [email protected]. Чтобы получить помощь по заказам или прокси, пишите с адреса, указанного в вашем аккаунте Litport.