REST API – DNS

WEDOS REST API está todavía en desarrollo. El acceso y las funciones pueden cambiar sin previo aviso.

Este artículo describe el endpoint DNS de WEDOS REST API. Para WEDOS API (WAPI), consulte WAPI – WEDOS DNS.

Encontrará información básica sobre WEDOS REST API en el artículo WEDOS REST API Manual.

En este artículo encontrará la siguiente información:


Acceso al endpoint DNS

WDNS HTTP REST API v2 sirve para gestionar dominios DNS y sus registros DNS en el servicio WEDOS DNS (WDNS). La API sigue los principios REST y se comunica mediante JSON.

URL base y autenticación

La URL base de los endpoints DNS es: https://api.wedos.com/v2/dns

Para la autenticación se utiliza únicamente un token Bearer de OAuth2 enviado en la cabecera Authorization: Bearer <TOKEN>. El token debe tener el scope wdns . Sin un token válido, o con un token que carezca del scope necesario, la API devuelve un error de autenticación.

Cada endpoint admite el modo ?example=1 (o &example=1 si la URL ya contiene otros parámetros de consulta). Devuelve una llamada de ejemplo (un comando curl) para ese endpoint, sin necesidad de indicar parámetros reales. También en este modo se requiere un token Bearer válido.

Resumen de endpoints

MétodoEndpointDescripción
GET/domainsLista de los dominios del usuario conectado, con búsqueda, filtrado, ordenación y paginación
GET/domains/{domain}Detalle del dominio
GET/domains/{domain}/axfr-tsigInformación sobre la clave AXFR TSIG del dominio
GET/domains/{domain}/rowsLista de los registros DNS del dominio
GET/domains/{domain}/rows/{row_id}Detalle de un único registro DNS
POST/domains/addCreación de un nuevo dominio
POST/domains/{domain}/commitAplicación de los cambios pendientes del dominio (commit)
POST/domains/{domain}/copyCreación de una copia del dominio con un nombre nuevo
POST/domains/{domain}/axfr-runInicio inmediato de una transferencia AXFR (dominio secundario)
POST/domains/{domain}/axfr-tsigCreación o cancelación de la clave AXFR TSIG del dominio
POST/domains/{domain}/rowsAdición de un registro DNS al dominio
POST/domains/{domain}/zone-importImportación de los registros DNS del dominio (mediante AXFR o pegando texto en formato BIND)
PATCH/domains/{domain}Modificación de la configuración del dominio
PATCH/domains/{domain}/rows/{row_id}Modificación de un registro DNS existente
DELETE/domains/{domain}Eliminación de un dominio
DELETE/domains/{domain}/rows/{row_id}Eliminación de un registro DNS

Formato de la respuesta

Todas las respuestas, tanto correctas como de error, tienen la misma forma de objeto JSON con estas claves: code (código de retorno), msg (descripción textual del código), request_id (identificador de la solicitud) y, opcionalmente, data (datos de la respuesta, solo si la operación los devuelve).


GET /domains

Devuelve la lista de los dominios del usuario conectado, con soporte para búsqueda, filtrado, ordenación y paginación.

Parámetros:

  • search – opcional, cadena – búsqueda en el nombre del dominio (admite IDN)
  • status – opcional, cadena – filtro por estado del dominio (p. ej. active, disabled, deleted)
  • type – opcional, cadena – filtro por tipo de dominio (primary, secondary)
  • page – opcional, entero – número de página, predeterminado 1
  • page_limit – opcional, entero – registros por página, predeterminado 50
  • orderby – opcional, cadena – ordenación con el formato column [ASC|DESC]; las columnas admitidas son domain y created_date; el valor predeterminado es domain ASC. Una columna no válida se ignora silenciosamente y se utiliza la ordenación predeterminada.

Códigos de retorno:

  • 1000 – OK
  • 5001 – error interno de inicio de sesión

Datos de la respuesta:

  • domain – array de dominios; cada elemento contiene name, status, type
  • total – número total de dominios que coinciden con el filtro
  • page – página actual
  • page_limit – registros por página

Ejemplo:

curl -X GET -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains?search=domain1&status=active&page=1&page_limit=50'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b70",
  "data": {
    "domain": [
      {"name": "domain1.cz", "status": "active", "type": "primary"},
      {"name": "domain1.com", "status": "active", "type": "secondary"}
    ],
    "total": 2,
    "page": 1,
    "page_limit": 50
  }
}

