Live vs Test
sk_proj_*ysk_live_*funcionan idéntico — ambos son modo live y son válidos indefinidamente.
Comportamiento detallado de Test Mode
Las keyssk_test_* te dejan desarrollar e iterar sin contaminar tus métricas productivas:
- Envíos reales: el email llega al inbox igual que en live. Es deliberado, para que pruebes deliverability, render visual y comportamiento de los clientes de email.
- Consume cuota mensual: el envío es real, así que cuenta contra el límite mensual del plan igual que un envío live.
- Activity con
is_test=true: cada envío se registra en Activity con la flagis_test: true. El dashboard filtra estos registros cuando el toggle Live/Test está en modo Live. - Webhooks separados: los eventos outbound (
email.delivery,email.bounce,email.open,email.click) y los inbound replies se enrutan a las URLs*_dev. Si la URL_devno está configurada, el evento no se entrega — no hay fallback alwebhook_urlde live. - Toggle en dashboard: el sidebar tiene un switch global Live/Test que filtra Activity, Campaigns y métricas según el modo.
Donde encontrar tus Secret Keys
- Ingresa al dashboard de RQE.
- Navega al proyecto donde deseas obtener las credenciales.
- En el menú lateral, abre Integraciones → API Keys.
- Ahí encontrarás:
- Producción (Live) —
sk_live_*osk_proj_*. - Test —
sk_test_*. Generable/regenerable independientemente de la live.
- Producción (Live) —
Uso
Pasa la key como Bearer token en el headerAuthorization:
Importante: todos los endpoints de la API aceptan keys live y test. RQE determina el modo del envío únicamente por el prefijo de la key — no existe un parámetro mode ni headers especiales para forzar un modo distinto.
Errores de prefijo inválido
Si pasas una key con un prefijo desconocido (ej.sk_dev_), recibes 401 Unauthorized:
Idempotency
Los endpointsPOST /send-email (API avanzada) y POST /v1/send-batch soportan idempotencia opcional vía header Idempotency-Key:
- La key es un string arbitrario de 1 a 256 caracteres.
- La respuesta del primer request se cachea por 24 horas, scoped a
(project_id, idempotency_key). - Si llega otro request con la misma key dentro de la ventana, RQE devuelve la respuesta cacheada del primer request, con header
Idempotency-Replayed: true. - Las respuestas
5xxno se cachean — puedes reintentar con la misma key. - Útil para retries de red sin riesgo de doble envío. Funciona idéntico en live y test.
POST /v1/send-emailyPOST /v1/send-template-emailno soportanIdempotency-Key. Si necesitas idempotencia en envíos individuales, usa la API avanzada.
Dry Run
Para validar payload y variables sin enviar el email, usaPOST /send-email (API avanzada, campos recipient/sender/html) con dry_run: true en el body:
dry_run no está disponible en /v1/send-email. Ver detalles del dry run.
Seguridad
- Nunca expongas tus Secret Keys en código del cliente (frontend, apps móviles, repos públicos). Úsalas solo desde el backend.
- Variables de entorno — almacena en
.env, nunca hardcodeadas:
- Rota tus keys periódicamente. Si sospechas que una fue comprometida, regenérala desde el dashboard. La key anterior queda invalidada al instante.
- Agrega
.enva tu.gitignorepara no subir las credenciales al repositorio. - Mantén live y test aisladas entre ambientes. Usar la
sk_live_*en staging contamina métricas y consume cuota.