Iniciar sesión Crear cuenta
Conceptos

Límites

Solicitudes por segundo, cuotas de envío por plan y los tamaños máximos de cada recurso.

#Solicitudes por segundo

Cada equipo tiene un límite de solicitudes por segundo, sumando todas las claves. El valor depende del plan:

PlanPeticiones por segundo
Gratis5
Profesional10
Escala20
Empresarial50

El límite vigente para tu equipo aparece en GET /usage (rate_limit). Las apps que tienen una sola clave de envío también ven el límite: GET /usage acepta claves sending_access, y los encabezados X-RateLimit-* llegan en todas las respuestas, incluida la del envío. Toda respuesta incluye los encabezados:

EncabezadoDescripción
X-RateLimit-LimitSolicitudes permitidas por segundo.
X-RateLimit-RemainingCuántas caben todavía en el segundo actual.
Retry-AfterSolo en el 429: segundos hasta poder volver a intentarlo.
X-RateLimit-ResetSolo en el 429: cuándo se restablece el límite (Unix timestamp).

Si superas el límite, la respuesta es 429 rate_limit_exceeded. Para enviar muchos correos, usa el envío por lotes: 100 correos cuentan como una solicitud.

El límite es del equipo, no de la clave, y también vale para el servidor MCP. Los SDKs leen los encabezados por ti: postal.rateLimit (Node.js) y $postal->rateLimit() (PHP) guardan el límite de la última respuesta, incluso con una clave solo de envío, y esperan el Retry-After antes de repetir un 429.

#Cuotas de envío

Los envíos cuentan cuando se crea el correo (incluidos los programados y las pruebas de plantilla). Cada destinatario de una campaña, cada prueba de campaña y cada correo de automatización también cuenta. El día y el mes se cuentan en UTC.

PlanPor díaPor mes
Gratis1003.000
ProfesionalSin límite50.000
EscalaSin límite100.000
EmpresarialSin límiteA medida

Al alcanzar la cuota, los envíos reciben 429 daily_quota_exceeded o 429 monthly_quota_exceeded (en SMTP, 452 4.5.3). Una campaña que choca con la cuota a mitad del envío queda pausada y continúa sola cuando la cuota se renueva; un envío de automatización falla, y la ejecución también. En los planes que lo permiten, puedes activar el envío por encima de la cuota en el panel, en Facturación: los correos extra se cobran por millar, sin bloqueo. El plan sigue siendo el mismo; solo pagas por los paquetes adicionales, en la próxima factura. Sigue el consumo en GET /usage.

Reputación de la cuenta. El límite diario vigente es el menor entre el del plan y el tope de la reputación de la cuenta: una puntuación de 0 a 100 que empieza en 0 en las cuentas nuevas y sube con cada día de envíos sin rebotes ni quejas. En los niveles 1 a 4, el tope es de 500, 2.000, 5.000 y 10.000 correos por día; en el nivel 5, solo vale el límite del plan. El límite vigente está en emails.daily.limit de GET /usage, con plan_limit (el del plan) y limited_by (plan o reputation), y el bloque reputation trae la puntuación, el nivel y el siguiente nivel. Cuando es la reputación la que limita, el mensaje del 429 daily_quota_exceeded indica el nivel y el tope.

Adicional de envíos. Cuando el plan del equipo tiene un límite mensual y ofrece el Adicional de envíos, el propietario o un administrador compra, con un pago único, una reserva de envíos que solo se usa después de agotada la cuota mensual: primero la cuota del plan, después la reserva (un crédito por correo, los que vencen antes primero), después el envío por encima de la cuota, si el equipo lo activó, y solo entonces el rechazo. Las campañas no usan la reserva, los correos a direcciones de prueba no gastan crédito, y el límite diario del plan se sigue aplicando. El mensaje del 429 monthly_quota_exceeded dice dónde comprar cuando se puede. Consulta Adicional de envíos y la referencia de la API.

Reputación de envío

Para proteger la entrega de todos, Postal pausa los envíos de un equipo cuando, en los últimos 7 días, los rebotes permanentes superan el límite del nivel de la reputación de la cuenta (3% en el nivel 1, 4% en el nivel 2 y 5% a partir del nivel 3), las quejas de spam superan el 0,3% o el contenido rechazado por los proveedores supera el 5% de los correos enviados. Las tasas se juzgan a partir de 100 envíos en el período en los niveles 1 a 3 y de 1.000 en los niveles 4 y 5. En los niveles 1 a 3, Postal también mira las últimas 24 horas, y los rebotes de todos los tipos por encima del 15% también pausan. En las primeras 24 horas después del primer envío del equipo, la pausa por rebotes permanentes solo ocurre por encima del doble del límite. Las direcciones de prueba no entran en la cuenta. Cada pausa resta 40 puntos a la reputación de la cuenta. El correo de pausa lista hasta 10 direcciones con los rebotes más recientes (ya quedan suprimidas). Mientras los envíos están pausados, reciben 403 sending_paused. Pide la revisión en el panel (no hay endpoint público para ello) o por el formulario de contacto para que los reactiven.

