Перейти до вмісту

Пакети

Усе, що ви купуєте, стає пакетом. Пакет трафіку (family: traffic_gateway) - обсяг гігабайтів, з якого збираються підключення. Пакет фіксованих адрес (family: dedicated) - N адрес на термін з одним логіном і паролем. Маршрути цієї сторінки, крім останнього розділу, спільні для обох видів.

Розрахунок ціни. Нічого не списує. Право catalog:read. Тіло - те саме, що в купівлі.

Terminal window
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.

Terminal window
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.

Операції з пакетом трафіку

Section titled “Операції з пакетом трафіку”

Маршрути нижче - тільки для 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
Terminal window
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 (повтор із ключем операції, результат якої не визначено)

POST /api/v1/packages/{id}/rotation-secret

Section titled “POST /api/v1/packages/{id}/rotation-secret”

Перевипуск секрету посилань зміни IP. Право packages:write. Анулює всі посилання /r/{token} одразу; відкликати одне не можна. Відповідь - пакет повністю.

Відмови: 404 not_found; 422 unsupported_capability.