Pular para o conteúdo

Início rápido

Terminal window
export KEY='SUA_CHAVE'
export BASE='https://ipv.rent'
Terminal window
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 é o valor do campo product em todas as requisições seguintes. A partir daqui, um caminho por produto.

1. Preço

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

Terminal window
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"
}

Guarde a chave de idempotência antes da requisição: uma nova tentativa após timeout deve levar o mesmo valor.

3. Conexões

Terminal window
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. Verificação

Terminal window
curl -x 'http://USERNAME_1:[email protected]:10000' https://api.ipify.org

1. O que pode ser escolhido

Terminal window
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 - locais dentro do país: o país inteiro ou uma cidade. available - quantos endereços estão livres ali agora; não é possível comprar mais que isso. quantity_max: null - não há limite próprio por compra.

2. Preço

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

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

Todos os endereços de uma compra formam um único pacote.

4. Endereços e acesso

Terminal window
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
}
],
"...": "..."
}

Os endereços começam a responder em até 2 minutos após a compra.

5. Verificação

Terminal window
curl -x 'http://USERNAME:[email protected]:10010' https://api.ipify.org

Prolongamento, renovação automática, substituição de endereços e impressão digital estão na página Endereços fixos.

1. O que pode ser escolhido

Terminal window
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 são as operadoras móveis do país. available - quantas portas dessa operadora estão livres agora; não é possível comprar mais.

2. Preço

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

Terminal window
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
}'

Se a operadora tiver menos portas livres do que o solicitado, a compra é recusada com 422 out_of_stock. Nada é cobrado.

4. Porta e acesso

Terminal window
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 e SOCKS5 funcionam na mesma porta.

5. Verificação e troca de IP

Terminal window
curl -x 'http://USERNAME:[email protected]:13029' https://api.ipify.org
curl -s 'https://ipv.rent/r/9f3c1e...'

Um GET em rotation_url dá à porta um novo IP da mesma operadora; as respostas estão em Troca de IP. Enquanto o IP muda, a porta derruba as conexões por alguns segundos. O timer de troca de IP é configurado no painel.

Prolongamento, renovação automática e senha - na página Endereços fixos: para um pacote móvel funcionam da mesma forma. Substituição de endereços e impressão digital não estão disponíveis para portas móveis. Depois do fim do período, uma porta móvel não pode ser prolongada.