Language: Русский · English
The LTESpace public customer API: buy and renew mobile proxies, manage access and account settings.
The API lets you do everything you can do in the customer dashboard: check prices and channel availability, place and pay for an order, get your purchased proxies, change login, password and protocol, and renew proxies.
curl -H "Authorization: Bearer <api_key>" https://api.ltespace.com/user/balance
POST /channels/available, create an
order with POST /orders/buy and pay for it with
POST /orders/{order_id}/pay. The purchased proxies are returned in the
payment response, and you can always get them later with GET /proxies.Every method requires the header:
Authorization: Bearer <api_key>
The key stays valid until you issue a new one: issuing a new key immediately disables the previous one.
All requests and responses use application/json. A successful response
always contains status: "ok", timestamps are in ISO 8601, and amounts are
in the currency from the currency field (the currency comes from the user
profile, and prices are already converted to it).
The error body is the same for all methods:
{
"status": "error",
"error": { "code": "PAYMENT_NOT_ENOUGH_MONEY", "params": {} },
"message": "Not enough money"
}
Important: check the status field, not just the HTTP code.
Authentication errors and service unavailability are returned with HTTP 401
and 503, but most business logic errors are returned with HTTP 200 and can
only be told apart by status: "error". 422 is a separate case: the
service returns it when the request body does not match the schema — a
required field is missing, a value has the wrong type or fails validation.
Such a response has a different format: the details are listed in the
detail field.
The error.code value is stable and intended for programmatic handling;
message is a human-readable explanation and its text may change.
The error.params field contains details when there are any.
| Code | Meaning |
| --- | --- |
| AUTH_REQUIRED | The Authorization header is missing |
| AUTH_INVALID_TOKEN | The API key was not found or has been revoked |
| SERVICE_UNAVAILABLE | The service or database is temporarily unavailable |
| USER_NOT_FOUND | User not found |
| ORDER_NOT_FOUND | The order was not found or belongs to another user |
| ORDER_UNSUPPORTED_PERIOD | The period is not in the list of allowed values |
| ORDER_UNSUPPORTED_TYPE | Unknown plan |
| ORDER_NOT_ENOUGH_CHANNELS | Fewer free channels than requested |
| ORDER_NO_FREE_PORTS_AVAILABLE | No free ports available to issue |
| ORDER_ZERO_AMOUNT | The order amount was calculated as zero |
| PAYMENT_NOT_ENOUGH_MONEY | Insufficient balance |
| PRICE_NOT_CONFIGURED | No price is set for the selected combination |
| PRICE_FOR_PERIOD_NOT_CONFIGURED | No price is set for the selected period |
| PORT_NOT_FOUND | The port does not belong to the current user |
| PORT_DOES_NOT_EXIST | The port does not exist |
| PORTS_REQUIRED | No ports were passed |
| PROXY_UNSUPPORTED_CONNECTION_TYPE | Invalid connection protocol |
| IPAUTH_INVALID | An invalid IP address was passed |
| IPAUTH_TOO_MANY | Too many addresses for IP authentication |
| ORDERS_LIMIT_OUT_OF_RANGE | The limit parameter is out of range |
| PAYMENTS_LIMIT_OUT_OF_RANGE | The limit parameter is out of range |
http — an HTTP proxy with the CONNECT method
(also works for HTTPS websites; use the http:// scheme in the connection
string), socks — SOCKS5, auto — HTTP and SOCKS5 on the same port.
https is a legacy alias of http: it is accepted as input, but responses
always return http.shared, sharednowait, private, privatenowait,
multiport, multiregion.In proxy list responses each item contains an id field — a permanent
identifier that never changes during the proxy's lifetime. Store it on your
side if you need to link a proxy to a record in your system.
Proxy management methods currently address proxies by port number. A port is unique among active proxies, but a released port may eventually be issued again, so it is not suitable as a long-term identifier.
/proxies methods that accept several ports take either an array of
numbers ([11010, 11011]) or a string separated by commas or semicolons.
All ports must belong to the current user: a port owned by someone else
results in a PORT_NOT_FOUND error.
Model Context Protocol (MCP) is an open protocol that AI assistants use to call external tools. The LTESpace MCP server gives Claude, Cursor, VS Code and other compatible agents direct access to your account: the agent checks your balance and prices, picks a location, buys or renews proxies and rotates IPs when you simply ask in chat, with no code to write.
https://api.ltespace.com/mcp, Streamable HTTP transport.Authorization: Bearer <api_key> header.Claude Code:
claude mcp add --transport http ltespace https://api.ltespace.com/mcp \
--header "Authorization: Bearer <api_key>"
Cursor — ~/.cursor/mcp.json, or .cursor/mcp.json in your project:
{
"mcpServers": {
"ltespace": {
"url": "https://api.ltespace.com/mcp",
"headers": { "Authorization": "Bearer <api_key>" }
}
}
}
VS Code — .vscode/mcp.json. The key is requested on first connection
and is not stored in the file:
{
"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}" }
}
}
}
Any other client that can connect to a remote MCP server over HTTP with a custom header works too. claude.ai and ChatGPT connectors, which require OAuth sign-in, are not supported yet.
| Tool | What it does |
| --- | --- |
| get_balance | Account balance and currency |
| list_proxies | Your proxies with connection details; filter by country and order |
| get_geo | Available countries, cities and operators |
| get_prices | Prices by country, plan and period |
| check_availability | How many channels can be bought right now |
| list_orders, get_order | Order history and a single order |
| create_order | Order to buy proxies — calculates the amount, charges nothing |
| create_extend_order | Order to renew proxies — calculates the amount, charges nothing |
| pay_order | Pays an order from the balance — charges money |
| rotate_ip | Rotates the IP of a proxy with manual rotation |
Countries accept an ISO code (RU, GE) or a slug from get_geo
(russia). Cities and operators are slugs from get_geo.
A purchase always takes two steps. First the agent creates an order with
create_order or create_extend_order and gets the amount — nothing is
charged. Then, after you confirm, it calls pay_order. Paying the same
order again does not charge twice.
pay_order is marked as irreversible, and most clients ask for
confirmation before calling it. Do not auto-approve this tool unless you
want the agent to spend your balance without asking.
The MCP server works with the same data and limits as the API: an order placed by an agent shows up in the dashboard, and errors come with the same codes as in the table above.
Balance, profile, balance transactions and account settings.
GET /user/balance — Get balanceGET /user/profile — Get profileGET /user/payments — Get balance transactionsPOST /user/ip-auth — Change IP authorization for all proxiesGET /user/auto-replace — Get auto-replacement settingsPOST /user/auto-replace — Save auto-replacement settingsPlan prices by country and period. Prices are converted to the user's currency.
GET /prices — Get pricesGET /prices/flat — Get prices as a flat listFree channel availability. Check availability before creating an order: it changes in real time.
GET /channels/available — Get full channel availabilityPOST /channels/available — Check channel availabilityDirectory of countries, cities and carriers. It rarely changes; the response may be cached for 5 minutes.
GET /geo — Get geography directoryPurchase and renewal orders. Creating an order and paying for it are two separate steps: /orders/buy only fixes the contents and the amount, and funds are charged in /orders/{order_id}/pay.
The order and renewal period is set in days and takes the values 1, 7, 14, 30 and 90. Plans: shared, sharednowait, private, privatenowait, multiport, multiregion. Connection protocol: http — an HTTP proxy, socks — SOCKS5 or auto — HTTP and SOCKS5 on the same port. Country, city and carrier are set by slugs from the GET /geo directory.
POST /orders/buy — Create a purchase orderPOST /orders/extend — Create a renewal orderGET /orders — List ordersGET /orders/{order_id} — Get orderPOST /orders/{order_id}/pay — Pay for orderPurchased proxies: host and port, login and password, protocol, comments and manual rotation links.
GET /proxies — List proxiesPATCH /proxies/credentials — Change credentials of several proxiesPATCH /proxies/{port}/credentials — Change proxy credentialsPATCH /proxies/protocol — Change protocol of several proxiesPATCH /proxies/{port}/protocol/{protocol} — Change proxy protocolPATCH /proxies/{port}/rotation — Change proxy rotation intervalPATCH /proxies/rotation — Change rotation interval of several proxiesPATCH /proxies/{port}/comment — Save proxy commentPATCH /proxies/ip-auth — Change IP authorization of several proxiesPATCH /proxies/{port}/ip-auth — Change proxy IP authorizationPOST /proxies/{port}/rotation-link/regenerate — Regenerate rotation link