Documentación API
Integra TraceMapper en tus aplicaciones con nuestra API REST. Disponible para usuarios Pro.
Autenticación
Todas las solicitudes API requieren una clave API pasada como parámetro "key". Genera tu clave API desde el Panel de control.
Parámetro de consulta
GET /api/v1/trace?dest=example.com&key=tm_your_api_keyEncabezado Authorization (recomendado)
Authorization: Bearer tm_your_api_keyLas claves API expiran después de 1 año. Puedes regenerarlas desde el Panel de control.
Endpoints
/api/v1/traceEjecuta un traceroute hacia un destino y devuelve todos los saltos con geolocalización, ASN, latencia, jitter y pérdida de paquetes.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| key | string | requerido | Tu clave API (comienza con tm_) |
| dest | string | requerido | Dirección IP o nombre de dominio de destino |
| maxHops | integer | opcional | Número máximo de saltos (1-64, por defecto: 30) |
| protocol | string | opcional | Protocolo: icmp, udp o tcp (por defecto: icmp) |
Ejemplo de respuesta
{
"dest": "8.8.8.8",
"protocol": "icmp",
"totalHops": 12,
"hops": [
{
"hopNumber": 1,
"ip": "192.168.1.1",
"hostname": "router.local",
"asn": null,
"asnOrg": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"latencyAvg": 1.2,
"latencyMin": 0.8,
"latencyMax": 1.5,
"jitter": 0.3,
"packetLoss": 0.0,
"isTimeout": false
}
]
}Códigos de error
/api/v1/tracesLista tus traceroutes guardados con paginación. Soporta filtrado por destino.
| Parámetro | Tipo | Descripción |
|---|---|---|
| limit | integer | Resultados por página (1-100, por defecto: 20) |
| offset | integer | Número de resultados a omitir (por defecto: 0) |
| dest | string | Filtrar por IP o nombre de dominio de destino |
/api/v1/statusObtener el estado de la API, fuentes disponibles e información de límites. Sin autenticación requerida.
/api/v1/pingHacer ping a un host y devolver estadísticas de latencia, pérdida de paquetes y tiempos de ida y vuelta individuales.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| host | string | requerido | Dirección IP o nombre de host a hacer ping |
| count | integer | opcional | Número de paquetes ping a enviar (1-20, por defecto: 4) |
Ejemplo de respuesta
{
"host": "8.8.8.8",
"resolvedIp": "8.8.8.8",
"count": 4,
"sent": 4,
"received": 4,
"packetLoss": 0,
"latency": {
"min": 1.23,
"avg": 2.45,
"max": 3.67,
"jitter": 0.89
},
"rtts": [1.23, 2.45, 3.67, 2.45]
}/api/v1/dnsRealizar una consulta DNS para un dominio y devolver los registros resueltos con el tiempo de consulta.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| domain | string | requerido | Nombre de dominio a consultar |
| type | string | opcional | Tipo de registro: A, AAAA, MX, NS, CNAME, TXT o SOA (por defecto: A) |
Ejemplo de respuesta
{
"domain": "example.com",
"type": "A",
"records": [
{ "address": "93.184.216.34", "ttl": 300 }
],
"queryTime": 12.34,
"server": "system"
}/api/v1/http-checkVerificar una URL HTTP(S) y devolver el código de estado, tiempo de respuesta, cadena de redirecciones, encabezados y detalles del certificado SSL.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| url | string | requerido | URL a verificar (se añade https:// si se omite) |
Ejemplo de respuesta
{
"url": "https://example.com",
"statusCode": 200,
"statusText": "OK",
"responseTime": 145,
"redirects": [],
"headers": {
"content-type": "text/html; charset=UTF-8",
"server": "nginx"
},
"ssl": {
"valid": true,
"issuer": "DigiCert Inc",
"validFrom": "2024-01-01",
"validTo": "2025-01-01",
"daysRemaining": 180,
"protocol": "TLSv1.3",
"sans": ["example.com", "www.example.com"]
}
}/api/v1/port-checkVerificar si un puerto TCP está abierto en un host y devolver el tiempo de respuesta y el nombre del servicio.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| host | string | requerido | Dirección IP o nombre de host a verificar |
| port | integer | requerido | Número de puerto a verificar (1-65535) |
| ports | string | opcional | Usar "common" para escanear puertos comunes (21, 22, 25, 53, 80, 443, ...) |
Ejemplo de respuesta
{
"host": "example.com",
"port": 443,
"open": true,
"responseTime": 23,
"service": "HTTPS"
}/api/v1/ip-reputationVerificar la reputación de una dirección IP contra listas negras DNS y AbuseIPDB, con datos de geolocalización.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| ip | string | requerido | Dirección IPv4 o IPv6 a verificar |
Ejemplo de respuesta
{
"ip": "8.8.8.8",
"reputation": "clean",
"score": 0,
"abuseipdb": {
"score": 0,
"totalReports": 12,
"lastReported": "2025-12-01T10:00:00Z"
},
"blacklists": [
{ "name": "Spamhaus ZEN", "listed": false },
{ "name": "SpamCop", "listed": false },
{ "name": "SORBS", "listed": false }
],
"geo": {
"country": "US",
"isp": "Google LLC",
"org": "Google Public DNS",
"as": "AS15169 Google LLC"
}
}/api/v1/bgpConsultar información de enrutamiento BGP para una dirección IP o prefijo, incluyendo ASN de origen, rutas AS y proveedores upstream.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| target | string | requerido | Dirección IP o prefijo (ej.: 8.8.8.0/24) |
Ejemplo de respuesta
{
"prefix": "8.8.8.0/24",
"origin": { "asn": 15169, "holder": "Google LLC" },
"paths": [
{
"collector": "rrc00",
"asPath": [13335, 15169],
"communities": ["13335:10000"]
}
],
"pathCount": 245,
"collectorCount": 24,
"upstreamAsns": [
{ "asn": 13335, "holder": "Cloudflare Inc", "count": 45 }
]
}Límites de solicitudes
Las solicitudes API están limitadas a 30 por minuto por clave API. Si excedes este límite, recibirás un código 429 con un encabezado Retry-After.
Ejemplos de código
cURL
# Con encabezado Authorization curl -H "Authorization: Bearer tm_your_api_key" \ "https://tracemapper.com/api/v1/trace?dest=8.8.8.8" # Listar trazas guardadas curl -H "Authorization: Bearer tm_your_api_key" \ "https://tracemapper.com/api/v1/traces?limit=10" # Ping curl -H "Authorization: Bearer tm_your_api_key" \ "https://tracemapper.com/api/v1/ping?host=8.8.8.8&count=4" # DNS curl -H "Authorization: Bearer tm_your_api_key" \ "https://tracemapper.com/api/v1/dns?domain=example.com&type=MX" # HTTP Check curl -H "Authorization: Bearer tm_your_api_key" \ "https://tracemapper.com/api/v1/http-check?url=https://example.com" # Port Check curl -H "Authorization: Bearer tm_your_api_key" \ "https://tracemapper.com/api/v1/port-check?host=example.com&port=443" # IP Reputation curl -H "Authorization: Bearer tm_your_api_key" \ "https://tracemapper.com/api/v1/ip-reputation?ip=8.8.8.8" # BGP curl -H "Authorization: Bearer tm_your_api_key" \ "https://tracemapper.com/api/v1/bgp?target=8.8.8.0/24"
JavaScript / Node.js
const API_KEY = "tm_your_api_key";
const headers = { Authorization: `Bearer ${API_KEY}` };
// Traceroute
const trace = await fetch(
"https://tracemapper.com/api/v1/trace?dest=8.8.8.8",
{ headers }
).then(r => r.json());
console.log(trace.hops);
// Ping
const ping = await fetch(
"https://tracemapper.com/api/v1/ping?host=8.8.8.8",
{ headers }
).then(r => r.json());
console.log(ping.latency);
// DNS
const dns = await fetch(
"https://tracemapper.com/api/v1/dns?domain=example.com&type=A",
{ headers }
).then(r => r.json());
console.log(dns.records);Python
import requests
headers = {"Authorization": "Bearer tm_your_api_key"}
# Traceroute
r = requests.get(
"https://tracemapper.com/api/v1/trace",
params={"dest": "8.8.8.8"},
headers=headers,
)
print(r.json()["hops"])
# Ping
r = requests.get(
"https://tracemapper.com/api/v1/ping",
params={"host": "8.8.8.8", "count": 4},
headers=headers,
)
print(r.json()["latency"])
# DNS
r = requests.get(
"https://tracemapper.com/api/v1/dns",
params={"domain": "example.com", "type": "MX"},
headers=headers,
)
print(r.json()["records"])