Rotación de claves DKIM
Claves de firma DKIM para su dominio de envío
Cada dominio tiene una clave DKIM (selector mlnd, RSA-2048), creada automáticamente al agregar el dominio.
Rotar o desactivar una clave DKIM no está disponible temporalmente: tanto POST /v1/domains/{id}/dkim/{keyId}/rotate como DELETE /v1/domains/{id}/dkim/{keyId} devuelven 409 CONFLICT. Su clave existente permanece sin cambios en ambos casos. Si sospecha que una clave está comprometida, contacte a soporte: este es un flujo de incidentes autorizado por el propietario, no un endpoint de autoservicio.
Listar claves DKIM
Vea la(s) clave(s) DKIM de un dominio:
GET https://api.mail.land/v1/domains/{id}/dkimAutentíquese con Authorization: Bearer <token> o X-API-Key: <api key>.
curl https://api.mail.land/v1/domains/k3v9x2m8q1w7z4/dkim \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."[
{
"id": "d7f2k9m1x3w8z",
"domainId": "k3v9x2m8q1w7z4",
"domain": "yourdomain.com",
"selector": "mlnd",
"publicKey": "MIIBIjANBgkqhkiG9w0BAQE...",
"keyType": "rsa",
"isActive": true,
"createdAt": "2026-02-17T10:00:00Z",
"rotatedAt": null,
"dnsRecordValue": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQE...",
"dnsRecordHost": "mlnd._domainkey.yourdomain.com"
}
]| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID público de la clave |
domainId | string | ID público del dominio asociado |
domain | string | Nombre de dominio |
selector | string | Selector DKIM: siempre mlnd hoy |
publicKey | string | Clave pública (Base64) |
keyType | enum | rsa |
isActive | boolean | Si esta clave está actualmente activa |
createdAt | datetime | Cuándo se creó la clave |
rotatedAt | datetime | Cuándo se rotó la clave por última vez (actualmente siempre null, la rotación no está disponible) |
dnsRecordValue | string | Valor completo del registro TXT de DNS |
dnsRecordHost | string | Nombre de host DNS donde agregar el registro: {selector}._domainkey.{domain} |
Generar una clave DKIM
POST https://api.mail.land/v1/domains/{id}/dkim/generateEsto solo tiene éxito para un dominio que no tiene ninguna clave DKIM. Cada dominio recibe una automáticamente al agregarse, por lo que llamar a esto en un dominio normal devuelve 409 CONFLICT. Existe para recuperar un dominio que de alguna manera no tiene ninguna.
Al tener éxito (201 Created), la forma de la respuesta es:
{
"key": {
"id": "d7f2k9m1x3w8z",
"domainId": "k3v9x2m8q1w7z4",
"domain": "yourdomain.com",
"selector": "mlnd",
"publicKey": "MIIBIjANBgkqhkiG9w0BAQE...",
"keyType": "rsa",
"isActive": true,
"createdAt": "2026-02-17T10:00:00Z",
"rotatedAt": null,
"dnsRecordValue": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQE...",
"dnsRecordHost": "mlnd._domainkey.yourdomain.com"
},
"dnsInstructions": {
"recordType": "TXT",
"hostName": "mlnd._domainkey.yourdomain.com",
"value": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQE...",
"instructions": "Add a TXT record with hostname 'mlnd._domainkey' and the value shown above. DNS propagation may take up to 48 hours."
},
"message": "DKIM key generated successfully. Please add the DNS record and verify your domain."
}Rotar o desactivar una clave
Tanto POST /v1/domains/{id}/dkim/{keyId}/rotate como DELETE /v1/domains/{id}/dkim/{keyId} devuelven 409 CONFLICT hoy (contención UNG-127, pendiente de un cambio de firmante verificado por DNS). Ninguna de las llamadas cambia su clave, su estado DNS, ni Redis/caché: nada se revoca y nada detiene el envío.
Si sospecha que una clave DKIM ha sido comprometida, contacte a soporte. Este es un flujo de incidentes autorizado por el propietario: no está expuesto a través de estos endpoints.
Respuestas de error
| Estado | Código | Descripción |
|---|---|---|
409 | CONFLICT | Rotar/desactivar: temporalmente no disponible. Generar: el dominio ya tiene una clave. |
404 | RESOURCE_NOT_FOUND | "DKIM key not found": el ID de la clave no existe para este dominio |
404 | DOMAIN_NOT_FOUND | El dominio no existe |
Próximos pasos
- Verificación: verificar la propiedad del dominio después de agregar registros DNS
- Configuración DNS: revisar todos los registros DNS requeridos
- REST API: enviar correo con su dominio verificado