API v1

API-Dokumentation

Öffentliche REST-API für IP-Geolokalisierung, Netzwerktools und Sicherheitsüberprüfung.

REST JSON SSE CORS

Base URL : https://mon-ip.dev

Authentifizierung

API-Schlüssel

Die API ist öffentlich ohne Authentifizierung zugänglich. Für höhere Limits erstellen Sie ein Konto und generieren einen API-Schlüssel in Ihrem Dashboard. Verwendung.

Verwendung

Übermitteln Sie Ihren Schlüssel über den Authorization-Header: Authorization

HTTP-Header
Authorization: Bearer mk_votre_cle_api
Beispiel
curl
$curl https://mon-ip.dev/api/v1/json -H "Authorization: Bearer mk_a1b2c3d4e5f6..."

Limits

Rate Limiting

Anfragen sind je nach Zugangsstufe begrenzt. Bei Überschreitung gibt die API einen 429 Too Many Requests Fehler zurück. 429 Too Many Requests

Stufe Pro Stunde Pro Tag Max. Schlüssel
Public 100 / IP 500 / IP —
Free 1 000 10 000 5
Pro demnächst
10 000 100 000 20
Antwort-Header

Jede Antwort enthält Header zur Verfolgung Ihres Verbrauchs:

X-RateLimit-Limit Maximale erlaubte Anfragen pro Stunde
X-RateLimit-Remaining Verbleibende Anfragen im aktuellen Fenster
X-RateLimit-Reset UNIX-Zeitstempel des Zähler-Resets

Fehler

Fehlercodes

Im Fehlerfall enthält die Antwort ein error-Feld mit einer beschreibenden Nachricht. error

400 Fehlender oder ungültiger Parameter
401 Ungültiger oder widerrufener API-Schlüssel
429 Anfragelimit überschritten (Rate Limit)
502 Verbindungsfehler zum internen Dienst
500 Interner Serverfehler
Format
429 Too Many Requests
{
  "error": "Rate limit exceeded",
  "limit": 100,
  "reset": 1709913600
}

IP & Geolokalisierung

GET /api/v1/json

Gibt Geolokalisierungs-, ISP- und Sicherheitsinformationen der Client-IP zurück.

JSON-Antwort
ip string IPv4-Adresse
ipv6 string IPv6-Adresse (falls verfügbar)
hostname string Reverse DNS
type string IP-Typ (Residential, Business, etc.)
class string IP-Klasse (A, B, C)
location object country, countryCode, city, continent, latitude, longitude, timezone, postalCode
network object provider, asn
security object Sicherheitsindikatoren (Proxy, VPN, Tor, etc.)
Beispiel
Anfrage
$curl https://mon-ip.dev/api/v1/json
Antwort
{
  "ip": "203.0.113.42",
  "hostname": "42.113.0.203.example.net",
  "type": "Residential",
  "class": "C",
  "location": {
    "country": "France",
    "countryCode": "FR",
    "city": "Paris",
    "latitude": 48.8566,
    "longitude": 2.3522,
    "timezone": "Europe/Paris"
  },
  "network": { "provider": "Orange SA", "asn": "AS3215" },
  "security": { "proxy": false, "vpn": false, "tor": false }
}
GET /api/v1/ipv6

Erkennt, ob der Client über IPv4 oder IPv6 verbunden ist.

JSON-Antwort
ip string Client-IP-Adresse
is_ipv4 boolean true wenn IPv4
is_ipv6 boolean true wenn natives IPv6
protocol string "IPv4" oder "IPv6"
timestamp string ISO 8601 Zeitstempel
Beispiel
Anfrage
$curl https://mon-ip.dev/api/v1/ipv6
Antwort
{
  "ip": "203.0.113.42",
  "is_ipv4": true,
  "is_ipv6": false,
  "protocol": "IPv4",
  "timestamp": "2026-03-09T14:30:00Z"
}

DNS & Domains

GET /api/v1/dns

Führt eine DNS-Auflösung für einen bestimmten Eintragstyp durch.

Parameter
host erforderlich Domainname (z.B. google.com)
record_type erforderlich Typ: A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRV
JSON-Antwort
host string Abgefragte Domain
records array Liste von Einträgen: record_type, value, ttl
Beispiel
Anfrage
$curl "https://mon-ip.dev/api/v1/dns?host=google.com&record_type=MX"
Antwort
{
  "host": "google.com",
  "records": [
    { "record_type": "MX", "value": "10 smtp.google.com", "ttl": 300 }
  ]
}
GET /api/v1/whois

Gibt die WHOIS-Informationen einer Domain oder IP zurück.