GET /domains/{domain}

Devuelve información detallada sobre un dominio.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido
  • 3222 – no se ha podido abrir el dominio (p. ej. no existe)
  • 3223 – error de autorización (el dominio pertenece a otro usuario)
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio está eliminado
  • 5001 – error interno de inicio de sesión

Datos de la respuesta:

  • domain – objeto con los detalles del dominio: name, status, type, tlock, autocommit, axfr_enabled, axfr_ips, changed, changed_date, commit_date, reload_pending, reload_pending_date, reload_date, disabled_date, enabled_date, add_date, rname, serial, refresh, retry, expire, minimum, rr_cnt, ns_out, ns

Ejemplo:

curl -X GET -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b71",
  "data": {
    "domain": {
      "name": "domain1.tld",
      "status": "active",
      "type": "primary",
      "tlock": 0,
      "autocommit": 1,
      "axfr_enabled": 0,
      "axfr_ips": "",
      "changed": 0,
      "changed_date": null,
      "commit_date": "2026-09-30 12:00:00",
      "reload_pending": 0,
      "reload_pending_date": null,
      "reload_date": "2026-09-30 12:01:00",
      "disabled_date": null,
      "enabled_date": null,
      "add_date": "2026-01-15 09:30:00",
      "rname": "wedos.com",
      "serial": 2026093001,
      "refresh": 10800,
      "retry": 3600,
      "expire": 604800,
      "minimum": 3600,
      "rr_cnt": 12,
      "ns_out": 1,
      "ns": ["ns.wedos.cz", "ns.wedos.net", "ns.wedos.eu"]
    }
  }
}

GET /domains/{domain}/axfr-tsig

Devuelve información sobre la clave AXFR TSIG del dominio (sirve para autenticar las transferencias DNS AXFR/IXFR). Si el dominio no tiene TSIG configurado, el endpoint devuelve el error 2334.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio

Códigos de retorno:

  • 1000 – OK
  • 2334 – el dominio no tiene configurado AXFR TSIG
  • 2337 – comando AXFR TSIG no válido
  • 2340 – se ha superado el número máximo de dominios en una acción masiva
  • otros códigos de error relacionados con la apertura del dominio – véase GET /domains/{domain} (p. ej. 3222, 3223, 3305, 3306)

Datos de la respuesta:

  • name – nombre de dominio
  • axfr_tsig_action – acción realizada, siempre info
  • axfr_tsig_name – nombre de la clave TSIG
  • axfr_tsig_alg – algoritmo de la clave TSIG
  • axfr_tsig_key – valor de la clave TSIG (base64)

Ejemplo:

curl -X GET -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/axfr-tsig'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b72",
  "data": {
    "name": "example.cz",
    "axfr_tsig_action": "info",
    "axfr_tsig_name": "domain1.tld.",
    "axfr_tsig_alg": "hmac-sha256",
    "axfr_tsig_key": "asdfghJKL1234567890."
  }
}

GET /domains/{domain}/rows

Devuelve la lista de los registros DNS del dominio. Esta operación no se puede realizar en dominios secundarios (sus registros los gestiona el servidor primario).

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido
  • 2318 – la operación no se puede realizar en un dominio secundario
  • 3222 – no se ha podido abrir el dominio
  • 3223 – error de autorización
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio está eliminado
  • 5001 – error interno de inicio de sesión

Datos de la respuesta:

  • row – array de registros DNS, cada uno con las claves ID, name, ttl, rdtype, rdata, changed_date, author_comment

Ejemplo:

curl -X GET -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/rows'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "1d6e8a5f3b73",
  "data": {
    "row": [
      {
        "ID": 123,
        "name": "www",
        "ttl": 1800,
        "rdtype": "A",
        "rdata": "46.28.105.2",
        "changed_date": "2026-09-30 12:00:00",
        "author_comment": "production server"
      },
      {
        "ID": 124,
        "name": "",
        "ttl": 3600,
        "rdtype": "MX",
        "rdata": "10 mail.wedos.com.",
        "changed_date": "2026-09-30 12:00:00",
        "author_comment": ""
      }
    ]
  }
}

GET /domains/{domain}/rows/{row_id}

