Riferimento per sviluppatori

Ricerca WHOIS Documentazione API

Ricerca WHOIS Documentazione API: Ottieni informazioni WHOIS per un dominio inclusi registrar, date e stato.

Ricerca WHOIS

Ottieni informazioni WHOIS per un dominio inclusi registrar, date e stato.

Nota sulla privacy: Le informazioni di contatto possono essere redatte a causa del GDPR e di altre normative sulla privacy. L'API rileva automaticamente quando vengono utilizzati servizi di privacy/proxy e restituisce un oggetto privacy con i dettagli del rilevamento.
GET /v1/whois 2 Crediti

Parametri di query

ParametroTipoDescrizione
domain obbligatorio string Nome di dominio completo (ad es., example.com)

Campi di risposta

CampoTipoDescrizione
registeredbooleanSe il dominio è registrato
registrarstringNome registrar
created_datestringData di creazione ISO 8601
expiry_datestringData di scadenza ISO 8601
statusarrayCodici di stato EPP
nameserversarrayNameserver autorevoli
contactsobjectContatti registrante, admin, tech, fatturazione
privacyobjectRilevamento protezione privacy

Richiesta di esempio

curl "https://domscan.net/v1/whois?domain=github.com"
const response = await fetch(
  "https://domscan.net/v1/whois?domain=github.com"
);
const data = await response.json();

console.log(`Registrar: ${data.registrar}`);
console.log(`Created: ${data.created_date}`);
console.log(`Expires: ${data.expiry_date}`);
console.log(`Nameservers: ${data.nameservers.join(', ')}`);

// Check for privacy protection
if (data.privacy.is_private) {
  console.log(`Privacy service: ${data.privacy.privacy_service}`);
}
import requests
from datetime import datetime

response = requests.get(
    "https://domscan.net/v1/whois",
    params={"domain": "github.com"}
)
data = response.json()

# Calculate days until expiration
expiry = datetime.fromisoformat(data['expiry_date'].replace('Z', '+00:00'))
days_left = (expiry - datetime.now(expiry.tzinfo)).days

print(f"Registrar: {data['registrar']}")
print(f"Expires in {days_left} days")
print(f"Privacy protected: {data['privacy']['is_private']}")
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    resp, _ := http.Get("https://domscan.net/v1/whois?domain=github.com")
    defer resp.Body.Close()

    var data map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&data)

    fmt.Printf("Registrar: %s\n", data["registrar"])
    fmt.Printf("Created: %s\n", data["created_date"])
    fmt.Printf("Expires: %s\n", data["expiry_date"])
}
require 'net/http'
require 'json'
require 'date'

uri = URI("https://domscan.net/v1/whois?domain=github.com")
response = Net::HTTP.get_response(uri)
data = JSON.parse(response.body)

expiry = DateTime.parse(data['expiry_date'])
days_left = (expiry - DateTime.now).to_i

puts "Registrar: #{data['registrar']}"
puts "Expires in #{days_left} days"

Risposta di esempio

{
                "domain": "example.com",
                "registered": true,
                "registrar": "RESERVED-Internet Assigned Numbers Authority",
                "registrar_url": "https://www.iana.org",
                "registrar_iana_id": "376",
                "created_date": "1995-08-14T04:00:00Z",
                "updated_date": "2023-08-14T07:01:38Z",
                "expiry_date": "2024-08-13T04:00:00Z",
                "status": ["clientDeleteProhibited", "serverUpdateProhibited"],
                "nameservers": ["a.iana-servers.net", "b.iana-servers.net"],
                "dnssec": true,
                "contacts": {
                "registrant": {
                "name": "REDACTED FOR PRIVACY",
                "organization": "Internet Assigned Numbers Authority",
                "email": null,
                "phone": null,
                "address": {
                "country": "US"
                },
                "role": "registrant"
                },
                "admin": { "name": "Domain Administrator", "email": "admin@example.org" },
                "tech": { "name": "Technical Contact", "email": "tech@example.org" },
                "billing": null
                },
                "privacy": {
                "is_private": false,
                "privacy_service": null,
                "detected_patterns": []
                },
                "summary": {
                "has_registrant": true,
                "has_admin": true,
                "has_tech": true,
                "has_billing": false,
                "contact_count": 3,
                "is_privacy_protected": false
                },
                "raw_rdap_link": "https://rdap.verisign.com/com/v1/domain/example.com",
                "checked_at": "2025-01-07T10:30:00Z",
                "query_time_ms": 145
                }
