LTESpace API

Язык: Русский · English

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

Через API можно делать всё то же, что и в клиентском кабинете: узнать цены и наличие каналов, оформить и оплатить заказ, получить купленные прокси, сменить логин, пароль и протокол, продлить срок действия.

Быстрый старт

  1. Выпустите API-ключ в разделе настроек клиентского кабинета. Ключ показывается один раз: в базе хранится только его хеш, восстановить его нельзя — можно лишь выпустить новый взамен старого.
  2. Проверьте ключ и узнайте баланс:
curl -H "Authorization: Bearer <api_key>" https://api.ltespace.com/user/balance
  1. Посмотрите наличие каналов через POST /channels/available, создайте заказ через POST /orders/buy и оплатите его через POST /orders/{order_id}/pay. Купленные прокси вернутся в ответе на оплату, а позже их всегда можно получить через GET /proxies.

Аутентификация

Все методы требуют заголовок:

Authorization: Bearer <api_key>

Ключ действует до тех пор, пока вы не выпустите новый: выпуск нового ключа немедленно отключает предыдущий.

Формат ответов

Все запросы и ответы используют application/json. Успешный ответ всегда содержит status: "ok", время передаётся в ISO 8601, а суммы — в валюте из поля currency (валюта берётся из профиля пользователя, цены уже приведены к ней).

Ошибки

Тело ошибки одинаково для всех методов:

{
  "status": "error",
  "error": { "code": "PAYMENT_NOT_ENOUGH_MONEY", "params": {} },
  "message": "Not enough money"
}

Важно: проверяйте поле status, а не только HTTP-код. Ошибки аутентификации и недоступности сервиса приходят с HTTP 401 и 503, но большинство ошибок бизнес-логики возвращается с HTTP 200 и различимо только по status: "error". Отдельно стоит 422 — так сервис отвечает, если тело запроса не соответствует схеме: пропущено обязательное поле, значение не того типа или не проходит проверку. Формат такого ответа отличается от описанного выше: подробности перечислены в поле detail.

Значение error.code стабильно и предназначено для программной обработки, message — человекочитаемое пояснение, его текст может меняться. Поле error.params содержит подробности, если они есть.

Основные коды ошибок

| Код | Что означает | | --- | --- | | AUTH_REQUIRED | Заголовок Authorization не передан | | AUTH_INVALID_TOKEN | API-ключ не найден или отозван | | SERVICE_UNAVAILABLE | Сервис или база данных временно недоступны | | USER_NOT_FOUND | Пользователь не найден | | ORDER_NOT_FOUND | Заказ не найден или принадлежит другому пользователю | | ORDER_UNSUPPORTED_PERIOD | Период не входит в список допустимых | | ORDER_UNSUPPORTED_TYPE | Неизвестный тариф | | ORDER_NOT_ENOUGH_CHANNELS | Свободных каналов меньше, чем запрошено | | ORDER_NO_FREE_PORTS_AVAILABLE | Нет свободных портов для выдачи | | ORDER_ZERO_AMOUNT | Стоимость заказа вычислилась как ноль | | PAYMENT_NOT_ENOUGH_MONEY | Недостаточно средств на балансе | | PRICE_NOT_CONFIGURED | Для выбранной комбинации не задана цена | | PRICE_FOR_PERIOD_NOT_CONFIGURED | Для выбранного периода не задана цена | | PORT_NOT_FOUND | Порт не принадлежит текущему пользователю | | PORT_DOES_NOT_EXIST | Такого порта не существует | | PORTS_REQUIRED | Не передан ни один порт | | PROXY_UNSUPPORTED_CONNECTION_TYPE | Недопустимый протокол подключения | | IPAUTH_INVALID | Передан некорректный IP-адрес | | IPAUTH_TOO_MANY | Превышено число адресов для IP-аутентификации | | ORDERS_LIMIT_OUT_OF_RANGE | Параметр limit вне допустимого диапазона | | PAYMENTS_LIMIT_OUT_OF_RANGE | Параметр limit вне допустимого диапазона |

Допустимые значения

Идентификаторы прокси

В ответах со списком прокси каждый элемент содержит поле id — постоянный идентификатор, который не меняется за всё время жизни прокси. Именно его стоит хранить у себя, если нужно связать прокси с записью в вашей системе.

Адресация в методах управления прокси сейчас выполняется по номеру порта. Порт уникален среди действующих прокси, но освободившийся порт со временем может быть выдан снова, поэтому как долговременный идентификатор он не подходит.