Cómo recibir un aviso antes y cómo detectar la pausa: cuando los rebotes permanentes llegan al aviso del nivel (2% en el nivel 1, 2,5% en el nivel 2 y 3% a partir del nivel 3) o las quejas al 0,15%, los propietarios y administradores del equipo reciben un aviso por correo electrónico, antes de la pausa (uno cuando la tasa cruza el nivel; el siguiente solo si empeora 1 punto porcentual, o 0,1 en las quejas, o pasados 7 días); al pausarse, reciben otro. Por la API, suscríbete a los eventos sending.paused y sending.resumed de los webhooks para alertar a tu equipo al instante, o consulta GET /usage, que incluye sending.paused, paused_at, el reason y review_requested_at (cuándo se pidió la revisión). Un lote de invitaciones o de correos con direcciones erróneas es la causa más común: valida las direcciones antes de enviar y gestiona los rebotes recibidos en los webhooks.

Direcciones suprimidas: un rebote permanente añade la dirección a la lista de supresión automáticamente. Si la persona corrigió su correo electrónico, quítala con DELETE /suppressions/{id} o por lotes con POST /suppressions/batch/remove y el envío vuelve a funcionar.

#Recursos por plan

Planes y precios: postal.so/precos o, por API, GET /plans (público, sin clave).

GratisProfesionalEscalaEmpresarial
Dominios3101.000Sin límite
Buzones de entrada310100Sin límite
Buzones de entrada en tu dominioNoSíSíSí
Personas en el equipo310Sin límiteSin límite
Créditos de IA por mes101001.000Sin límite
Ejecuciones de automatización por mes1.00010.000100.000Sin límite
Contactos (plan de marketing)1.0005.00050.000Sin límite
Segmentos (plan de marketing)3Sin límiteSin límiteSin límite
Campañas por mes (plan de marketing)Sin límiteSin límiteSin límiteSin límite
Layouts10Sin límiteSin límiteSin límite
Pruebas A/B en las automatizacionesNoSíSíSí
Créditos de verificación de correos por mes (plan de marketing)1005.00050.000Sin límite
Conexiones de CRM (plan de marketing)015Sin límite
Integraciones con apps (plan de marketing)1310Sin límite

Los equipos pueden tener límites ajustados individualmente. El valor que cuenta para ti es siempre el de GET /usage.

#Límites y recursos del plan

Cada plan define, por equipo, cuántas cosas puedes tener y qué recursos están incluidos. Superar el límite de un elemento o usar un recurso que el plan no incluye responde 403 plan_limit_reached, con un mensaje que indica cuál. La lista completa, con el texto de cada recurso y si la API ya lo aplica (enforced), está en GET /plans (feature_catalog), y los valores de tu equipo en GET /usage. En los números, null es ilimitado y 0 es no incluido; en los recursos de activado/desactivado, 1 es incluido y 0 no.

Cantidad

Solo bloquean la creación de un elemento más. Lo que ya existe nunca se borra.

Contactos por encima del límite. El límite de contactos del plan de marketing también se puede superar, como el de correos: en Facturación, el propietario o administrador del equipo activa Seguir añadiendo contactos por encima del límite del plan (un botón para cada producto, desactivado de forma predeterminada). Con la opción activada, las importaciones, los formularios, la API y las integraciones de CRM dejan de rechazar con 403 plan_limit_reached al llegar al límite, y los contactos extra se cobran por paquete de 1.000 (redondeando hacia arriba) en la próxima factura, sin cambiar de plan. Lo que se cobra es el mayor número de contactos que el equipo tuvo en el período de facturación (o de contactos que recibieron campañas en el ciclo, si es mayor: consulta más abajo), y borrar contactos después no reduce lo que ya se midió. Los contactos dados de baja y las direcciones suprimidas cuentan como contacto, como siempre. Solo vale con una suscripción de marketing activa, en un plan que permita excedente y que tenga precio de contactos extra; si no, el límite sigue rechazando. El mensaje de rechazo indica cómo activarlo cuando la opción está disponible.

Adicional de contactos. Cuando el plan de marketing del equipo ofrece el Adicional de contactos, el propietario o un administrador suma contactos al límite sin cambiar de plan: el precio del paquete entra en la factura de la suscripción y el límite pasa a ser el del plan más el de los paquetes. El límite que comprueba la API (403 plan_limit_reached) y el que muestra GET /usage ya incluyen los paquetes. Solo valen con un plan de marketing de pago y activo. Mira Adicional de contactos y la referencia de la API.

Contactos que reciben campañas en el ciclo

