Документация

Документация для разработчиков

Руководства по интеграции, рабочие примеры и REST API reference для сети мобильных прокси mobileproxy.space — Python, Node.js, Go, cURL, Playwright, Selenium.

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

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

  1. Зарегистрируйтесь на mobileproxy.space.
  2. Купите прокси — выберите страну и оператора на странице покупки.
  3. Скопируйте API-токен со страницы API в личном кабинете.
  4. Сделайте первый запрос — выберите язык ниже.
curl --request GET \ --url 'https://mobileproxy.rent/api.html?command=get_my_proxy' \ --header 'Authorization: Bearer YOUR_API_TOKEN'
import requests r = requests.get( "https://mobileproxy.rent/api.html", params={"command": "get_my_proxy"}, headers={"Authorization": "Bearer YOUR_API_TOKEN"}, timeout=10, ) print(r.json())
const res = await fetch( "https://mobileproxy.rent/api.html?command=get_my_proxy", { headers: { Authorization: "Bearer YOUR_API_TOKEN" } } ); console.log(await res.json());
req, _ := http.NewRequest("GET", "https://mobileproxy.rent/api.html?command=get_my_proxy", nil) req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body))
Лимит запросов: 3 req/sec × N активных прокси. Cooldown одинакового запроса: 3 сек. При превышении — HTTP 429.

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

Все запросы к API авторизуются персональным Bearer-токеном. Токен привязан к аккаунту, а не к отдельному прокси.

Где взять токен

Войдите в кабинет и откройте API. Поле с токеном вверху страницы. Токен можно отозвать в любой момент — старый сразу становится невалидным.

Как передать токен

Authorization: Bearer YOUR_API_TOKEN

IP allowlist (опционально)

Для дополнительной безопасности можно ограничить вызовы API одним IP-адресом. Поле Разрешённый IP на странице API. Запросы с других IP отклоняются даже с валидным токеном.

Авторизация на самом прокси

Прокси-соединение использует либо логин/пароль (по умолчанию), либо авторизацию по IP. Настраивается в кабинете для каждого прокси. При IP-авторизации учётные данные не передаются.

Базовые понятия

IP-адреса мобильных операторов

Каждый прокси в сети — реальный 4G/5G-модем, подключённый к настоящему сотовому оператору (МТС, Билайн, T-Mobile, Vodafone и т.д.). Целевые сайты видят трафик так, будто он идёт с обычного смартфона на мобильной сети, а не из дата-центра.

CGNAT — почему мобильные IP «общие»

Мобильные операторы маршрутизируют тысячи абонентов через один публичный IP с помощью Carrier-Grade NAT. Бан конкретного IP заблокировал бы реальных клиентов, поэтому антифрод-системы относятся к мобильным IP мягче, чем к резидентным и серверным. Это структурная причина высокого траст-уровня мобильных прокси.

Ротация

Внешний IP меняется по запросу через переподключение модема:

  • По ссылке — GET-запрос на уникальный URL (changeip.host/?proxy_key=…) запускает ротацию. Возвращает новый IP в JSON.
  • По таймеру — автоматическая ротация раз в N минут (настраивается на каждый прокси).
  • Без ротации (sticky) — IP сохраняется, пока вы сами не запросите смену.

Sticky-сессии

«Sticky»-сессия — это просто прокси с отключённой ротацией (или длинным таймером). Все запросы через такой прокси идут с одного IP в течение сессии. Полезно для многошаговых сценариев: логин → корзина → оплата, парсинг страниц одной сессии.

Сохранение сессии между ротациями

Cookies, localStorage и TLS-сессии хранятся на клиенте — не на прокси. После ротации текущая сессия в браузере/HTTP-клиенте сохраняется, меняется только source IP.

Интеграции

Готовые сниппеты для популярных стеков. Замените PROXY_HOST, PROXY_PORT, LOGIN, PASSWORD на значения из ответа get_my_proxy.