Devuelve el detalle de un único registro DNS del dominio.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio
  • row_id – obligatorio, entero (path) – ID del registro DNS

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido
  • 2318 – la operación no se puede realizar en un dominio secundario
  • 3222 – no se ha podido abrir el dominio
  • 3223 – error de autorización
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio está eliminado
  • 3309 – no existe ningún registro con este ID
  • 5001 – error interno de inicio de sesión

Datos de la respuesta:

  • row – objeto con los detalles del registro: ID, name, ttl, rdtype, rdata, changed_date, author_comment

Ejemplo:

curl -X GET -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/rows/123'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2",
  "data": {
    "row": {
      "ID": 123,
      "name": "www",
      "ttl": 1800,
      "rdtype": "A",
      "rdata": "46.28.105.2",
      "changed_date": "2026-09-30 12:00:00",
      "author_comment": "production server"
    }
  }
}

POST /domains/add

Crea un nuevo dominio en WDNS, bien como dominio primario (los registros DNS los gestiona WEDOS), bien como dominio secundario (los registros se transfieren mediante AXFR desde un servidor primario externo).

Parámetros:

  • name – obligatorio, cadena – nombre de dominio
  • type – opcional, cadena – primary o secondary, predeterminado primary
  • axfr_enabled – opcional, booleano (0/1) – AXFR saliente permitido, predeterminado 0
  • axfr_ips – opcional, cadena o array de cadenas – direcciones IP permitidas para el AXFR saliente (una cadena de direcciones separadas por espacios, o un array JSON de direcciones); obligatorio si axfr_enabled=1
  • primary_ip – opcional (obligatorio para type=secondary), cadena – dirección IPv4 del servidor primario desde el que se transfieren los registros
  • primary_tsig_enabled – opcional, booleano – requiere autenticación TSIG del AXFR entrante (solo para type=secondary)
  • primary_tsig_name – opcional (obligatorio si primary_tsig_enabled=1), cadena – nombre de la clave TSIG
  • primary_tsig_alg – opcional (obligatorio si primary_tsig_enabled=1), cadena – algoritmo de la clave TSIG; valores admitidos: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384, hmac-sha512
  • primary_tsig_key – opcional (obligatorio si primary_tsig_enabled=1), cadena – valor de la clave TSIG codificado en base64 (longitud mínima de la clave decodificada 8 bytes)
  • template_id – opcional, entero – ID de la plantilla utilizada para crear el dominio; se aplica solo a type=primary

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido
  • 2301 – formato no válido de type
  • 2302 – parámetro primary_ip no indicado
  • 2303 – formato no válido de primary_ip
  • 2304 – formato no válido de axfr_enabled
  • 2305 – parámetro obligatorio axfr_ips no indicado
  • 2306 – formato no válido de axfr_ips
  • 2322 – se ha superado el límite de dominios WDNS de esta cuenta
  • 2323 – plantilla no encontrada
  • 2324 – la plantilla solo se puede usar para crear un dominio primario
  • 2325 – no hay ninguna plantilla definida
  • 2330–2333 – configuración TSIG no válida (en conjunto, nombre, algoritmo, clave)
  • 2355 – la dirección IP de AXFR no es válida
  • 2366 – axfr_ips la cadena es más larga que 255 caracteres
  • 2367 – no se ha indicado ninguna dirección IP para el AXFR saliente
  • 3302 – no se pudo añadir el dominio a WDNS
  • 3303 – el dominio ya existe en WDNS
  • 5001 – error interno de autorización

Datos de la respuesta:

  • domain_id – ID interno del dominio recién creado
  • name – nombre de dominio

Ejemplo:

curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/add' \
  --data '{"name":"domain1.tld","type":"primary"}'

Cuerpo de la solicitud:

{
  "name": "domain1.tld",
  "type": "primary"
}

Respuesta:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b75",
  "data": {
    "domain_id": 48213,
    "name": "domain1.tld"
  }
}

POST /domains/{domain}/commit

Aplica los cambios pendientes del dominio (commit) y los propaga a los servidores DNS de producción.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido
  • 3222 – no se ha podido abrir el dominio
  • 3223 – error de autorización
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio está eliminado
  • 5001 – error interno de autorización

Datos de la respuesta: El endpoint no devuelve datos; el éxito se indica con el código 1000.

Ejemplo:

curl -X POST -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/commit'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b76"
}

POST /domains/{domain}/copy