Работа с портами

Методы /proxies, принимающие несколько портов, допускают как массив чисел ([11010, 11011]), так и строку с разделителем — запятой или точкой с запятой. Все порты должны принадлежать текущему пользователю: чужой порт приведёт к ошибке PORT_NOT_FOUND.

MCP для AI-агентов

Model Context Protocol (MCP) — открытый протокол, через который AI-ассистенты вызывают внешние инструменты. MCP-сервер LTESpace даёт Claude, Cursor, VS Code и другим совместимым агентам прямой доступ к вашему аккаунту: агент сам проверит баланс и цены, подберёт гео, купит или продлит прокси и сменит IP — по обычной просьбе в чате, без написания кода.

Подключение

Claude Code:

claude mcp add --transport http ltespace https://api.ltespace.com/mcp \
  --header "Authorization: Bearer <api_key>"

Cursor — файл ~/.cursor/mcp.json или .cursor/mcp.json в проекте:

{
  "mcpServers": {
    "ltespace": {
      "url": "https://api.ltespace.com/mcp",
      "headers": { "Authorization": "Bearer <api_key>" }
    }
  }
}

VS Code — файл .vscode/mcp.json. Ключ запрашивается при первом подключении и не хранится в файле:

{
  "inputs": [
    { "type": "promptString", "id": "ltespace-key", "description": "LTESpace API key", "password": true }
  ],
  "servers": {
    "ltespace": {
      "type": "http",
      "url": "https://api.ltespace.com/mcp",
      "headers": { "Authorization": "Bearer ${input:ltespace-key}" }
    }
  }
}

Подойдёт и любой другой клиент, который умеет подключать удалённый MCP-сервер по HTTP с собственным заголовком. Коннекторы claude.ai и ChatGPT, которым нужен вход через OAuth, пока не поддерживаются.

Инструменты

| Инструмент | Что делает | | --- | --- | | get_balance | Баланс и валюта аккаунта | | list_proxies | Ваши прокси с данными для подключения; фильтр по стране и заказу | | get_geo | Доступные страны, города и операторы | | get_prices | Цены по странам, тарифам и срокам | | check_availability | Сколько каналов можно купить прямо сейчас | | list_orders, get_order | История заказов и заказ по номеру | | create_order | Заказ на покупку прокси — только расчёт суммы, без списания | | create_extend_order | Заказ на продление прокси — только расчёт суммы, без списания | | pay_order | Оплата заказа с баланса — списывает деньги | | rotate_ip | Смена IP прокси с ручной ротацией |

Страну можно указывать ISO-кодом (RU, GE) или slug из get_geo (russia). Города и операторы задаются slug из get_geo.

Покупка и продление

Покупка всегда проходит в два шага. Сначала агент создаёт заказ через create_order или create_extend_order и получает сумму — деньги при этом не списываются. Затем, после вашего подтверждения, он вызывает pay_order. Повторная оплата того же заказа не списывает деньги второй раз.

Инструмент pay_order помечен как необратимый, и большинство клиентов спрашивают подтверждение перед его вызовом. Не включайте автоматическое одобрение этого инструмента, если не хотите, чтобы агент тратил баланс без вашего ведома.

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

MCP-сервер работает с теми же данными и ограничениями, что и API: заказ, созданный через агента, виден в кабинете, а ошибки приходят с теми же кодами из таблицы выше.

User

Баланс, профиль, операции по балансу и настройки аккаунта.

Prices

Тарифы по странам и периодам. Цены приведены к валюте пользователя.

Channels

Наличие свободных каналов. Проверяйте доступность перед созданием заказа: она меняется в реальном времени.

Geo

Справочник стран, городов и операторов. Меняется редко, ответ разрешено кэшировать на 5 минут.

Orders

Заказы на покупку и продление. Создание заказа и его оплата — два отдельных шага: /orders/buy только фиксирует состав и стоимость, средства списываются в /orders/{order_id}/pay.

Срок заказа и продления задаётся в днях и принимает значения 1, 7, 14, 30 и 90. Тарифы: shared, sharednowait, private, privatenowait, multiport, multiregion. Протокол подключения: http — HTTP-прокси, socks — SOCKS5 или auto — HTTP и SOCKS5 на одном порту. Страна, город и оператор задаются slug-ами из справочника GET /geo.

Proxies

Купленные прокси: адрес и порт, логин и пароль, протокол, комментарии и ссылки ручной ротации.