El límite de contactos del plan de marketing (con el Adicional de contactos) también vale para quien recibe campañas: en el ciclo de uso del equipo (el mes que se renueva el día de tu plan), las campañas y los correos de automatización pueden ir a hasta ese número de contactos diferentes. Cada dirección cuenta una vez por ciclo. Quien ya recibió una campaña en el ciclo sigue contando hasta la renovación, aunque se elimine, y eliminar y volver a crear la misma dirección no cuenta dos veces. Eliminar contactos que aún no recibieron una campaña libera espacio al instante. Enviar varias campañas a los mismos contactos no consume más. Los correos transaccionales no cuentan.

Ejemplo, con un límite de 50.000 contactos: enviar 5 campañas a los mismos 50.000 contactos en el ciclo está dentro del plan. Eliminar los 50.000 que ya recibieron una e importar otros 50.000 en el mismo ciclo pasa del límite: la campaña a los nuevos se rechaza hasta la renovación.

Una campaña que pasaría del límite se rechaza entera, sin enviar nada, con 422 cycle_recipients_limit, un mensaje con los números, la fecha de renovación y qué hacer, y el bloque cycle_recipients (new, used, limit, remaining y resets_at). Postal comprueba de nuevo cuando una campaña programada va a salir: si ya no cabe, queda en pausa con el mismo motivo. Un correo de automatización a un contacto que aún no recibió nada en el ciclo, con el límite lleno, se omite. El propietario y los administradores reciben un correo al llegar al 80% y al 100%. Con el excedente de contactos activado, no se rechaza nada y los contactos por encima del límite se cobran como contactos extra. Sin límite de contactos, no hay límite de destinatarios. El contador está en GET /usage (marketing_recipients) y en Configuración › Uso, y el efecto de una campaña, antes de enviarla, en GET /broadcasts/audience.

ClaveQué cuentaDónde bloquea
domainsDominios de envíoPOST /domains y la reclamación de dominio
inboxesBuzones de entradaPOST /inboxes
templatesPlantillasPOST /templates y duplicar
layoutsLayoutsPOST /layouts y duplicar
api_keysClaves de APIPOST /api-keys
webhooksEndpoints de webhookPOST /webhooks
team_membersPersonas en el equipo (las invitaciones pendientes cuentan)Invitar personas, en el panel
contactsContactosCrear contactos por la API, por importación, formulario o integración
segmentsSegmentosPOST /segments y unificar segmentos
topicsTemasPOST /topics
formsFormulariosPOST /forms
automationsAutomatizaciones (activas o no)POST /automations
broadcasts_per_monthCampañas enviadas o programadas en el mes (UTC)Enviar o programar una campaña
crm_connectionsConexiones de CRMCrear la conexión
app_integrationsIntegraciones con apps (Stripe, Supabase, Clerk, Firebase, Auth0)Crear la integración
attachments_mbTamaño total de los adjuntos de un correo, en MB. 0 no permite adjuntos; vacío (null) usa el límite de la plataforma, de 40 MBEnviar correos con adjuntos

Otros límites mensuales no dan 403: emails_per_day y emails_per_month dan 429 (consulta las cuotas de envío); ai_credits, 429 ai_credits_exhausted; email_verifications_per_month, 403 si el plan no incluye la verificación de correos y 429 verification_credits_exhausted cuando se agotan los créditos; y automation_runs: por encima del límite, las nuevas ejecuciones de automatización no empiezan (quedan como skipped).

Recursos de activado/desactivado

ClaveQué habilitaDónde bloquea
batch_sendingEnvío en lotePOST /emails/batch
scheduled_sendingProgramación de envíosscheduled_at en POST /emails
test_addressesDirecciones de prueba simuladasEnviar a @sandbox.postal.so
smtp_accessEnvío por SMTPEl SMTP rechaza el mensaje con 550 5.7.1
engagement_trackingSeguimiento de aperturas y clicsActivar open_tracking o click_tracking en un dominio (los que ya hacen seguimiento continúan)
custom_domain_recordsReturn-Path y subdominio de seguimiento propioscustom_return_path y tracking_subdomain nuevos o modificados
shared_email_linksEnlaces para compartir correosPOST /emails/{id}/share
custom_inbound_domainsBuzones de entrada y recepción en tu dominioCrear buzones de entrada y activar capabilities.receiving en dominios propios
inbox_agentAgente de IA del buzón de entradaActivar el agente en un buzón de entrada
exportsExportaciones en CSVPOST /exports y la exportación de las respuestas de formularios
mcp_accessServidor MCPEl endpoint /mcp
restricted_api_keysClaves solo de envío o restringidas a un dominioPOST /api-keys con permission: "sending_access" (las claves ya creadas siguen valiendo)
dynamic_segmentsSegmentos dinámicosCrear un segmento dinámico (los existentes continúan)
form_analyticsAnálisis de los formulariosGET /forms/overview y GET /forms/{id}/analytics, con las respuestas por pregunta y la exportación del análisis
automation_experimentsPruebas A/B en las automatizacionesPasos de experimento A/B
postal_brandingSello “Enviado con Postal” (invertido: 1 es tener el sello)Ocultar el sello en un formulario

