Skip to content

DNS

Listado de dominios

Ofrece un listado de los dominios que pueden ser gestionados a través de la API

GET /dns/domains

Request

Header

Key Value Description
x-api-key {{x-api-key}} Clave suministrada por Sarenet en la activación del servicio

Response

Body

{
    "domains": [
        "dominio1.com",
        "dominio2.com",
        "dominio3.com",
        ...
    ]
}

Registros de un dominio

Ofrece un listado de todos registros configurados en el DNS

GET /dns/domains/{{domain}}

Query

Key Description
domain Dominio

Request

Header

Key Value Description
x-api-key {{x-api-key}} Clave suministrada por Sarenet en la activación del servicio

Códigos de respuesta

Status Error Description
200 OK
400 No domain specified. No se ha especificado un dominio
400 No valid domain. El dominio no existe o no es válido

Response

Body

{
    "records": [
        {
            "id": "924383",
            "zone": "dominio1.com",
            "host": "@",
            "type": "SOA",
            "data": "ns1.sarenet.es.",
            "ttl": 172800,
            "priority": null,
            "timestamp": "2022-01-04 16:25:00",
            "note": ""
        },
        {
            "id": "924384",
            "zone": "dominio1.com",
            "host": "",
            "type": "NS",
            "data": "ns1.sarenet.es.",
            "ttl": 72800,
            "priority": null,
            "timestamp": "2020-05-13 14:18:48",
            "note": ""
        },
        {
            "id": "924385",
            "zone": "dominio1.com",
            "host": "",
            "type": "NS",
            "data": "ns2.sarenet.es.",
            "ttl": 72800,
            "priority": null,
            "timestamp": "2020-05-13 14:18:48",
            "note": ""
        },
        {
            "id": "924387",
            "zone": "dominio1.com",
            "host": "@",
            "type": "MX",
            "data": "smtp.sarenet.es.",
            "ttl": 172800,
            "priority": 5,
            "timestamp": "2020-05-13 14:52:44",
            "note": ""
        },
        {
            "id": "924388",
            "zone": "dominio1.com",
            "host": "autoconfig",
            "type": "CNAME",
            "data": "autodiscover.saremail.com.",
            "ttl": 172800,
            "priority": null,
            "timestamp": "2020-05-13 14:52:45",
            "note": ""
        },
        {
            "id": "924389",
            "zone": "dominio1.com",
            "host": "autodiscover",
            "type": "CNAME",
            "data": "autodiscover.saremail.com.",
            "ttl": 172800,
            "priority": null,
            "timestamp": "2020-05-13 14:52:45",
            "note": ""
        },
        {
            "id": "924390",
            "zone": "dominio1.com",
            "host": "_dmarc",
            "type": "TXT",
            "data": "\"v=DMARC1; p=reject; rua=mailto:postmaster@dominio1.com; adkim=r; aspf=s; pct=100; sp=none\"",
            "ttl": 172800,
            "priority": null,
            "timestamp": "2020-05-13 14:52:45",
            "note": ""
        },
        {
            "id": "924391",
            "zone": "dominio1.com",
            "host": "_carddavs._tcp",
            "type": "SRV",
            "weight": "5",
            "port": "443",
            "data": "dominio1com.organizer.sarenet.es",
            "ttl": 172800,
            "priority": "0",
            "timestamp": "2020-05-13 14:52:45",
            "note": ""
        },
        {
            "id": "924392",
            "zone": "dominio1.com",
            "host": "_caldavs._tcp",
            "type": "SRV",
            "weight": "5",
            "port": "443",
            "data": "dominio1com.organizer.sarenet.es",
            "ttl": 172800,
            "priority": "0",
            "timestamp": "2020-05-13 14:52:45",
            "note": ""
        },
        {
            "id": "924393",
            "zone": "dominio1.com",
            "host": "@",
            "type": "TXT",
            "data": "\"v=spf1 include:sarenet.es -all\"",
            "ttl": 172800,
            "priority": null,
            "timestamp": "2020-05-13 14:52:45",
            "note": ""
        },
        {
            "id": "924426",
            "zone": "dominio1.com",
            "host": "webmail",
            "type": "A",
            "data": "194.30.0.206",
            "ttl": 3600,
            "priority": null,
            "timestamp": "2020-06-05 11:50:09",
            "note": ""
        },
        {
            "id": "940308",
            "zone": "dominio1.com",
            "host": "webmail",
            "type": "TXT",
            "data": "\"pvwn37l2r9q2z5yncz0j922dlgrkq0py\"",
            "ttl": 300,
            "priority": null,
            "timestamp": "2021-09-22 13:13:35",
            "note": ""
        }
    ]
}

