Docs
OpenAPI ao vivo em https://api.traceexit.com/swagger-ui
cURL
curl https://api.traceexit.com/v1/ip/203.0.113.10 \
-H "Authorization: Bearer te_live_…" \
-H "Accept: application/json"Node
const res = await fetch("https://api.traceexit.com/v1/ip/203.0.113.10", {
headers: { Authorization: "Bearer " + process.env.TRACE_EXIT_API_KEY },
});
const dto = await res.json();MCP (Cursor)
{
"mcpServers": {
"traceexit": {
"command": "npx",
"args": ["-y", "@traceexit/mcp"],
"env": {
"TRACE_EXIT_API_KEY": "te_live_…",
"TRACE_EXIT_BASE_URL": "https://api.traceexit.com"
}
}
}
}Ferramentas: lookup_ip, check_privacy, check_fraud. Mesmas chaves e cotas do REST. Connect MCP.
Formato da resposta
IpLookupDto aninhado — sem sources[] público. Use ?legacy=true para campos planos compatíveis com SA.
{
"ip": "203.0.113.10",
"ipVersion": 4,
"privacy": {
"vpn": false,
"proxy": false,
"tor": false,
"datacenter": true,
"residentialProxy": false,
"anonymizer": false
},
"risk": {
"score": 42,
"level": "medium"
},
"location": {
"countryCode": "US",
"city": "Ashburn"
},
"meta": {
"cacheHit": true
}
}CGNAT / móvel
NATs compartilhados de operadoras podem ser ruidosos. Prefira allowlists de ASN para faixas móveis conhecidas; veja a orientação enterprise ao escalar.