API ProxyWorld

Quello che fai nella dashboard puoi farlo anche dal codice. Leggi il saldo, controlla i prezzi, ordina dal saldo e ottieni nomi utente proxy con opzioni, tutto tramite un'unica REST API.

Sei nuovo? Segui questi passaggi

  1. 1Registrati con email e password, o con un token, e apri la dashboard.
  2. 2Genera una chiave API nella scheda Connetti. La chiave completa compare una sola volta, al momento della creazione, quindi salvala subito.
  3. 3Inserisci la chiave nell'header Authorization di ogni richiesta che la richiede.
  4. 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.

HTTP header
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.

Esempio
{
  "error": {
    "code": "insufficient_balance",
    "message": "Your balance is too low for this order. Top up in the dashboard."
  }
}
code
bad_requestHTTP 400Manca un valore obbligatorio, oppure è stato inviato un valore che questo prodotto non accetta.
unauthorizedHTTP 401La chiave API manca o non è valida.
insufficient_balanceHTTP 402Il saldo è inferiore al totale dell'ordine. Nessun importo è stato addebitato.
not_foundHTTP 404Il tuo account non ha ordini con questo numero.
rate_limitedHTTP 429Hai superato il numero di chiamate consentite al minuto.
server_errorHTTP 500Il 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.

Richiesta
curl https://proxyworld.shop/api/v1/account \
  -H "Authorization: Bearer pwk_your_api_key"
Risposta
{
  "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.

Richiesta
curl https://proxyworld.shop/api/v1/products
Risposta
{
  "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.

NomeSignificato
productFacoltativoUno tra unlimited, residential, isp, datacenter. Se omesso, si usa residential.
Richiesta
curl "https://proxyworld.shop/api/v1/countries?product=datacenter"
Risposta
{
  "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.

NomeSignificato
productObbligatorioUno tra unlimited, residential, isp, datacenter.
quantityObbligatorioQuanto 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).
concurrencyFacoltativoSolo unlimited. Scegli uno tra 200, 500, 1000, 2000.
bandwidthFacoltativoSolo unlimited, in Mbps. Uno tra 100, 200, 500, 1000.
monthsFacoltativoSolo isp e datacenter. Uno tra 1, 3, 6, 12.
countryFacoltativoSolo isp e datacenter. Un codice paese di due lettere, ad esempio jp. I valori accettati sono elencati in /countries.
Richiesta
curl -X POST https://proxyworld.shop/api/v1/quote \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Risposta
{
  "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.

NomeSignificato
productObbligatorioUno tra unlimited, residential, isp, datacenter.
quantityObbligatorioQuanto 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).
concurrencyFacoltativoSolo unlimited. Scegli uno tra 200, 500, 1000, 2000.
bandwidthFacoltativoSolo unlimited, in Mbps. Uno tra 100, 200, 500, 1000.
monthsFacoltativoSolo isp e datacenter. Uno tra 1, 3, 6, 12.
countryFacoltativoSolo isp e datacenter. Un codice paese di due lettere, ad esempio jp. I valori accettati sono elencati in /countries.
Richiesta
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}'
Risposta
{
  "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.

NomeSignificato
statusFacoltativoUno tra pending, active, refunded. Omettilo per ottenere ordini con qualsiasi stato.
Richiesta
curl "https://proxyworld.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer pwk_your_api_key"
Risposta
{
  "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.

NomeSignificato
idObbligatorioIl numero d'ordine, ad esempio PW-7KQ2M-X4HTD.
Richiesta
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \
  -H "Authorization: Bearer pwk_your_api_key"
Risposta
{
  "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.

NomeSignificato
productFacoltativoUno tra unlimited, residential, isp, datacenter. Se omesso, si usa unlimited.
countryFacoltativoUn codice paese di due lettere, ad esempio jp.
cityFacoltativoUn valore di città elencato in /countries, ad esempio tokyo. Invia anche country.
sessionFacoltativoDa 1 a 32 lettere e cifre. Le richieste con la stessa session usano lo stesso IP.
ttlFacoltativoPer quanto tempo la sessione mantiene il suo IP, da 1 a 60 minuti. Se omesso, 30 minuti.
Richiesta
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"
Risposta
{
  "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.

Python (requests)
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())
Node.js 18+
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.

Collega ProxyWorld al tuo codice

Registrati con email o token, crea una chiave API nella dashboard e puoi iniziare subito a fare chiamate.