Documentation API
API REST publique pour la géolocalisation IP, les outils réseau et la vérification de sécurité.
Base URL : https://mon-ip.dev
Authentification
Clé API
L'API est accessible publiquement sans authentification. Pour bénéficier de limites plus élevées, créez un compte et générez une clé API depuis votre tableau de bord.
Transmettez votre clé via le header Authorization :
Limites
Rate limiting
Les requêtes sont limitées selon votre niveau d'accès. En cas de dépassement, l'API retourne une erreur 429 Too Many Requests.
Chaque réponse inclut des headers pour suivre votre consommation :
X-RateLimit-LimitNombre max de requêtes autorisées par heureX-RateLimit-RemainingRequêtes restantes dans la fenêtre couranteX-RateLimit-ResetTimestamp UNIX de réinitialisation du compteurErreurs
Codes d'erreur
En cas d'erreur, la réponse contient un champ error avec un message descriptif.
400Paramètre manquant ou invalide401Clé API invalide ou révoquée429Limite de requêtes dépassée (rate limit)502Erreur de connexion au service interne500Erreur interne du serveur{
"error": "Rate limit exceeded",
"limit": 100,
"reset": 1709913600
}IP & Géolocalisation
/api/v1/jsonRetourne les informations de géolocalisation, FAI et sécurité de l'IP du client.
ipstringAdresse IPv4ipv6stringAdresse IPv6 (si disponible)hostnamestringReverse DNStypestringType d'IP (Residential, Business, etc.)classstringClasse d'IP (A, B, C)locationobjectcountry, countryCode, city, continent, latitude, longitude, timezone, postalCodenetworkobjectprovider, asnsecurityobjectIndicateurs de sécurité (proxy, VPN, Tor, etc.){
"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 }
}/api/v1/ipv6Détecte si le client se connecte en IPv4 ou IPv6.
ipstringAdresse IP du clientis_ipv4booleantrue si IPv4is_ipv6booleantrue si IPv6 natifprotocolstring"IPv4" ou "IPv6"timestampstringHorodatage ISO 8601{
"ip": "203.0.113.42",
"is_ipv4": true,
"is_ipv6": false,
"protocol": "IPv4",
"timestamp": "2026-03-09T14:30:00Z"
}DNS & Domaines
/api/v1/dnsEffectue une résolution DNS pour un type d'enregistrement donné.
hostrequisNom de domaine (ex: google.com)record_typerequisType : A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRVhoststringDomaine interrogérecordsarrayListe d'enregistrements : record_type, value, ttl{
"host": "google.com",
"records": [
{ "record_type": "MX", "value": "10 smtp.google.com", "ttl": 300 }
]
}/api/v1/whoisRetourne les informations WHOIS d'un domaine ou d'une IP.
targetrequisDomaine ou IP (ex: google.com)targetstringCible interrogéerawstringRéponse WHOIS bruteparsedobjectdomain_name, registrar, creation_date, expiration_date, name_servers, status, dnsseccachedbooleantrue si le résultat provient du cache{
"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
}/api/v1/sslVérifie le certificat SSL/TLS d'un domaine en se connectant au port 443.
hostrequisNom de domaine (ex: google.com)hoststringDomaine testévalidbooleantrue si le certificat est validedays_remainingnumberJours avant expirationsubjectstringSujet (CN)issuerstringÉmetteur (CN)issuer_orgstringOrganisation de l'émetteurvalid_fromstringDate de début (ISO 8601)valid_tostringDate d'expiration (ISO 8601)serialstringNuméro de sériefingerprintstringEmpreinte SHA-256protocolstringProtocole TLS (ex: TLSv1.3)bitsnumber | nullTaille de clé en bitsalt_namesstring[]Noms alternatifs (SAN){
"host": "google.com",
"valid": true,
"days_remaining": 62,
"subject": "*.google.com",
"issuer": "GTS CA 1C3",
"protocol": "TLSv1.3",
"alt_names": ["*.google.com", "google.com"]
}Sécurité
/api/v1/blacklistVérifie si une adresse IPv4 est listée dans 8 listes noires DNS.
iprequisAdresse IPv4 (ex: 8.8.8.8)ipstringIP testéetotalnumberNombre de listes testéeslistednumberNombre de listes où l'IP apparaîtcleanbooleantrue si l'IP n'est dans aucune listeresultsarrayDétail par liste : name, zone, listed{
"ip": "8.8.8.8",
"total": 8,
"listed": 0,
"clean": true,
"results": [
{ "name": "Spamhaus ZEN", "zone": "zen.spamhaus.org", "listed": false }
]
}Réseau
/api/v1/pingSSEEnvoie des paquets ICMP et retourne les résultats en temps réel via Server-Sent Events.
hostrequisHôte ou IP (ex: 8.8.8.8)countoptionnelNombre de paquets (défaut: 4)starthost, resolved_ipreplyseq, ip, time_ms, ttltimeoutseqdonealive, packets_sent, packets_received, packet_loss, min_ms, avg_ms, max_mserrormessagedata: {"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}/api/v1/tracerouteSSETrace le chemin réseau vers un hôte en temps réel via Server-Sent Events.
hostrequisHôte ou IP (ex: google.com)starthost, resolved_iphophop, ip, hostname, rtt_msdonetotal_hops, reachederrormessagedata: {"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}Notes
Tous les endpoints acceptent les requêtes cross-origin (CORS).
Les endpoints ping et traceroute utilisent Server-Sent Events. Utilisez EventSource en JavaScript ou curl -N en CLI.
Votre clé API est affichée une seule fois lors de sa création. Conservez-la précieusement. Vous pouvez la révoquer et en créer une nouvelle à tout moment.
Les clés API sont chiffrées en AES-256-GCM au repos. Seul un index aveugle HMAC-SHA256 est stocké pour la recherche.
