API de ProxyWorld

Lo que haces en el panel también lo puedes hacer desde código. Lee tu saldo, consulta precios, pide con tu saldo y obtén usuarios de proxy con opciones, todo con una sola API REST.

¿Eres nuevo? Sigue estos pasos

  1. 1Regístrate con email y contraseña, o con un token, y abre el panel.
  2. 2Genera una clave de API en la pestaña Conectar. La clave completa aparece una sola vez, en el momento de generarla, así que guárdala ahí mismo.
  3. 3Pon la clave en el encabezado Authorization de cada solicitud que la necesite.
  4. 4Llama primero a /account para comprobar que la clave se acepta y luego haz pedidos con /orders.

¿Cómo funciona la autenticación?

Las solicitudes que acceden a tu propia cuenta (account, orders, proxy-user) necesitan una clave de API. Envíala en el encabezado como Authorization: Bearer pwk_... Los precios, países y cotizaciones son públicos y se pueden consultar sin clave.

Los servidores de ProxyWorld nunca guardan la clave, solo un hash de ella. Si pierdes una clave, crea una nueva en el panel y la anterior queda bloqueada al instante. Pon las claves solo en código del lado del servidor. Si una clave termina en código que se ejecuta en un navegador o en un repositorio público, otra persona puede usarla.

HTTP header
Authorization: Bearer pwk_your_api_key

URL base y formato de datos

URL base
https://proxyworld.shop/api/v1
Cuerpo de solicitudes y respuestas
application/json
Importes
USD como número, por ejemplo 1058.50
Marcas de tiempo
ISO 8601 (UTC)

¿Cuántas llamadas puedo hacer?

Cada clave de API puede hacer 60 llamadas por minuto. Los endpoints públicos llamados sin clave permiten 60 llamadas por minuto por IP. Si superas ese límite, recibes HTTP 429. Espera alrededor de un minuto y vuelve a intentarlo.

¿Qué se devuelve cuando algo falla?

Recibes un código de estado HTTP y un cuerpo JSON con un código de error corto y una explicación.

Ejemplo
{
  "error": {
    "code": "insufficient_balance",
    "message": "Your balance is too low for this order. Top up in the dashboard."
  }
}
code
bad_requestHTTP 400Falta un valor obligatorio, o se envió un valor que este producto no acepta.
unauthorizedHTTP 401Falta la clave de API o no es una clave válida.
insufficient_balanceHTTP 402Tu saldo es menor que el total del pedido. No se descontó dinero de tu saldo.
not_foundHTTP 404Tu cuenta no tiene ningún pedido con este número.
rate_limitedHTTP 429Superaste la cantidad de llamadas permitidas por minuto.
server_errorHTTP 500El servidor no pudo completar la solicitud. No se descontó dinero de tu saldo.

Endpoints

Ver tu cuenta

GET/api/v1/accountRequiere clave de API

Devuelve cómo inicias sesión (login: email o token), tu email, saldo, host y puertos del proxy, usuario y contraseña del proxy, e IP autorizadas. En las cuentas creadas con token, email es null.

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

Ver productos y precios

GET/api/v1/productsFunciona sin clave

Devuelve el rango de pedido de cada producto, el precio por unidad de cada escalón de cantidad y los descuentos por periodo. Usa la misma tabla de precios que la página de precios.

Solicitud
curl https://proxyworld.shop/api/v1/products
Respuesta
{
  "currency": "USD",
  "prices_as_of": "2026-10-31",
  "products": [
    {
      "id": "unlimited",
      "unit": "day",
      "quantity": {
        "meaning": "days",
        "min": 1,
        "max": 365
      },
      "...": "..."
    },
    {
      "id": "residential",
      "unit": "gb",
      "...": "..."
    }
  ]
}

Países y ciudades

GET/api/v1/countriesFunciona sin clave

Devuelve los países que puedes elegir para cada producto, junto con los valores de ciudad que se usan en la opción -city- del usuario.

NombreSignificado
productOpcionalUno de unlimited, residential, isp, datacenter. Si se omite, se usa residential.
Solicitud
curl "https://proxyworld.shop/api/v1/countries?product=datacenter"
Respuesta
{
  "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"
        }
      ]
    }
  ]
}

Obtener una cotización

POST/api/v1/quoteFunciona sin clave

