Sei nuovo? Segui questi passaggi
- 1Registrati con email e password, o con un token, e apri la dashboard.
- 2Genera una chiave API nella scheda Connetti. La chiave completa compare una sola volta, al momento della creazione, quindi salvala subito.
- 3Inserisci la chiave nell'header Authorization di ogni richiesta che la richiede.
- 4Chiama prima /account per verificare che la chiave sia accettata, poi effettua gli ordini con /orders.
Come funziona l'autenticazione?
Le richieste che riguardano il tuo account (account, orders, proxy-user) richiedono una chiave API. Inviala nell'header come Authorization: Bearer pwk_... Prezzi, paesi e preventivi sono pubblici e si possono chiamare senza chiave.
I server ProxyWorld non salvano mai la chiave, solo il suo hash. Se perdi una chiave, creane una nuova nella dashboard e quella vecchia viene bloccata subito. Usa le chiavi solo nel codice lato server. Se una chiave finisce in codice eseguito nel browser o in un repository pubblico, qualcun altro può usarla.
Authorization: Bearer pwk_your_api_key
URL di base e formato dei dati
- URL di base
- https://proxyworld.shop/api/v1
- Corpo di richiesta e risposta
- application/json
- Importi
- USD come numero, ad esempio 1058.50
- Timestamp
- ISO 8601 (UTC)
Quante chiamate posso fare?
Ogni chiave API può fare 60 chiamate al minuto. Gli endpoint pubblici chiamati senza chiave consentono 60 chiamate al minuto per ogni IP. Oltre questo limite ricevi HTTP 429. Aspetta circa un minuto e riprova.
Cosa ricevo quando qualcosa non va?
Ricevi un codice di stato HTTP e un corpo JSON con un breve codice di errore e una spiegazione.
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | Significato |
|---|---|---|
| bad_requestHTTP 400Manca un valore obbligatorio, oppure è stato inviato un valore che questo prodotto non accetta. | Manca un valore obbligatorio, oppure è stato inviato un valore che questo prodotto non accetta. | |
| unauthorizedHTTP 401La chiave API manca o non è valida. | La chiave API manca o non è valida. | |
| insufficient_balanceHTTP 402Il saldo è inferiore al totale dell'ordine. Nessun importo è stato addebitato. | Il saldo è inferiore al totale dell'ordine. Nessun importo è stato addebitato. | |
| not_foundHTTP 404Il tuo account non ha ordini con questo numero. | Il tuo account non ha ordini con questo numero. | |
| rate_limitedHTTP 429Hai superato il numero di chiamate consentite al minuto. | Hai superato il numero di chiamate consentite al minuto. | |
| server_errorHTTP 500Il server non è riuscito a completare la richiesta. Nessun importo è stato addebitato. | Il server non è riuscito a completare la richiesta. Nessun importo è stato addebitato. |
Endpoint
Visualizza il tuo account
GET/api/v1/accountRichiede chiave API
Restituisce il metodo di accesso (login: email o token), l'email, il saldo, host e porte del proxy, nome utente e password del proxy e gli IP autorizzati. Per gli account creati con un token, email è null.
curl https://proxyworld.shop/api/v1/account \ -H "Authorization: Bearer pwk_your_api_key"
{
"login": "email",
"email": "you@example.com",
"balance_usd": 1300,
"proxy": {
"host": "gate.proxyworld.shop",
"http_port": 6100,
"socks5_port": 6200,
"username": "pwexample1",
"password": "your_password"
},
"allowed_ips": [
"203.0.113.10"
]
}Visualizza prodotti e prezzi
GET/api/v1/productsFunziona senza chiave
Restituisce l'intervallo ordinabile per ogni prodotto, il prezzo unitario per ogni scaglione di quantità e gli sconti sulla durata. Usa lo stesso listino della pagina prezzi.
curl https://proxyworld.shop/api/v1/products
{
"currency": "USD",
"prices_as_of": "2026-10-31",
"products": [
{
"id": "unlimited",
"unit": "day",
"quantity": {
"meaning": "days",
"min": 1,
"max": 365
},
"...": "..."
},
{
"id": "residential",
"unit": "gb",
"...": "..."
}
]
}Paesi e città
GET/api/v1/countriesFunziona senza chiave
Restituisce i paesi selezionabili per ogni prodotto, insieme ai valori di città da usare nell'opzione -city- del nome utente.
| Nome | Tipo | Significato |
|---|---|---|
productFacoltativo | string | Uno tra unlimited, residential, isp, datacenter. Se omesso, si usa residential. |
curl "https://proxyworld.shop/api/v1/countries?product=datacenter"
{
"product": "datacenter",
"countries": [
{
"code": "us",
"name": "United States",
"region": "americas",
"datacenter": true,
"cities": [
{
"name": "New York",
"value": "new_york"
},
{
"name": "Los Angeles",
"value": "los_angeles"
}
]
}
]
}Ottieni un preventivo
POST/api/v1/quoteFunziona senza chiave
Calcola il totale dell'ordine senza toccare il saldo. Invia lo stesso corpo che useresti per effettuare l'ordine.
| Nome | Tipo | Significato |
|---|---|---|
productObbligatorio | string | Uno tra unlimited, residential, isp, datacenter. |
quantityObbligatorio | integer | Quanto ordinare: giorni per unlimited (1~365), GB per residential (5~5,000), numero di IP per isp (1~1,000) o datacenter (5~5,000). |
concurrencyFacoltativo | integer | Solo unlimited. Scegli uno tra 200, 500, 1000, 2000. |
bandwidthFacoltativo | integer | Solo unlimited, in Mbps. Uno tra 100, 200, 500, 1000. |
monthsFacoltativo | integer | Solo isp e datacenter. Uno tra 1, 3, 6, 12. |
countryFacoltativo | string | Solo isp e datacenter. Un codice paese di due lettere, ad esempio jp. I valori accettati sono elencati in /countries. |
curl -X POST https://proxyworld.shop/api/v1/quote \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"product": "unlimited",
"quantity": 30,
"unit_price_usd": 8.05,
"unit": "day",
"total_usd": 241.5
}Effettua un ordine
POST/api/v1/ordersRichiede chiave API
Sottrae il totale dal saldo e crea l'ordine. Parte come pending (in attivazione) e diventa active quando è pronto. Un ordine che non può essere attivato diventa refunded e tutto ciò che hai pagato torna sul saldo. Se il saldo è insufficiente, ricevi 402.
| Nome | Tipo | Significato |
|---|---|---|
productObbligatorio | string | Uno tra unlimited, residential, isp, datacenter. |
quantityObbligatorio | integer | Quanto ordinare: giorni per unlimited (1~365), GB per residential (5~5,000), numero di IP per isp (1~1,000) o datacenter (5~5,000). |
concurrencyFacoltativo | integer | Solo unlimited. Scegli uno tra 200, 500, 1000, 2000. |
bandwidthFacoltativo | integer | Solo unlimited, in Mbps. Uno tra 100, 200, 500, 1000. |
monthsFacoltativo | integer | Solo isp e datacenter. Uno tra 1, 3, 6, 12. |
countryFacoltativo | string | Solo isp e datacenter. Un codice paese di due lettere, ad esempio jp. I valori accettati sono elencati in /countries. |
curl -X POST https://proxyworld.shop/api/v1/orders \
-H "Authorization: Bearer pwk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"order": {
"id": "PW-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.05,
"total_usd": 241.5,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
},
"balance_usd": 1058.5
}Visualizza i tuoi ordini
GET/api/v1/ordersRichiede chiave API
Mostra fino a 100 ordini, a partire dal più recente.
| Nome | Tipo | Significato |
|---|---|---|
statusFacoltativo | string | Uno tra pending, active, refunded. Omettilo per ottenere ordini con qualsiasi stato. |
curl "https://proxyworld.shop/api/v1/orders?status=pending" \ -H "Authorization: Bearer pwk_your_api_key"
{
"orders": [
{
"id": "PW-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.05,
"total_usd": 241.5,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
}
]
}Visualizza un ordine
GET/api/v1/orders/{id}Richiede chiave API
Restituisce l'ordine corrispondente a un numero d'ordine. Utile per verificare se l'attivazione è terminata.
| Nome | Tipo | Significato |
|---|---|---|
idObbligatorio | string | Il numero d'ordine, ad esempio PW-7KQ2M-X4HTD. |
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \ -H "Authorization: Bearer pwk_your_api_key"
{
"order": {
"id": "PW-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.05,
"total_usd": 241.5,
"status": "active",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:40:02.511Z"
}
}Crea un nome utente proxy
GET/api/v1/proxy-userRichiede chiave API
Restituisce un nome utente proxy con le tue opzioni, più URL HTTP e SOCKS5 da incollare così come sono. Se non invii session, l'IP cambia a ogni richiesta.
| Nome | Tipo | Significato |
|---|---|---|
productFacoltativo | string | Uno tra unlimited, residential, isp, datacenter. Se omesso, si usa unlimited. |
countryFacoltativo | string | Un codice paese di due lettere, ad esempio jp. |
cityFacoltativo | string | Un valore di città elencato in /countries, ad esempio tokyo. Invia anche country. |
sessionFacoltativo | string | Da 1 a 32 lettere e cifre. Le richieste con la stessa session usano lo stesso IP. |
ttlFacoltativo | integer | Per quanto tempo la sessione mantiene il suo IP, da 1 a 60 minuti. Se omesso, 30 minuti. |
curl "https://proxyworld.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \ -H "Authorization: Bearer pwk_your_api_key"
{
"username": "pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
"password": "your_password",
"http": "http://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6100",
"socks5": "socks5h://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6200"
}Esempio completo
Un unico script che ottiene un preventivo, ordina dal saldo e poi si connette tramite un IP in Giappone.
import requests
API = "https://proxyworld.shop/api/v1"
HEAD = {"Authorization": "Bearer pwk_your_api_key"}
# 1) Check the price first
plan = {"product": "residential", "quantity": 100}
print(requests.post(f"{API}/quote", json=plan).json())
# 2) Order from your balance
r = requests.post(f"{API}/orders", json=plan, headers=HEAD)
order = r.json()["order"]
print(order["id"], order["status"])
# 3) Get a username for Japanese IPs
u = requests.get(f"{API}/proxy-user", headers=HEAD,
params={"product": "residential", "country": "jp"}).json()
proxies = {"http": u["http"], "https": u["http"]}
print(requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30).json())const API = "https://proxyworld.shop/api/v1";
const HEAD = { Authorization: "Bearer pwk_your_api_key", "Content-Type": "application/json" };
// Check the balance
const acc = await fetch(`${API}/account`, { headers: HEAD }).then((r) => r.json());
console.log(acc.balance_usd);
// Order 7 days of unlimited
const res = await fetch(`${API}/orders`, {
method: "POST",
headers: HEAD,
body: JSON.stringify({ product: "unlimited", quantity: 7, concurrency: 500, bandwidth: 100 }),
});
if (res.status === 402) console.log("Top up first");
else console.log((await res.json()).order.id);Gli ordini effettuati tramite API sono gestiti come quelli dalla dashboard e compaiono nella scheda Cronologia insieme agli altri. Sostituisci pwk_your_api_key negli esempi con la tua chiave API.