API v1

Documentazione API

API REST pubblica per geolocalizzazione IP, strumenti di rete e verifica della sicurezza.

REST JSON SSE CORS

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.

Utilizzo

Trasmetti la tua chiave tramite l'header Authorization: Authorization

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

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

Livello Per ora Per giorno Chiavi max
Public 100 / IP 500 / IP —
Free 1 000 10 000 5
Pro in arrivo
10 000 100 000 20
Header di risposta

Ogni risposta include header per monitorare il tuo consumo:

X-RateLimit-Limit Numero massimo di richieste consentite all'ora
X-RateLimit-Remaining Richieste rimanenti nella finestra corrente
X-RateLimit-Reset Timestamp UNIX di reset del contatore

Errori

Codici di errore

In caso di errore, la risposta contiene un campo error con un messaggio descrittivo. error

400 Parametro mancante o non valido
401 Chiave API non valida o revocata
429 Limite di richieste superato (rate limit)
502 Errore di connessione al servizio interno
500 Errore interno del server
Formato
429 Too Many Requests
{
  "error": "Rate limit exceeded",
  "limit": 100,
  "reset": 1709913600
}

IP e Geolocalizzazione

GET /api/v1/json

Restituisce le informazioni di geolocalizzazione, ISP e sicurezza dell'IP del client.

Risposta JSON
ip string Indirizzo IPv4
ipv6 string Indirizzo IPv6 (se disponibile)
hostname string Reverse DNS
type string Tipo di IP (Residential, Business, ecc.)
class string Classe di IP (A, B, C)
location object country, countryCode, city, continent, latitude, longitude, timezone, postalCode
network object provider, asn
security object Indicatori di sicurezza (proxy, VPN, Tor, ecc.)
Esempio
Richiesta
$curl https://mon-ip.dev/api/v1/json
Risposta
{
  "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

Rileva se il client si connette tramite IPv4 o IPv6.

Risposta JSON
ip string Indirizzo IP del client
is_ipv4 boolean true se IPv4
is_ipv6 boolean true se IPv6 nativo
protocol string "IPv4" o "IPv6"
timestamp string Timestamp ISO 8601
Esempio
Richiesta
$curl https://mon-ip.dev/api/v1/ipv6
Risposta
{
  "ip": "203.0.113.42",
  "is_ipv4": true,
  "is_ipv6": false,
  "protocol": "IPv4",
  "timestamp": "2026-03-09T14:30:00Z"
}

DNS e Domini

GET /api/v1/dns

Esegue una risoluzione DNS per un tipo di record specificato.

Parametri
host richiesto Nome di dominio (es: google.com)
record_type richiesto Tipo: A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRV
Risposta JSON
host string Dominio interrogato
records array Elenco di record: record_type, value, ttl
Esempio
Richiesta
$curl "https://mon-ip.dev/api/v1/dns?host=google.com&record_type=MX"
Risposta
{
  "host": "google.com",
  "records": [
    { "record_type": "MX", "value": "10 smtp.google.com", "ttl": 300 }
  ]
}
GET /api/v1/whois

Restituisce le informazioni WHOIS di un dominio o di un IP.

Parametri
target richiesto Dominio o IP (es: google.com)
Risposta JSON
target string Obiettivo interrogato
raw string Risposta WHOIS grezza
parsed object domain_name, registrar, creation_date, expiration_date, name_servers, status, dnssec
cached boolean true se il risultato proviene dalla cache
Esempio
Richiesta
$curl https://mon-ip.dev/api/v1/whois?target=google.com
Risposta
{
  "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

Verifica il certificato SSL/TLS di un dominio connettendosi alla porta 443.

Parametri
host richiesto Nome di dominio (es: google.com)
Risposta JSON
host string Dominio testato
valid boolean true se il certificato è valido
days_remaining number Giorni alla scadenza
subject string Soggetto (CN)
issuer string Emittente (CN)
issuer_org string Organizzazione dell'emittente
valid_from string Data di inizio (ISO 8601)
valid_to string Data di scadenza (ISO 8601)
serial string Numero di serie
fingerprint string Impronta SHA-256
protocol string Protocollo TLS (es: TLSv1.3)
bits number | null Dimensione chiave in bit
alt_names string[] Nomi alternativi (SAN)
Esempio
Richiesta
$curl https://mon-ip.dev/api/v1/ssl?host=google.com
Risposta
{
  "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

GET /api/v1/blacklist

Verifica se un indirizzo IPv4 è elencato in 8 blacklist DNS.

Parametri
ip richiesto Indirizzo IPv4 (es: 8.8.8.8)
Risposta JSON
ip string IP testato
total number Numero di liste testate
listed number Numero di liste in cui appare l'IP
clean boolean true se l'IP non è in nessuna lista
results array Dettaglio per lista: name, zone, listed
Esempio
Richiesta
$curl https://mon-ip.dev/api/v1/blacklist?ip=8.8.8.8
Risposta
{
  "ip": "8.8.8.8",
  "total": 8,
  "listed": 0,
  "clean": true,
  "results": [
    { "name": "Spamhaus ZEN", "zone": "zen.spamhaus.org", "listed": false }
  ]
}

Rete

GET /api/v1/ping SSE

Invia pacchetti ICMP e restituisce i risultati in tempo reale tramite Server-Sent Events.

Parametri
host richiesto Host o IP (es: 8.8.8.8)
count opzionale Numero di pacchetti (predefinito: 4)
Eventi SSE
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
Esempio
Richiesta
$curl -N "https://mon-ip.dev/api/v1/ping?host=8.8.8.8&count=4"
Risposta
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

Traccia il percorso di rete verso un host in tempo reale tramite Server-Sent Events.

Parametri
host richiesto Host o IP (es: google.com)
Eventi SSE
start host, resolved_ip
hop hop, ip, hostname, rtt_ms
done total_hops, reached
error message
Esempio
Richiesta
$curl -N https://mon-ip.dev/api/v1/traceroute?host=google.com
Risposta
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}

Note

CORS

Tutti gli endpoint accettano richieste cross-origin (CORS).

SSE

Gli endpoint ping e traceroute utilizzano Server-Sent Events. EventSource / curl -N

KEY

La tua chiave API viene mostrata solo una volta alla creazione. Conservala con cura.

SEC

Le chiavi API sono crittografate con AES-256-GCM a riposo.