retention_days, priority_support, uptime_sla y dedicated_manager son informativos: la API no bloquea nada por ellos (la retención es de 30 días para todos, y el soporte se acuerda aparte).

Cuando el plan baja

Cuando el plan cambia, la cantidad que el equipo ya tiene puede superar el nuevo límite. No se borra nada: de dominios, buzones de entrada, plantillas, layouts, claves de API, webhooks, automatizaciones, segmentos, temas y formularios, los más antiguos hasta el límite siguen activos y los más nuevos quedan con paused_by_plan: true. Un elemento pausado aparece en las listas y se puede leer y eliminar, pero no modificar ni usar: el dominio no envía, la clave de API no autentica, el webhook no recibe eventos, la plantilla no envía, el formulario deja de estar publicado, la automatización no se dispara, el segmento no sirve de público y el buzón de entrada no ejecuta el agente (sigue recibiendo correos). Cualquier intento de modificarlo responde 403 paused_by_plan. Los elementos vuelven solos cuando el plan, el tramo de volumen o el recuento lo permiten, y GET /usage lista lo que está pausado en paused. Los contactos, las personas del equipo y las conexiones no se pausan: el límite solo impide añadir más.

Las cuotas de correos por mes y el número de contactos siguen el tramo de volumen contratado (consulta Planes), y un equipo puede tener límites ajustados individualmente. El valor que cuenta para ti es siempre el de GET /usage.

La escala de volumen se compone de tramos definidos por Postal (por ejemplo 3.000, 50.000, 100.000 y 250.000 correos por mes): cada plan cubre algunos de esos tramos, con el precio de cada uno, y por encima del último tramo solo lo cubre el plan a medida. La lista de los tramos y de los que cubre cada plan está en GET /plans (volume_bands y bands).

#Tamaños y cantidades

QuéLímite
Destinatarios en to50 por correo
Correos por lote (POST /emails/batch)100
Adjuntos40 MB en total por correo (menos, si el plan lo limita: attachments_mb)
Adjuntos de respuestas, mensajes y borradores del buzón de entradaHasta 10 archivos y 40 MB en total
Mensaje por SMTP40 MB y 50 destinatarios
Programación (scheduled_at)Hasta 30 días en el futuro
Direcciones de prueba ([email protected]…)No cuentan en la cuota de envío, ni en las tasas de rebote y de queja de la reputación; el límite de solicitudes por segundo sí se aplica
Etiquetas50 por correo; nombre y valor de hasta 256 caracteres
Asunto y valores de encabezado998 caracteres
Elementos por página en las listas100
Idempotency-Key256 caracteres, guardada durante 24 horas
Imágenes (POST /assets)5 MB
Exportaciones en curso3 por equipo
Enlace público de un correo (POST /emails/{id}/share)Vale de 1 minuto a 48 horas
Métricas (GET /emails/metrics)Hasta 10.000 períodos y 100 IDs en cada filtro
Instrucciones de DNS por correo (POST /domains/{id}/instructions)Hasta 5 destinatarios; 3 por minuto y 10 por hora por equipo; 5 por día para cada dirección
Respuestas reenviadas por correo con detección de respuestas20
Orígenes que se ignoran en un webhook (skip_sources)20
Importaciones de contactosCSV de hasta 20 MB; 3 en curso por equipo
Contactos por solicitud en POST /contacts/batch10.000
Etiquetas por solicitud de contacto50
Contactos por operación de etiquetado masivo1.000
Verificación de correosHasta 200.000 direcciones por lista; 2 listas en curso por equipo
Segmento dinámico10 grupos de condiciones y 20 condiciones en total
Segmentos en una combinación20
Propiedades del contacto100 por equipo; valores de texto de hasta 1.000 caracteres
Variables de una plantilla50
Envíos a un formulario público5 por minuto por IP
Programación de campañasHasta 30 días en el futuro
Prueba de campaña5 direcciones
Eventos (POST /events)Nombre de hasta 100 caracteres; properties de hasta 16 KB
Automatizaciones100 pasos; 10 filtros en el disparador; 20 acciones por update_contact; espera de hasta 365 días
Paso de webhook de las automatizaciones3 intentos, 15 segundos cada uno
Retención de correos, webhooks y registros30 días
Retención de eventos90 días
Archivos de exportación7 días; el enlace de descarga vale 1 hora
Resultados de la verificación de correos7 días para el resultado de cada dirección y el CSV; la verificación en sí se conserva 30 días