Probar una regla
Cuáles de tus mensajes recientes habría capturado esta regla. No cambia nada.
Ejecuta la llamada real contra tu espacio de trabajo, con tu propia clave.
POST /rules/{id}/test
Cuáles de tus mensajes recientes habría capturado esta regla. No cambia nada.
Ejemplo
Requiere rules:read. Una prueba en seco lee un buzón y no escribe nada, así que no es una operación de rules:write. days vale 30 por defecto y llega hasta 365, limit vale 50 por defecto y llega hasta 200, y threadIds prueba hilos concretos en lugar de una ventana de tiempo.
curl -X POST "$OE/rules/rul_7f3a1c94e05d3862c1f0a44b/test" -H "$AUTH" \ -H "Content-Type: application/json" \ -d '{ "days": 30, "limit": 50 }'{ "object": "rule_test", "ruleId": "rul_7f3a1c94e05d3862c1f0a44b", "scanned": 50, "matched": 3, "wouldApply": ["label:USER_RECEIPTS", "archive"], "messages": [ { "threadId": "thr_5d31c2a8…", "from": "[email protected]", "subject": "Your receipt", "receivedAt": "2026-08-28T10:00:00.000Z" } ], "warnings": [{ "code": "forward_unverified", "value": "[email protected]" }]}Responde a esto el mismo motor que se ejecuta en la ruta de entrega. Es un único módulo, deliberadamente puro (sin base de datos, sin red), para que la pantalla de ajustes, la prueba en seco y el manejador de SMTP no puedan discrepar sobre si una regla coincide. Una vista previa escrita dos veces son dos respuestas a una misma pregunta, y la que se le muestra a una persona es la equivocada.
Acotada por construcción: como mucho 200 mensajes a lo largo de como mucho un año. Esto se ejecuta dentro de un Worker con un presupuesto de tiempo real, y un escaneo sin límite es una petición que muere a mitad de camino sin nada que mostrar.
Una regla desactivada también se puede probar. De eso se trata: escríbela, pruébala y luego actívala.
warnings es donde aparece una regla que se analiza correctamente pero no se va a comportar. La que te encontrarás es una dirección de reenvío que nadie ha confirmado. Un aviso nunca detiene la prueba: el sentido de una prueba en seco es informar de todo lo que encontró en una sola pasada, no fallar en lo primero.
No existe «ejecuta esto sobre mi buzón»
Deliberadamente no existe POST /rules/{id}/run, y no va a existir. Aplicar una regla de forma retroactiva a un buzón entero no tiene límite, es irreversible y no se puede deshacer (una acción trash sobre diez años de correo es una sola llamada sin segunda oportunidad), y la ruta de escritura que tendría que usar se fusiona con el hilo almacenado, lo que subiría al principio de la bandeja de entrada todos los mensajes que tocara como efecto secundario de ordenar.
Este endpoint es la mitad honesta de esa petición: responde a «qué habría hecho esto», que es la pregunta, y después archivas los mensajes que de verdad querías con PATCH /threads/{id}.