Adresses fixes
Opérations sur un forfait d’adresses fixes (family: dedicated, produit ipv4). Chacune agit sur
le forfait entier : sur toutes ses adresses à la fois. Sur un forfait de trafic, ces routes
répondent 422 unsupported_capability.
Les opérations disponibles pour un forfait sont listées dans le champ capabilities de sa fiche :
prolong, credentials, replace, fingerprint, renewal.
Durée et statuts
Section intitulée « Durée et statuts »| Statut | Ce qui se passe | Ce que vous pouvez faire |
|---|---|---|
provisioning | le forfait est en cours de délivrance, jusqu’à 2 minutes | attendre |
active | les adresses fonctionnent jusqu’à expires_at | tout |
expired | la durée est écoulée, les adresses ne répondent pas | prolonger avant extendable_until - les mêmes adresses reviendront |
closed | extendable_until est passé, les adresses sont libérées | uniquement un nouvel achat |
suspended | le forfait est désactivé | écrire à l’assistance |
Champs de la fiche liés à la durée :
| Champ | Signification |
|---|---|
expires_at | fin de la durée payée |
extendable_until | jusqu’à quel moment la prolongation rend les mêmes adresses |
credentials_retired | true - le mot de passe a été désactivé après la fin de la durée ; la prolongation en délivrera un nouveau |
Quand la durée se termine, package.expired arrive dans le
journal des événements.
GET /api/v1/packages/{id}/prolong-options
Section intitulée « GET /api/v1/packages/{id}/prolong-options »Pour quelles périodes vous pouvez prolonger et combien cela vous coûte. Droit 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 - le prix pour le forfait entier, pour toutes ses adresses.
POST /api/v1/packages/{id}/prolong
Section intitulée « POST /api/v1/packages/{id}/prolong »Prolonger le forfait. Droit packages:write, Idempotency-Key obligatoire : c’est un débit.
Corps : {"period": "month"}, la période étant tirée de 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}- La période s’ajoute à l’
expires_atactuel, et si la durée est déjà écoulée - au moment de la prolongation. - Les adresses et l’identifiant restent les mêmes.
credentials_reissued: true- l’ancien mot de passe avait été désactivé et un nouveau a été délivré ; prenez-le dans la fiche du forfait.- La prolongation crée une commande distincte avec
applied_to_package_id.
Erreurs :
- 400 -
invalid_body(pas de corps ou pas du JSON),validation_failed - 404 -
not_found - 409 -
idempotency_in_progress - 422 -
unknown_period,insufficient_balance,prolong_window_closed(les adresses ne peuvent plus être récupérées - forfaitclosed, un nouvel achat est nécessaire),unsupported_capability,purchase_refunded,idempotency_key_required,idempotency_key_invalid,idempotency_key_reused - 500 -
order_failed,order_needs_attention,operation_indeterminate- comme pour l’achat
POST /api/v1/packages/{id}/renewal
Section intitulée « POST /api/v1/packages/{id}/renewal »Renouvellement automatique. Droit packages:write. Ne débite rien.
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"}'| Champ | Signification |
|---|---|
enabled | obligatoire : true ou false |
period | pour quelle période prolonger à chaque fois ; sans ce champ, la période précédente est conservée |
La réponse est la fiche du forfait. Fonctionnement du renouvellement automatique :
- il est activé par défaut, la période est celle qui a été achetée ;
- le débit a lieu un jour avant
expires_at, au prix en vigueur à ce moment ; la date et le montant figurent dansrenewal.next_charge_atetrenewal.next_charge_amount; - si l’argent ne suffit pas,
renewal.last_failuredevientinsufficient_balance, les tentatives se répètent toutes les quelques heures pendant encore 3 jours aprèsexpires_at; - ensuite, le renouvellement automatique se désactive tout seul,
renewal.disabled_atest renseigné.
Erreurs : 400 invalid_body (pas de enabled) ; 404 not_found ; 422 unknown_period,
unsupported_capability.
POST /api/v1/packages/{id}/replace
Section intitulée « POST /api/v1/packages/{id}/replace »Remplacer toutes les adresses du forfait par de nouvelles dans le même emplacement. Droit
packages:write. Aucun corps nécessaire. Gratuit.
Le remplacement se fait en arrière-plan. La réponse est 202 avec la fiche contenant
replacement.state: pending. Relisez la fiche jusqu’à ce que state change, en général en moins
d’une minute :
replacement.state | Signification |
|---|---|
pending | remplacement en cours |
done | addresses contient les nouvelles adresses, les anciennes ne fonctionnent plus |
failed | rien n’a changé, vous pouvez relancer la demande |
L’identifiant, le mot de passe, la durée et l’empreinte ne changent pas. Un nouveau remplacement
est possible au bout de 30 jours : replace_available_at dans la fiche indique quand.
Erreurs :
- 404 -
not_found - 409 -
replace_in_progress(un remplacement est déjà en cours) - 422 -
package_expired(durée écoulée - prolongez d’abord),unsupported_capability - 429 -
replace_cooldown(les adresses ont été remplacées récemment ; la date est dansreplace_available_at)
POST /api/v1/packages/{id}/fingerprint
Section intitulée « POST /api/v1/packages/{id}/fingerprint »Empreinte p0f : les adresses se présentent comme l’OS et le navigateur choisis. Un seul profil pour
tout le forfait. Droit packages:write. Gratuit.
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 - une valeur de fingerprint.profiles de la fiche : windows_chrome, windows_edge,
windows_firefox, android_chrome, macos_chrome. null désactive l’usurpation.
La nouvelle empreinte s’applique au bout de 2-3 minutes. Les connexions ouvertes avant le changement conservent l’ancienne - reconnectez-vous.
Erreurs : 400 validation_failed (profil absent de la liste) ; 404 not_found ; 422
package_expired, unsupported_capability.
Mot de passe
Section intitulée « Mot de passe »La régénération du mot de passe est une route commune :
POST /api/v1/packages/{id}/password. L’identifiant
ne change pas, l’ancien mot de passe cesse immédiatement de fonctionner sur toutes les adresses du
forfait.