IPinfoBox

Documentação da API

Consulte IPs com a chave de API de uma conta com plano ativo. Envie a chave no cabeçalho X-API-Key ou adicione ?key= ao endereço. O plano de 3 meses permite até 5,000 consultas por dia; os planos de 6 e 12 meses não têm limite diário. O uso diário é zerado todos os dias às 00:00 UTC. Todos os planos permitem até 20 consultas por segundo.

URL basehttps://ipinfobox.com/api/v1

Consultar um IP

curl -H "X-API-Key: YOUR_KEY" https://ipinfobox.com/api/v1/8.8.8.8

{
  "ip": "8.8.8.8", "version": 4, "type": "public",
  "country": { "code": "US", "name": "United States", "name_en": "United States" },
  "region": "California", "city": "Mountain View", "continent": "NA",
  "location": { "lat": 37.422, "lon": -122.085 },
  "asn": { "number": 15169, "org": "Google LLC" },
  "privacy": { "vpn": false, "vpn_provider": null, "tor": false,
               "hosting": true, "hosting_provider": "Google", "cloud_region": null }
}

IPv6 funciona da mesma forma. Para IPs privados e especiais, type é private ou reserved e os valores de localização são null.

Verificação de visitantes (privacy)

vpn, vpn_provider

Se o endereço está na lista pública de servidores VPN e o nome do provedor (null se desconhecido)

tor

Se está na lista de nós de saída do Tor Project

hosting, hosting_provider

Se está em uma faixa de IP oficial de nuvem ou na rede de uma empresa de hospedagem, e o nome da empresa

cloud_region

A região, quando está em uma faixa de nuvem (por exemplo us-east-1)

As listas são atualizadas diariamente. VPNs fora da lista e proxies residenciais retornam false. Para IPs privados e especiais, privacy é null. Como funcionam as verificações

Uso com IPs de visitantes

// Node.js (Express): ask for extra verification when a sign-up comes from a VPN, Tor or a data center
app.post("/signup", async (req, res) => {
  const ip = req.headers["cf-connecting-ip"] ?? req.ip; // behind Cloudflare: CF-Connecting-IP
  const r = await fetch(`https://ipinfobox.com/api/v1/${ip}`, { headers: { "X-API-Key": process.env.IPINFOBOX_KEY } });
  const info = await r.json();
  if (info.privacy && (info.privacy.vpn || info.privacy.tor || info.privacy.hosting)) {
    return res.status(403).json({ error: "extra verification required" });
  }
  // continue sign-up
});
# Python
import requests
info = requests.get(f"https://ipinfobox.com/api/v1/{ip}", headers={"X-API-Key": KEY}, timeout=3).json()
risky = bool(info.get("privacy")) and (info["privacy"]["vpn"] or info["privacy"]["tor"] or info["privacy"]["hosting"])

Consultar o seu próprio IP

GET /api/v1/me        o IP e os detalhes do endereço que enviou a requisição

Uso restante

GET /api/v1/usage     {"plan_ends_at":"2026-11-11T...","used_today":12,"daily_limit":5000}  (null em planos sem limite diário)

Erros

400 invalid_ip

Não é um endereço IP válido.

401 invalid_api_key

A chave está ausente ou incorreta.

402 no_subscription

Seu plano terminou. Pague novamente para voltar a usar na hora.

429 rate_limited / daily_limit

Requisições demais, ou o uso de hoje acabou.