Listado de registros de un tipo especifico

Ofrece un listado de los registros del dominio que son modificables

GET /dns/domain_records/{{domain}}/{{type}}
GET /dns/domain_records/{{domain}}/{{type}}/{{host}}

Query

Key Description
domain Dominio
type Tipo de registro ('A', 'AAAA', 'CAA', 'CNAME', 'MX', 'NAPTR', 'NS', 'PTR', 'SOA', 'SRV', 'TXT', 'TYPE257')
host Texto para filtrar el host (opcional)

Códigos de respuesta

Status Error Description
200 OK
400 No domain specified. No se ha especificado un dominio
400 No valid domain. El dominio no existe o no es válido

Request

Header

Key Value Description
x-api-key {{x-api-key}} Clave suministrada por Sarenet en la activación del servicio

Response

Body

 {
    "records": [
        {
            "id": "924390",
            "zone": "dominio1.com",
            "host": "_dmarc",
            "type": "TXT",
            "data": "\"v=DMARC1; p=reject; rua=mailto:postmaster@dominio1.com; adkim=r; aspf=s; pct=100; sp=none\"",
            "ttl": 172800,
            "priority": null,
            "timestamp": "2020-05-13 14:52:45",
            "note": ""
        },
        {
            "id": "924393",
            "zone": "dominio1.com",
            "host": "@",
            "type": "TXT",
            "data": "\"v=spf1 include:sarenet.es -all\"",
            "ttl": 172800,
            "priority": null,
            "timestamp": "2020-05-13 14:52:45",
            "note": ""
        },
        {
            "id": "940308",
            "zone": "dominio1.com",
            "host": "webmail",
            "type": "TXT",
            "data": "\"pvwn37l2r9q2z5yncz0j922dlgrkq0py\"",
            "ttl": 300,
            "priority": null,
            "timestamp": "2021-09-22 13:13:35",
            "note": ""
        }
    ]
}

Crear un registro en un dominio

POST /dns/domain_records/{{domain}}

Query

Key Description
domain Dominio

Request

Header

Key Value Description
x-api-key {{x-api-key}} Clave suministrada por Sarenet en la activación del servicio

Body

Key Description
type Tipo de registro ('A', 'AAAA', 'CAA', 'CNAME', 'MX', 'NAPTR', 'PTR', 'SRV', 'TXT', 'TYPE257')
host Host del registro ('@', '*', cadena de texto)
ttl Entero que indica el tiempo de validez del registro (300, 3600, ...) mínimo 300
data Datos asociados al registro
weight (opcional si no es SRV) Peso asociado al registro SRV
port (opcional si no es SRV) Puerto asociado al registro SRV
flags (opcional si no es CAA) Un número entero sin signo entre 0 y 255 que se utiliza para los registros CAA
tag (opcional si no es CAA) La etiqueta de parámetro para registros CAA. Los valores válidos son "issue", "issuewild", o "iodef"
priority(optional si no es MX o SRV) Si el registro es de tipo MX o SRV será un entero que indique la prioridad del mismo
note (opcional) Texto de hasta 1000 caracteres. Si se omite, no se toca la nota; una cadena vacía la borra.

