Référence Développeur

Recherche WHOIS Documentation de l'API

Recherche WHOIS Documentation de l'API: Obtenez des informations WHOIS pour un domaine incluant le registraire, les dates et le statut.

Recherche WHOIS

Obtenez des informations WHOIS pour un domaine incluant le registraire, les dates et le statut.

Note de confidentialité : Les informations de contact peuvent être supprimées en raison du RGPD et d'autres réglementations de confidentialité. L'API détecte automatiquement lorsque des services de confidentialité/proxy sont utilisés et retourne un objet privacy avec les détails de la détection.
GET /v1/whois 2 Crédits

Paramètres de Requête

ParamètreTypeDescription
domain requis string Nom de domaine complet (par exemple, example.com)

Champs de Réponse

ChampTypeDescription
registeredbooleanSi le domaine est enregistré
registrarstringNom du registraire
created_datestringDate de création ISO 8601
expiry_datestringDate d'expiration ISO 8601
statusarrayCodes d'état EPP
nameserversarrayServeurs de noms autoritaires
contactsobjectTitulaire, administrateur, technique, contacts de facturation
privacyobjectDétection de la protection de la vie privée

Exemple de Requête

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"

Exemple de Réponse

{
                "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

Recherche WHOIS en masse pour plusieurs domaines (max 20 par demande).

Corps de la requête

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

Champs de Réponse

Champ Type
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

Exemple de Réponse

{
  "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

Paramètres de Requête

Paramètre Type requis
query string optionnel
type string optionnel
domain string optionnel

Champs de Réponse

Champ Type
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

Exemple de Requête

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"

Exemple de Réponse

{
  "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

Paramètres de Requête

Paramètre Type requis
domain string requis
limit integer optionnel

Champs de Réponse

Champ Type
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

Exemple de Requête

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

Exemple de Réponse

{
  "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
  }
}

Utilisé par les gens des meilleures entreprises

VercelLLM PulseOLXCasa ModernaPipeCal.comBeehiivSnykTogglRemoteSprigDeel