Ir al contenido
starproxy
Empezar

API de StarProxy

Casi todo el panel está disponible desde código. Consulta tu saldo, revisa precios, pide con tu saldo y obtén usuarios de proxy con opciones, todo con una sola API REST.

¿Por dónde empiezo?

  1. 1Regístrate con un nombre de usuario e inicia sesión en el panel.
  2. 2Crea una clave de API en la pestaña Conectar. La clave completa se muestra una sola vez, al crearla, así que guárdala de inmediato en un lugar seguro.
  3. 3Envía la clave en el encabezado Authorization en cada solicitud que la necesite.
  4. 4Llama primero a /account para comprobar que la clave funciona y luego haz pedidos con /orders.

Autenticación

Las solicitudes sobre tu propia cuenta (account, orders, proxy-user) requieren una clave de API, enviada en el encabezado como Authorization: Bearer spk_... Los precios, países y cotizaciones son públicos y funcionan sin clave.

StarProxy solo guarda un hash de cada clave, no la clave. Si pierdes una clave, crea una nueva en el panel. La clave anterior deja de funcionar en ese momento. Guarda las claves solo en código de servidor. Nunca las pongas en código que se ejecuta en un navegador ni en un repositorio público.

HTTP header
Authorization: Bearer spk_your_api_key

URL base y formato de datos

URL base
https://starproxy.shop/api/v1
Cuerpo de solicitud y respuesta
application/json
Importes
USD como número, p. ej. 1047.70
Marcas de tiempo
ISO 8601 (UTC)

¿Hay un límite de llamadas?

Una clave de API puede hacer hasta 60 llamadas por minuto. Los endpoints públicos sin clave permiten 60 llamadas por minuto por IP. Si superas el límite recibes HTTP 429, así que espera un minuto y vuelve a enviar.

¿Cómo son los errores?

Un código de estado HTTP, más un cuerpo JSON con un código de error corto y un mensaje.

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 el valor no es válido para este producto.
unauthorizedHTTP 401Falta la clave de API o no coincide.
insufficient_balanceHTTP 402Tu saldo es menor que el total del pedido. No se descontó nada.
not_foundHTTP 404No hay ningún pedido con este id en tu cuenta.
rate_limitedHTTP 429Demasiadas solicitudes en un minuto.
server_errorHTTP 500El servidor no pudo completar la solicitud. No se descontó nada.

Endpoints

Obtener cuenta

GET/api/v1/accountRequiere clave de API

Devuelve tu saldo, host y puertos del proxy, usuario y contraseña del proxy, y tus IP autorizadas.

Solicitud
curl https://starproxy.shop/api/v1/account \
  -H "Authorization: Bearer spk_your_api_key"
Respuesta
{
  "username": "star_user01",
  "balance_usd": 1300,
  "proxy": {
    "host": "gate.starproxy.shop",
    "http_port": 6100,
    "socks5_port": 6200,
    "username": "spexample1",
    "password": "your_password"
  },
  "allowed_ips": [
    "203.0.113.10"
  ]
}

Obtener productos y precios

GET/api/v1/productsNo necesita clave

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

Solicitud
curl https://starproxy.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",
      "...": "..."
    }
  ]
}

Listar países y ciudades

GET/api/v1/countriesNo necesita clave

Devuelve los países que admite cada producto, además de los valores de ciudad para la opción -city- del usuario.

CampoSignificado
productOpcionalUno de unlimited, residential, isp, datacenter. Por defecto, residential.
Solicitud
curl "https://starproxy.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/quoteNo necesita clave

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

CampoSignificado
productObligatorioUno de unlimited, residential, isp, datacenter.
quantityObligatorioDí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. 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. Consulta /countries para ver los valores válidos.
Solicitud
curl -X POST https://starproxy.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.41,
  "unit": "day",
  "total_usd": 252.3
}

Crear un pedido

POST/api/v1/ordersRequiere clave de API

Descuenta el total de tu saldo y crea el pedido. El estado empieza como pending (activando) y cambia a active cuando el pedido está listo. Si no se puede activar, pasa a refunded y el importe completo vuelve a tu saldo. Un saldo insuficiente devuelve 402.

CampoSignificado
productObligatorioUno de unlimited, residential, isp, datacenter.
quantityObligatorioDí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. 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. Consulta /countries para ver los valores válidos.
Solicitud
curl -X POST https://starproxy.shop/api/v1/orders \
  -H "Authorization: Bearer spk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Respuesta
{
  "order": {
    "id": "SP-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.41,
    "total_usd": 252.3,
    "status": "pending",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:12:44.120Z"
  },
  "balance_usd": 1047.7
}

Listar pedidos

GET/api/v1/ordersRequiere clave de API

Devuelve hasta 100 pedidos, los más nuevos primero.

CampoSignificado
statusOpcionalUno de pending, active, refunded. Déjalo vacío para todos los estados.
Solicitud
curl "https://starproxy.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer spk_your_api_key"
Respuesta
{
  "orders": [
    {
      "id": "SP-7KQ2M-X4HTD",
      "product": "unlimited",
      "quantity": 30,
      "months": null,
      "concurrency": 1000,
      "bandwidth_mbps": 200,
      "country": null,
      "unit_price_usd": 8.41,
      "total_usd": 252.3,
      "status": "pending",
      "created_at": "2026-10-31T09:12:44.120Z",
      "updated_at": "2026-10-31T09:12:44.120Z"
    }
  ]
}

Obtener un pedido

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

Devuelve un pedido por id. Úsalo para ver si la activación terminó.

CampoSignificado
idObligatorioEl id del pedido, por ejemplo SP-7KQ2M-X4HTD.
Solicitud
curl https://starproxy.shop/api/v1/orders/SP-7KQ2M-X4HTD \
  -H "Authorization: Bearer spk_your_api_key"
Respuesta
{
  "order": {
    "id": "SP-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.41,
    "total_usd": 252.3,
    "status": "active",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:40:02.511Z"
  }
}

Generar un usuario de proxy

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

Devuelve un usuario de proxy con tus opciones incluidas, además de URL HTTP y SOCKS5 listas para pegar. Sin session, cada solicitud recibe una IP nueva.

CampoSignificado
productOpcionalUno de unlimited, residential, isp, datacenter. Por defecto, unlimited.
countryOpcionalUn código de país de dos letras, como jp.
cityOpcionalUn valor de ciudad de /countries, como tokyo. Requiere country.
sessionOpcionalDe 1~32 letras o dígitos. Las solicitudes con la misma session comparten una IP.
ttlOpcionalMinutos que se mantiene la IP de la sesión, de 1~60. Por defecto, 30.
Solicitud
curl "https://starproxy.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \
  -H "Authorization: Bearer spk_your_api_key"
Respuesta
{
  "username": "spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
  "password": "your_password",
  "http": "http://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6100",
  "socks5": "socks5h://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6200"
}

Ejemplo completo

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

Python (requests)
import requests

API = "https://starproxy.shop/api/v1"
HEAD = {"Authorization": "Bearer spk_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://starproxy.shop/api/v1";
const HEAD = { Authorization: "Bearer spk_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 por API se procesan igual que los del panel y aparecen en la pestaña Historial. Cambia spk_your_api_key en los ejemplos por tu propia clave.

Usa StarProxy directamente desde tu código

Regístrate con un nombre de usuario, crea una clave de API en el panel y empieza a llamar a la API.