Перейти к содержимому

Пакеты

Всё, что вы покупаете, становится пакетом. Пакет трафика (family: traffic_gateway) - объём гигабайт, из которого собираются подключения. Пакет фиксированных адресов (family: dedicated) - N адресов на срок с одним логином и паролем. Маршруты этой страницы, кроме последнего раздела, общие для обоих видов.

Расчёт цены. Ничего не списывает. Право catalog:read. Тело - то же, что у покупки.

Окно терминала
curl -X POST https://ipv.rent/api/v1/quote \
-H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{
"product": "ipv4",
"country": "us",
"operator": "united-states",
"period": "month",
"quantity": 10
}'
{
"unit": "1.49",
"unit_label": "per_ip",
"quantity": 10,
"discount": "0.00",
"discount_percent": "0.00",
"total": "14.90",
"currency": "USD"
}
  • unit_label: per_gb у трафика, per_ip у фиксированных адресов.
  • total = unit * quantity - discount; discount - скидка в деньгах, discount_percent - та же скидка в процентах, обе строками.
  • Рассчитанная сумма - ровно та, что спишется при покупке с тем же телом.

Покупка. Право packages:write, заголовок Idempotency-Key обязателен. Покупка завершается внутри запроса: ответ 201 несёт order_id, package_id и status: completed.

Какие поля нужны, зависит от продукта:

ПолеResidentialIPv4Значение
productдадаслаг из каталога
volumeданельзяцелые гигабайты, integer или string
country-дакод страны из параметров
operator-далокация из параметров
period-даweek, 2_weeks, month, 2_months, 3_months - из периодов страны
quantityнельзянет, 1сколько адресов; все они станут одним пакетом
plan-неттариф; нужен, только если в стране их несколько
auto_renew-нет, trueпродлевать пакет автоматически
client_referenceнетнетваша метка до 64 символов; не уникальна

Поле, которое не относится к продукту, и настройки подключения (count, geo, protocol, ttl_minutes и подобные) отклоняются по имени: 422 unsupported_field с полем field.

Окно терминала
curl -X POST https://ipv.rent/api/v1/packages \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000' \
-H 'Content-Type: application/json' \
-d '{
"product": "residential",
"volume": 25,
"client_reference": "deal-8891"
}'
{
"order_id": 128,
"package_id": 42,
"status": "completed",
"price": "50.00",
"client_reference": "deal-8891"
}

У фиксированных адресов в ответе ещё три поля:

{
"order_id": 131,
"package_id": 57,
"status": "completed",
"price": "14.90",
"client_reference": null,
"package_ids": [57],
"requested": 10,
"fulfilled": 10
}

requested - сколько адресов заказано, fulfilled - сколько выдано. Если выдано меньше, разница уже вернулась на баланс.

Отказы:

  • 400 - invalid_body (нет volume у трафика; нет country, period или operator у адресов; тело не JSON), validation_failed, unknown_product
  • 409 - idempotency_in_progress
  • 422 - invalid_volume, invalid_quantity, country_unavailable, unknown_plan, unknown_operator, unknown_period, out_of_stock, type_unavailable, insufficient_balance, unsupported_field, purchase_refunded (деньги возвращены, повторите как новую покупку), idempotency_key_required, idempotency_key_invalid, idempotency_key_reused
  • 500 - order_failed (деньги не тронуты, повтор с тем же ключом безопасен), order_needs_attention (деньги списаны, разбирается вручную, не повторять), operation_indeterminate (повтор с ключом операции, исход которой не определён)

Пакеты владельца ключа, новые сверху. Право packages:read. Параметры: offset, limit (здесь по умолчанию 200), family, product.

ПараметрЗначение
familytraffic_gateway или dedicated; неизвестное значение - без фильтра
productслаг: residential, ipv4; слаг, которого у вас нет, даёт пустой список
Поле карточкиЗначение
family, productвид и продукт пакета
statusprovisioning, active; у трафика ещё exhausted, у адресов - expired, closed, suspended
nametag, если задан, иначе собирается из продукта: residential · 25 GB, ipv4 · US · United States · x10
trafficбаланс трафика; у адресов null
expires_atконец срока; у трафика null - трафик не сгорает
auto_renewу адресов: продлевается ли пакет сам
endpointу адресов: country, operator, addresses_count; у трафика null

Пакет и доступ к нему. Право packages:read.

Пакет трафика:

{
"id": 42,
"order_id": 128,
"product": "residential",
"family": "traffic_gateway",
"tag": null,
"name": "residential · 25 GB",
"status": "active",
"traffic": {
"purchased_gb": "25.000",
"used_gb": "2.566",
"left_gb": "22.434",
"synced_at": "..."
},
"expires_at": null,
"created_at": "...",
"endpoint": null,
"credentials": {
"username": "...",
"password": "..."
},
"connection_options": [
{
"mode": "rotating",
"protocol": "http",
"host": "residential.ipv.rent",
"port": 9000
},
{
"mode": "rotating",
"protocol": "socks5",
"host": "residential.ipv.rent",
"port": 11000
},
{
"mode": "sticky",
"protocol": "http",
"host": "residential.ipv.rent",
"port": 10000
},
{
"mode": "sticky",
"protocol": "socks5",
"host": "residential.ipv.rent",
"port": 12000
}
],
"limits": {
"lifetime_min_minutes": 3,
"lifetime_max_minutes": 1440,
"lifetime_default_minutes": 60,
"modes": ["rotating", "sticky"],
"protocols": ["http", "socks5"]
}
}