Example de request body

 {
    "type": "TXT",
    "host": "@",
    "ttl": 300,
    "data": "prueba",
    "note": "Alta solicitada por el cliente."
}

Códigos de respuesta

Status Error Description
200 OK
200 Ver mensajes de fallos parciales La operación DNS se ha completado, pero ha fallado la nota; devuelve estado=KO y parcial=true.
400 note must be a string. La nota debe ser una cadena de texto.
400 note must not exceed 1000 characters. La nota supera los 1000 caracteres.
400 Invalid response Problemas de acceso a la API
400 No domain specified. No se ha especificado un dominio
400 No valid domain. El dominio no existe o no es válido
400 No type specified. Falta el parámetro type
400 No host specified. Falta el parámetro host
400 No ttl specified. Falta el parámetro ttl
400 No weight specified. Falta el parámetro weight
400 No port specified. Falta el parámetro port
400 No flags specified. Falta el parámetro flags
400 No tag specified. Falta el parámetro tag
400 No priority specified. Falta el parámetro priority
400 Ttl should be greater than 300. El parámetro ttl es menor de 300
400 DNS-API:* Parámetros incorrectos

Response

Devuelve el registro creado.

Body

 {
    "record":
        {
            "id": "924390",
            "zone": "dominio1.com",
            "host": "_dmarc",
            "type": "TXT",
            "data": "\"v=DMARC1; p=reject; rua=mailto:postmaster@dominio1.com; adkim=r; aspf=s; pct=100; sp=none\"",
            "ttl": 172800,
            "priority": null,
            "timestamp": "2020-05-13 14:52:45",
            "note": "Cambio solicitado por el cliente."
        }
}

Modificar un registro de un dominio

PUT /dns/domain_records/{{domain}}

Query

Key Description
domain Dominio

Request

Header

Key Value Description
x-api-key {{x-api-key}} Clave suministrada por Sarenet en la activación del servicio

Body

Key Description
id Identificador del registro que se quiere modificar
host Host del registro ('@', '*', cadena de texto)
ttl Entero que indica el tiempo de validez del registro (300, 3600, ...) mínimo 300
data Datos asociados al registro
weight (opcional si no es SRV) Peso asociado al registro SRV
port (opcional si no es SRV) Puerto asociado al registro SRV
flags (opcional si no es CAA) Un número entero sin signo entre 0 y 255 que se utiliza para los registros CAA
tag (opcional si no es CAA) La etiqueta de parámetro para registros CAA. Los valores válidos son "issue", "issuewild", o "iodef"
priority (opcional si no es MX o SRV) Si el registro es de tipo MX o SRV será un entero que indique la prioridad del mismo
note (opcional) Texto de hasta 1000 caracteres. Si se omite, no se toca la nota; una cadena vacía la borra.

Example de request body

 {
    "id": "944145",
    "type": "TXT",
    "host": "@",
    "ttl": 300,
    "data": "prueba modificada",
    "note": "Cambio solicitado por el cliente."
 }

Códigos de respuesta

Status Error Description
200 OK
200 Ver mensajes de fallos parciales La operación DNS se ha completado, pero ha fallado la nota; devuelve estado=KO y parcial=true.
400 note must be a string. La nota debe ser una cadena de texto.
400 note must not exceed 1000 characters. La nota supera los 1000 caracteres.
400 No valid record. No se pudo encontrar el registro para modificar únicamente su nota.
500 The note could not be saved. Ha fallado una petición que modifica únicamente la nota.
400 Invalid response Problemas de acceso a la API
400 No domain specified. No se ha especificado un dominio
400 No valid domain. El dominio no existe o no es válido
400 No id specified. Falta el parámetro id
400 No type specified. Falta el parámetro type
400 No host specified. Falta el parámetro host
400 No ttl specified. Falta el parámetro ttl
400 No weight specified. Falta el parámetro weight
400 No port specified. Falta el parámetro port
400 No flags specified. Falta el parámetro flags
400 No tag specified. Falta el parámetro tag
400 No priority specified. Falta el parámetro priority
400 Ttl should be greater than 300. El parámetro ttl es menor de 300
400 DNS-API:* Parámetros incorrectos

