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"
      }
    }
  }
}

Herramientas: lookup_ip, check_privacy, check_fraud. Mismas claves y cuotas que REST. Connect MCP.

Forma de la respuesta

IpLookupDto anidado — sin sources[] público. Use ?legacy=true para campos planos compatibles con 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óvil

Los NAT compartidos de operadores pueden generar ruido. Prefiera listas de ASN permitidos para rangos móviles conocidos; consulte la guía enterprise al escalar.

Documentación de API y MCP — Trace Exit