Crea una copia de un dominio existente (incluidos sus registros DNS) con un nombre nuevo.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre del dominio de origen
  • name_new – obligatorio, cadena (cuerpo de la solicitud) – nombre del nuevo dominio

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido
  • 2320 – nombre del nuevo dominio no válido o no admitido
  • 2321 – TLD no soportado del nombre del nuevo dominio
  • 2322 – se ha superado el límite de registros DNS por usuario
  • 3222 – no se ha podido abrir el dominio
  • 3223 – error de autorización
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio está eliminado
  • 3311 – no se pudo copiar
  • 3312 – ya existe un dominio con este nombre
  • 5001 – error interno de autorización

Datos de la respuesta: El endpoint no devuelve datos; el éxito se indica con el código 1000.

Ejemplo:

curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/copy' \
  --data '{"name_new":"domain2.tld"}'

Cuerpo de la solicitud:

{
  "name_new": "domain2.tld"
}

Respuesta:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b77"
}

POST /domains/{domain}/axfr-run

Inicia de inmediato una transferencia AXFR de los registros DNS de un dominio secundario (fuera de la programación habitual).

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido
  • 2319 – solo se puede realizar en un dominio secundario
  • 3222 – no se ha podido abrir el dominio
  • 3223 – error de autorización
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio está eliminado
  • 5001 – error interno de autorización

Datos de la respuesta:

  • next_run – hora de la próxima actualización programada

Ejemplo:

curl -X POST -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/axfr-run'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b78",
  "data": {
    "next_run": "2026-10-01 09:15:00"
  }
}

POST /domains/{domain}/axfr-tsig

Crea o cancela la clave AXFR TSIG del dominio (autenticación de las transferencias AXFR/IXFR salientes).

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio
  • action – opcional, cadena (cuerpo de la solicitud) – create (creación/actualización) o cancel, predeterminado create; el valor se asigna internamente al parámetro de WAPI axfr_tsig_action

Códigos de retorno:

  • 1000 – OK
  • 2335 – no se creó el AXFR TSIG del dominio
  • 2336 – no se canceló el AXFR TSIG del dominio
  • 2337 – comando AXFR TSIG no válido
  • 2340 – se ha superado el número máximo de dominios en una acción masiva
  • otros códigos de error relacionados con la apertura del dominio – véase GET /domains/{domain} (p. ej. 3222, 3223, 3305, 3306)

Datos de la respuesta:

  • name – nombre de dominio
  • axfr_tsig_action – acción realizada (create/cancel)
  • axfr_tsig_name – nombre de la clave TSIG (solo para create)
  • axfr_tsig_alg – algoritmo de la clave TSIG (solo para create)
  • axfr_tsig_key – valor de la clave TSIG, base64 (solo para create)

Ejemplo:

curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/axfr-tsig' \
  --data '{"action":"create"}'

Cuerpo de la solicitud:

{
  "action": "create"
}

Respuesta:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b79",
  "data": {
    "name": "example.cz",
    "axfr_tsig_action": "create",
    "axfr_tsig_name": "example.cz.",
    "axfr_tsig_alg": "hmac-sha256",
    "axfr_tsig_key": "asdfghJKL1234567890"
  }
}

POST /domains/{domain}/rows

Añade un nuevo registro DNS al dominio.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio
  • name – obligatorio, cadena (cuerpo de la solicitud) – nombre del registro; una cadena vacía significa un registro en el nivel del propio dominio (apex)
  • ttl – obligatorio, entero (cuerpo de la solicitud) – TTL del registro en segundos, valor distinto de cero
  • type – obligatorio, cadena (cuerpo de la solicitud) – tipo de registro; valores admitidos: A, AAAA, ALIAS, CAA, CNAME, DNAME, HTTPS, MX, NAPTR, NS, SRV, SSHFP, TLSA, TXT
  • rdata – obligatorio, cadena (cuerpo de la solicitud) – datos del registro (el formato depende del tipo de registro)
  • author_comment – opcional, cadena (cuerpo de la solicitud) – comentario del autor; solo se permiten letras sin diacríticos, dígitos y espacios; los clientes antiguos pueden enviar en su lugar auth_comment (alias equivalente)

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido
  • 2298 – parámetro author_comment contiene caracteres no válidos
  • 2309 – tipo de registro no válido
  • 2310 – no se puede añadir otro registro al dominio (se ha alcanzado el límite de registros)
  • 2311 – nombre de registro no válido
  • 2312 – nombre no válido para el tipo de registro indicado
  • 2313 – CNAME no válido para este nombre
  • 2314 – datos de registro no válidos
  • 2315 – TLD no válido
  • 2316 – este registro ya existe
  • 2317 – TTL no válido
  • 2318 – la operación no se puede realizar en un dominio secundario
  • 3222 – no se ha podido abrir el dominio
  • 3223 – error de autorización
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio está eliminado
  • 3307 – no se pudo añadir el registro del dominio
  • 5001 – error interno de autorización