import requests proxy = "http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT" r = requests.get("https://httpbin.org/ip", proxies={"http": proxy, "https": proxy}, timeout=15) print(r.json())
import { HttpsProxyAgent } from "https-proxy-agent"; const agent = new HttpsProxyAgent("http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT"); const res = await fetch("https://httpbin.org/ip", { agent }); console.log(await res.json());
proxyURL, _ := url.Parse("http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT") client := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)}} resp, _ := client.Get("https://httpbin.org/ip") defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body))
curl -x http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT https://httpbin.org/ip # SOCKS5 curl --socks5 LOGIN:PASSWORD@PROXY_HOST:SOCKS_PORT https://httpbin.org/ip
import { chromium } from "playwright"; const browser = await chromium.launch({ proxy: { server: "http://PROXY_HOST:PROXY_PORT", username: "LOGIN", password: "PASSWORD", }, }); const page = await browser.newPage(); await page.goto("https://httpbin.org/ip"); console.log(await page.content()); await browser.close();
from seleniumwire import webdriver opts = {"proxy": { "http": "http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT", "https": "http://LOGIN:PASSWORD@PROXY_HOST:PROXY_PORT", "no_proxy": "localhost,127.0.0.1", }} driver = webdriver.Chrome(seleniumwire_options=opts) driver.get("https://httpbin.org/ip") print(driver.page_source) driver.quit()
Официальные SDK и расширенные примеры на GitHub: Python · Node · PHP · OpenAPI spec.

Сценарии использования

Что разработчики реально делают с мобильными прокси. Каждая карточка — типовой паттерн.

Веб-скрейпинг

Ротация IP per request или per session, в связке с инструментами браузерного фингерпринтинга.

Браузерная автоматизация

Playwright / Selenium — один прокси на worker, sticky-сессии для stateful-потоков.

Верификация и QA

Проверка гео-контента, цен, A/B-вариантов с реальных мобильных сетей.

Проверка SERP и рекламы

Парсинг поисковой выдачи, проверка размещения рекламы, мобильные креативы.

SMM и мульти-аккаунты

Один мобильный прокси на аккаунт — carrier-grade IP-профиль больше всего похож на реального пользователя.

Data-пайплайны

Фоновые воркеры за пулом с ротацией, retry на ротации, структурированное логирование ошибок.

API Reference

Полный REST-reference — каждый endpoint, параметры и формат ответа — на отдельной странице API. Документация автоматически подставит ваш токен, если вы залогинены.

Полная REST API-документация

~15 endpoints: управление прокси, ротация IP, blacklist, поиск гео/операторов, баланс.

Открыть API Reference

Самые используемые endpoints

  • GET /api.html?command=get_my_proxy
  • GET CHANGEIP_HOST/?proxy_key=…
  • GET /api.html?command=proxy_ip&proxy_id=…
  • GET /api.html?command=change_equipment&…
  • GET /api.html?command=get_geo_operator_list

Решение проблем

Топ-проблемы, с которыми сталкиваются разработчики, и стандартные решения. Полный FAQ — на странице FAQ.

Соединение отваливается по таймауту / отклонено

Проверьте, что прокси активен в кабинете, IP allowlist соответствует IP вашей машины, и вы используете правильный порт для HTTP vs SOCKS5.

Ротация возвращает тот же IP

Оператор может выдать тот же адрес — это нормально на малых пулах. Запустите ротацию ещё раз или смените оператора через change_equipment.

Целевой сайт показывает капчу

Капчи коррелируют с фингерпринтом, не только с IP. Связывайте мобильный IP с мобильным User-Agent, мобильным viewport и согласованным TLS-профилем. См. Генератор фингерпринта.

Сессия неожиданно отваливается

Срабатывает auto-rotation посреди сессии. Либо отключите ротацию по таймеру, либо сохраняйте cookies/токены до ротации.

Гео не совпадает / другая страна

Операторы иногда роутят через зарубежные узлы. Проверьте через proxy_ip, при необходимости переключите оборудование через change_equipment.

HTTP 429 от API

Превышен лимит запросов. Добавьте exponential backoff, кэшируйте ответы get_my_proxy, передавайте списки proxy_id там, где это поддерживается.

Best Practices

Стратегия retry

Оборачивайте каждый запрос через прокси в retry-with-jitter (3 попытки, 500ms–3s). На 429 — exponential backoff. На connection errors — ротация перед повтором.

Управление сессиями

Один прокси на одну логическую сессию. Сохраняйте cookies/localStorage на worker. Никогда не делитесь HTTP keep-alive пулом между ротациями.

Интервалы ротации

Для скрейпинга — ротируйте per request или каждые 30–120 сек. Для работы с аккаунтами — длинные sticky-сессии (часы), ротация только на явный logout/error.

Согласованность браузера

Подбирайте User-Agent под оператора (4G → мобильный UA). Timezone и locale — под регион прокси. Отключайте WebRTC IP leak.

Избегание банов

Держите rate запросов в пределах человеческого. Рандомизируйте тайминги. Связывайте мобильный IP с мобильным фингерпринтом, не с десктопным.

Наблюдаемость

Логируйте proxy_id, текущий IP, response code и события ротации вместе. Когда что-то ломается, сразу понятно — IP, фингерпринт или таргет.