Documentation API
Intégrez TraceMapper dans vos applications avec notre API REST. Disponible pour les utilisateurs Pro.
Authentification
Toutes les requêtes API nécessitent une clé API passée en paramètre "key". Générez votre clé API depuis le Tableau de bord.
Paramètre de requête
GET /api/v1/trace?dest=example.com&key=tm_your_api_keyEn-tête Authorization (recommandé)
Authorization: Bearer tm_your_api_keyLes clés API expirent après 1 an. Vous pouvez les régénérer depuis le Tableau de bord.
Points d'accès
/api/v1/traceExécute un traceroute vers une destination et retourne tous les sauts avec géolocalisation, ASN, latence, gigue et perte de paquets.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| key | string | requis | Votre clé API (commence par tm_) |
| dest | string | requis | Adresse IP ou nom de domaine de destination |
| maxHops | integer | optionnel | Nombre maximum de sauts (1-64, par défaut : 30) |
| protocol | string | optionnel | Protocole : icmp, udp ou tcp (par défaut : icmp) |
Exemple de réponse
{
"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
}
]
}Codes d'erreur
/api/v1/tracesListez vos traceroutes sauvegardés avec pagination. Filtrage par destination possible.
| Paramètre | Type | Description |
|---|---|---|
| limit | integer | Résultats par page (1-100, par défaut : 20) |
| offset | integer | Nombre de résultats à ignorer (par défaut : 0) |
| dest | string | Filtrer par IP ou nom de domaine de destination |
/api/v1/statusObtenir le statut de l'API, les sources disponibles et les limites de requêtes. Aucune authentification requise.
/api/v1/pingEffectuer un ping vers un hôte et retourner les statistiques de latence, la perte de paquets et les temps aller-retour individuels.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| host | string | requis | Adresse IP ou nom d'hôte à pinger |
| count | integer | optionnel | Nombre de paquets ping à envoyer (1-20, par défaut : 4) |
Exemple de réponse
{
"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/dnsEffectuer une résolution DNS pour un domaine et retourner les enregistrements avec le temps de requête.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| domain | string | requis | Nom de domaine à résoudre |
| type | string | optionnel | Type d'enregistrement : A, AAAA, MX, NS, CNAME, TXT ou SOA (par défaut : A) |
Exemple de réponse
{
"domain": "example.com",
"type": "A",
"records": [
{ "address": "93.184.216.34", "ttl": 300 }
],
"queryTime": 12.34,
"server": "system"
}/api/v1/http-checkVérifier une URL HTTP(S) et retourner le code de statut, le temps de réponse, la chaîne de redirections, les en-têtes et les détails du certificat SSL.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| url | string | requis | URL à vérifier (https:// ajouté si omis) |
Exemple de réponse
{
"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-checkVérifier si un port TCP est ouvert sur un hôte et retourner le temps de réponse et le nom du service.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| host | string | requis | Adresse IP ou nom d'hôte à vérifier |
| port | integer | requis | Numéro de port à vérifier (1-65535) |
| ports | string | optionnel | Utiliser "common" pour scanner les ports courants (21, 22, 25, 53, 80, 443, ...) |
Exemple de réponse
{
"host": "example.com",
"port": 443,
"open": true,
"responseTime": 23,
"service": "HTTPS"
}/api/v1/ip-reputationVérifier la réputation d'une adresse IP via les listes noires DNS et AbuseIPDB, avec données de géolocalisation.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| ip | string | requis | Adresse IPv4 ou IPv6 à vérifier |
Exemple de réponse
{
"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/bgpRechercher les informations de routage BGP pour une adresse IP ou un préfixe, y compris l'ASN d'origine, les chemins AS et les fournisseurs amont.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| target | string | requis | Adresse IP ou préfixe (ex. : 8.8.8.0/24) |
Exemple de réponse
{
"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 }
]
}Limites de requêtes
Les requêtes API sont limitées à 30 par minute par clé API. En cas de dépassement, vous recevrez un code 429 avec un en-tête Retry-After.
Exemples de code
cURL
# Avec en-tête Authorization curl -H "Authorization: Bearer tm_your_api_key" \ "https://tracemapper.com/api/v1/trace?dest=8.8.8.8" # Lister les traceroutes sauvegardés 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"])