Entwickler-Referenz
WHOIS-Lookup API-Dokumentation
WHOIS-Lookup API-Dokumentation: Erhalten Sie WHOIS-Informationen für eine Domain, einschließlich Registrar, Daten und Status.
WHOIS-Lookup
Erhalten Sie WHOIS-Informationen für eine Domain, einschließlich Registrar, Daten und Status.
Datenschutzhinweis: Kontaktinformationen können aufgrund von GDPR und anderen Datenschutzbestimmungen geschwärzt werden. Die API erkennt automatisch, wenn Datenschutz-/Proxy-Services verwendet werden, und gibt ein
privacy Objekt mit Erkennungsdetails zurück.
GET
/v1/whois
2 Credits
Abfrageparameter
| Parameter | Typ | Beschreibung |
|---|---|---|
| domain erforderlich | string | Vollständiger Domainname (z. B. example.com) |
Antwort-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
registered | boolean | Ob Domain registriert ist |
registrar | string | Name des Registrars |
created_date | string | ISO 8601-Erstellungsdatum |
expiry_date | string | ISO 8601-Ablaufdatum |
status | array | EPP-Statuscodes |
nameservers | array | Autoritative Nameserver |
contacts | object | Registrant-, Admin-, Tech-, Abrechnungskontakte |
privacy | object | Datenschutzschutz-Erkennung |
Beispielanfrage
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"
Beispielantwort
{
"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
Massen-WHOIS-Abfrage für mehrere Domains (max. 20 pro Anfrage).
Request Body
{
"domains": ["example.com", "google.com", "github.com"]
}
Antwort-Felder
| Feld | Typ |
|---|---|
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 |
Beispielantwort
{
"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
Abfrageparameter
| Parameter | Typ | erforderlich |
|---|---|---|
| query | string | optional |
| type | string | optional |
| domain | string | optional |
Antwort-Felder
| Feld | Typ |
|---|---|
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 |
Beispielanfrage
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"
Beispielantwort
{
"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
Abfrageparameter
| Parameter | Typ | erforderlich |
|---|---|---|
| domain | string | erforderlich |
| limit | integer | optional |
Antwort-Felder
| Feld | Typ |
|---|---|
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 |
Beispielanfrage
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/whois/history?domain=example.com&limit=25"
Beispielantwort
{
"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
}
}