# ProxyScrape Premium Free Trial — $0 авторег + рабочие прокси Live-пруф 2026-10-07: акк зареган, триал активен (100 datacenter-прокси, 10 GB, 7 дней, status `valid`), 8/8 прокси отдают трафик через user:pass auth. Весь флоу $0 (фри-капча sidecar :8877), скрипт E2E: `scratch/ps_e2e.py`. ## Ключевой вывод: НЕ воевать с формой — API напрямую Sign-up на `dashboard.proxyscrape.com/v2/sign-up` — Next.js SPA (MUI). Все браузерные пути инжекта out-of-band Turnstile-токена провалились: - set value на hidden input + dispatch input/change → кнопка не разблокировалась/сабмит не отправлял fetch - React fiber `onSuccessCallback(token)` → найден (depth ~4-6), вызван, но network-запроса тоже не появилось Рабочий путь: **извлечь API-эндпоинты из Next.js chunk'ов и POST'ить напрямую** с токеном как form-поле. ### Как найти эндпоинты 1. В page source — список `/_next/static/chunks/pages/*.js` 2. Скачать `_app-*.js` и sign-up chunk, grep'ать на `v4/account`, `auth/register`, `turnstile` 3. Найденные роуты (база `https://dashboard.proxyscrape.com`): - `POST /v2/v4/account/auth/register` — поля `email`, `password`, `confirm_password`, `terms_agreement=true`, `cf_turnstile_token` - `POST /v2/v4/account/auth/login` — тоже требует Turnstile-токен - `POST /v2/v4/account/auth/me` — Bearer access_token - `POST /v2/v4/account/premium/claim-trial` — активирует триал БЕЗ верификации почты - `POST /v2/v4/account/reset-verification-code` — шлёт hex-код на email - `POST /v2/v4/account/verify-email` — поле `verificationCode` (HEX, напр. `a0ae05f6dd` — НЕ `\d{6}`!) - `GET /v2/v4/account/{accountId}/datacenter_shared/proxy-list?format=json&type=displayproxies&protocol=http&start=0&length=100&draw=1` - `POST /v2/v4/account/{accountId}/datacenter_shared/credentials` — username/password для proxy-auth - `GET /v2/v4/account/{accountId}/datacenter_shared/whitelist?ip[]=label:IP&type=add` — добавить свой IP **Content-Type: `application/x-www-form-urlencoded`** — JSON-тело → 400 на register. ### Флоу 1. Email: Gmail +alias (`user+XXXX@gmail.com`), пароль random. Сохранить в state-JSON. 2. Turnstile sitekey sign-up страницы: `0x4AAAAAAAFWUVCKyusT9T8r` (снимается из JS-бандла). Решить фри-сайдкаром: `POST http://127.0.0.1:8877/solve {type:"turnstile", sitekey, url, real_page:false, timeout_s:120}` → ~11-36с, токен ~752 chars. Здесь real_page НЕ обязателен (обычная проверка токена сервером, без WorkOS-аттестации). 3. `POST register` (form-encoded) → 200 + `access_token` (Bearer для всего остального). 4. `POST premium/claim-trial` → триал активен сразу, верификация почты НЕ блокирует триал. 5. `POST reset-verification-code` → письмо; забрать код из IMAP. **Код HEX** (10 символов [0-9a-f]) — regex `\b[0-9a-f]{8,12}\b` в теле после «code», не `\d{6}`. 6. `POST verify-email {verificationCode}` → `{"success":true}`. 7. `POST datacenter_shared/credentials` → proxy username/password. 8. `GET whitelist?ip[]=unset:<МОЙ_IP>&type=add` — без whitelist auth-прокси отдают 407. **Sync ~7-10 минут** — тест проксей сразу после add даст 407/timeout, это НЕ фейл. 9. `GET proxy-list` → 100 строк. Формат для использования: `http://USER:***@IP:3129` (единые credentials на все прокси, не per-proxy). 10. Проверка: `urllib ProxyHandler({'http':p,'https':p})` → `api.ipify.org` → exit IP = IP прокси. Гео пула (пример): US 52, DE 12, FR 9, BR 8, GB 7, CA 5, IT 3, ES 2, TH 2. ## Free API без регистрации (для постов/быстрых задач) `https://api.proxyscrape.com/v4/free-proxy-list/get?request=display_proxies&country=all&protocol=all&timeout=10000` → HTTP 200, ~2000 строк `ip:port`, без auth. Качество низкое, но $0 и мгновенно. ## Pitfalls - `curl https://proxyscrape.com/...` → пустой ответ/exit 23 (SPA + geo/CDN): контент страницы читать через browser-рендер, а API — через chunks. - Login-эндпоинт тоже требует свежий Turnstile-токен — для повторного входа решать капчу зановая, или хранить access_token из регистрации (он долгоживущий; localStorage-ключ панели — `accessToken`). - При смене домашнего IP — re-add whitelist (единственный ручной шаг при массовке). - Скрипт-шаблон: `C:/Users/User/AppData/Local/hermes/cache/scratch/ps_reg2.py` (solve+register), `ps_e2e.py` (полный цикл), `ps_verify.py` (IMAP-код + verify), `ps_farm.py N` (батч N акков → `ps_accounts.jsonl`: solve+register+claim+verify+whitelist+creds+proxy-list на акк). - Перед батчем — `curl http://127.0.0.1:8877/health`: сайдкар после рестарта биндится на дефолтный порт 3000 без `PORT=8877`, и весь батч фейлится пачкой `ConnectionRefusedError 10061`. Лечится `PORT=8877 python server.py` + health-check до запуска фарма.