| name | proxy6 |
| description | [RU: интеграция proxy6.net — покупка/продление прокси, пул, ipauth, scraping] proxy6.net REST API — RU proxy provider for IPv4/IPv4 Shared/IPv6/MTproto. Methods getprice/getcount/getcountry/getproxy/buy/prolong/delete/setdescr/check/ipauth via https://px6.link/api/{key}/. Money + destructive + 3 req/s rate limit. Use when: proxy6, proxy6.net, px6.link, прокси6, ipv4 shared, ipv6 прокси, mtproto, buy proxy api, getprice, prolong proxy, setdescr, getproxy, ipauth, scraping rotation ru, error_id 100, error_id 105, error_id 300, error_id 400, error_id 429, балансовая проверка, auto_prolong. SKIP: Mobileproxy/Webshare/Brightdata/Oxylabs (different provider); using a proxy in HTTP code after acquisition (→httpx/nodejs); in-browser CORS proxying. |
| stacks | ["proxy6","ru-proxy","python","nodejs"] |
| tags | ["proxy","scraping","ru","automation","rotation","billing"] |
| source | vechkasov-global-skills |
| risk | high-stakes |
🎯 Version Requirements (May 2026)
Primary pins:
- proxy6 API:
docs-only (stable REST, no version path; https://px6.link/api/{key}/)
- Python:
3.14.x
- Node.js:
24.x (Active LTS)
Source of truth: STACK_VERSIONS.md — verified 2026-05-16
Usage
Loaded automatically when its description matches the active task. Read only the section you need, then follow the link to the relevant reference file for full detail.
Use this skill when
- Buying / prolonging / deleting proxies through the proxy6.net REST API — calls to
buy, prolong, delete
- Building a proxy pool from
getproxy results, organising it via descr tags, rotating per request / per worker
- Pre-flighting purchases with
getprice + getcount + balance check before calling buy (money safety)
- Setting up
ipauth IP allowlist for production scrapers — full-replace semantics, dev/prod separation
- Implementing a rate-limit-safe client (≤ 3 req/s) with retry/backoff on 429 /
error_id envelopes
- Debugging proxy6 error responses —
error_id 100 (auth), 105 (IP not allowed), 300 (insufficient stock), 400 (no money), 410 (zero price), 429 (rate limited)
- Picking the right proxy
version for the workload — 3 (IPv4 Shared), 4 (IPv4), 5 (MTproto), 6 (IPv6) — and the right country
- Building a scheduled-cleanup job for expired proxies (
state=expired) and a renewal job before date_end
Do not use this skill when
- Task uses a different proxy provider — Mobileproxy / Webshare / Brightdata / Oxylabs / Smartproxy / iProxy / ProxyEmpire — they have different APIs
- Task is actually using a proxy in HTTP code after acquisition — that belongs to the HTTP-client skill (
httpx for Python, nodejs for Node)
- Task is in-browser CORS proxying or local proxy server (mitmproxy / squid / nginx forward proxy) — different domain
- Task is Telegram MTProto client configuration without proxy6 (mtproto auth, session strings) — use
telegram-bot and the MTProto client docs
Purpose
proxy6.net is one of the dominant Russian retail proxy providers — IPv4 (dedicated), IPv4 Shared, IPv6, and MTproto-flavoured proxies, sold per proxy per day with a single REST endpoint at https://px6.link/api/{api_key}/{method}/. It is widely used by Russian scraping shops, ad-operations teams, social-media automation, and price-monitoring pipelines that need cheap, short-lived, country-targeted proxies.
This skill is high-stakes because three of the ten methods cost money or destroy state and the API is hard-limited to 3 requests per second:
buy debits the merchant balance immediately; auto_prolong silently re-charges on expiry.
prolong debits again and (for mixed-version ids) returns no price_single — easy to miscalculate.
delete is irreversible; with the descr filter you can wipe an entire pool in one call.
ipauth REPLACES the full allowlist — passing a partial list deletes everything else.
- Over-3-req/s bursts return HTTP 429, breaking unaware clients.
The skill owns provider-domain knowledge — method shapes, error semantics, version tradeoffs, billing safety, rate-limit handling, pool management via descr tags, and ipauth gotchas. HTTP plumbing (retries, async clients, secret loading) belongs to the runtime skill (httpx, nodejs).
Capabilities
API client setup
Single endpoint pattern: https://px6.link/api/{api_key}/{method}/?{params} (api_key in the URL path). Success envelope: {"status":"yes", user_id, balance, currency, ...}. Error envelope: {"status":"no", error_id, error}. Auth via api_key only; optional IP allowlist in dashboard (returns error_id 105 if source IP not allowed). The key in the URL path means it appears in nginx / reverse-proxy access logs — log scrubbing is mandatory.
Full reference: references/setup.md
The 10 methods
getprice (price calc) · getcount (stock check) · getcountry (countries by version) · getproxy (list owned proxies, paged) · setdescr (update comment tag) · buy (purchase — money) · prolong (extend — money) · delete (irreversible) · check (validate one proxy) · ipauth (full-replace allowlist).
Full reference: references/methods.md
Proxy versions (3/4/5/6)
Four version values map to four distinct products with different prices and protocol support: 3 = IPv4 Shared (cheapest, shared across users), 4 = IPv4 dedicated, 5 = MTproto (Telegram-specific), 6 = IPv6. Pick by target: IPv6 only works against IPv6-aware destinations; MTproto only for Telegram clients; IPv4 Shared is fine for low-trust scraping but flags faster on sensitive sites.
Full reference: references/proxy-versions.md
Rate limit handling (3 req/s budget)
Provider enforces 3 requests per second. Practical client budget: 2 req/s (33% headroom) under steady load, brief bursts up to 3. Use a token bucket / leaky bucket gate or per-call sleep ≥ 333 ms. Retry policy: 429 → backoff base 500 ms, cap 30 s, max 5 attempts; never retry 4xx envelope errors except error_id 30 (unknown — single retry).
Full reference: references/rate-limit-and-retry.md
Purchase and billing safety
Canonical pre-buy sequence: getprice(count, period, version) → getcount(country, version) → balance check (from any successful envelope) → buy(...). Always set descr to a stable ops tag so the order is reattributable later. Default auto_prolong = OFF — surprise renewals are a top operational complaint. Document a balance-low threshold (alert when balance < N × daily_burn).
Full reference: references/purchase-and-billing.md
Pool management & rotation
Organise live proxies by descr tag (e.g. descr=pool:scraper-A:prod). Rotation strategies: sticky (worker keeps one proxy until ban / expiry), round-robin (per-request from a shuffled pool), weighted (prefer freshest by date_end). Ban detection: track per-proxy 4xx/5xx ratio; quarantine on threshold; replace via buy with the same descr. Schedule a daily cleanup that getproxy(state=expired) → delete(ids=...).
Full reference: references/pool-management.md
IP authentication strategy
ipauth sets the full list of source IPs allowed to use the proxies (separate from API allowlist — that's in the dashboard). Critical gotcha: every ipauth call REPLACES the prior list. Always send the complete union of dev + prod + CI IPs; pass ip=delete to clear all bindings. Prefer ipauth over user/pass for production worker fleets — fewer secrets in code.
Full reference: references/ipauth-strategy.md
Python integration (httpx + tenacity)
Async httpx.AsyncClient with tenacity retry decorators, pydantic models for response shapes, api_key in env var (PROXY6_API_KEY), per-method functions returning typed envelopes, rate-limit token bucket via asyncio.Semaphore + sleep.
Full reference: references/integration-python.md
Node.js / TypeScript integration
fetch or axios with axios-retry / p-retry, TypeScript types for each method's response, env-based key, rate limit via p-limit or bottleneck.
Full reference: references/integration-node.md
Behavioral Traits
- Reads
getprice + getcount + envelope balance BEFORE every buy — never trusts an outdated balance value
- Always passes
descr on buy for ops attribution; never relies on id alone for identifying a logical pool
- Defaults
auto_prolong to OFF; opts in only when there's a documented billing-alert path
- Treats every
ipauth call as a full-list overwrite — composes the union of all known IPs before sending
- Caps client throughput at 2 req/s (headroom under the 3 req/s provider limit); centralises the limiter so all callers share it
- Retries only on
429, network errors, 5xx, and error_id 30 — never retries 100/105/200/210/220/230/240/250/260/270/280/300/400/404/410
- Stores
id, ip, port, user, pass, date_end, descr, active from getproxy in a local table and refreshes daily
- Runs
delete with ids= only after a getproxy dry-run that lists exactly those ids — never blindly with descr= filter
- Uses values from recommended-defaults.md — no inline magic numbers
- Loads
api_key from PROXY6_API_KEY env var; scrubs it from access logs at the reverse proxy
Important Constraints
- NEVER hardcode
api_key in source, commit history, or client bundles — it grants full balance-spending power
- NEVER call
buy without a fresh getprice + getcount + balance check — silent overdraft / out-of-stock buys waste money
- NEVER pass a partial IP list to
ipauth — it REPLACES the allowlist, instantly cutting off prod workers not in the call
- NEVER enable
auto_prolong=1 without a budget alert and an off-switch — runaway charges are the #1 incident class
- NEVER call
delete with descr= filter without a getproxy(descr=...) dry-run that prints every id about to die
- NEVER exceed 3 req/s — even short bursts to 5–10 req/s trigger 429 storms that stall the whole client until backoff drains
- NEVER assume
prolong mixed-version returns price_single — for heterogenous ids the field is ABSENT; sum from list
- NEVER log the full request URL —
api_key is in the path and ends up in nginx access logs / APM
- ALWAYS scrub
api_key from reverse-proxy access logs (Angie/Nginx log_format with regex masking)
- ALWAYS validate response shape against the envelope schema before reading domain fields — error envelopes are JSON-200, not HTTP-4xx
Related Skills
90%-filter applied — mainstream 2026 choices used in scraping / automation pipelines.
Runtime & HTTP clients (where the proxy is actually used)
- ✓
httpx — Python async HTTP client (primary runtime for scraping with proxy6 outputs)
- ✓
nodejs — Node 24 (alternative scraping runtime)
- ✓
python — Python 3.14 (parent runtime for scraping pipelines)
Validation & testing
- ✓
pydantic — validate proxy6 response envelopes and proxy records
- ✓
pytest — test the client and rotation logic against fixture envelopes
RU-SaaS pattern peers (quality bar)
- ✓
cloudpayments — RU payment SaaS skill (high-stakes pattern reference)
- ✓
yookassa — RU payment SaaS skill (high-stakes pattern reference)
Persistence & scheduling
- ✓
redis — Redis 8 (token-bucket rate limiter, pool cache)
- ✓
postgresql — PostgreSQL 18 (pool state, descr tagging, expiry tracking)
Code discipline
API Reference
Domain-specific references (Pattern 2) — load only what's relevant:
| Topic | File |
|---|
| Index, decision map, when-to-use which doc | references/REFERENCE.md |
| API key handling, log scrubbing, IP allowlist, rate-limit overview | references/setup.md |
| All 10 methods — params, response shapes, examples | references/methods.md |
| Proxy versions 3/4/5/6 — IPv4 Shared vs IPv4 vs MTproto vs IPv6, when to use which | references/proxy-versions.md |
| All 17 error codes — diagnose / cause / fix (symptom-indexed) | references/error-codes.md |
| Rate limit & retry — 3 req/s budget, token bucket, tenacity / p-retry config, 429 backoff | references/rate-limit-and-retry.md |
| Purchase & billing — getprice→getcount→buy idempotency, balance check, auto_prolong, descr tagging | references/purchase-and-billing.md |
| Pool management — descr organisation, rotation, ban detection, scheduled cleanup | references/pool-management.md |
| ipauth strategy — when to use, full-replace semantics, dev/prod separation | references/ipauth-strategy.md |
| Python integration — httpx, tenacity, pydantic, asyncio limiter | references/integration-python.md |
| Node.js / TS integration — fetch/axios, p-retry, types, bottleneck limiter | references/integration-node.md |
| Recommended defaults — SSOT: rate budget, request timeout, retry policy, auto_prolong default, balance threshold | references/recommended-defaults.md |
| Wrong vs Right — paired anti-patterns: key leakage, missing retry, blind delete, ipauth wipe, auto_prolong runaway | references/wrong-vs-right.md |
| Troubleshooting — symptom-indexed: 429 storm, 100 auth, 105 IP block, 300 stock, 400 balance, 410 zero price, descr overflow, mixed-version prolong, accidental delete | references/troubleshooting.md |
How to use: open the topic file relevant to the current task. Purchase work → purchase-and-billing.md + methods.md. Rate-limit / 429 work → rate-limit-and-retry.md + troubleshooting.md. Pool work → pool-management.md. New integration → setup.md + integration-python.md or integration-node.md. Tuning knobs → recommended-defaults.md.