Consulta WHOIS e RDAP API
Dados de registro de qualquer domínio, endereço IP ou número de sistema autônomo, direto do registro autoritativo via RDAP. Registrador, servidores de nomes, DNSSEC, expiração e contatos de abuso em JSON simples.
Não tem uma API key?
Faça login na sua conta para criar e gerenciar suas API keys.
Guia de integração
Copie um trecho, troque sua API key e execute. Funciona em qualquer cliente HTTP — exemplos abaixo em cURL, JavaScript e Python.
/api/whoishttps://www.apipick.comRegistration data for a domain, IP address, or AS number
querystringobrigatórioA domain name, IPv4/IPv6 address, or AS number. The type is detected automatically. github.com
curl -X GET "https://www.apipick.com/api/whois" \
-H "x-api-key: YOUR_API_KEY"{
"query": "github.com",
"type": "domain",
"found": true,
"domain": "github.com",
"unicode_domain": null,
"nameservers": [
"dns1.p08.nsone.net",
"ns-421.awsdns-52.com"
],
"dnssec": false,
"handle": "1264983250_DOMAIN_COM-VRSN",
"status": [
"client delete prohibited",
"client transfer prohibited"
],
"country": null,
"registrar": "MarkMonitor Inc.",
"registered_at": "2007-10-09T18:20:50Z",
"updated_at": "2024-09-07T09:16:32Z",
"expires_at": "2026-10-09T18:20:50Z",
"contacts": [
{
"roles": [
"registrar"
],
"handle": "292",
"name": "MarkMonitor Inc.",
"organization": null,
"email": null,
"phone": null,
"address": null,
"country": null
}
],
"source": "RDAP (IANA bootstrap via rdap.org)",
"credits_used": 2,
"remaining_credits": 98
}Feita para Casos de Uso Reais
Monitoramento de expiração
Consulte seu portfólio de domínios e alerte antes das datas de renovação. Dados ao vivo do registro, sem atraso de ciclo de cache.
Due diligence de domínios
Verifique idade do registro, registrador e códigos de status antes de confiar no domínio de uma contraparte ou aprovar um fornecedor.
Denúncia de abuso
Resolva um IP ou ASN até o detentor e o contato de abuso, para que denúncias automatizadas cheguem a uma caixa que alguém lê.
Enriquecimento para agentes
Um único parâmetro cobre domínios, IPs e ASNs, o que resulta em uma definição de ferramenta limpa e única para um LLM.
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
| type | string | Tipo de consulta detectado: domain, ip ou autnum |
| found | boolean | False quando o objeto não está registrado nem alocado |
| registrar | string | null | Registrador responsável (domínios) |
| registered_at | string | null | Data de registro em ISO 8601 |
| expires_at | string | null | Data de expiração em ISO 8601 (domínios) |
| updated_at | string | null | Data ISO 8601 da última alteração do registro |
| status | string[] | Códigos de status EPP, ex.: client transfer prohibited |
| nameservers | string[] | Servidores de nomes delegados (domínios) |
| dnssec | boolean | null | Se a delegação está assinada com DNSSEC |
| cidr | string[] | Blocos CIDR da alocação (consultas de IP) |
| asn | integer | null | Número de sistema autônomo (consultas de ASN) |
| contacts[] | object[] | Entidades jCard achatadas com papéis, organização, e-mail e telefone |
| credits_used | integer | Créditos deduzidos por esta requisição |
| remaining_credits | integer | Créditos restantes na sua conta |
Rate limits
O throttling é por API key, em janela deslizante de 60 segundos. Ao atingir o limite, você recebe um 429 limpo com um header Retry-After.
30req/min
Por API key, por endpoint. Janela deslizante de 60 segundos.
3concurrent
Máximo de requisições simultâneas em andamento por API key.
X-RateLimit-LimitMáximo de requisições permitidas por minutoX-RateLimit-RemainingRequisições restantes na janela atualX-RateLimit-ResetSegundos até a janela atual reiniciarRetry-AfterSegundos a aguardar antes de tentar novamente (apenas em 429)HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded: 30 requests/minute per API key. Retry after 12s.",
"retry_after": 12
}Fonte dos dados e licença
Os registros vêm da autoridade competente para cada objeto — Verisign, Nominet e os demais operadores de registro para domínios; ARIN, RIPE NCC, APNIC, LACNIC e AFRINIC para faixas de IP e números de sistema autônomo — resolvidos pelo bootstrap RDAP da IANA. Nada é armazenado em cache ou republicado: você vê o que o registro entrega no momento da requisição.
Perguntas Frequentes
P: Qual a diferença para o WHOIS clássico?
R: O RDAP é o substituto do WHOIS na porta 43, definido pela IETF. Onde o WHOIS devolve texto livre que muda conforme o registro e precisa ser raspado, o RDAP devolve JSON estruturado com esquema padrão, sobre HTTPS e com 404 corretos. Consultamos o registro autoritativo pelo bootstrap da IANA e achatamos os blocos de contato jCard em objetos simples.
P: Por que os contatos do titular quase sempre faltam?
R: Desde o RGPD, a maioria dos registros gTLD oculta nome, e-mail e endereço do titular no RDAP público e publica apenas o registrador responsável e um contato de abuso. Essa ocultação é a resposta do registro, não uma lacuna desta API — nenhum provedor de WHOIS pode mostrar dados que o registro não publica.
P: Funciona para endereços IP e números de sistema autônomo?
R: Sim. Passe um endereço IPv4 ou IPv6 para obter a rede alocada, seus blocos CIDR, o detentor e o identificador do RIR; passe AS13335 ou 13335 para obter o nome do AS e seus contatos de titular, abuso e técnico. O tipo de consulta é detectado pela entrada, então um parâmetro cobre os três casos.
P: O que um domínio não registrado retorna?
R: HTTP 200 com found: false. Isso é uma resposta real — é assim que se verifica disponibilidade — e por isso consome o crédito normal. Só uma falha do provedor upstream (timeout do registro, limite de taxa) retorna algo fora de 2xx, e essas nunca são cobradas.
P: Quão atual é a data de expiração?
R: Ela vem direto do próprio registro RDAP no momento da requisição, sem nenhuma camada de cache no meio, então é tão atual quanto o próprio registro. É isso que a torna adequada para monitorar expirações — consulte o portfólio diariamente e dispare alertas com base em expires_at.