Empieza acá
El alta entera cabe en una llamada con tu partner-key: el proyecto, su dominio de envío con el pack DNS completo y su remitente. No necesitas la API key del cliente para configurarlo.Compatibilidad: si ya integraste el flujo anterior, no necesitas cambiar nada.
POST /v1/partner/projects con solo { "name": "..." } sigue siendo válido y devuelve la misma respuesta de siempre; domain y sender son campos nuevos y opcionales. Los endpoints de /domains/* con la API key del cliente tampoco cambiaron.1
Crea el cliente completo
Con tu partner-key (Guarda la
sk_partner_..., la emite RQE al habilitar tu cuenta de partner):api_key de forma segura: se devuelve una sola vez. El external_key hace la llamada idempotente — reintentarla devuelve el mismo proyecto en vez de duplicarlo.domain y sender van juntos. SES no registra un dominio sin una dirección From, así que mandar uno sin el otro responde 400 antes de crear nada. Cada registro DNS trae fqdn, que es el nombre listo para publicar; ese es el que copia el cliente.Referencia completa en Partner / Provisioning.2
Reenvía el link de verificación
domain.verification_url es una página pública con los registros DNS del cliente, botones de copiar y un botón de verificar. La abre tu cliente final sin cuenta RQE: es lo único que tienes que mandarle.Si su proveedor de DNS soporta Domain Connect, la publicación es de un clic desde esa misma página.Este es el paso donde se traba la mayoría de las integraciones: el cliente final tiene que tocar su DNS. El link público es lo que más ayuda — no le pidas que copie registros de un correo tuyo.
3
Espera la verificación
Cuando el cliente publique el DNS, recibes el webhook
domain.verified — no hace falta pollear. Ver Webhooks.Para forzar el chequeo cuando te diga “ya lo configuré”:4
Envía y mide
Con la Y
api_key del cliente, envía transaccional o en lote. Para ver cómo va cada uno:GET /v1/partner/projects lista toda tu cartera.Configura un cliente que ya existe
Todo lo que hace el alta completa se puede hacer después, por separado y siempre con la partner-key:
El alta de dominio no pisa lo que ya funciona. Si el dominio ya estaba registrado, la llamada es idempotente y no toca nada más del cliente. Y aunque el dominio sea nuevo, no registra el reply si el cliente ya tiene uno verificado, ni el tracking si ya tiene uno configurado: registrar un reply domain reescribe su estado a
pending, y eso le apagaría las respuestas branded a un cliente que ya las tenía andando.
Lo que se omitió viene dicho en el array skipped[] de la respuesta, con su step y su reason_code. Ver Pasos omitidos.
Si tu cliente no controla su DNS
Existe la salida de verificar solo la casilla, por correo (magic link). Hay que pedirla explícitamente:422 DOMAIN_NOT_VERIFIED. Es a propósito.
Esa exigencia es solo del endpoint nuevo POST /v1/partner/projects/{id}/senders. Si hoy verificas remitentes con POST /domains/verify-email y la API key del cliente, ese camino sigue funcionando igual, sin flag y sin este error.
Revisa la salud de tus clientes
GET /domains/health devuelve, por cada dominio del proyecto: si puede enviar, cómo está su autenticación, cuánto envió, cómo rebota y qué le falta — en texto que puedes reenviar directo a tu cliente.
GET /v1/partner/projects/{id} devuelve un bloque health con status, can_send, hard_bounce_rate e issues. Es la llamada con la que armas tu panel de clientes.
Alternativa — varios clientes en un proyecto
Si prefieres gestionar una sola credencial y tus clientes nunca van a necesitar límites ni acceso propios, puedes tenerlos a todos dentro de un proyecto.
En ese modelo el alta de dominios y reply domains es igual, pero con tu propia key. Un proyecto puede tener varios reply domains: cada envío resuelve el que corresponde al dominio del remitente.
Para depurar un cliente concreto:
GET /v1/domain-stats — ver Activity. GET /domains/health también funciona acá, y devuelve una entrada por cada dominio de cliente.
1
Registra el dominio de tu cliente
Con la API key de tu proyecto, das de alta el dominio de cada cliente y recibes los registros DNS que debe publicar.Para que publique el DNS de un click, usa Domain Connect:
GET /domains/cliente.com/domain-connect devuelve una URL firmada que crea los registros en su proveedor.2
Registra su reply domain (opcional)
Para que las respuestas lleguen a Puedes registrar uno por cada cliente en el mismo proyecto. Cada envío resuelve el reply domain que corresponde al dominio del remitente. Para verificar uno concreto, pasa
nombre@reply.cliente.com en vez de a una dirección con token:domain en el body de POST /domains/reply/verify.3
Espera la verificación
Cuando tu cliente publique el DNS, recibes el webhook
domain.verified — no hace falta pollear. Ver Webhooks.4
Envía en su nombre
Con la misma API key, envía transaccional o en lote usando su dominio como remitente.
5
Depura y mide por cliente
Los envíos de un cliente concreto:Y sus métricas agregadas, con entregas, rebotes, aperturas y clicks:Ver Activity y domain-stats.
Con un agente de IA (MCP)
Referencia
- Dominios — alta, verificación, salud, reply domain y tracking domain.
- Activity —
?sender_domain=y/v1/domain-stats. - API pública — envío.
- Webhooks —
domain.verifiedy eventos de email. - Partner / Provisioning — referencia completa de
/v1/partner/*: alta, dominios, remitentes, API key y códigos de error.