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. Utilisation.
Transmettez votre clé via le header Authorization : 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. 429 Too Many Requests
Chaque réponse inclut des headers pour suivre votre consommation :
X-RateLimit-Limit Nombre max de requêtes autorisées par heureX-RateLimit-Remaining Requêtes restantes dans la fenêtre couranteX-RateLimit-Reset Timestamp UNIX de réinitialisation du compteurErreurs
Codes d'erreur
En cas d'erreur, la réponse contient un champ error avec un message descriptif. error
400 Paramètre manquant ou invalide401 Clé API invalide ou révoquée429 Limite de requêtes dépassée (rate limit)502 Erreur de connexion au service interne500 Erreur interne du serveur{
"error": "Rate limit exceeded",
"limit": 100,
"reset": 1709913600
}IP & Géolocalisation
/api/v1/json Retourne les informations de géolocalisation, FAI et sécurité de l'IP du client.
ip string Adresse IPv4ipv6 string Adresse IPv6 (si disponible)hostname string Reverse DNStype string Type d'IP (Residential, Business, etc.)class string Classe d'IP (A, B, C)location object country, countryCode, city, continent, latitude, longitude, timezone, postalCodenetwork object provider, asnsecurity object Indicateurs 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/ipv6 Détecte si le client se connecte en IPv4 ou IPv6.
ip string Adresse IP du clientis_ipv4 boolean true si IPv4is_ipv6 boolean true si IPv6 natifprotocol string "IPv4" ou "IPv6"timestamp string Horodatage 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/dns Effectue une résolution DNS pour un type d'enregistrement donne.
host requis Nom de domaine (ex: google.com)record_type requis Type : A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRVhost string Domaine interrogerecords array Liste d'enregistrements : record_type, value, ttl{
"host": "google.com",
"records": [
{ "record_type": "MX", "value": "10 smtp.google.com", "ttl": 300 }
]
}/api/v1/whois Retourne les informations WHOIS d'un domaine ou d'une IP.
target requis Domaine ou IP (ex: google.com)target string Cible interrogéeraw string Réponse WHOIS bruteparsed object domain_name, registrar, création_date, expiration_date, name_servers, status, dnsseccached boolean true 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/ssl Vérifie le certificat SSL/TLS d'un domaine en se connectant au port 443.
host requis Nom de domaine (ex: google.com)host string Domaine testévalid boolean true si le certificat est validedays_remaining number Jours avant expirationsubject string Sujet (CN)issuer string Émetteur (CN)issuer_org string Organisation de l'émetteurvalid_from string Date de début (ISO 8601)valid_to string Date d'expiration (ISO 8601)serial string Numéro de sériefingerprint string Empreinte SHA-256protocol string Protocole TLS (ex: TLSv1.3)bits number | null Taille de clé en bitsalt_names string[] 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/blacklist Vérifie si une adresse IPv4 est listée dans 8 listes noires DNS.
ip requis Adresse IPv4 (ex: 8.8.8.8)ip string IP testéetotal number Nombre de listes testéeslisted number Nombre de listes ou l'IP apparaîtclean boolean true si l'IP n'est dans aucune listeresults array Dé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/ping SSEEnvoie des paquets ICMP et retourne les résultats en temps réel via Server-Sent Events.
host requis Hôte ou IP (ex: 8.8.8.8)count optionnel Nombre de paquets (défaut: 4)start host, resolved_ipreply seq, ip, time_ms, ttltimeout seqdone alive, packets_sent, packets_received, packet_loss, min_ms, avg_ms, max_mserror messagedata: {"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/traceroute SSETrace le chemin réseau vers un hôte en temps réel via Server-Sent Events.
host requis Hôte ou IP (ex: google.com)start host, resolved_iphop hop, ip, hostname, rtt_msdone total_hops, reachederror messagedata: {"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. EventSource / curl -N
Votre clé API est affichée une seule fois lors de sa création. Conservez-la précieusement.
Les clés API sont chiffrées en AES-256-GCM au repos.
