Dominios de envío
El dominio propio con el que un workspace envía campañas de correo, con sus registros DKIM y su verificación.
Descarga la proyección completa de la API pública: openapi.json.
Verificar tu dominio de envío explica este recurso en prosa, con ejemplos ejecutables.
| Método | Ruta | Qué hace |
|---|---|---|
GET | /sending-domains | List sending domains |
POST | /sending-domains | Register a sending domain |
DELETE | /sending-domains/{id} | Remove a sending domain |
POST | /sending-domains/{id}/verify | Re-check a sending domain against SES and DNS |
GET | /sending-domains/quota | The account's SES send quota |
GET /sending-domains
List sending domains
Every domain the workspace has registered, verified or not.
curl https://api.vitrinadev.com/api/v1/sending-domains \
-H "Authorization: Bearer $VITRINA_KEY"Ejemplo de respuesta (200)
{
"data": [
{
"id": "d9d9d9d9-0000-4000-8000-000000000001",
"tenant_id": "a1a1a1a1-0000-4000-8000-000000000001",
"domain": "mail.autosdelvalle.cl",
"dkim_tokens": [
"ab12cd34ef56gh78",
"ij90kl12mn34op56",
"qr78st90uv12wx34"
],
"dkim_status": "verified",
"mail_from_domain": "bounce.mail.autosdelvalle.cl",
"mail_from_status": "verified",
"verified_for_sending": true,
"tracking_domain": "click.mail.autosdelvalle.cl",
"tracking_ready": true,
"last_checked_at": "2026-09-15T18:20:00.000Z",
"created_by": "11111111-0000-4000-8000-000000000001",
"created_at": "2026-01-10T13:00:00.000Z",
"updated_at": "2026-09-15T18:20:00.000Z"
}
],
"meta": {
"total": 1
}
}Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429
POST /sending-domains
Register a sending domain
Creates the SES identity and answers the stored row plus records — the DNS entries (DKIM CNAMEs, MAIL FROM MX + TXT) the workspace must publish at its registrar before anything can send from it. Every status field starts pending; call POST /sending-domains/\{id\}/verify once DNS has propagated.
Cuerpo
| Campo | Tipo | Obligatorio | Restricciones |
|---|---|---|---|
domain | string | sí | mín. 4, máx. 253 |
curl -X POST https://api.vitrinadev.com/api/v1/sending-domains \
-H "Authorization: Bearer $VITRINA_KEY" \
-H "Content-Type: application/json" \
-d '{
"domain": "mail.autosdelvalle.cl"
}'Ejemplo de respuesta (201)
{
"data": {
"id": "d9d9d9d9-0000-4000-8000-000000000001",
"tenant_id": "a1a1a1a1-0000-4000-8000-000000000001",
"domain": "mail.autosdelvalle.cl",
"dkim_tokens": [
"ab12cd34ef56gh78",
"ij90kl12mn34op56",
"qr78st90uv12wx34"
],
"dkim_status": "pending",
"mail_from_domain": "bounce.mail.autosdelvalle.cl",
"mail_from_status": "pending",
"verified_for_sending": false,
"tracking_domain": "click.mail.autosdelvalle.cl",
"tracking_ready": false,
"last_checked_at": null,
"created_by": "11111111-0000-4000-8000-000000000001",
"created_at": "2026-01-10T13:00:00.000Z",
"updated_at": "2026-09-15T18:20:00.000Z",
"records": [
{
"type": "CNAME",
"name": "ab12cd34ef56gh78._domainkey.mail.autosdelvalle.cl",
"value": "ab12cd34ef56gh78.dkim.amazonses.com"
},
{
"type": "MX",
"name": "bounce.mail.autosdelvalle.cl",
"value": "10 feedback-smtp.us-east-1.amazonses.com"
},
{
"type": "TXT",
"name": "bounce.mail.autosdelvalle.cl",
"value": "v=spf1 include:amazonses.com ~all"
}
]
}
}Responde: 201 · 400 · 401 · 403 · 404 · 409 · 429
DELETE /sending-domains/{id}
Remove a sending domain
Removes the row; the SES identity itself is not deleted, since campaigns already sent still reference it for reporting.
| Parámetro | En | Tipo | Obligatorio | Restricciones |
|---|---|---|---|---|
id | path | uuid | sí |
curl -X DELETE https://api.vitrinadev.com/api/v1/sending-domains/<id> \
-H "Authorization: Bearer $VITRINA_KEY"Responde: 204 · 400 · 401 · 403 · 404 · 409 · 429
POST /sending-domains/{id}/verify
Re-check a sending domain against SES and DNS
Re-polls SES for dkim_status / mail_from_status / verified_for_sending and re-resolves the tracking CNAME. Safe to call repeatedly while DNS is propagating; nothing here mutates the domain itself.
| Parámetro | En | Tipo | Obligatorio | Restricciones |
|---|---|---|---|---|
id | path | uuid | sí |
curl -X POST https://api.vitrinadev.com/api/v1/sending-domains/<id>/verify \
-H "Authorization: Bearer $VITRINA_KEY"Ejemplo de respuesta (200)
{
"data": {
"id": "d9d9d9d9-0000-4000-8000-000000000001",
"tenant_id": "a1a1a1a1-0000-4000-8000-000000000001",
"domain": "mail.autosdelvalle.cl",
"dkim_tokens": [
"ab12cd34ef56gh78",
"ij90kl12mn34op56",
"qr78st90uv12wx34"
],
"dkim_status": "verified",
"mail_from_domain": "bounce.mail.autosdelvalle.cl",
"mail_from_status": "verified",
"verified_for_sending": true,
"tracking_domain": "click.mail.autosdelvalle.cl",
"tracking_ready": true,
"last_checked_at": "2026-09-15T18:20:00.000Z",
"created_by": "11111111-0000-4000-8000-000000000001",
"created_at": "2026-01-10T13:00:00.000Z",
"updated_at": "2026-09-15T18:20:00.000Z"
}
}Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429
GET /sending-domains/quota
The account's SES send quota
Account-level, not per-domain: the 24-hour send cap, how much of it is already spent, the send rate, and whether the AWS account is in SES sandbox or production access. Surfaces the ceiling a campaign can hit regardless of which sending domain it uses.
curl https://api.vitrinadev.com/api/v1/sending-domains/quota \
-H "Authorization: Bearer $VITRINA_KEY"Ejemplo de respuesta (200)
{
"data": {
"max_24_hour_send": 50000,
"sent_last_24_hours": 812,
"max_send_rate": 14,
"production_access_enabled": true
}
}Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429