Datos de la respuesta:

  • domain – nombre de dominio
  • row_id – ID del registro recién creado

Ejemplo:

curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/rows' \
  --data '{"name":"www","ttl":1800,"type":"A","rdata":"46.28.105.2"}'

Cuerpo de la solicitud:

{
  "name": "www",
  "ttl": 1800,
  "type": "A",
  "rdata": "46.28.105.2"
}

Respuesta:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b80",
  "data": {
    "domain": "domain1.tld",
    "row_id": 125
  }
}

POST /domains/{domain}/zone-import

Importa los registros DNS del dominio. Se admiten dos modos del parámetroimport_type:

  • axfr – el endpoint intenta descargar los registros mediante AXFR desde la dirección IP indicada y los devuelve como texto en formato BIND para su revisión manual. Esta llamada no importa los registros automáticamente. Para importarlos, cópielos y envíelos en una llamada aparte con import_type=text.
  • text – los registros pasados en formato BIND en el parámetro rows se validan y se importan directamente en el dominio.

La importación solo es posible para un dominio primario.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio
  • import_type – obligatorio, cadena (cuerpo de la solicitud) – axfr o text
  • axfr_ip – obligatorio para import_type=axfr, cadena (cuerpo de la solicitud) – dirección IPv4 del servidor DNS desde el que se descargan los registros mediante AXFR
  • rows – obligatorio para import_type=text, cadena (cuerpo de la solicitud) – registros DNS como texto en formato BIND (no un array JSON, sino una única cadena de varias líneas)

Códigos de retorno:

  • 1000 – OK
  • 2338 – no tiene permiso para editar este dominio
  • 2350 – valor del tipo de importación no válido
  • 2351 – falta la lista de registros DNS (rows no se ha indicado con import_type=text)
  • 2352 – no se pudo obtener ningún dato para importar desde la IP indicada
  • 2353 – la lista DNS importada contiene un registro no válido; la importación no se realizó
  • 2354 – falta la dirección IP de AXFR
  • 2355 – la dirección IP de AXFR no es válida
  • 2357 – no se pudo obtener ningún dato para importar del texto
  • 2358 – no se pueden importar 2 registros idénticos (nombre, tipo, datos)
  • 2359 – se ha superado el número máximo de registros
  • 2360 – no se puede importar un registro CNAME si existe cualquier otro registro para su nombre
  • 2363 – los registros del mismo tipo deben tener el mismo TTL
  • 2364 – los registros DNS no se importaron (error interno de importación)
  • 2365 – la dirección IP de AXFR debe estar en formato IPv4
  • 2368 – la importación solo se permite para un dominio primario

Datos de la respuesta:

  • para import_type=axfr: name, import_type, axfr_ip, desc (nota descriptiva), rows (registros descargados en formato BIND, delimitados por --- BEGIN ---/--- END ---, destinados a copiarse en una llamada posterior con import_type=text)
  • para import_type=text (importación correcta): name, import_type, source_rows (texto de entrada), imported_rows (registros realmente importados, en formato BIND)

Ejemplo:

curl -X POST -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/zone-import' \
  --data '{"import_type":"text","rows":"www IN A 46.28.105.2\nmail IN A 46.28.105.3"}'

Cuerpo de la solicitud:

{
  "import_type": "text",
  "rows": "www IN A 46.28.105.2\nmail IN A 46.28.105.3"
}

Respuesta:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b81",
  "data": {
    "name": "example.cz",
    "import_type": "text",
    "source_rows": "\n--- BEGIN ---\nwww IN A 46.28.105.2\nmail IN A 46.28.105.3\n--- END ---",
    "imported_rows": "\n--- BEGIN ---\nwww 3600 IN A 46.28.105.2\nmail 3600 IN A 46.28.105.3\n--- END ---"
  }
}

