API da ProxyWorld

O que você faz no painel também pode ser feito 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.

Primeira vez? Siga estes passos

  1. 1Cadastre-se com e-mail e senha, ou com um token, e abra o painel.
  2. 2Gere uma chave de API na aba Conectar. A chave completa aparece só uma vez, no momento em que é gerada, então guarde-a na hora.
  3. 3Coloque a chave no cabeçalho Authorization de toda requisição que precisar dela.
  4. 4Chame /account primeiro para confirmar que a chave é aceita, depois faça pedidos com /orders.

Como funciona a autenticação?

Requisições que acessam a sua conta (account, orders, proxy-user) precisam de chave de API. Envie no cabeçalho como Authorization: Bearer pwk_... Preços, países e cotações são públicos e podem ser chamados sem chave.

Os servidores da ProxyWorld nunca guardam a chave em si, só um hash dela. Se perder uma chave, crie outra no painel, e a antiga é bloqueada na hora. Use chaves apenas em código do lado do servidor. Se uma chave for parar em código que roda no navegador ou em um repositório público, outra pessoa pode usá-la.

HTTP header
Authorization: Bearer pwk_your_api_key

URL base e formato dos dados

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

Quantas chamadas posso fazer?

Cada chave de API pode fazer 60 chamadas por minuto. Endpoints públicos chamados sem chave permitem 60 chamadas por minuto por IP. Acima disso, você recebe HTTP 429. Espere cerca de um minuto e tente de novo.

O que volta quando algo dá errado?

Você recebe um código de status HTTP e um corpo JSON com um código de erro curto e uma explicação.

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 foi enviado um valor que este produto não aceita.
unauthorizedHTTP 401A chave de API está ausente ou não é válida.
insufficient_balanceHTTP 402Seu saldo é menor que o total do pedido. Nenhum valor foi descontado do saldo.
not_foundHTTP 404Sua conta não tem nenhum pedido com este número.
rate_limitedHTTP 429Você passou do número de chamadas permitido por minuto.
server_errorHTTP 500O servidor não conseguiu concluir a requisição. Nenhum valor foi descontado do saldo.

Endpoints

Ver sua conta

GET/api/v1/accountExige chave de API

Retorna a forma de acesso (login: email ou token), seu e-mail, saldo, host e portas do proxy, usuário e senha do proxy e os IPs autorizados. Em contas criadas com token, email é null.

Requisição
curl https://proxyworld.shop/api/v1/account \
  -H "Authorization: Bearer pwk_your_api_key"
Resposta
{
  "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 produtos e preços

GET/api/v1/productsFunciona sem chave

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

Requisição
curl https://proxyworld.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",
      "...": "..."
    }
  ]
}

Países e cidades

GET/api/v1/countriesFunciona sem chave

Retorna os países disponíveis para cada produto, junto com os valores de cidade para a opção -city- do usuário.

NomeSignificado
productOpcionalUm de unlimited, residential, isp, datacenter. Se omitido, usa residential.
Requisição
curl "https://proxyworld.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/quoteFunciona sem chave

Calcula o total do pedido sem mexer no saldo. Envie o mesmo corpo que você enviaria para fazer o pedido.

NomeSignificado
productObrigatórioUm de unlimited, residential, isp, datacenter.
quantityObrigatórioQuanto pedir: dias 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. Escolha 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. Os valores aceitos estão em /countries.
Requisição
curl -X POST https://proxyworld.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.05,
  "unit": "day",
  "total_usd": 241.5
}

Fazer um pedido

POST/api/v1/ordersExige chave de API

Desconta o total do saldo e cria o pedido. Ele começa como pending (ativando) e passa a active quando fica pronto. Um pedido que não pode ser ativado vira refunded, e tudo o que você pagou volta para o saldo. Se o saldo for insuficiente, você recebe 402.

NomeSignificado
productObrigatórioUm de unlimited, residential, isp, datacenter.
quantityObrigatórioQuanto pedir: dias 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. Escolha 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. Os valores aceitos estão em /countries.
Requisição
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}'
Resposta
{
  "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 seus pedidos

GET/api/v1/ordersExige chave de API

Mostra até 100 pedidos, começando pelos mais recentes.

NomeSignificado
statusOpcionalUm de pending, active, refunded. Deixe vazio para receber pedidos em qualquer status.
Requisição
curl "https://proxyworld.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer pwk_your_api_key"
Resposta
{
  "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 um pedido

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

Retorna o pedido correspondente a um número. Útil para verificar se a ativação terminou.

NomeSignificado
idObrigatórioO número do pedido, por exemplo PW-7KQ2M-X4HTD.
Requisição
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \
  -H "Authorization: Bearer pwk_your_api_key"
Resposta
{
  "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"
  }
}

Montar um usuário de proxy

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

Retorna um usuário de proxy com as suas opções, além de URLs HTTP e SOCKS5 prontas para colar. Se você não enviar session, o IP muda a cada requisição.

NomeSignificado
productOpcionalUm de unlimited, residential, isp, datacenter. Se omitido, usa unlimited.
countryOpcionalUm código de país de duas letras, por exemplo jp.
cityOpcionalUm valor de cidade listado em /countries, por exemplo tokyo. Envie country junto.
sessionOpcional1~32 letras e números. Requisições com a mesma session usam o mesmo IP.
ttlOpcionalPor quanto tempo a sessão mantém o IP, de 1~60 minutos. Se omitido, 30 minutos.
Requisição
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"
Resposta
{
  "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"
}

Exemplo completo

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

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

Pedidos feitos pela API são tratados como os do painel e aparecem na aba Histórico com os demais. Troque pwk_your_api_key nos exemplos pela sua chave de API.

Conecte a ProxyWorld ao seu código

Cadastre-se com e-mail ou token, crie uma chave de API no painel e comece a fazer chamadas na hora.