NRNIC API

Todo lo que puedes hacer en el panel web (añadir y eliminar dominios, gestionar registros DNS) también está disponible de forma programática mediante una API REST.

Descripción general

Todos los endpoints reciben y devuelven JSON. La autenticación requiere una clave de API (véase más abajo). Actualmente no hay paginación ni límite de peticiones.

URL base

https://ns.nrnic.com/api

Autenticación

Puedes generar una clave de API desde Configuración de la cuenta. La clave recién generada solo se muestra una vez, así que asegúrate de guardarla en un lugar seguro.

Incluye la siguiente cabecera Authorization en cada petición:

Authorization: Bearer nrnic_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Notas de seguridad

Trata tu clave de API como una contraseña. No la subas nunca a un repositorio público ni la incluyas en JavaScript del lado del cliente: úsala únicamente desde código del servidor. Si una clave llegara a exponerse, revócala de inmediato desde la configuración de la cuenta y genera una nueva.

Respuestas de error

En caso de error, la respuesta usa el código de estado HTTP correspondiente (401/404/409/422/500, etc.) y la siguiente estructura JSON.

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

Endpoints

Método Ruta Descripción
GET/api/domainsListar los dominios del usuario autenticado
POST/api/domainsAñadir un dominio
GET/api/domains/{id}Obtener un dominio, incluido su estado de sincronización de NS y de delegación
DELETE/api/domains/{id}Eliminar un dominio
POST/api/domains/{id}/resyncReenviar la zona DNS a todos los servidores de nombres (ns1–ns4)
POST/api/domains/{id}/delegation-checkComprobar si el dominio está delegado a NRNIC
GET/api/domains/{id}/recordsListar los registros DNS de un dominio
POST/api/domains/{id}/recordsAñadir un registro DNS
PUT/api/domains/{id}/records/{record_id}Actualizar un registro DNS
DELETE/api/domains/{id}/records/{record_id}Eliminar un registro DNS

Ejemplos

Dominios

# Listar los dominios del usuario autenticadocurl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

# Añadir un dominiocurl -s https://ns.nrnic.com/api/domains \
  -H "Authorization: Bearer nrnic_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"fqdn": "example.com"}'

# Eliminar un dominiocurl -s -X DELETE https://ns.nrnic.com/api/domains/123 \
  -H "Authorization: Bearer nrnic_xxxxxxxx"

Registros DNS

# Añadir un 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}'

# Actualizar un 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}'

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

Campos de los registros DNS

typeTipo de registro. Uno de A, AAAA, CNAME, MX, TXT, NS, SRV, CAA.
nameNombre de host (parte del subdominio). Usa "@" para el vértice de la zona.
contentEl valor del registro (una dirección IP, el nombre de host de destino, etc.).
ttlTTL en segundos, de 60 a 604800. Si se omite, el valor por defecto es 3600.
priorityPrioridad de los registros MX/SRV (0–65535).
weightPeso de los registros SRV (0–65535).
portNúmero de puerto de los registros SRV (0–65535).