NRNIC API

Tudo o que você pode fazer no painel web (adicionar e excluir domínios, gerenciar registros DNS) também está disponível de forma programática por meio de uma API REST.

Visão geral

Todos os endpoints recebem e retornam JSON. A autenticação exige uma chave de API (veja abaixo). Atualmente não há paginação nem limite de requisições.

URL base

https://ns.nrnic.com/api

Autenticação

Você pode gerar uma chave de API em Configurações da conta. A chave recém-gerada é exibida apenas uma vez, portanto guarde-a em um local seguro.

Inclua o seguinte cabeçalho Authorization em todas as requisições:

Authorization: Bearer nrnic_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Observações de segurança

Trate sua chave de API como uma senha. Nunca a envie para um repositório público nem a inclua em JavaScript do lado do cliente — use-a somente em código do servidor. Se uma chave for exposta, revogue-a imediatamente nas configurações da conta e gere uma nova.

Respostas de erro

Em caso de erro, a resposta usa o código de status HTTP apropriado (401/404/409/422/500 etc.) e o seguinte formato JSON.

{
  "error": {
    "code": "domain_not_found",
    "message": "Domain not found."
  }
}

Endpoints

Método Caminho Descrição
GET/api/domainsListar os domínios do usuário autenticado
POST/api/domainsAdicionar um domínio
GET/api/domains/{id}Obter um domínio, incluindo o status de sincronização de NS e de delegação
DELETE/api/domains/{id}Excluir um domínio
POST/api/domains/{id}/resyncReenviar a zona DNS para todos os servidores de nomes (ns1–ns4)
POST/api/domains/{id}/delegation-checkVerificar se o domínio foi delegado ao NRNIC
GET/api/domains/{id}/recordsListar os registros DNS de um domínio
POST/api/domains/{id}/recordsAdicionar um registro DNS
PUT/api/domains/{id}/records/{record_id}Atualizar um registro DNS
DELETE/api/domains/{id}/records/{record_id}Excluir um registro DNS

Exemplos

Domínios

# Listar os domínios do usuário autenticadocurl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

# Adicionar um domíniocurl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"fqdn": "example.com"}'

# Excluir um domíniocurl -s -X DELETE https://ns.nrnic.com/api/domains/123 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

Registros DNS

# Adicionar um registro DNScurl -s https://ns.nrnic.com/api/domains/123/records \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"type": "A", "name": "@", "content": "192.0.2.1", "ttl": 3600}'

# Atualizar um registro DNScurl -s -X PUT https://ns.nrnic.com/api/domains/123/records/456 \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"type": "A", "name": "@", "content": "192.0.2.2", "ttl": 3600}'

# Excluir um registro DNScurl -s -X DELETE https://ns.nrnic.com/api/domains/123/records/456 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

Campos dos registros DNS

typeTipo de registro. Um entre A, AAAA, CNAME, MX, TXT, NS, SRV, CAA.
nameNome do host (parte do subdomínio). Use "@" para o ápice da zona.
contentO valor do registro (um endereço IP, o nome do host de destino etc.).
ttlTTL em segundos, de 60 a 604800. Se omitido, o padrão é 3600.
priorityPrioridade dos registros MX/SRV (0–65535).
weightPeso dos registros SRV (0–65535).
portNúmero da porta dos registros SRV (0–65535).