Calcula el total del pedido sin tocar tu saldo. Envía el mismo cuerpo que enviarías para hacer el pedido.

NombreSignificado
productObligatorioUno de unlimited, residential, isp, datacenter.
quantityObligatorioCuánto pedir: días para unlimited (1~365), GB para residential (5~5,000), cantidad de IP para isp (1~1,000) o datacenter (5~5,000).
concurrencyOpcionalSolo unlimited. Elige uno de 200, 500, 1000, 2000.
bandwidthOpcionalSolo unlimited, en Mbps. Uno de 100, 200, 500, 1000.
monthsOpcionalSolo isp y datacenter. Uno de 1, 3, 6, 12.
countryOpcionalSolo isp y datacenter. Un código de país de dos letras, como jp. Los valores aceptados aparecen en /countries.
Solicitud
curl -X POST https://proxyworld.shop/api/v1/quote \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Respuesta
{
  "product": "unlimited",
  "quantity": 30,
  "unit_price_usd": 8.05,
  "unit": "day",
  "total_usd": 241.5
}

Hacer un pedido

POST/api/v1/ordersRequiere clave de API

Descuenta el total de tu saldo y crea el pedido. Empieza como pending (activando) y pasa a active cuando está listo. Un pedido que no se puede activar pasa a refunded, y todo lo que pagaste vuelve a tu saldo. Si tu saldo no alcanza, recibes 402.

NombreSignificado
productObligatorioUno de unlimited, residential, isp, datacenter.
quantityObligatorioCuánto pedir: días para unlimited (1~365), GB para residential (5~5,000), cantidad de IP para isp (1~1,000) o datacenter (5~5,000).
concurrencyOpcionalSolo unlimited. Elige uno de 200, 500, 1000, 2000.
bandwidthOpcionalSolo unlimited, en Mbps. Uno de 100, 200, 500, 1000.
monthsOpcionalSolo isp y datacenter. Uno de 1, 3, 6, 12.
countryOpcionalSolo isp y datacenter. Un código de país de dos letras, como jp. Los valores aceptados aparecen en /countries.
Solicitud
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}'
Respuesta
{
  "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
}

Ver tus pedidos

GET/api/v1/ordersRequiere clave de API

Muestra hasta 100 pedidos, empezando por el más reciente.

NombreSignificado
statusOpcionalUno de pending, active, refunded. Omítelo para obtener pedidos en cualquier estado.
Solicitud
curl "https://proxyworld.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer pwk_your_api_key"
Respuesta
{
  "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"
    }
  ]
}

Ver un pedido

GET/api/v1/orders/{id}Requiere clave de API

Devuelve el pedido que coincide con un número de pedido. Útil para comprobar si la activación terminó.

NombreSignificado
idObligatorioEl número de pedido, por ejemplo PW-7KQ2M-X4HTD.
Solicitud
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \
  -H "Authorization: Bearer pwk_your_api_key"
Respuesta
{
  "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"
  }
}

Armar un usuario de proxy

GET/api/v1/proxy-userRequiere clave de API

Devuelve un usuario de proxy con tus opciones añadidas, además de URL HTTP y SOCKS5 que puedes pegar tal cual. Si no envías session, la IP cambia en cada solicitud.

NombreSignificado
productOpcionalUno de unlimited, residential, isp, datacenter. Si se omite, se usa unlimited.
countryOpcionalUn código de país de dos letras, por ejemplo jp.
cityOpcionalUn valor de ciudad de /countries, por ejemplo tokyo. Envía también country.
sessionOpcionalDe 1~32 letras y dígitos. Las solicitudes con la misma session usan la misma IP.
ttlOpcionalCuánto tiempo mantiene la sesión su IP, de 1~60 minutos. Si se omite, 30 minutos.
Solicitud
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"
Respuesta
{
  "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"
}

Ejemplo completo

Un solo script que obtiene una cotización, pide con tu saldo y luego se conecta con una IP de Japón.

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);

Los pedidos hechos por la API se tratan igual que los del panel y aparecen en la pestaña Historial con los demás. Cambia pwk_your_api_key en los ejemplos por tu propia clave de API.

Conecta ProxyWorld a tu código

Regístrate con un email o un token, crea una clave de API en el panel y ya puedes empezar a hacer llamadas.