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
- Detalles del endpoint DNS:
- GET /domains
- GET /domains/{domain}
- GET /domains/{domain}/axfr-tsig
- GET /domains/{domain}/rows
- GET /domains/{domain}/rows/{row_id}
- POST /domains/add
- POST /domains/{domain}/commit
- POST /domains/{domain}/copy
- POST /domains/{domain}/axfr-run
- POST /domains/{domain}/axfr-tsig
- POST /domains/{domain}/rows
- POST /domains/{domain}/zone-import
- PATCH /domains/{domain}
- PATCH /domains/{domain}/rows/{row_id}
- DELETE /domains/{domain}
- DELETE /domains/{domain}/rows/{row_id}
- Notas
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étodo | Endpoint | Descripción |
|---|---|---|
| GET | /domains | Lista 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-tsig | Información sobre la clave AXFR TSIG del dominio |
| GET | /domains/{domain}/rows | Lista de los registros DNS del dominio |
| GET | /domains/{domain}/rows/{row_id} | Detalle de un único registro DNS |
| POST | /domains/add | Creación de un nuevo dominio |
| POST | /domains/{domain}/commit | Aplicación de los cambios pendientes del dominio (commit) |
| POST | /domains/{domain}/copy | Creación de una copia del dominio con un nombre nuevo |
| POST | /domains/{domain}/axfr-run | Inicio inmediato de una transferencia AXFR (dominio secundario) |
| POST | /domains/{domain}/axfr-tsig | Creación o cancelación de la clave AXFR TSIG del dominio |
| POST | /domains/{domain}/rows | Adición de un registro DNS al dominio |
| POST | /domains/{domain}/zone-import | Importació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 1page_limit– opcional, entero – registros por página, predeterminado 50orderby– opcional, cadena – ordenación con el formatocolumn [ASC|DESC]; las columnas admitidas sondomainycreated_date; el valor predeterminado esdomain ASC. Una columna no válida se ignora silenciosamente y se utiliza la ordenación predeterminada.
Códigos de retorno:
1000– OK5001– error interno de inicio de sesión
Datos de la respuesta:
domain– array de dominios; cada elemento contienename,status,typetotal– número total de dominios que coinciden con el filtropage– página actualpage_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– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido3222– 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á bloqueado3306– el dominio está eliminado5001– 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– OK2334– el dominio no tiene configurado AXFR TSIG2337– comando AXFR TSIG no válido2340– 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 dominioaxfr_tsig_action– acción realizada, siempreinfoaxfr_tsig_name– nombre de la clave TSIGaxfr_tsig_alg– algoritmo de la clave TSIGaxfr_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– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido2318– la operación no se puede realizar en un dominio secundario3222– no se ha podido abrir el dominio3223– error de autorización3305– el dominio está bloqueado3306– el dominio está eliminado5001– error interno de inicio de sesión
Datos de la respuesta:
row– array de registros DNS, cada uno con las clavesID,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 dominiorow_id– obligatorio, entero (path) – ID del registro DNS
Códigos de retorno:
1000– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido2318– la operación no se puede realizar en un dominio secundario3222– no se ha podido abrir el dominio3223– error de autorización3305– el dominio está bloqueado3306– el dominio está eliminado3309– no existe ningún registro con este ID5001– 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 dominiotype– opcional, cadena –primaryosecondary, predeterminadoprimaryaxfr_enabled– opcional, booleano (0/1) – AXFR saliente permitido, predeterminado 0axfr_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 siaxfr_enabled=1primary_ip– opcional (obligatorio paratype=secondary), cadena – dirección IPv4 del servidor primario desde el que se transfieren los registrosprimary_tsig_enabled– opcional, booleano – requiere autenticación TSIG del AXFR entrante (solo paratype=secondary)primary_tsig_name– opcional (obligatorio siprimary_tsig_enabled=1), cadena – nombre de la clave TSIGprimary_tsig_alg– opcional (obligatorio siprimary_tsig_enabled=1), cadena – algoritmo de la clave TSIG; valores admitidos:hmac-md5,hmac-sha1,hmac-sha224,hmac-sha256,hmac-sha384,hmac-sha512primary_tsig_key– opcional (obligatorio siprimary_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 atype=primary
Códigos de retorno:
1000– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido2301– formato no válido detype2302– parámetroprimary_ipno indicado2303– formato no válido deprimary_ip2304– formato no válido deaxfr_enabled2305– parámetro obligatorioaxfr_ipsno indicado2306– formato no válido deaxfr_ips2322– se ha superado el límite de dominios WDNS de esta cuenta2323– plantilla no encontrada2324– la plantilla solo se puede usar para crear un dominio primario2325– no hay ninguna plantilla definida2330–2333– configuración TSIG no válida (en conjunto, nombre, algoritmo, clave)2355– la dirección IP de AXFR no es válida2366–axfr_ipsla cadena es más larga que 255 caracteres2367– no se ha indicado ninguna dirección IP para el AXFR saliente3302– no se pudo añadir el dominio a WDNS3303– el dominio ya existe en WDNS5001– error interno de autorización
Datos de la respuesta:
domain_id– ID interno del dominio recién creadoname– 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– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido3222– no se ha podido abrir el dominio3223– error de autorización3305– el dominio está bloqueado3306– el dominio está eliminado5001– 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 origenname_new– obligatorio, cadena (cuerpo de la solicitud) – nombre del nuevo dominio
Códigos de retorno:
1000– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido2320– nombre del nuevo dominio no válido o no admitido2321– TLD no soportado del nombre del nuevo dominio2322– se ha superado el límite de registros DNS por usuario3222– no se ha podido abrir el dominio3223– error de autorización3305– el dominio está bloqueado3306– el dominio está eliminado3311– no se pudo copiar3312– ya existe un dominio con este nombre5001– 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– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido2319– solo se puede realizar en un dominio secundario3222– no se ha podido abrir el dominio3223– error de autorización3305– el dominio está bloqueado3306– el dominio está eliminado5001– 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 dominioaction– opcional, cadena (cuerpo de la solicitud) –create(creación/actualización) ocancel, predeterminadocreate; el valor se asigna internamente al parámetro de WAPIaxfr_tsig_action
Códigos de retorno:
1000– OK2335– no se creó el AXFR TSIG del dominio2336– no se canceló el AXFR TSIG del dominio2337– comando AXFR TSIG no válido2340– 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 dominioaxfr_tsig_action– acción realizada (create/cancel)axfr_tsig_name– nombre de la clave TSIG (solo paracreate)axfr_tsig_alg– algoritmo de la clave TSIG (solo paracreate)axfr_tsig_key– valor de la clave TSIG, base64 (solo paracreate)
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 dominioname– 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 cerotype– obligatorio, cadena (cuerpo de la solicitud) – tipo de registro; valores admitidos:A,AAAA,ALIAS,CAA,CNAME,DNAME,HTTPS,MX,NAPTR,NS,SRV,SSHFP,TLSA,TXTrdata– 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 lugarauth_comment(alias equivalente)
Códigos de retorno:
1000– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido2298– parámetroauthor_commentcontiene caracteres no válidos2309– tipo de registro no válido2310– no se puede añadir otro registro al dominio (se ha alcanzado el límite de registros)2311– nombre de registro no válido2312– nombre no válido para el tipo de registro indicado2313– CNAME no válido para este nombre2314– datos de registro no válidos2315– TLD no válido2316– este registro ya existe2317– TTL no válido2318– la operación no se puede realizar en un dominio secundario3222– no se ha podido abrir el dominio3223– error de autorización3305– el dominio está bloqueado3306– el dominio está eliminado3307– no se pudo añadir el registro del dominio5001– error interno de autorización
Datos de la respuesta:
domain– nombre de dominiorow_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 conimport_type=text.text– los registros pasados en formato BIND en el parámetrorowsse 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 dominioimport_type– obligatorio, cadena (cuerpo de la solicitud) –axfrotextaxfr_ip– obligatorio paraimport_type=axfr, cadena (cuerpo de la solicitud) – dirección IPv4 del servidor DNS desde el que se descargan los registros mediante AXFRrows– obligatorio paraimport_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– OK2338– no tiene permiso para editar este dominio2350– valor del tipo de importación no válido2351– falta la lista de registros DNS (rowsno se ha indicado conimport_type=text)2352– no se pudo obtener ningún dato para importar desde la IP indicada2353– la lista DNS importada contiene un registro no válido; la importación no se realizó2354– falta la dirección IP de AXFR2355– la dirección IP de AXFR no es válida2357– no se pudo obtener ningún dato para importar del texto2358– no se pueden importar 2 registros idénticos (nombre, tipo, datos)2359– se ha superado el número máximo de registros2360– no se puede importar un registro CNAME si existe cualquier otro registro para su nombre2363– los registros del mismo tipo deben tener el mismo TTL2364– los registros DNS no se importaron (error interno de importación)2365– la dirección IP de AXFR debe estar en formato IPv42368– 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 conimport_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 dominioaxfr_enabled– opcional, booleano (0/1) – AXFR saliente permitidoaxfr_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 estableceraxfr_enabled=1primary_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 TSIGprimary_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– OK2007– se ha superado el tamaño máximo de la solicitud2100– falta un parámetro de entrada2101– parámetros de entrada no válidos2201– TLD no soportado2202– nombre de dominio no válido o no admitido2303– formato no válido deprimary_ip2304– formato no válido deaxfr_enabled2305– parámetro obligatorioaxfr_ipsno indicado2306– formato no válido deaxfr_ips2330–2333– configuración TSIG no válida (en conjunto, nombre, algoritmo, clave)3222– no se ha podido abrir el dominio3223– error de autorización3304– no se pudo actualizar el registro del dominio3305– el dominio está bloqueado3306– el dominio está eliminado5001– 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 dominiorow_id– obligatorio, entero (path) – ID del registro DNSttl– obligatorio, entero (cuerpo de la solicitud) – nuevo valor de TTL en segundosrdata– obligatorio, cadena (cuerpo de la solicitud) – nuevos datos del registroauthor_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 lugarauth_comment.
Códigos de retorno:
1000– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido2298– parámetroauthor_commentcontiene caracteres no válidos2314– datos de registro no válidos2316– este registro ya existe2317– TTL no válido2318– la operación no se puede realizar en un dominio secundario3222– no se ha podido abrir el dominio3223– error de autorización3305– el dominio está bloqueado3306– el dominio está eliminado3309– no existe ningún registro con este ID3310– no se pudo modificar el registro5001– 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– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido o no admitido3222– no se ha podido abrir el dominio3223– acceso denegado3301– no se pudo eliminar el registro del dominio3305– el dominio está bloqueado3306– el dominio ya está eliminado5001– 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 dominiorow_id– obligatorio, entero (path) – ID del registro DNS
Códigos de retorno:
1000– OK2100– falta un parámetro obligatorio2101– parámetro de entrada no válido2201– TLD no soportado2202– nombre de dominio no válido o no admitido2318– la operación no se puede realizar en un dominio secundario3222– no se ha podido abrir el dominio3223– acceso denegado3305– el dominio está bloqueado3306– el dominio está eliminado3308– no se pudo eliminar el registro3309– no existe ningún registro con este ID5001– 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) y6000(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 error6001(falta el parámetro obligatoriodomain). - Una combinación no reconocida de segmentos de URL (p. ej.
/domains/{domain}/rowssin{row_id}en los métodos PATCH/DELETE) devuelve siempre4000. Nunca pasa silenciosamente a otra operación (p. ej. al nivel de todo el dominio). - La capa REST acepta el parámetro
axfr_ipsbien 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_ipyprimary_tsig_*solo surten efecto en los dominios de tiposecondary. template_idal crear un dominio (POST /domains/add) se aplica solo a un dominio primario (type=primaryo no indicado). En un dominio secundario devuelve el error2324.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:axfrsolo descarga los registros y los devuelve como texto para su revisión manual (no se importa nada), mientras quetextescribe los registros en el dominio directamente tras la validación. Por eso, el procedimiento habitual es llamar primero aimport_type=axfr, revisar el texto devuelto y solo después enviarlo comoimport_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ámetroauth_commentcon el mismo significado.- El
nameytypede 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.