POST /v1/whois/bulk 1 base + 1/domain

Ricerca WHOIS bulk per più domini (max 20 per richiesta).

Corpo richiesta

{
                "domains": ["example.com", "google.com", "github.com"]
                }

Campi di risposta

Campo Tipo
results[] object[]
results[] object
results[].domain string
results[].registrar string
results[].created_date string
results[].updated_date string
results[].expiry_date string
results[].nameservers[] string[]
results[].status[] string[]
results[].raw string
meta object
meta.total integer
meta.successful integer
meta.duration_ms integer

Risposta di esempio

{
  "results": [
    {
      "domain": "example.com",
      "registrar": "string",
      "created_date": "2026-04-15T12:00:00Z",
      "updated_date": "2026-04-15T12:00:00Z",
      "expiry_date": "2026-04-15T12:00:00Z",
      "nameservers": [
        "string"
      ],
      "status": [
        "string"
      ],
      "raw": "string"
    }
  ],
  "meta": {
    "total": 1,
    "successful": 1,
    "duration_ms": 1
  }
}
GET /v1/rdap

Parametri di query

Parametro Tipo obbligatorio
query string facoltativo
type string facoltativo
domain string facoltativo

Campi di risposta

Campo Tipo
query string
type string
status string
rdap object
rdap.objectClassName string
rdap.handle string
rdap.name string
rdap.startAddress string
rdap.endAddress string
rdap.ipVersion string

Richiesta di esempio

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/rdap?query=example.com"

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/rdap?type=ip&query=8.8.8.8"

curl -G -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/rdap" \
  --data "type=ip" \
  --data-urlencode "query=2001:4860:4860::8888/128"

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/rdap?type=autnum&query=AS174"

Risposta di esempio

{
  "query": "8.8.8.8",
  "type": "ip",
  "status": "found",
  "rdap": {
    "objectClassName": "ip network",
    "handle": "NET-8-8-8-0-2",
    "name": "LVLT-GOGL-8-8-8",
    "startAddress": "8.8.8.0",
    "endAddress": "8.8.8.255",
    "ipVersion": "v4"
  }
}
GET /v1/whois/history

Parametri di query

Parametro Tipo obbligatorio
domain string obbligatorio
limit integer facoltativo

Campi di risposta

Campo Tipo
domain string
total_snapshots integer
first_seen string | null
last_seen string | null
snapshots[] object[]
snapshots[] object
snapshots[].id integer
snapshots[].registrar string | null
snapshots[].expiry_date string | null
snapshots[].nameservers[] string[]
snapshots[].dnssec boolean
snapshots[].transfer_locked boolean
snapshots[].privacy_protected boolean
snapshots[].snapshot_date string
snapshots[].changes_from_previous[] object[]
snapshots[].changes_from_previous[] object
snapshots[].changes_from_previous[].field string
snapshots[].changes_from_previous[].old_value string | null
snapshots[].changes_from_previous[].new_value string | null
summary object
summary.registrar_changes integer
summary.nameserver_changes integer
summary.expiry_extensions integer
summary.privacy_toggles integer
summary.status_changes integer

Richiesta di esempio

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/whois/history?domain=example.com&limit=25"

Risposta di esempio

{
  "domain": "example.com",
  "total_snapshots": 1,
  "first_seen": "string",
  "last_seen": "string",
  "snapshots": [
    {
      "id": 1,
      "registrar": "string",
      "expiry_date": "2026-04-15",
      "nameservers": [
        "string"
      ],
      "dnssec": true,
      "transfer_locked": true,
      "privacy_protected": true,
      "snapshot_date": "2026-04-15",
      "changes_from_previous": [
        {
          "field": "string",
          "old_value": "string",
          "new_value": "string"
        }
      ]
    }
  ],
  "summary": {
    "registrar_changes": 1,
    "nameserver_changes": 1,
    "expiry_extensions": 1,
    "privacy_toggles": 1,
    "status_changes": 1
  }
}

Utilizzato da persone di aziende straordinarie

VercelLLM PulseOLXCasa ModernaPipeCal.comBeehiivSnykTogglRemoteSprigDeel