API Reference
Dominios Registro, verificación y gestión de dominios con DKIM/SPF.
Endpoints para la gestion completa de dominios de envio: registro, verificacion DNS, consulta de estado y configuracion de perfil de remitente.
Base URL: https://api.reallyquickemails.com
Todos los endpoints de dominios requieren autenticacion mediante Secret Key:
Header Tipo Requerido Descripcion Authorizationstring Si Bearer sk_proj_...Content-Typestring Si* application/json (en POST/PUT).
Registra un nuevo dominio de envio. Crea la identidad en AWS SES, genera los registros DNS necesarios y almacena la configuracion en la base de datos.
Campo Tipo Requerido Descripcion domainstring Si Dominio a registrar (ej. mitienda.com). sender_namestring Si Nombre del remitente (ej. Mi Tienda). sender_emailstring Si Direccion de correo del remitente (ej. ventas@mitienda.com). external_keystring No Clave externa para integraciones de terceros.
curl -X POST https://api.reallyquickemails.com/domains/register \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_proj_tu_secret_key" \
-d '{
"domain": "mitienda.com",
"sender_name": "Mi Tienda",
"sender_email": "ventas@mitienda.com"
}'
{
"success" : true ,
"domain" : "mitienda.com" ,
"dns_records" : [
{
"type" : "TXT" ,
"name" : "_amazonses" ,
"value" : "abcdef1234567890abcdef1234567890" ,
"purpose" : "ses_verification"
},
{
"type" : "CNAME" ,
"name" : "abc123._domainkey" ,
"value" : "abc123.dkim.amazonses.com" ,
"purpose" : "dkim"
},
{
"type" : "CNAME" ,
"name" : "def456._domainkey" ,
"value" : "def456.dkim.amazonses.com" ,
"purpose" : "dkim"
},
{
"type" : "CNAME" ,
"name" : "ghi789._domainkey" ,
"value" : "ghi789.dkim.amazonses.com" ,
"purpose" : "dkim"
},
{
"type" : "TXT" ,
"name" : "@" ,
"value" : "v=spf1 include:amazonses.com ~all" ,
"purpose" : "spf"
},
{
"type" : "TXT" ,
"name" : "_dmarc" ,
"value" : "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@mitienda.com" ,
"purpose" : "dmarc"
},
{
"type" : "CNAME" ,
"name" : "bounce" ,
"value" : "feedback-smtp.us-east-1.amazonses.com" ,
"purpose" : "return_path"
}
],
"message" : "Domain registered. Configure the DNS records shown above, then call POST /domains/mitienda.com/verify to validate."
}
# Tipo Nombre Proposito Notas 1 TXT _amazonsesVerificacion SES Valor generado por AWS SES 2-4 CNAME {token}._domainkeyDKIM 3 registros, tokens generados por AWS SES 5 TXT @ (raiz del dominio)SPF v=spf1 include:amazonses.com ~all6 TXT _dmarcDMARC v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@{domain}7 CNAME bounceReturn-Path Apunta a feedback-smtp.us-east-1.amazonses.com
Nota: Los nombres de los registros son relativos al dominio. Por ejemplo, si tu dominio es mitienda.com, el registro _amazonses se configura como _amazonses.mitienda.com en tu proveedor DNS. Algunos proveedores agregan el dominio automaticamente, por lo que solo necesitas ingresar _amazonses.
Codigo Descripcion 400Campos requeridos faltantes o dominio con formato invalido. 401API Key invalida. 409El dominio ya esta registrado en este proyecto. 500Error interno al comunicarse con AWS SES.
Retorna los registros DNS almacenados para un dominio. No realiza consultas a AWS -- devuelve los datos guardados en la base de datos al momento del registro.
Parametro Tipo Descripcion domainstring Dominio registrado (ej. mitienda.com).
curl -X GET https://api.reallyquickemails.com/domains/mitienda.com/dns-records \
-H "Authorization: Bearer sk_proj_tu_secret_key"
{
"success" : true ,
"domain" : "mitienda.com" ,
"dns_records" : [
{
"type" : "TXT" ,
"name" : "_amazonses" ,
"value" : "abcdef1234567890abcdef1234567890" ,
"purpose" : "ses_verification" ,
"verified" : false
},
{
"type" : "CNAME" ,
"name" : "abc123._domainkey" ,
"value" : "abc123.dkim.amazonses.com" ,
"purpose" : "dkim" ,
"verified" : false
},
{
"type" : "CNAME" ,
"name" : "def456._domainkey" ,
"value" : "def456.dkim.amazonses.com" ,
"purpose" : "dkim" ,
"verified" : false
},
{
"type" : "CNAME" ,
"name" : "ghi789._domainkey" ,
"value" : "ghi789.dkim.amazonses.com" ,
"purpose" : "dkim" ,
"verified" : false
},
{
"type" : "TXT" ,
"name" : "@" ,
"value" : "v=spf1 include:amazonses.com ~all" ,
"purpose" : "spf" ,
"verified" : null
},
{
"type" : "TXT" ,
"name" : "_dmarc" ,
"value" : "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@mitienda.com" ,
"purpose" : "dmarc" ,
"verified" : null
},
{
"type" : "CNAME" ,
"name" : "bounce" ,
"value" : "feedback-smtp.us-east-1.amazonses.com" ,
"purpose" : "return_path" ,
"verified" : null
}
]
}
Codigo Descripcion 401API Key invalida. 404Dominio no encontrado en el proyecto.
Verifica el estado DNS del dominio consultando directamente a AWS SES. Comprueba tres aspectos:
Verificacion de dominio -- El registro TXT de verificacion SES esta configurado.
DKIM -- Los 3 registros CNAME de DKIM estan configurados y propagados.
MAIL FROM -- El registro CNAME de Return-Path (bounce) esta configurado.
Actualiza el estado en la base de datos y retorna si el dominio puede enviar correos.
Parametro Tipo Descripcion domainstring Dominio registrado (ej. mitienda.com).
curl -X POST https://api.reallyquickemails.com/domains/mitienda.com/verify \
-H "Authorization: Bearer sk_proj_tu_secret_key"
{
"success" : true ,
"domain" : "mitienda.com" ,
"verification" : {
"domain_verified" : true ,
"dkim_verified" : true ,
"mail_from_verified" : false
},
"can_send" : true ,
"message" : "Domain and DKIM verified. MAIL FROM pending -- emails will send but Return-Path may not match."
}
El campo can_send es true cuando tanto domain_verified como dkim_verified son true. La verificacion de mail_from no es obligatoria para enviar pero se recomienda para mejorar la entregabilidad.
Codigo Descripcion 401API Key invalida. 404Dominio no encontrado en el proyecto. 502Error al comunicarse con AWS SES.
Retorna el estado de verificacion almacenado en la base de datos. No consulta AWS SES, por lo que es un endpoint rapido ideal para polling desde la interfaz.
Parametro Tipo Descripcion domainstring Dominio registrado (ej. mitienda.com).
curl -X GET https://api.reallyquickemails.com/domains/mitienda.com/status \
-H "Authorization: Bearer sk_proj_tu_secret_key"
{
"success" : true ,
"domain" : "mitienda.com" ,
"status" : "verified" ,
"can_send" : true ,
"dns_records_summary" : {
"total" : 7 ,
"verified" : 5 ,
"pending" : 2 ,
"failed" : 0
},
"sender" : {
"sender_name" : "Mi Tienda" ,
"sender_email" : "ventas@mitienda.com"
},
"last_verified_at" : "2025-03-10T18:45:00.000Z"
}
Codigo Descripcion 401API Key invalida. 404Dominio no encontrado en el proyecto.
Busca un dominio especifico por nombre. Retorna informacion basica del dominio y su perfil de remitente.
Parametro Tipo Requerido Descripcion domainstring Si Nombre del dominio a buscar.
curl -X GET "https://api.reallyquickemails.com/domains?domain=mitienda.com" \
-H "Authorization: Bearer sk_proj_tu_secret_key"
{
"success" : true ,
"domain" : {
"domain" : "mitienda.com" ,
"status" : "verified" ,
"can_send" : true ,
"created_at" : "2025-03-01T12:00:00.000Z" ,
"sender" : {
"sender_name" : "Mi Tienda" ,
"sender_email" : "ventas@mitienda.com" ,
"reply_email" : "soporte@mitienda.com"
}
}
}
Codigo Descripcion 400Parametro domain no proporcionado. 401API Key invalida. 404Dominio no encontrado en el proyecto.
Elimina un dominio. El dominio se elimina inmediatamente de AWS SES y se marca como eliminado (soft-delete) en la base de datos. El perfil de remitente asociado se desactiva.
Parametro Tipo Descripcion domainstring Dominio a eliminar (ej. mitienda.com).
curl -X DELETE https://api.reallyquickemails.com/domains/mitienda.com \
-H "Authorization: Bearer sk_proj_tu_secret_key"
{
"success" : true ,
"domain" : "mitienda.com" ,
"message" : "Domain and associated sender profile removed"
}
Advertencia: Esta operacion es irreversible en AWS SES. Una vez eliminado, deberas volver a registrar el dominio y configurar los registros DNS nuevamente.
Codigo Descripcion 401API Key invalida. 404Dominio no encontrado en el proyecto.
Actualiza el perfil de remitente asociado a un dominio. Los campos sender_name y sender_email son obligatorios.
Parametro Tipo Descripcion domainstring Dominio asociado (ej. mitienda.com).
Campo Tipo Requerido Descripcion sender_namestring Si Nombre visible del remitente. sender_emailstring Si Direccion de correo del remitente. Debe terminar en @{domain}. reply_emailstring No Direccion de correo para respuestas (Reply-To).
curl -X PUT https://api.reallyquickemails.com/domains/mitienda.com/sender \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_proj_tu_secret_key" \
-d '{
"sender_name": "Equipo Mi Tienda",
"sender_email": "ventas@mitienda.com",
"reply_email": "soporte@mitienda.com"
}'
{
"success" : true ,
"domain" : "mitienda.com" ,
"sender" : {
"sender_name" : "Equipo Mi Tienda" ,
"sender_email" : "ventas@mitienda.com" ,
"reply_email" : "soporte@mitienda.com"
}
}
Codigo Descripcion 400Falta sender_name o sender_email, o sender_email no coincide con el dominio. 401API Key invalida. 404Dominio no encontrado en el proyecto.
Alternativa a la verificacion de dominio completo. Permite verificar un email individual como remitente sin necesidad de configurar DNS. AWS SES envia un email de verificacion al remitente — al hacer clic en el enlace, el email queda verificado para enviar.
Nota: La verificacion por email es mas rapida pero no incluye DKIM/SPF. Para mejor deliverability, se recomienda verificar el dominio completo.
Inicia la verificacion de un email como remitente. AWS SES envia un enlace de verificacion al email proporcionado.
Campo Tipo Requerido Descripcion sender_emailstring Si Email a verificar como remitente. sender_namestring Si Nombre visible del remitente. external_keystring No Clave externa para integraciones.
curl -X POST https://api.reallyquickemails.com/domains/verify-email \
-H "Authorization: Bearer sk_proj_tu_secret_key" \
-H "Content-Type: application/json" \
-d '{
"sender_email": "ventas@gmail.com",
"sender_name": "Mi Empresa"
}'
{
"success" : true ,
"identity_id" : "550e8400-e29b-41d4-a716-446655440000" ,
"sender_email" : "ventas@gmail.com" ,
"verification_status" : "pending" ,
"sender_profile_id" : "123e4567-e89b-12d3-a456-426614174000" ,
"sender" : {
"from_name" : "Mi Empresa" ,
"from_email" : "ventas@gmail.com" ,
"email_verified" : false ,
"domain_authenticated" : false
},
"message" : "Verification email sent. The sender must click the link in the email to verify."
}
El remitente recibira un email de AWS con un enlace. Al hacer clic, su email queda verificado.
Codigo Descripcion 400sender_email and sender_name are required401API Key invalida 409Email ya registrado en este proyecto
Consulta el estado de verificacion de un email. Verifica contra AWS SES en tiempo real.
Parametro Tipo Requerido Descripcion emailstring Si Email a consultar.
curl "https://api.reallyquickemails.com/domains/verify-email/status?email=ventas@gmail.com" \
-H "Authorization: Bearer sk_proj_tu_secret_key"
{
"success" : true ,
"identity_id" : "550e8400-e29b-41d4-a716-446655440000" ,
"sender_email" : "ventas@gmail.com" ,
"verification_status" : "verified" ,
"sender_profile" : {
"id" : "123e4567-e89b-12d3-a456-426614174000" ,
"from_name" : "Mi Empresa" ,
"from_email" : "ventas@gmail.com" ,
"email_verified" : true ,
"domain_authenticated" : false
},
"can_send" : true
}
Estado Descripcion pendingEmail de verificacion enviado, esperando clic del remitente verifiedRemitente verificado, listo para enviar failedVerificacion fallida
Codigo Descripcion 400email query parameter is required401API Key invalida 404Email no encontrado en el proyecto
Reenvia el email de verificacion al remitente.
Campo Tipo Requerido Descripcion sender_emailstring Si Email al que reenviar.
curl -X POST https://api.reallyquickemails.com/domains/verify-email/resend \
-H "Authorization: Bearer sk_proj_tu_secret_key" \
-H "Content-Type: application/json" \
-d '{
"sender_email": "ventas@gmail.com"
}'
{
"success" : true ,
"message" : "Verification email resent" ,
"sender_email" : "ventas@gmail.com"
}
Elimina un email verificado como remitente.
Parametro Tipo Requerido Descripcion emailstring Si Email a eliminar.
curl -X DELETE "https://api.reallyquickemails.com/domains/verify-email?email=ventas@gmail.com" \
-H "Authorization: Bearer sk_proj_tu_secret_key"
{
"success" : true ,
"sender_email" : "ventas@gmail.com" ,
"message" : "Email identity and associated sender profile removed"
}
Codigo Descripcion 400email query parameter is required401API Key invalida 404Email no encontrado en el proyecto