Quickstart
export KEY='YOUR_KEY'export BASE='https://ipv.rent'What is on sale
Section titled “What is on sale”curl -s "$BASE/api/v1/products" -H "Authorization: Bearer $KEY"{ "products": [ { "slug": "residential", "name": "Residential", "family": "traffic_gateway", "unit": "gb", "unit_price": "2.00", "monthly_price_from": null, "currency": "USD", "min_volume": 1, "volume_presets": [1, 5, 10, 25, 50, 100, 250, 500], "volume_discounts": [] }, { "slug": "ipv4", "name": "IPv4", "family": "dedicated", "unit": "ip", "unit_price": null, "monthly_price_from": "1.49", "currency": "USD", "min_volume": 1, "volume_presets": [], "volume_discounts": [] } ]}slug is the value of the product field in all the following requests. From here there is one
path per product.
Residential
Section titled “Residential”1. Price
curl -s -X POST "$BASE/api/v1/quote" \ -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \ -d '{"product":"residential","volume":10}'{ "unit": "2.00", "unit_label": "per_gb", "quantity": 10, "discount": "0.00", "discount_percent": "0.00", "total": "20.00", "currency": "USD"}2. Purchase
curl -s -X POST "$BASE/api/v1/packages" \ -H "Authorization: Bearer $KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H 'Content-Type: application/json' \ -d '{ "product": "residential", "volume": 10, "client_reference": "first-run" }'{ "order_id": 128, "package_id": 42, "status": "completed", "price": "20.00", "client_reference": "first-run"}Save the idempotency key before the request: a retry after a timeout must carry the same value.
3. Connections
curl -s -X POST "$BASE/api/v1/packages/42/proxies" \ -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \ -d '{ "count": 2, "mode": "sticky", "protocol": "http", "ttl_minutes": 30, "geo": { "country": "us" } }'{ "count": 2, "proxies": [ { "host": "residential.ipv.rent", "port": 10000, "username": "USERNAME_1", "password": "PASSWORD", "rotation_url": "https://ipv.rent/r/9f3c1e..." }, { "host": "residential.ipv.rent", "port": 10000, "username": "USERNAME_2", "password": "PASSWORD", "rotation_url": "https://ipv.rent/r/1a77b2..." } ]}4. Check
1. What you can choose
curl -s "$BASE/api/v1/products/ipv4/options" -H "Authorization: Bearer $KEY"{ "type": "ipv4", "countries": [ { "code": "us", "name": "United States", "periods": ["week", "2_weeks", "month", "2_months", "3_months"], "quantity_max": null, "plans": [ { "id": "dc", "traffic_gb": null, "periods": ["week", "2_weeks", "month", "2_months", "3_months"], "operators": [ { "id": "united-states", "name": "United States", "available": 374 } ] } ] }, "..." ]}operators are locations within the country: the whole country or a city. available - how many
addresses are free there right now; you cannot buy more. quantity_max: null - there is no
separate limit per purchase.
2. Price
curl -s -X POST "$BASE/api/v1/quote" \ -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \ -d '{ "product": "ipv4", "country": "us", "operator": "united-states", "period": "month", "quantity": 2 }'{ "unit": "1.49", "unit_label": "per_ip", "quantity": 2, "discount": "0.00", "discount_percent": "0.00", "total": "2.98", "currency": "USD"}3. Purchase
curl -s -X POST "$BASE/api/v1/packages" \ -H "Authorization: Bearer $KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H 'Content-Type: application/json' \ -d '{ "product": "ipv4", "country": "us", "operator": "united-states", "period": "month", "quantity": 2 }'{ "order_id": 131, "package_id": 57, "status": "completed", "price": "2.98", "client_reference": null, "package_ids": [57], "requested": 2, "fulfilled": 2}All addresses of one purchase are one package.
4. Addresses and access
curl -s "$BASE/api/v1/packages/57" -H "Authorization: Bearer $KEY"{ "id": 57, "family": "dedicated", "product": "ipv4", "status": "active", "expires_at": "2026-11-04T12:00:00+00:00", "auto_renew": true, "credentials": { "username": "USERNAME", "password": "PASSWORD" }, "addresses": [ { "host": "198.51.100.11", "port_http": 10010, "port_socks": 10011 }, { "host": "198.51.100.12", "port_http": 10012, "port_socks": 10013 } ], "...": "..."}The addresses start answering within 2 minutes of the purchase.
5. Check
Renewal, auto-renewal, address replacement and fingerprint - on the Fixed addresses page.
Mobile
Section titled “Mobile”1. What you can choose
curl -s "$BASE/api/v1/products/mobile/options" -H "Authorization: Bearer $KEY"{ "type": "mobile", "countries": [ { "code": "fr", "name": "France", "periods": ["day", "week", "month", "3_months"], "quantity_max": null, "plans": [ { "id": "unlimited", "traffic_gb": null, "periods": ["day", "week", "month", "3_months"], "operators": [ { "id": "free-mobile", "name": "Free Mobile", "available": 7 }, { "id": "sfr", "name": "SFR", "available": 3 } ] } ] }, "..." ]}operators are the mobile carriers of the country. available - how many ports of that carrier
are free right now; you cannot buy more.
2. Price
curl -s -X POST "$BASE/api/v1/quote" \ -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \ -d '{ "product": "mobile", "country": "fr", "operator": "free-mobile", "period": "day", "quantity": 1 }'3. Purchase
curl -s -X POST "$BASE/api/v1/packages" \ -H "Authorization: Bearer $KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H 'Content-Type: application/json' \ -d '{ "product": "mobile", "country": "fr", "operator": "free-mobile", "period": "day", "quantity": 1 }'If the carrier has fewer free ports than requested, the purchase is refused with 422
out_of_stock. Nothing is charged.
4. Port and access
curl -s "$BASE/api/v1/packages/58" -H "Authorization: Bearer $KEY"{ "id": 58, "family": "dedicated", "product": "mobile", "status": "active", "credentials": { "username": "USERNAME", "password": "PASSWORD" }, "addresses": [ { "host": "fr2.mobile.ipv.rent", "port_http": 13029, "port_socks": 13029 } ], "endpoint": { "country": "fr", "operator": "Free Mobile", "rotation_interval_minutes": 0, "rotation_url": "https://ipv.rent/r/9f3c1e..." }, "capabilities": ["prolong", "rotate", "rotation_interval", "credentials", "renewal"], "...": "..."}HTTP and SOCKS5 work on the same port.
5. Check and change the IP
curl -s 'https://ipv.rent/r/9f3c1e...'A GET on rotation_url gives the port a new IP from the same carrier; the answers are listed in
IP change. The port drops connections for a few seconds while the IP
changes. The IP change timer is set in the dashboard.
Renewal, auto-renewal and password - on the Fixed addresses page: they work for a mobile package the same way. Address replacement and fingerprint are not available for mobile ports. After the end of the term a mobile port cannot be extended.