К содержимому

API массовая покупка прокси и импорт в антидетект-браузер

Скрипт может купить, перечитать и выдать сотню статических IP, пока вы заняты другим. Здесь три вызова и места, где у каждого антидетект-браузера свои нюансы.

Три шага: купить, прочитать, импортировать

Метод покупки отдаёт один IP за запрос, поэтому массовый заказ — это цикл. Цикл должен останавливаться на первой ошибке (например, не хватило баланса или нет остатка), ведь каждый вызов списывает деньги с кошелька. Консоль работает так же: при количестве от 1 до 100 она оформляет IP поочерёдно и останавливается на первой ошибке.

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

Локальные API AdsPower и BitBrowser рядом

Локальные API AdsPower и BitBrowser рядом
ПунктAdsPowerBitBrowser
Где взять адресПо умолчанию http://local.adspower.net:50325/; порт может меняться, смотрите в настройках Local APIВ документации не зафиксирован: после входа возьмите URL локального API в системных настройках
Чем сохранить проксиPOST /api/v2/proxy-list/create с полями type, host, port, user, password, remarkОтдельного метода списка в прочитанной документации нет; прокси задаётся в окне через /browser/update, для готовых окон — /browser/proxy/update
Как привязать прокси к профилюPOST /api/v2/browser-profile/create с user_proxy_config либо proxyid сохранённого прокси (или random)POST /browser/update с proxyMethod 2, proxyType, host, port, proxyUserName, proxyPassword; пустой id создаёт окно
Лимиты по документации500 прокси за один вызов Add proxy; 1 запрос в секунду для всех методовВсе запросы — POST с телом; при создании окна обязательны несколько полей

Данные из официальной документации самих продуктов, прочитано 15 ноября 2026; версии меняются, перед использованием поля перечитайте страницу. С AdsPower у Proxy302 официальное партнёрство; BitBrowser приведён лишь как второй пример.

Как сделать это с Proxy302

  1. Шаг 1: пополните кошелёк и создайте ключ

    Пополните кошелёк и создайте API-ключ на странице ключей API в консоли. У ключа есть id и secret; не храните их в коммитимых скриптах, используйте переменные окружения.

  2. Шаг 2: сначала одна тестовая покупка

    Запустите скрипт ниже с количеством 1, затем откройте «Мои активы» (страница консоли со всем купленным) и убедитесь, что IP там есть и протокол тот, что вы заказали.

  3. Шаг 3: запустите партию

    Для каждого запуска берите новую метку партии. Если скрипт остановился, запустите его снова с той же меткой: уже использованные ключи второй раз не купят.

  4. Шаг 4: выгрузите строки входа

    Запустите скрипт списка. Он создаст proxies.txt: по строке host:port:username:password на каждый активный статический IP.

  5. Шаг 5: импортируйте в браузер

    Сначала загрузите одну строку, откройте с ней профиль и проверьте выход на https://ipinfo.io/json, потом остальные. Один аккаунт — один постоянный IP.

Покупка статических IP в цикле (Python)

import os, sys, requests

BASE = "https://proxy302.com/open_api/v3"
AUTH = (os.environ["P302_KEY_ID"], os.environ["P302_KEY_SECRET"])  # API key id and secret

def call(method, path, **kw):
    body = requests.request(method, BASE + path, auth=AUTH, timeout=30, **kw).json()
    if body.get("code") != 0:                      # every answer is HTTP 200; code 0 = success
        raise SystemExit(f"{path}: code={body.get('code')} msg={body.get('msg')}")
    return body["data"]

print(call("GET", "/user/users/wallet"))                    # balance in PTC
print(call("GET", "/proxy/payway/static_residential"))      # plans: pick the payway_id of your term

COUNTRY_ID = 233                    # United States; ids come from GET /proxy/area/country?name=...
PAYWAY_ID = int(sys.argv[1])        # plan id printed above
COUNT = int(sys.argv[2])            # keep it small the first time
BATCH = sys.argv[3]                 # one label per batch, e.g. nov15a