Response

Devuelve el registro modificado.

Body

{
  "record":
      {
          "id": "924390",
          "zone": "dominio1.com",
          "host": "_dmarc",
          "type": "TXT",
          "data": "\"v=DMARC1; p=reject; rua=mailto:postmaster@dominio1.com; adkim=r; aspf=s; pct=100; sp=none\"",
          "ttl": 172800,
          "priority": null,
          "timestamp": "2020-05-13 14:52:45",
            "note": "Cambio solicitado por el cliente."
      }
}

Modificar o borrar únicamente la nota

Se utiliza el mismo PUT /dns/domain_records/{{domain}}, enviando solo id y note en el cuerpo. domain es el nombre del dominio (por ejemplo, dominio1.com, sin protocolo ni ruta), e id es el identificador de un registro de ese dominio obtenido mediante GET; no es el ID del dominio.

Para añadir o sustituir la nota:

{
    "id": "944145",
    "note": "Cambio solicitado por el cliente."
}

Para borrar la nota y conservar el registro DNS:

{
    "id": "944145",
    "note": ""
}

La respuesta correcta es HTTP 200 e incluye el ID y la nota guardada. Ejemplo al borrarla:

{
    "record": {
        "id": "944145",
        "note": ""
    }
}

En estas peticiones no se envían los campos DNS (type, host, ttl, priority, data, weight, port, flags y tag). Si se incluye alguno, se aplican los requisitos habituales de modificación del registro.

Borrar un registro de un dominio

DELETE /dns/domain_records/{{domain}}/{{id}}

Elimina el registro DNS y su nota. Para borrar únicamente la nota, utiliza PUT con id y note: "".

Query

Key Description
domain Dominio
id Identificador del registro del dominio

Request

Header

Key Value Description
x-api-key {{x-api-key}} Clave suministrada por Sarenet en la activación del servicio

Códigos de respuesta

Status Error Description
200 OK
200 Ver mensajes de fallos parciales La operación DNS se ha completado, pero ha fallado la nota; devuelve estado=KO y parcial=true.
400 Invalid response Problemas de acceso a la API
400 No domain specified. No se ha especificado un dominio
400 No valid domain. El dominio no existe o no es válido
400 No id specified. Falta el parámetro id
400 DNS-API:* Parámetros incorrectos

Fallos parciales al guardar o borrar la nota

Si la creación, modificación o eliminación del registro DNS se completa, pero falla el guardado o borrado de su nota, la respuesta es HTTP 200 con status: 200, estado: "KO", parcial: true y un mensaje en error.

En creación y modificación se conservan los datos del registro devueltos por el servicio DNS, incluido su ID cuando esté disponible. La respuesta no incluye la nota solicitada como si se hubiera guardado. Si el servicio confirma la creación pero no devuelve el ID necesario para guardar la nota, también se informa del resultado parcial.

Operación error
Crear DNS record has been created, but its note could not be saved.
Crear sin ID en la respuesta DNS DNS record has been created, but its ID is missing and its note could not be saved.
Modificar DNS record has been modified, but its note could not be saved.
Borrar DNS record has been deleted, but its note could not be deleted.

En el fallo parcial de borrado se devuelve el ID del registro eliminado:

{
    "status": 200,
    "error": "DNS record has been deleted, but its note could not be deleted.",
    "estado": "KO",
    "parcial": true,
    "record": {
        "id": "944145"
    }
}

El registro DNS ya está eliminado, aunque la nota no se haya podido borrar. No se debe repetir la operación DNS por este fallo.

Si la petición modifica solo la nota, un fallo de persistencia devuelve HTTP 500 con error: "The note could not be saved.", sin parcial: true, porque no se ha completado ninguna operación DNS.