Пакети
Усе, що ви купуєте, стає пакетом. Пакет трафіку (family: traffic_gateway) - обсяг
гігабайтів, з якого збираються підключення. Пакет фіксованих адрес (family: dedicated) -
N адрес на термін з одним логіном і паролем. Маршрути цієї сторінки, крім останнього розділу,
спільні для обох видів.
POST /api/v1/quote
Section titled “POST /api/v1/quote”Розрахунок ціни. Нічого не списує. Право 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- та сама знижка у відсотках, обидві рядками.- Розрахована сума - рівно та, що спишеться під час купівлі з тим самим тілом.
POST /api/v1/packages
Section titled “POST /api/v1/packages”Купівля. Право packages:write, заголовок Idempotency-Key обов’язковий. Купівля завершується
всередині запиту: відповідь 201 несе order_id, package_id і status: completed.
Які поля потрібні, залежить від продукту:
| Поле | Residential | IPv4 | Значення |
|---|---|---|---|
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(повтор із ключем операції, результат якої не визначено)
GET /api/v1/packages
Section titled “GET /api/v1/packages”Пакети власника ключа, нові зверху. Право packages:read. Параметри: offset, limit (тут
за замовчуванням 200), family, product.
| Параметр | Значення |
|---|---|
family | traffic_gateway або dedicated; невідоме значення - без фільтра |
product | слаг: residential, ipv4; слаг, якого у вас немає, дає порожній список |
| Поле картки | Значення |
|---|---|
family, product | вид і продукт пакета |
status | provisioning, active; у трафіку ще exhausted, в адрес - expired, closed, suspended |
name | tag, якщо задано, інакше збирається з продукту: residential · 25 GB, ipv4 · US · United States · x10 |
traffic | баланс трафіку; в адрес null |
expires_at | кінець терміну; у трафіку null - трафік не згорає |
auto_renew | в адрес: чи продовжується пакет сам |
endpoint | в адрес: country, operator, addresses_count; у трафіку null |
GET /api/v1/packages/{id}
Section titled “GET /api/v1/packages/{id}”Пакет і доступ до нього. Право 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.
POST /api/v1/packages/{id}/password
Section titled “POST /api/v1/packages/{id}/password”Перевипуск пароля, для обох видів. Право packages:write. Логін не змінюється.
Старий пароль перестає працювати негайно; applies_in_seconds - верхня межа, за яку
новий починає прийматися.
Відмови: 404 not_found; 422 package_unavailable (пакет ще не видано), package_expired (термін
адрес закінчився - спочатку продовжте); 500 package_failed.
Операції з пакетом трафіку
Section titled “Операції з пакетом трафіку”Маршрути нижче - тільки для Residential. На пакеті фіксованих адрес вони відповідають 422
unsupported_capability.
POST /api/v1/packages/{id}/proxies
Section titled “POST /api/v1/packages/{id}/proxies”Зібрати підключення. Право packages:write, ідемпотентність не потрібна. Тіло необов’язкове.
| Поле | Тип | За замовчуванням | Значення |
|---|---|---|---|
count | integer 1..500 | 1 | скільки рядків зібрати |
mode | rotating | sticky | rotating | режим сесії |
protocol | http | socks5 | http | протокол |
ttl_minutes | integer | null | 60 | скільки тримається адреса в sticky, 3..1440 |
geo.country, geo.state, geo.city, geo.asn | string | - | коди з гео-каталогу; 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
POST /api/v1/packages/{id}/topup
Section titled “POST /api/v1/packages/{id}/topup”Долити обсяг. Право 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.