Фіксовані адреси
Операції з пакетом фіксованих адрес (family: dedicated, продукт ipv4). Кожна діє
на весь пакет: на всі його адреси одразу. На пакеті трафіку ці маршрути відповідають 422
unsupported_capability.
Які операції доступні пакету, перелічено в capabilities його картки: prolong,
credentials, replace, fingerprint, renewal.
Термін і статуси
Section titled “Термін і статуси”| Статус | Що відбувається | Що можна зробити |
|---|---|---|
provisioning | пакет видається, до 2 хвилин | зачекати |
active | адреси працюють до expires_at | усе |
expired | термін сплив, адреси не відповідають | продовжити до extendable_until - повернуться ті самі адреси |
closed | минув extendable_until, адреси звільнено | тільки нова купівля |
suspended | пакет вимкнено | написати в підтримку |
Поля картки, які стосуються терміну:
| Поле | Значення |
|---|---|
expires_at | кінець оплаченого терміну |
extendable_until | до якого моменту продовження повертає ті самі адреси |
credentials_retired | true - пароль вимкнено після закінчення терміну; продовження видасть новий |
Коли термін закінчується, у журнал подій надходить package.expired.
GET /api/v1/packages/{id}/prolong-options
Section titled “GET /api/v1/packages/{id}/prolong-options”На які періоди можна продовжити і скільки це коштує для вас. Право packages:read.
{ "options": [ { "period": "week", "price": "1.98" }, { "period": "2_weeks", "price": "2.58" }, { "period": "month", "price": "2.98" }, { "period": "2_months", "price": "5.96" }, { "period": "3_months", "price": "8.94" } ], "currency": "USD"}price - ціна за весь пакет, за всі його адреси.
POST /api/v1/packages/{id}/prolong
Section titled “POST /api/v1/packages/{id}/prolong”Продовжити пакет. Право packages:write, Idempotency-Key обов’язковий: це списання. Тіло:
{"period": "month"}, період - із prolong-options.
curl -X POST https://ipv.rent/api/v1/packages/57/prolong \ -H 'Authorization: Bearer YOUR_API_KEY' \ -H "Idempotency-Key: $(uuidgen)" \ -H 'Content-Type: application/json' \ -d '{"period":"month"}'{ "order_id": 140, "package_id": 57, "status": "completed", "price": "2.98", "expires_at": "2026-12-04T12:00:00+00:00", "credentials_reissued": false}- Період додається до поточного
expires_at, а якщо термін уже сплив - до моменту продовження. - Адреси та логін залишаються попередніми.
credentials_reissued: true- старий пароль було вимкнено й видано новий; візьміть його з картки пакета.- Продовження створює окреме замовлення з
applied_to_package_id.
Відмови:
- 400 -
invalid_body(немає тіла або не JSON),validation_failed - 404 -
not_found - 409 -
idempotency_in_progress - 422 -
unknown_period,insufficient_balance,prolong_window_closed(адреси вже не повернути - пакетclosed, потрібна нова купівля),unsupported_capability,purchase_refunded,idempotency_key_required,idempotency_key_invalid,idempotency_key_reused - 500 -
order_failed,order_needs_attention,operation_indeterminate- як у купівлі
POST /api/v1/packages/{id}/renewal
Section titled “POST /api/v1/packages/{id}/renewal”Автопродовження. Право packages:write. Нічого не списує.
curl -X POST https://ipv.rent/api/v1/packages/57/renewal \ -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' \ -d '{"enabled":true,"period":"month"}'| Поле | Значення |
|---|---|
enabled | обов’язкове: true або false |
period | на який період продовжувати щоразу; без поля - залишається попередній |
Відповідь - картка пакета. Як працює автопродовження:
- воно ввімкнене за замовчуванням, період - той, що було куплено;
- списання - за добу до
expires_at, за ціною на цей момент; дата й сума - уrenewal.next_charge_atіrenewal.next_charge_amount; - якщо грошей не вистачило,
renewal.last_failureстаєinsufficient_balance, спроби повторюються кожні кілька годин ще 3 дні післяexpires_at; - після цього автопродовження вимикається само,
renewal.disabled_atзаповнено.
Відмови: 400 invalid_body (немає enabled); 404 not_found; 422 unknown_period,
unsupported_capability.
POST /api/v1/packages/{id}/replace
Section titled “POST /api/v1/packages/{id}/replace”Замінити всі адреси пакета новими в тій самій локації. Право packages:write. Тіло не потрібне.
Безкоштовно.
Заміна йде у фоні. Відповідь - 202 і картка з replacement.state: pending. Читайте картку,
доки state не зміниться, зазвичай це менше хвилини:
replacement.state | Значення |
|---|---|
pending | заміна йде |
done | в addresses нові адреси, старі не працюють |
failed | нічого не змінилося, можна запросити знову |
Логін, пароль, термін і відбиток не змінюються. Повторна заміна можлива через 30 днів:
replace_available_at у картці показує, коли.
Відмови:
- 404 -
not_found - 409 -
replace_in_progress(заміна вже йде) - 422 -
package_expired(термін сплив - спочатку продовжте),unsupported_capability - 429 -
replace_cooldown(адреси нещодавно замінювалися; дата - уreplace_available_at)
POST /api/v1/packages/{id}/fingerprint
Section titled “POST /api/v1/packages/{id}/fingerprint”Відбиток p0f: адреси представляються обраною ОС і браузером. Один профіль на весь пакет.
Право packages:write. Безкоштовно.
curl -X POST https://ipv.rent/api/v1/packages/57/fingerprint \ -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' \ -d '{"profile":"windows_chrome"}'profile - значення з fingerprint.profiles картки: windows_chrome, windows_edge,
windows_firefox, android_chrome, macos_chrome. null вимикає підміну.
Новий відбиток застосовується через 2-3 хвилини. З’єднання, відкриті до зміни, зберігають попередній - перепідключіться.
Відмови: 400 validation_failed (профілю немає в списку); 404 not_found; 422 package_expired,
unsupported_capability.
Пароль
Section titled “Пароль”Перевипуск пароля - спільний маршрут
POST /api/v1/packages/{id}/password. Логін не
змінюється, старий пароль перестає працювати одразу на всіх адресах пакета.