Parameter
target erforderlich Domain oder IP (z.B. google.com)
JSON-Antwort
target string Abgefragtes Ziel
raw string Rohe WHOIS-Antwort
parsed object domain_name, registrar, creation_date, expiration_date, name_servers, status, dnssec
cached boolean true wenn das Ergebnis aus dem Cache stammt
Beispiel
Anfrage
$curl https://mon-ip.dev/api/v1/whois?target=google.com
Antwort
{
  "target": "google.com",
  "parsed": {
    "domain_name": "google.com",
    "registrar": "MarkMonitor Inc.",
    "creation_date": "1997-09-15",
    "expiration_date": "2028-09-14",
    "name_servers": ["ns1.google.com", "ns2.google.com"],
    "dnssec": "unsigned"
  },
  "cached": false
}
GET /api/v1/ssl

Prüft das SSL/TLS-Zertifikat einer Domain durch Verbindung zu Port 443.

Parameter
host erforderlich Domainname (z.B. google.com)
JSON-Antwort
host string Getestete Domain
valid boolean true wenn das Zertifikat gültig ist
days_remaining number Tage bis zum Ablauf
subject string Betreff (CN)
issuer string Aussteller (CN)
issuer_org string Organisation des Ausstellers
valid_from string Startdatum (ISO 8601)
valid_to string Ablaufdatum (ISO 8601)
serial string Seriennummer
fingerprint string SHA-256-Fingerabdruck
protocol string TLS-Protokoll (z.B. TLSv1.3)
bits number | null Schlüsselgröße in Bits
alt_names string[] Alternative Namen (SAN)
Beispiel
Anfrage
$curl https://mon-ip.dev/api/v1/ssl?host=google.com
Antwort
{
  "host": "google.com",
  "valid": true,
  "days_remaining": 62,
  "subject": "*.google.com",
  "issuer": "GTS CA 1C3",
  "protocol": "TLSv1.3",
  "alt_names": ["*.google.com", "google.com"]
}

Sicherheit

GET /api/v1/blacklist

Prüft, ob eine IPv4-Adresse in 8 DNS-Blacklists aufgeführt ist.

Parameter
ip erforderlich IPv4-Adresse (z.B. 8.8.8.8)
JSON-Antwort
ip string Getestete IP
total number Anzahl getesteter Listen
listed number Anzahl der Listen, in denen die IP erscheint
clean boolean true wenn die IP in keiner Liste steht
results array Detail pro Liste: name, zone, listed
Beispiel
Anfrage
$curl https://mon-ip.dev/api/v1/blacklist?ip=8.8.8.8
Antwort
{
  "ip": "8.8.8.8",
  "total": 8,
  "listed": 0,
  "clean": true,
  "results": [
    { "name": "Spamhaus ZEN", "zone": "zen.spamhaus.org", "listed": false }
  ]
}

Netzwerk

GET /api/v1/ping SSE

Sendet ICMP-Pakete und gibt die Ergebnisse in Echtzeit über Server-Sent Events zurück.

Parameter
host erforderlich Host oder IP (z.B. 8.8.8.8)
count optional Anzahl der Pakete (Standard: 4)
SSE-Ereignisse
start host, resolved_ip
reply seq, ip, time_ms, ttl
timeout seq
done alive, packets_sent, packets_received, packet_loss, min_ms, avg_ms, max_ms
error message
Beispiel
Anfrage
$curl -N "https://mon-ip.dev/api/v1/ping?host=8.8.8.8&count=4"
Antwort
data: {"type":"start","host":"8.8.8.8","resolved_ip":"8.8.8.8"}
data: {"type":"reply","seq":1,"ip":"8.8.8.8","time_ms":12.4,"ttl":118}
data: {"type":"reply","seq":2,"ip":"8.8.8.8","time_ms":11.8,"ttl":118}
data: {"type":"done","alive":true,"packets_sent":4,"packets_received":4,"packet_loss":0,"min_ms":11.2,"avg_ms":12.0,"max_ms":12.8}
GET /api/v1/traceroute SSE

Verfolgt den Netzwerkpfad zu einem Host in Echtzeit über Server-Sent Events.

Parameter
host erforderlich Host oder IP (z.B. google.com)
SSE-Ereignisse
start host, resolved_ip
hop hop, ip, hostname, rtt_ms
done total_hops, reached
error message
Beispiel
Anfrage
$curl -N https://mon-ip.dev/api/v1/traceroute?host=google.com
Antwort
data: {"type":"start","host":"google.com","resolved_ip":"142.250.179.110"}
data: {"type":"hop","hop":1,"ip":"192.168.1.1","hostname":"gateway","rtt_ms":1.2}
data: {"type":"hop","hop":2,"ip":"10.0.0.1","hostname":"isp-router","rtt_ms":5.4}
data: {"type":"done","total_hops":12,"reached":true}

Hinweise

CORS

Alle Endpunkte akzeptieren Cross-Origin-Anfragen (CORS).

SSE

Die Ping- und Traceroute-Endpunkte verwenden Server-Sent Events. EventSource / curl -N

KEY

Ihr API-Schlüssel wird nur einmal bei der Erstellung angezeigt. Bewahren Sie ihn sicher auf.

SEC

API-Schlüssel werden mit AES-256-GCM im Ruhezustand verschlüsselt.