PATCH /domains/{domain}

Modifica la configuración de un dominio existente (parámetros AXFR y TSIG). El nombre y el tipo del dominio no se pueden cambiar con esta operación.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio
  • axfr_enabled – opcional, booleano (0/1) – AXFR saliente permitido
  • axfr_ips – opcional, cadena o array de cadenas – direcciones IP permitidas para el AXFR saliente (una cadena de direcciones separadas por espacios, o un array JSON de direcciones); obligatorio al establecer axfr_enabled=1
  • primary_ip – opcional, cadena – dirección IPv4 del servidor primario (solo dominio secundario)
  • primary_tsig_enabled – opcional, booleano – requiere autenticación TSIG del AXFR entrante (solo dominio secundario)
  • primary_tsig_name – opcional, cadena – nombre de la clave TSIG
  • primary_tsig_alg – opcional, cadena – algoritmo de la clave TSIG (hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384, hmac-sha512)
  • primary_tsig_key – opcional, cadena – valor de la clave TSIG, base64

Códigos de retorno:

  • 1000 – OK
  • 2007 – se ha superado el tamaño máximo de la solicitud
  • 2100 – falta un parámetro de entrada
  • 2101 – parámetros de entrada no válidos
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido o no admitido
  • 2303 – formato no válido de primary_ip
  • 2304 – formato no válido de axfr_enabled
  • 2305 – parámetro obligatorio axfr_ips no indicado
  • 2306 – formato no válido de axfr_ips
  • 2330–2333 – configuración TSIG no válida (en conjunto, nombre, algoritmo, clave)
  • 3222 – no se ha podido abrir el dominio
  • 3223 – error de autorización
  • 3304 – no se pudo actualizar el registro del dominio
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio está eliminado
  • 5001 – error interno de autenticación

Datos de la respuesta: El endpoint no devuelve datos; el éxito se indica con el código 1000.

Ejemplo:

curl -X PATCH -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld' \
  --data '{"axfr_enabled":1,"axfr_ips":"46.28.105.2 46.28.105.3"}'

Cuerpo de la solicitud:

{
  "axfr_enabled": 1,
  "axfr_ips": "46.28.105.2 46.28.105.3"
}

Respuesta:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b82"
}

PATCH /domains/{domain}/rows/{row_id}

Modifica un registro DNS existente. El nombre y el tipo del registro no se pueden cambiar con esta operación; para cambiarlos, elimine el registro original y añada uno nuevo.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio
  • row_id – obligatorio, entero (path) – ID del registro DNS
  • ttl – obligatorio, entero (cuerpo de la solicitud) – nuevo valor de TTL en segundos
  • rdata – obligatorio, cadena (cuerpo de la solicitud) – nuevos datos del registro
  • author_comment – opcional, cadena (cuerpo de la solicitud) – comentario del autor; solo se permiten letras sin diacríticos, dígitos y espacios; los clientes antiguos pueden enviar en su lugar auth_comment .

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido
  • 2298 – parámetro author_comment contiene caracteres no válidos
  • 2314 – datos de registro no válidos
  • 2316 – este registro ya existe
  • 2317 – TTL no válido
  • 2318 – la operación no se puede realizar en un dominio secundario
  • 3222 – no se ha podido abrir el dominio
  • 3223 – error de autorización
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio está eliminado
  • 3309 – no existe ningún registro con este ID
  • 3310 – no se pudo modificar el registro
  • 5001 – error interno de autorización

Datos de la respuesta: El endpoint no devuelve datos; el éxito se indica con el código 1000.

Ejemplo:

curl -X PATCH -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type: application/json' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/rows/123' \
  --data '{"ttl":3600,"rdata":"46.28.105.3"}'

Cuerpo de la solicitud:

{
  "ttl": 3600,
  "rdata": "46.28.105.3"
}

Respuesta:

{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b83"
}

DELETE /domains/{domain}

Elimina el dominio de WDNS.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido o no admitido
  • 3222 – no se ha podido abrir el dominio
  • 3223 – acceso denegado
  • 3301 – no se pudo eliminar el registro del dominio
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio ya está eliminado
  • 5001 – error interno de autorización

Datos de la respuesta: El endpoint no devuelve datos; el éxito se indica con el código 1000.

