Pular para o conteúdo
starproxy
Começar

API da StarProxy

Quase tudo do painel está disponível via código. Consulte o saldo, veja preços, faça pedidos com o saldo e obtenha usuários de proxy com opções, tudo por uma única REST API.

Por onde começo?

  1. 1Cadastre-se com um nome de usuário e entre no painel.
  2. 2Crie uma chave de API na aba Conectar. A chave completa aparece uma única vez, ao ser criada, então guarde-a em um lugar seguro na hora.
  3. 3Envie a chave no cabeçalho Authorization em toda requisição que precisar dela.
  4. 4Chame /account primeiro para verificar se a chave funciona, depois faça pedidos com /orders.

Autenticação

Requisições sobre a sua conta (account, orders, proxy-user) exigem chave de API, enviada no cabeçalho como Authorization: Bearer spk_... Preços, países e cotações são públicos e funcionam sem chave.

A StarProxy guarda apenas um hash de cada chave, não a chave em si. Se perder uma chave, crie outra no painel. A chave antiga para de funcionar nesse momento. Use as chaves só em código de servidor. Nunca as coloque em código que roda no navegador nem em um repositório público.

HTTP header
Authorization: Bearer spk_your_api_key

URL base e formato dos dados

URL base
https://starproxy.shop/api/v1
Corpo da requisição e da resposta
application/json
Valores
USD como número, ex.: 1047.70
Data e hora
ISO 8601 (UTC)

Há limite de chamadas?

Uma chave de API pode fazer até 60 chamadas por minuto. Endpoints públicos sem chave permitem 60 chamadas por minuto por IP. Acima do limite você recebe HTTP 429, então espere um minuto e envie de novo.

Como são os erros?

Um código de status HTTP, mais um corpo JSON com um código de erro curto e uma mensagem.

Exemplo
{
  "error": {
    "code": "insufficient_balance",
    "message": "Your balance is too low for this order. Top up in the dashboard."
  }
}
code
bad_requestHTTP 400Falta um valor obrigatório, ou o valor não é válido para este produto.
unauthorizedHTTP 401A chave de API está ausente ou não confere.
insufficient_balanceHTTP 402Seu saldo é menor que o total do pedido. Nada foi descontado.
not_foundHTTP 404Não há pedido com este id na sua conta.
rate_limitedHTTP 429Requisições demais em um minuto.
server_errorHTTP 500O servidor não conseguiu concluir a requisição. Nada foi descontado.

Endpoints

Consultar conta

GET/api/v1/accountExige chave de API

Retorna seu saldo, host e portas do proxy, usuário e senha do proxy e os seus IPs autorizados.

Requisição
curl https://starproxy.shop/api/v1/account \
  -H "Authorization: Bearer spk_your_api_key"
Resposta
{
  "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"
  ]
}

Consultar produtos e preços

GET/api/v1/productsNão precisa de chave

Retorna a faixa de pedido de cada produto, o preço por faixa de quantidade e os descontos por período, com base na mesma tabela da página de preços.

Requisição
curl https://starproxy.shop/api/v1/products
Resposta
{
  "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 e cidades

GET/api/v1/countriesNão precisa de chave

Retorna os países disponíveis em cada produto, além dos valores de cidade para a opção -city- do usuário.

CampoSignificado
productOpcionalUm de unlimited, residential, isp, datacenter. O padrão é residential.
Requisição
curl "https://starproxy.shop/api/v1/countries?product=datacenter"
Resposta
{
  "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"
        }
      ]
    }
  ]
}

Obter cotação

POST/api/v1/quoteNão precisa de chave

Calcula o total do pedido sem mexer no saldo. Envie o mesmo corpo que usaria no pedido.

CampoSignificado
productObrigatórioUm de unlimited, residential, isp, datacenter.
quantityObrigatórioDias para unlimited (1~365), GB para residential (5~5,000), quantidade de IPs para isp (1~1,000) ou datacenter (5~5,000).
concurrencyOpcionalSó para unlimited. Um de 200, 500, 1000, 2000.
bandwidthOpcionalSó para unlimited, em Mbps. Um de 100, 200, 500, 1000.
monthsOpcionalSó para isp e datacenter. Um de 1, 3, 6, 12.
countryOpcionalSó para isp e datacenter. Um código de país de duas letras, como jp. Veja os valores válidos em /countries.
Requisição
curl -X POST https://starproxy.shop/api/v1/quote \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Resposta
{
  "product": "unlimited",
  "quantity": 30,
  "unit_price_usd": 8.41,
  "unit": "day",
  "total_usd": 252.3
}

Criar um pedido

POST/api/v1/ordersExige chave de API

Desconta o total do saldo e cria o pedido. O status começa como pending (ativando) e muda para active quando o pedido fica pronto. Se não puder ser ativado, passa a refunded e o valor integral volta para o saldo. Saldo insuficiente retorna 402.

CampoSignificado
productObrigatórioUm de unlimited, residential, isp, datacenter.
quantityObrigatórioDias para unlimited (1~365), GB para residential (5~5,000), quantidade de IPs para isp (1~1,000) ou datacenter (5~5,000).
concurrencyOpcionalSó para unlimited. Um de 200, 500, 1000, 2000.
bandwidthOpcionalSó para unlimited, em Mbps. Um de 100, 200, 500, 1000.
monthsOpcionalSó para isp e datacenter. Um de 1, 3, 6, 12.
countryOpcionalSó para isp e datacenter. Um código de país de duas letras, como jp. Veja os valores válidos em /countries.
Requisição
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}'
Resposta
{
  "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/ordersExige chave de API

Retorna até 100 pedidos, do mais recente para o mais antigo.

CampoSignificado
statusOpcionalUm de pending, active, refunded. Deixe vazio para todos os status.
Requisição
curl "https://starproxy.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer spk_your_api_key"
Resposta
{
  "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"
    }
  ]
}

Consultar um pedido

GET/api/v1/orders/{id}Exige chave de API

Retorna um pedido pelo id. Use para ver se a ativação terminou.

CampoSignificado
idObrigatórioO id do pedido, por exemplo SP-7KQ2M-X4HTD.
Requisição
curl https://starproxy.shop/api/v1/orders/SP-7KQ2M-X4HTD \
  -H "Authorization: Bearer spk_your_api_key"
Resposta
{
  "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"
  }
}

Gerar um usuário de proxy

GET/api/v1/proxy-userExige chave de API

Retorna um usuário de proxy com as suas opções já incluídas, além de URLs HTTP e SOCKS5 prontas para colar. Sem session, cada requisição recebe um novo IP.

CampoSignificado
productOpcionalUm de unlimited, residential, isp, datacenter. O padrão é unlimited.
countryOpcionalUm código de país de duas letras, como jp.
cityOpcionalUm valor de cidade de /countries, como tokyo. Exige country.
sessionOpcional1~32 letras ou números. Requisições com a mesma session compartilham um IP.
ttlOpcionalMinutos para manter o IP da sessão, de 1~60. O padrão é 30.
Requisição
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"
Resposta
{
  "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"
}

Exemplo completo

Um script que obtém uma cotação, faz o pedido com o saldo e conecta por um IP do Japão.

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

Pedidos feitos pela API são processados como os do painel e aparecem na aba Histórico. Troque spk_your_api_key nos exemplos pela sua própria chave.

Use a StarProxy direto do seu código

Cadastre-se com um nome de usuário, crie uma chave de API no painel e comece a chamar a API.