for i in range(COUNT):
    data = call("POST", "/proxy/api/proxy/static/ip", json={
        "country_id": COUNTRY_ID,
        "payway_id": PAYWAY_ID,
        "protocol": "http",         # fixed per IP at purchase time
        "is_data_center": False,
        "idempotency_key": f"{BATCH}-{i:04d}",   # same key on a retry = no second purchase
    })
    print(i, data["token_id"], data["host"], data["port"])

Только пример. Сначала задайте P302_KEY_ID и P302_KEY_SECRET, запускайте с id тарифа, небольшим количеством и меткой партии, например: python buy.py 12 1 nov15a.

Выгрузка строк входа (Python)

import os, requests

BASE = "https://proxy302.com/open_api/v3"
AUTH = (os.environ["P302_KEY_ID"], os.environ["P302_KEY_SECRET"])

rows, cursor = [], None
while True:
    params = {"page_size": 200, "status": 1, "sort_field": "created_on", "sort": "desc"}
    if cursor:
        params["cursor"] = cursor
    body = requests.get(BASE + "/proxy/tokens/static/ip", params=params, auth=AUTH, timeout=30).json()
    if body["code"] != 0:
        raise SystemExit(body["msg"])
    rows += body["data"]["data"]
    cursor = body["data"].get("next_cursor")
    if not body["data"].get("has_more") or not cursor:
        break

with open("proxies.txt", "w", encoding="utf-8") as f:
    for r in rows:
        f.write(r["ads_proxy_url"] + "\n")     # host:port:username:password
print(len(rows), "active static IPs written to proxies.txt")

Только пример. Поле ads_proxy_url и поля постраничной выдачи описаны в справочнике API.

Отправка строк в AdsPower (Python)

import requests

ADS = "http://local.adspower.net:50325"     # the port can change: see Local API in the AdsPower settings
items = []
for line in open("proxies.txt", encoding="utf-8"):
    host, port, user, pwd = line.strip().split(":", 3)
    items.append({
        "type": "http" if port == "2222" else "socks5",   # Proxy302: HTTP on 2222, SOCKS5 on 3333
        "host": host, "port": int(port), "user": user, "password": pwd,
        "remark": "proxy302",
    })

# AdsPower: at most 500 proxies per call and 1 request per second.
# Check the body shape against the Add proxy page and try with one line first.
print(requests.post(ADS + "/api/v2/proxy-list/create", json=items[:1], timeout=30).json())

Иллюстрация. На странице AdsPower перечислены поля, но нет примера тела запроса, поэтому отправьте одну строку и прочитайте ответ, прежде чем слать 500.

Если вызов не проходит

Покупка отвечает кодом 50301

Проверьте Прочитайте msg: там сказано, не хватает ли баланса, нет ли остатка в стране или ключ ещё не привязан к аккаунту Proxy302.

Решение Пополните баланс либо выберите другую страну или срок и запустите снова с той же меткой партии. Остаток меняется ежедневно и виден на странице заказа.

Когда остановиться Если повторяется при пополненном кошельке и наличии остатка, отправьте msg и номер заказа в поддержку.

Код 401

Проверьте Неверный id или secret ключа, либо вместо API-ключа указан пароль от аккаунта.

Решение Создайте ключ на странице ключей API и используйте его id и secret как логин Basic.

Когда остановиться Не повторяйте в цикле: неверный ключ сам не заработает.

После повтора куплено больше IP, чем планировали

Проверьте При повторе использовали новый idempotency_key. Тот же ключ возвращает прежний заказ, новый ключ — это новая покупка.

Решение Собирайте ключ из метки партии и счётчика, как в скрипте, и не берите время.

Когда остановиться Перед следующим запуском пересчитайте строки в «Мои активы».

AdsPower отвечает code -1

Проверьте Проверьте, что Local API включён, порт совпадает с настройками, частота не выше 1 запроса в секунду, а тело соответствует странице Add proxy.

Решение Отправьте один прокси отдельно и прочитайте msg; затем шлите группами до 500 с паузой между вызовами.

Когда остановиться Если падает одна строка, сверьте её хост, порт и логин с «Мои активы».

Цены и ограничения

