Skip to main content
ReallyQuickEmails autentica cada solicitud con Secret Keys con prefijo. Cada proyecto tiene dos keys distintas: una para tráfico productivo (Live) y otra para desarrollo (Test).

Live vs Test

sk_proj_* y sk_live_* funcionan idéntico — ambos son modo live y son válidos indefinidamente.

Comportamiento detallado de Test Mode

Las keys sk_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 flag is_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 _dev no está configurada, el evento no se entrega — no hay fallback al webhook_url de live.
  • Toggle en dashboard: el sidebar tiene un switch global Live/Test que filtra Activity, Campaigns y métricas según el modo.
Ver Modos Live y Test para el routing de webhooks y casos extremos.

Donde encontrar tus Secret Keys

  1. Ingresa al dashboard de RQE.
  2. Navega al proyecto donde deseas obtener las credenciales.
  3. En el menú lateral, abre Integraciones → API Keys.
  4. Ahí encontrarás:
    • Producción (Live) — sk_live_* o sk_proj_*.
    • Testsk_test_*. Generable/regenerable independientemente de la live.
Cada key tiene controles separados de mostrar/copiar/regenerar. Regenerar la live no afecta la test, ni viceversa.

Uso

Pasa la key como Bearer token en el header Authorization:
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 endpoints POST /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 5xx no 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-email y POST /v1/send-template-email no soportan Idempotency-Key. Si necesitas idempotencia en envíos individuales, usa la API avanzada.

Dry Run

Para validar payload y variables sin enviar el email, usa POST /send-email (API avanzada, campos recipient/sender/html) con dry_run: true en el body:
Respuesta:
No se envía nada, no se encola, no se registra actividad ni consume cuota. Útil para CI o para validar templates antes de un envío masivo. 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 .env a tu .gitignore para 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.