Documentazione API
API REST pubblica per geolocalizzazione IP, strumenti di rete e verifica della sicurezza.
Base URL : https://mon-ip.dev
Autenticazione
Chiave API
L'API è accessibile pubblicamente senza autenticazione. Per limiti più alti, crea un account e genera una chiave API dalla tua dashboard. Utilizzo.
Trasmetti la tua chiave tramite l'header Authorization: Authorization
Limiti
Rate limiting
Le richieste sono limitate in base al tuo livello di accesso. In caso di superamento, l'API restituisce un errore 429 Too Many Requests. 429 Too Many Requests
Ogni risposta include header per monitorare il tuo consumo:
X-RateLimit-Limit Numero massimo di richieste consentite all'oraX-RateLimit-Remaining Richieste rimanenti nella finestra correnteX-RateLimit-Reset Timestamp UNIX di reset del contatoreErrori
Codici di errore
In caso di errore, la risposta contiene un campo error con un messaggio descrittivo. error
400 Parametro mancante o non valido401 Chiave API non valida o revocata429 Limite di richieste superato (rate limit)502 Errore di connessione al servizio interno500 Errore interno del server{
"error": "Rate limit exceeded",
"limit": 100,
"reset": 1709913600
}IP e Geolocalizzazione
/api/v1/json Restituisce le informazioni di geolocalizzazione, ISP e sicurezza dell'IP del client.
ip string Indirizzo IPv4ipv6 string Indirizzo IPv6 (se disponibile)hostname string Reverse DNStype string Tipo di IP (Residential, Business, ecc.)class string Classe di IP (A, B, C)location object country, countryCode, city, continent, latitude, longitude, timezone, postalCodenetwork object provider, asnsecurity object Indicatori di sicurezza (proxy, VPN, Tor, ecc.){
"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 Rileva se il client si connette tramite IPv4 o IPv6.
ip string Indirizzo IP del clientis_ipv4 boolean true se IPv4is_ipv6 boolean true se IPv6 nativoprotocol string "IPv4" o "IPv6"timestamp string Timestamp ISO 8601{
"ip": "203.0.113.42",
"is_ipv4": true,
"is_ipv6": false,
"protocol": "IPv4",
"timestamp": "2026-03-09T14:30:00Z"
}DNS e Domini
/api/v1/dns Esegue una risoluzione DNS per un tipo di record specificato.
host richiesto Nome di dominio (es: google.com)record_type richiesto Tipo: A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRVhost string Dominio interrogatorecords array Elenco di record: record_type, value, ttl{
"host": "google.com",
"records": [
{ "record_type": "MX", "value": "10 smtp.google.com", "ttl": 300 }
]
}/api/v1/whois Restituisce le informazioni WHOIS di un dominio o di un IP.
target richiesto Dominio o IP (es: google.com)target string Obiettivo interrogatoraw string Risposta WHOIS grezzaparsed object domain_name, registrar, creation_date, expiration_date, name_servers, status, dnsseccached boolean true se il risultato proviene dalla 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 Verifica il certificato SSL/TLS di un dominio connettendosi alla porta 443.
host richiesto Nome di dominio (es: google.com)host string Dominio testatovalid boolean true se il certificato è validodays_remaining number Giorni alla scadenzasubject string Soggetto (CN)issuer string Emittente (CN)issuer_org string Organizzazione dell'emittentevalid_from string Data di inizio (ISO 8601)valid_to string Data di scadenza (ISO 8601)serial string Numero di seriefingerprint string Impronta SHA-256protocol string Protocollo TLS (es: TLSv1.3)bits number | null Dimensione chiave in bitalt_names string[] Nomi alternativi (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"]
}Sicurezza
/api/v1/blacklist Verifica se un indirizzo IPv4 è elencato in 8 blacklist DNS.
ip richiesto Indirizzo IPv4 (es: 8.8.8.8)ip string IP testatototal number Numero di liste testatelisted number Numero di liste in cui appare l'IPclean boolean true se l'IP non è in nessuna listaresults array Dettaglio per lista: name, zone, listed{
"ip": "8.8.8.8",
"total": 8,
"listed": 0,
"clean": true,
"results": [
{ "name": "Spamhaus ZEN", "zone": "zen.spamhaus.org", "listed": false }
]
}Rete
/api/v1/ping SSEInvia pacchetti ICMP e restituisce i risultati in tempo reale tramite Server-Sent Events.
host richiesto Host o IP (es: 8.8.8.8)count opzionale Numero di pacchetti (predefinito: 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 SSETraccia il percorso di rete verso un host in tempo reale tramite Server-Sent Events.
host richiesto Host o IP (es: 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}Note
Tutti gli endpoint accettano richieste cross-origin (CORS).
Gli endpoint ping e traceroute utilizzano Server-Sent Events. EventSource / curl -N
La tua chiave API viene mostrata solo una volta alla creazione. Conservala con cura.
Le chiavi API sono crittografate con AES-256-GCM a riposo.