Статический ISP IP стоит $0,50 за день и $7,99 за 30 дней, около $0,27 в день, цена одинакова во всех странах. Дата-центровый IP — $0,25 за день и $3,99 за 30 дней. Каждый IP выдаётся с одним протоколом: HTTP на порту 2222 или SOCKS5 на порту 3333 адреса proxy.proxy302.com. В консоли количество в заказе — от 1 до 100. Автопродление необязательное и включается для каждого IP отдельно; при заказе в консоли оно по умолчанию включено, поэтому проверьте настройку у IP, купленных скриптом, и выключите её в «Мои активы», если оно не нужно. Бесплатного пробного периода нет, минимальная покупка — один IP на один день.

Частые вопросы

Можно ли купить статические IP через API?

Да. Метод статических IP открытого API покупает один IP за вызов с кошелька: нужны страна, id тарифа и протокол. Полный список методов — в документации для разработчиков.

Сколько IP покупает один вызов?

Один. Параметры count и format относятся к динамическим методам. Для статических IP вызывайте метод в цикле или используйте форму заказа в консоли с количеством от 1 до 100.

Что лежит в поле ads_proxy_url?

Строка входа host:port:username:password — в таком порядке большинство антидетект-браузеров принимает вставляемые прокси. Перед большой вставкой проверьте порядок в своём браузере.

Нужен ли скрипту отдельный ключ?

API-ключ создаётся на странице ключей API и не равен паролю аккаунта. Используйте его как логин HTTP Basic в каждом вызове.

Подойдёт ли тот же скрипт для BitBrowser?

Покупка и выгрузка те же. Меняется только последний шаг: BitBrowser записывает прокси в окна своим методом /browser/update с полями из таблицы выше.

Все партнёры →

Ссылки и источники

7
  1. Данные о продуктах и цены Proxy302

    Наблюдение за продуктом · Проверено:

    Файл фактов о продуктах сайта (значения сверены с консолью, бэкендом и прайсом 18-19 октября 2026): цены в долларах (1 PTC = $1), сроки аренды, протоколы и порты, лимиты количества, бесплатного пробного периода нет.

  2. Справочник API разработчика Proxy302 (llms-full.txt)

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: авторизация HTTP Basic, логин — id API-ключа, пароль — secret; все ответы приходят с HTTP 200, результат в code, msg, data, успех — code 0; метод покупки статического IP принимает country_id, payway_id, protocol и idempotency_key длиной 8-128 символов; список активов отдаёт ads_proxy_url в виде host:port:username:password; код 50301 покрывает нехватку баланса и отсутствие остатка.

  3. AdsPower Local API: Add proxy

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: POST /api/v2/proxy-list/create, поля type, host, port, необязательные user, password, remark; за один запрос не больше 500 прокси; при успехе code 0 и список id прокси. Примера тела запроса на странице нет.

  4. AdsPower Local API: New Profile V2

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: POST /api/v2/browser-profile/create требует group_id и fingerprint_config и одно из двух: user_proxy_config или proxyid (id сохранённого прокси либо random).

  5. README AdsPower Local API (GitHub)

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: адрес по умолчанию http://local.adspower.net:50325/ или http://localhost:50325/, порт может меняться; лимит частоты для всех методов — 1 запрос в секунду; включается в разделе «Управление аккаунтом», «Настройки», Local API.

  6. Документация BitBrowser: интерфейс браузера

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: POST /browser/update создаёт окно, если id пустой, и меняет, если id передан; поля прокси proxyMethod (2 — свой прокси), proxyType (noproxy, http, https, socks5), host, port, proxyUserName, proxyPassword; /browser/proxy/update меняет прокси пакетно.

  7. Документация BitBrowser: руководство по локальному сервису

    Официальная документация · Проверено:

    Прочитано 15 ноября 2026: установите браузер и войдите, затем возьмите URL локального API в системных настройках; все запросы — POST с параметрами в теле.

Готовы попробовать?

Создайте аккаунт, пополните баланс и выберите ротируемый резидентный, статический ISP или дата-центр IP — настроить его в браузере можно за несколько минут.