credentials, connection_options и limits равны null вместе, пока пакет не выдан. Готовые строки подключения берите из POST /api/v1/packages/{id}/proxies.

Пакет фиксированных адресов:

{
"id": 57,
"order_id": 131,
"product": "ipv4",
"family": "dedicated",
"name": "ipv4 · US · United States · x2",
"status": "active",
"traffic": null,
"expires_at": "2026-11-04T12:00:00+00:00",
"created_at": "...",
"auto_renew": true,
"endpoint": {
"country": "us",
"operator": "United States",
"addresses_count": 2,
"...": "..."
},
"credentials": {
"username": "...",
"password": "..."
},
"addresses": [
{
"host": "198.51.100.11",
"port_http": 10010,
"port_socks": 10011
},
{
"host": "198.51.100.12",
"port_http": 10012,
"port_socks": 10013
}
],
"capabilities": ["prolong", "credentials", "replace", "fingerprint", "renewal"],
"credentials_retired": false,
"extendable_until": "2026-12-11T12:00:00+00:00",
"replace_available_at": null,
"replacement": null,
"renewal": {
"enabled": true,
"period": "month",
"next_charge_at": "2026-11-03T12:00:00+00:00",
"next_charge_amount": "2.98",
"last_failure": null,
"disabled_at": null
},
"fingerprint": {
"profile": null,
"profiles": [
{
"value": "windows_chrome",
"label": "Windows 11 · Chrome"
},
"..."
]
}
}

Что значит каждое поле фиксированных адресов - на странице Фиксированные адреса.

Отказы: 404 not_found.

Перевыпуск пароля, для обоих видов. Право packages:write. Логин не меняется.

Старый пароль перестаёт работать немедленно; applies_in_seconds - верхняя граница, за которую новый начинает приниматься.

Отказы: 404 not_found; 422 package_unavailable (пакет ещё не выдан), package_expired (срок адресов закончился - сначала продлите); 500 package_failed.

Маршруты ниже - только для Residential. На пакете фиксированных адресов они отвечают 422 unsupported_capability.

Собрать подключения. Право packages:write, идемпотентность не нужна. Тело необязательно.

ПолеТипПо умолчаниюЗначение
countinteger 1..5001сколько строк собрать
moderotating | stickyrotatingрежим сессии
protocolhttp | socks5httpпротокол
ttl_minutesinteger | null60сколько держится адрес в sticky, 3..1440
geo.country, geo.state, geo.city, geo.asnstring-коды из гео-каталога; state, city, asn требуют country
Окно терминала
curl -X POST https://ipv.rent/api/v1/packages/42/proxies \
-H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{
"count": 3,
"mode": "sticky",
"protocol": "http",
"ttl_minutes": 30,
"geo": {
"country": "us"
}
}'

В режиме sticky каждая строка набора несёт свой ярлык сессии, то есть даёт отдельный выходной адрес, и у каждой своя rotation_url.

В режиме rotating строки одинаковые: адрес выбирается на каждом подключении, поэтому N строк дают N разных выходов, а ссылок смены IP там нет.

Отсутствующее поле берёт умолчание, а не значение прошлого вызова. Ранее выданные строки продолжают работать.

Отказы:

  • 400 - invalid_body (тип или диапазон поля)
  • 404 - not_found
  • 422 - invalid_targeting (с field и value: значение вне каталога, неизвестный ключ geo, сужение без country), package_unavailable (пакет ещё не выдан, ttl_minutes вне limits, режим или протокол не поддерживается), unsupported_capability

Долить объём. Право packages:write, Idempotency-Key обязателен. Тело: {"volume": 10}.

Ответ - 202 и карточка пакета: новый объём в карточке виден сразу, трафик по новому лимиту начинает проходить примерно через две минуты.

Долив создаёт отдельный заказ с applied_to_package_id.

Отказы:

  • 400 - invalid_body
  • 404 - not_found
  • 409 - idempotency_in_progress
  • 422 - invalid_volume, type_unavailable, insufficient_balance, package_unavailable, unsupported_capability, purchase_refunded, idempotency_key_required, idempotency_key_invalid, idempotency_key_reused
  • 500 - package_failed (деньги не списаны, повтор уместен), order_needs_attention (списание прошло, повторять нельзя), operation_indeterminate (повтор с ключом операции, исход которой не определён)

Перевыпуск секрета ссылок смены IP. Право packages:write. Обнуляет все ссылки /r/{token} сразу; отозвать одну нельзя. Ответ - пакет целиком.

Отказы: 404 not_found; 422 unsupported_capability.