Ejemplo:

curl -X DELETE -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b84"
}

DELETE /domains/{domain}/rows/{row_id}

Elimina un registro DNS del dominio.

Parámetros:

  • domain – obligatorio, cadena (path) – nombre de dominio
  • row_id – obligatorio, entero (path) – ID del registro DNS

Códigos de retorno:

  • 1000 – OK
  • 2100 – falta un parámetro obligatorio
  • 2101 – parámetro de entrada no válido
  • 2201 – TLD no soportado
  • 2202 – nombre de dominio no válido o no admitido
  • 2318 – la operación no se puede realizar en un dominio secundario
  • 3222 – no se ha podido abrir el dominio
  • 3223 – acceso denegado
  • 3305 – el dominio está bloqueado
  • 3306 – el dominio está eliminado
  • 3308 – no se pudo eliminar el registro
  • 3309 – no existe ningún registro con este ID
  • 5001 – error interno de autorización

Datos de la respuesta: El endpoint no devuelve datos; el éxito se indica con el código 1000.

Ejemplo:

curl -X DELETE -H 'Authorization: Bearer <TOKEN>' \
  'https://api.wedos.com/v2/dns/domains/domain1.tld/rows/123'
{
  "code": 1000,
  "msg": "OK",
  "request_id": "f3a9c1e2-7b44-4e21-9c2a-1d6e8a5f3b85"
}

Notas

  • Además de los códigos de error indicados en cada endpoint, pueden producirse errores generales de la capa REST comunes a todos los endpoints: 2000 (falta el token Bearer de OAuth2 o no es válido), 2004 (se ha superado el tamaño máximo de la solicitud – URL/query string o cuerpo de la solicitud), 4000 (combinación desconocida o no admitida de ruta URL y método HTTP), 4001 (la validación de la entrada ha fallado), 4005 (no hay ningún ejemplo definido para este endpoint en el modo ?example=1 ) y 6000 (error interno de inicialización de la capa WAPI). En los métodos PATCH/DELETE, si falta el segmento {domain} en la URL, se devuelve el error 6001 (falta el parámetro obligatorio domain ).
  • Una combinación no reconocida de segmentos de URL (p. ej. /domains/{domain}/rows sin {row_id} en los métodos PATCH/DELETE) devuelve siempre 4000. Nunca pasa silenciosamente a otra operación (p. ej. al nivel de todo el dominio).
  • La capa REST acepta el parámetro axfr_ips bien como una cadena de direcciones IP separadas por espacios, bien como un array JSON de direcciones. Antes de llamar al comando WAPI subyacente, normaliza ambas variantes a un formato interno. Una cadena vacía se considera un valor no indicado.
  • Los parámetros primary_ip y primary_tsig_* solo surten efecto en los dominios de tipo secondary.
  • template_id al crear un dominio (POST /domains/add) se aplica solo a un dominio primario (type=primary o no indicado). En un dominio secundario devuelve el error 2324.
  • rr_limit (número máximo de registros DNS de un dominio) no es un parámetro admitido de POST /domains/add. El endpoint no lo acepta; el límite lo determina la cuenta o la plantilla.
  • En POST /domains/{domain}/zone-import es importante distinguir los dos modos del parámetro import_type : axfr solo descarga los registros y los devuelve como texto para su revisión manual (no se importa nada), mientras que text escribe los registros en el dominio directamente tras la validación. Por eso, el procedimiento habitual es llamar primero a import_type=axfr , revisar el texto devuelto y solo después enviarlo como import_type=text.
  • author_comment (al añadir o modificar un registro DNS) permite solo letras sin diacríticos, dígitos y espacios. Los clientes antiguos pueden usar en su lugar el parámetro auth_comment con el mismo significado.
  • El name y type de un registro DNS no se pueden cambiar mediante PATCH /domains/{domain}/rows/{row_id}. Para cambiarlos, elimine el registro y vuelva a añadirlo.
  • La propiedad del dominio se comprueba en cada operación según el usuario conectado (identificado a partir del token de OAuth2). Si el dominio pertenece a otro usuario, se devuelve el error 3223 .

¿Le ha resultado útil?

¡Gracias por su valoración!
Selectores genéricos
Solo coincidencias exactas
Buscar en el título
Buscar en el contenido
Selectores de tipo de entrada