API-Dokumentation
Integrieren Sie TraceMapper mit unserer REST API in Ihre Anwendungen. Verfügbar für Pro-Nutzer.
Authentifizierung
Alle API-Anfragen erfordern einen API-Schlüssel, der als "key"-Query-Parameter übergeben wird. Generieren Sie Ihren API-Schlüssel im Dashboard.
Query-Parameter
GET /api/v1/trace?dest=example.com&key=tm_your_api_keyAuthorization-Header (empfohlen)
Authorization: Bearer tm_your_api_keyAPI-Schlüssel laufen nach 1 Jahr ab. Sie können sie im Dashboard neu generieren.
Endpunkte
/api/v1/traceFühren Sie einen Traceroute zu einem Ziel durch und erhalten Sie alle Hops mit Geolokalisierung, ASN, Latenz, Jitter und Paketverlustdaten.
Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| key | string | erforderlich | Ihr API-Schlüssel (beginnt mit tm_) |
| dest | string | erforderlich | Ziel-IP-Adresse oder Hostname |
| maxHops | integer | optional | Maximale Anzahl Hops (1–64, Standard: 30) |
| protocol | string | optional | Protokoll: icmp, udp oder tcp (Standard: icmp) |
Beispielantwort
{
"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
}
]
}Fehlercodes
/api/v1/tracesListen Sie Ihre gespeicherten Traces mit Paginierung auf. Unterstützt Filterung nach Ziel.
| Parameter | Typ | Beschreibung |
|---|---|---|
| limit | integer | Ergebnisse pro Seite (1-100, Standard: 20) |
| offset | integer | Anzahl der zu überspringenden Ergebnisse (Standard: 0) |
| dest | string | Nach Ziel-IP oder Hostname filtern |
/api/v1/statusAPI-Status, verfügbare Quellen und Ratenlimit-Informationen abrufen. Keine Authentifizierung erforderlich.
/api/v1/pingEinen Host anpingen und Latenzstatistiken, Paketverlust und einzelne Roundtrip-Zeiten zurückgeben.
Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| host | string | erforderlich | IP-Adresse oder Hostname zum Anpingen |
| count | integer | optional | Anzahl der Ping-Pakete (1-20, Standard: 4) |
Beispielantwort
{
"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/dnsEine DNS-Abfrage für eine Domain durchführen und die aufgelösten Einträge mit Abfragezeit zurückgeben.
Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| domain | string | erforderlich | Domainname zum Auflösen |
| type | string | optional | Eintragstyp: A, AAAA, MX, NS, CNAME, TXT oder SOA (Standard: A) |
Beispielantwort
{
"domain": "example.com",
"type": "A",
"records": [
{ "address": "93.184.216.34", "ttl": 300 }
],
"queryTime": 12.34,
"server": "system"
}/api/v1/http-checkEine HTTP(S)-URL prüfen und Statuscode, Antwortzeit, Weiterleitungskette, Header und SSL-Zertifikatdetails zurückgeben.
Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| url | string | erforderlich | Zu prüfende URL (https:// wird hinzugefügt, wenn weggelassen) |
Beispielantwort
{
"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-checkPrüfen, ob ein TCP-Port auf einem Host geöffnet ist, und Antwortzeit sowie Dienstname zurückgeben.
Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| host | string | erforderlich | IP-Adresse oder Hostname zum Prüfen |
| port | integer | erforderlich | Zu prüfende Portnummer (1-65535) |
| ports | string | optional | "common" verwenden, um häufige Ports zu scannen (21, 22, 25, 53, 80, 443, ...) |
Beispielantwort
{
"host": "example.com",
"port": 443,
"open": true,
"responseTime": 23,
"service": "HTTPS"
}/api/v1/ip-reputationDie Reputation einer IP-Adresse über DNS-Blacklists und AbuseIPDB prüfen, mit Geolokalisierungsdaten.
Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| ip | string | erforderlich | Zu prüfende IPv4- oder IPv6-Adresse |
Beispielantwort
{
"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/bgpBGP-Routing-Informationen für eine IP-Adresse oder ein Präfix abrufen, einschließlich Ursprungs-ASN, AS-Pfade und Upstream-Anbieter.
Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| target | string | erforderlich | IP-Adresse oder Präfix (z. B. 8.8.8.0/24) |
Beispielantwort
{
"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 }
]
}Ratenlimits
API-Anfragen sind auf 30 Anfragen pro Minute pro API-Schlüssel begrenzt. Bei Überschreitung erhalten Sie einen 429-Statuscode mit einem Retry-After-Header.
Codebeispiele
cURL
# Mit Authorization-Header curl -H "Authorization: Bearer tm_your_api_key" \ "https://tracemapper.com/api/v1/trace?dest=8.8.8.8" # Gespeicherte Traces auflisten 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"])