Referência de Programador

Consulta WHOIS Documentação da API

Consulta WHOIS Documentação da API: Obtenha informações de WHOIS para um domínio incluindo registador, datas e estado.

Consulta WHOIS

Obtenha informações de WHOIS para um domínio incluindo registador, datas e estado.

Nota de Privacidade: Informações de contato podem ser redatadas devido ao GDPR e outras regulamentações de privacidade. A API detecta automaticamente quando serviços de privacidade/proxy estão sendo usados e retorna um objeto privacy com detalhes de detecção.
GET /v1/whois 2 Créditos

Parâmetros de Consulta

ParâmetroTipoDescrição
domain obrigatório string Full nome de domínio (e.g., example.com)

Campos de Resposta

CampoTipoDescrição
registeredbooleanWhether domínio is registered
registrarstringRegistrador name
created_datestringData de criação da ISO 8601
expiry_datestringData de validade da ISO 8601
statusarrayCódigos de status EPP
nameserversarrayServidores de nomes autorizados
contactsobjectRegistrante, administrador, técnico, contatos de faturamento
privacyobjectPrivacidade protection detection

Pedido de Exemplo

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"

Resposta de Exemplo

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

Bulk WHOIS lookup for multiple domínios (max 20 per request).

Corpo do Pedido

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

Campos de Resposta

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

Resposta de Exemplo

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

Parâmetros de Consulta

Parâmetro Tipo obrigatório
query string opcional
type string opcional
domain string opcional

Campos de Resposta

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

Pedido de Exemplo

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"

Resposta de Exemplo

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

Parâmetros de Consulta

Parâmetro Tipo obrigatório
domain string obrigatório
limit integer opcional

Campos de Resposta

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

Pedido de Exemplo

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

Resposta de Exemplo

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

Usado por pessoas em empresas incríveis

VercelLLM PulseOLXCasa ModernaPipeCal.comBeehiivSnykTogglRemoteSprigDeel