OpenAPI YAMLOpenAPI JSONproblemas YAMLResumen de la API
Este grupo tiene 13 operaciones, generadas a partir de api/openapi.yaml. Filtre por ruta, acción o autenticación. Cada endpoint indica sus entradas; despliéguelo para ver una plantilla de solicitud y los códigos de respuesta. Las plantillas necesitan sus propios valores y un cuerpo válido según el esquema.
Reemplace los marcadores en mayúsculas con sus valores. Para una solicitud JSON, guarde un cuerpo que coincida con el esquema en request.json. Los ejemplos de cookies usan un frasco de cookies local de una sesión autenticada.
Notificaciones: avisos por correo electrónico y webhook firmado ante cambios de estado de las pantallas
Listar notificaciones
Lista las notificaciones de la organización que cubren el proyecto, de todos los canales, de la más antigua a la más reciente (máximo 50). status, failing_since, last_success_at y last_failure_at son los de este proyecto. El secreto de firma de un webhook nunca se devuelve aquí.
Requiere la capacidad de proyecto; una credencial solo de informes se rechaza con 403 forbidden, porque la respuesta incluye las URL de los receptores y los destinatarios.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Las notificaciones del proyecto. | NotificationList (application/json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Crear notificación
Crea una notificación. channel email envía a recipients (owner, o user_ids de los miembros del proyecto); channel webhook hace POST, firmado, a url, que sigue las reglas de URL de webhook (https en un host de Internet público, puerto 443 u 8443, de lo contrario webhook_url_rejected). conditions lista los cambios de estado de pantalla en los que se activa; una notificación por correo necesita al menos uno, un webhook necesita conditions o event_types. screen_tags limita conditions a las pantallas que llevan cualquiera de esas etiquetas; vacío significa todas las pantallas, o audience indica qué pantallas con las reglas de una audiencia de campaña. min_severity y severity filtran y califican los avisos, y active_hours los retiene o descarta fuera de sus ventanas.
Una condición solo notifica después de haber durado hold_minutes (10 por defecto), y sigue un aviso de resolución cuando se resuelve después de haberse enviado un aviso. La notificación cubre solo este proyecto; una organización tiene como máximo 50 notificaciones, sin contar las predeterminadas que crea el sistema (notification_limit_reached).
El servidor genera el secreto de firma de un webhook y lo devuelve solo en esta respuesta y en rotate-secret; guárdelo. Un reintento exacto con la misma Idempotency-Key devuelve esta misma respuesta, secreto incluido, durante veinticuatro horas. Los avisos empiezan con el primer evento posterior a notification.created.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| channel (obligatorio, string) | Permitidos: "email", "webhook", "slack", "teams", "pagerduty", "telegram" |
| descripción (opcional, cadena) | Un nombre para personas. maxLength: 200 |
| conditions (opcional, NotificationConditions) | |
| screen_tags (opcional, ScreenTags) | Etiquetas de selector de flota, de 0 a 16 etiquetas únicas exactas, cada una que coincide con la gramática de etiquetas de medios. En ScreenPatch el arreglo reemplaza todo el conjunto y un arreglo vacío lo borra; una etiqueta duplicada o malformada es invalid_request. Cambiar etiquetas aumenta la revisión de pantalla (If-Match la protege) y añade screen.updated con details.tags; nunca cambia la revisión del manifiesto. Las etiquetas nunca están en el manifiesto en tiempo de ejecución ni en la autorización. |
| audience (opcional, CampaignAudience) | Qué pantallas selecciona una campaña: exactamente uno de all (coinciden todas las reglas), any (coincide al menos una), tag (la pantalla lleva la etiqueta), screen_id (esa pantalla) o folder (las pantallas de esa carpeta de pantallas y de cada carpeta que contiene, GET /api/screen-folders; la carpeta debe existir). Las reglas se anidan hasta 3 niveles como máximo y una audiencia tiene como máximo 500 reglas. {"all": []} es cada pantalla del proyecto; en los demás casos all y any listan al menos una regla. |
| min_severity (opcional, NotificationSeverity) | La gravedad de un aviso, de la menos grave a la más grave. Un aviso abierto tiene la gravedad de su condición: error para screen_offline y warning para cualquier otra condición, salvo que la severity de la notificación indique otra cosa. Un aviso resuelto y una prueba son info. Permitidos: "info", "warning", "error" |
| severity (opcional, NotificationSeverityOverrides) | Condición a gravedad para esta notificación, como {"not_playing": "error"}. Cuenta para min_severity y es la gravedad que Teams y PagerDuty muestran para la condición. Una condición que no figura conserva su valor predeterminado. En un patch, un objeto vacío, como null, borra todas las anulaciones. |
| active_hours (opcional, NotificationActiveHours) | Cuándo se envían los avisos abiertos: las ventanas (screenrig.schedule/v1), leídas en timezone. Un aviso que vence mientras están cerradas espera a la siguiente apertura (outside hold, el valor predeterminado) y se envía entonces si su condición sigue vigente, de modo que una condición que se despeja antes no envía nada, o se omite (outside drop; last_error outside_hours). Un aviso resuelto de un aviso abierto que se envió siempre se envía, dentro del horario o no, y una prueba lo ignora. crashing se retiene o se descarta como cualquier otra condición. El horario juzga un aviso cuando sale por primera vez; uno fallido se reintenta según el calendario habitual, sea cual sea el horario. Añadir, cambiar o quitar el horario vuelve a juzgar de inmediato los avisos retenidos por el anterior. |
| reach_drop (optional, NotificationReachDrop) | La menor caída en el alcance de una campaña por la que se envía un aviso reach_dropped: screens es el menor número de pantallas perdidas (1 de forma predeterminada) y percent, si se define, la menor proporción de las pantallas que la campaña alcanzaba cuando se publicó; una caída debe cumplir ambos. Una caída menor no pone en cola ningún aviso, y un aviso en cola cuya caída se redujo por debajo del umbral cuando le toca enviarse se omite (condition_cleared). Solo con la condición reach_dropped; en una notificación sin ella, invalid_request. |
| hold_minutes (opcional, integer) | Cuánto tiempo debe durar una condición antes de notificar. crashing nunca se retiene. default: 10 minimum: 0 maximum: 1440 |
| recipients (opcional, NotificationRecipients) | Solo correo electrónico. owner (quien sea propietario del proyecto cuando se envía un aviso) o el user_id de una persona que es miembro del proyecto; un user_id que no corresponde a un miembro devuelve invalid_request. A cada uno se le envía un correo electrónico a su dirección verificada. Se omite a quien haya dejado el proyecto desde entonces o no tenga una dirección verificada. |
| url (opcional, cadena) | Solo webhook: URL https en un host público de Internet, puerto 443 (el predeterminado) u 8443. Sin userinfo ni fragmento. maxLength: 2048 format: "uri" |
| event_types (opcional, NotificationEventTypes) | Solo webhook. Eventos del proyecto que además se envían por POST a medida que ocurren, exactamente como los envía un webhook: tipos exactos, como screen.online, o prefijos que terminan en .*, como screen.*. notification.test nunca se distribuye. |
| destination (opcional, NotificationDestination) | Solo Slack, Teams, PagerDuty y Telegram; obligatorio para ellos. La credencial con la forma que emite el servicio: slack, la URL del webhook entrante (hooks.slack.com); teams, la URL del webhook de Workflows (logic.azure.com o powerplatform.com; las URL de conector de Office 365 están retiradas); pagerduty, la clave de enrutamiento de Events API v2 de 32 caracteres; telegram, el token del bot. Otra forma da notification_destination_rejected. Se sella, nunca se devuelve y en las lecturas solo aparece como destination_hint. minLength: 1 maxLength: 2048 |
| telegram_chat_id (opcional, NotificationTelegramChat) | Solo Telegram; obligatorio para él. El chat en el que publicar: su id numérico (negativo para un grupo o canal) o @channelname. No es una credencial. pattern: "^(-?[0-9]{1,20}|@[A-Za-z][A-Za-z0-9_]{4,31})$" |
| habilitado (opcional, booleano) | predeterminado: true |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/notifications'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 201 | Creada. El secreto de un webhook se muestra solo aquí y en rotate-secret. | Notification (application/json); encabezados: Cache-Control |
| 400 | invalid_request, webhook_url_rejected o notification_destination_rejected. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — El enrutamiento de alertas (un canal de Slack, Teams, PagerDuty o Telegram, o una regla min_severity, severity, active_hours o audience) forma parte de Plus. Las notificaciones por correo y webhook con las reglas predeterminadas, y las condiciones loop_stalled, glass_blank y glass_frozen, están en todos los planes. El problema nombra la función, el plan del proyecto y required_plan. | Problema (application/problem+json) |
| 409 | notification_limit_reached, idempotency_mismatch o resource_conflict cuando el proyecto no pertenece a ninguna organización. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Obtener notificación
Requiere la capacidad de proyecto; una credencial solo de informes se rechaza con 403 forbidden, porque la respuesta incluye la URL del receptor o los destinatarios.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Una notificación. | Notification (application/json); encabezados: ETag |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Actualizar notificación
Cambia cualquiera de description (vacío la borra), conditions, screen_tags, audience, min_severity, severity, active_hours (null borra cada uno de estos), hold_minutes, recipients (email), url y event_types (webhook), destination y telegram_chat_id (Slack, Teams, PagerDuty y Telegram), enabled y snoozed_until; channel nunca cambia.
Un campo del otro canal es invalid_request. Una url nueva se comprueba como al crear.
Establecer enabled en true en una notificación deshabilitada borra su estado de fallo y empieza en el evento que registra el cambio; no se envía nada de lo ocurrido mientras estaba deshabilitada, y los avisos que seguían pendientes de antes de la deshabilitación se marcan como fallidos con webhook_disabled. snoozed_until no envía nada hasta ese instante (como máximo 30 días en el futuro; null finaliza la pausa); los avisos que corresponde enviar mientras tanto se omiten (snoozed).
Agrega notification.updated. If-Match protege la revisión. Aquí solo cambia una notificación que cubre únicamente este proyecto; una que cubre también otros proyectos de la organización es notification_covers_other_projects y se cambia desde la página Notificaciones de la organización.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Campos del cuerpo de la solicitud
| Campo | Descripción |
|---|---|
| descripción (opcional, cadena) | Una cadena vacía borra la descripción. maxLength: 200 |
| conditions (opcional, NotificationConditions) | |
| screen_tags (opcional, ScreenTags) | Etiquetas de selector de flota, de 0 a 16 etiquetas únicas exactas, cada una que coincide con la gramática de etiquetas de medios. En ScreenPatch el arreglo reemplaza todo el conjunto y un arreglo vacío lo borra; una etiqueta duplicada o malformada es invalid_request. Cambiar etiquetas aumenta la revisión de pantalla (If-Match la protege) y añade screen.updated con details.tags; nunca cambia la revisión del manifiesto. Las etiquetas nunca están en el manifiesto en tiempo de ejecución ni en la autorización. |
| audience (opcional, en línea) | Como en NotificationWrite; null lo borra. Una audiencia y screen_tags juntos son invalid_request, por lo que pasar de uno a otro borra el primero en la misma solicitud. |
| min_severity (opcional, en línea) | Como en NotificationWrite; null lo borra. |
| severity (opcional, en línea) | Reemplaza todas las anulaciones; null o un objeto vacío las borra. |
| active_hours (opcional, en línea) | Reemplaza el horario; null lo borra. |
| reach_drop (optional, inline) | Reemplaza el umbral; null lo borra, de modo que cualquier caída genera un aviso. Quitar reach_dropped de conditions mientras está definido es invalid_request; bórrelo en la misma solicitud. |
| hold_minutes (opcional, integer) | minimum: 0 maximum: 1440 |
| recipients (opcional, NotificationRecipients) | Solo correo electrónico. owner (quien sea propietario del proyecto cuando se envía un aviso) o el user_id de una persona que es miembro del proyecto; un user_id que no corresponde a un miembro devuelve invalid_request. A cada uno se le envía un correo electrónico a su dirección verificada. Se omite a quien haya dejado el proyecto desde entonces o no tenga una dirección verificada. |
| url (opcional, cadena) | maxLength: 2048 formato: "uri" |
| event_types (opcional, NotificationEventTypes) | Solo webhook. Eventos del proyecto que además se envían por POST a medida que ocurren, exactamente como los envía un webhook: tipos exactos, como screen.online, o prefijos que terminan en .*, como screen.*. notification.test nunca se distribuye. |
| destination (opcional, NotificationDestination) | Solo Slack, Teams, PagerDuty y Telegram; obligatorio para ellos. La credencial con la forma que emite el servicio: slack, la URL del webhook entrante (hooks.slack.com); teams, la URL del webhook de Workflows (logic.azure.com o powerplatform.com; las URL de conector de Office 365 están retiradas); pagerduty, la clave de enrutamiento de Events API v2 de 32 caracteres; telegram, el token del bot. Otra forma da notification_destination_rejected. Se sella, nunca se devuelve y en las lecturas solo aparece como destination_hint. minLength: 1 maxLength: 2048 |
| telegram_chat_id (opcional, NotificationTelegramChat) | Solo Telegram; obligatorio para él. El chat en el que publicar: su id numérico (negativo para un grupo o canal) o @channelname. No es una credencial. pattern: "^(-?[0-9]{1,20}|@[A-Za-z][A-Za-z0-9_]{4,31})$" |
| habilitado (opcional, booleano) | |
| snoozed_until (opcional, inline) | No se envía nada hasta este instante, que puede estar como máximo 30 días en el futuro; null finaliza la pausa. |
Plantilla y respuestas de solicitud
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/notifications/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Notificación actualizada. | Notification (application/json); encabezados: ETag |
| 400 | invalid_request, webhook_url_rejected o notification_destination_rejected. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — El enrutamiento de alertas (cambiar una notificación de Slack, Teams, PagerDuty o Telegram que no sea desactivarla, silenciarla o describirla, o definir una regla min_severity, severity, active_hours o audience) forma parte de Plus. Borrar una regla está permitido en todos los planes; las condiciones loop_stalled, glass_blank y glass_frozen están en todos los planes. El problema nombra la función, el plan del proyecto y required_plan. | Problema (application/problem+json) |
| 409 | notification_covers_other_projects — la notificación cubre también otros proyectos de la organización, por lo que solo se cambia desde la página Notificaciones de la organización. | Problema (application/problem+json) |
| 412 | revision_conflict: If-Match está obsoleto; current_revision del error contiene la revisión actual. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Eliminar notificación
Elimina la notificación y agrega notification.deleted. Sus avisos pendientes se marcan como fallidos con webhook_deleted; su registro de entregas ya no es accesible y caduca junto con la retención de eventos. Aquí solo se elimina una notificación que cubre únicamente este proyecto (notification_covers_other_projects en caso contrario).
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Plantilla y respuestas de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 204 | Eliminado. | sin cuerpo; encabezados: Cache-Control |
| 409 | notification_covers_other_projects — la notificación cubre también otros proyectos de la organización, por lo que solo se cambia desde la página Notificaciones de la organización. | Problema (application/problem+json) |
| 412 | revision_conflict: If-Match está obsoleto; current_revision del error contiene la revisión actual. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Rotar secreto de la notificación
Solo notificaciones de webhook (cualquier otro canal devuelve invalid_request). Reemplaza el secreto de firma y devuelve la notificación con el nuevo en secret; el secreto anterior deja de firmar de inmediato, y como máximo un intento que ya esté en tránsito aún puede llegar firmado con el anterior, por lo que acepte ambos durante un breve tiempo. Agrega notification.updated con details.changed [secret].
Un reintento exacto con la misma Idempotency-Key devuelve el mismo nuevo secreto por veinticuatro horas.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/rotate-secret'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | La notificación y su secreto nuevo. | Notification (application/json); encabezados: Cache-Control |
| 400 | invalid_request: la notificación no es un webhook. | Problema (application/problem+json) |
| 409 | notification_covers_other_projects — la notificación cubre también otros proyectos de la organización, por lo que solo se cambia desde la página Notificaciones de la organización. | Problema (application/problem+json) |
| 412 | revision_conflict: If-Match está obsoleto; current_revision del error contiene la revisión actual. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Probar notificación
Agrega un evento de proyecto notification.test y pone en cola una entrega de ese evento solo para esta notificación (ninguna otra notificación recibe notification.test).
Un webhook recibe el evento como cuerpo; una notificación por correo envía un correo de prueba a sus destinatarios; una notificación de Slack, Teams o Telegram publica un mensaje de prueba; una notificación de PagerDuty activa un evento informativo y lo resuelve de inmediato.
Funciona en una notificación deshabilitada o en pausa, se intenta una sola vez sin reintentos y nunca cambia el estado de fallo de la notificación. Consulte el registro de entregas para ver su resultado.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| Idempotency-Key | encabezado | opcional | Omitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente. |
Plantilla y respuestas de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/test'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 202 | La entrega de prueba en cola. | NotificationDelivery (application/json); encabezados: RateLimit-Policy, RateLimit |
| 429 | Problema estable rate_limited. Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales. | Problema (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Listar entregas de notificaciones
El registro de entregas de la notificación, del evento más reciente al más antiguo. Una fila por evento, y por cada condición de ese evento en el caso de un aviso de pantalla; los reintentos actualizan la fila y GET .../deliveries/{delivery_id}/attempts lista sus intentos más recientes. Un aviso que nunca necesitó enviarse se omite con su motivo.
Las filas se conservan igual que los eventos (la retención de eventos del plan, como mínimo la ventana de reintentos de 24 horas). Devuelva next_cursor como before para obtener la página siguiente.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| before | consulta | opcional | next_cursor de la página de entregas anterior. Una página que termina entre los avisos de un mismo evento nombra en su cursor la condición del último. |
| límite | consulta | opcional |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/deliveries'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Una página de entregas. | NotificationDeliveryList (application/json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Listar intentos de entrega de notificaciones
Los intentos de una entrega, del más reciente al más antiguo (los 20 más recientes), que se conservan junto con la fila de la entrega y por el mismo tiempo. Cada uno tiene su número de intento, cuándo terminó, el estado HTTP del receptor (null si ninguno respondió o para correo electrónico), la clase de error (null si tuvo éxito) y su duración.
Una entrega que no pertenece a esta notificación, o una notificación de otro proyecto, devuelve not_found.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| delivery_id | ruta | requerido | El id de una de las entregas del webhook. |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/deliveries/DELIVERY_ID/attempts'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Los intentos mantenidos de la entrega. | NotificationDeliveryAttemptList (application/json) |
| 404 | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Volver a suscribir a una persona a una notificación
Vuelve a enviar los correos de una notificación a una persona que los detuvo con el enlace para cancelar la suscripción de su correo (Notification.unsubscribed enumera a quienes lo hicieron). Idempotente: una persona que no está detenida no cambia nada, y la respuesta es la notificación tal como está.
Un cambio aumenta la revisión y agrega notification.updated con los detalles change resubscribed, user_id y via api. Una sesión del panel puede volver a suscribir a cualquier persona del proyecto; una credencial de agente necesita la capacidad de escritura del proyecto. La forma en que la propia persona vuelve es el botón Resubscribe de la página con la que responde su enlace para cancelar la suscripción.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| user_id | ruta | requerido | El user_id de una persona de la lista unsubscribed de la notificación. |
Plantilla y respuestas de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/unsubscribed/USER_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | La notificación, sin la persona en unsubscribed. | Notification (application/json); encabezados: ETag |
| 409 | notification_covers_other_projects — la notificación cubre también otros proyectos de la organización, por lo que solo se cambia desde la página Notificaciones de la organización. | Problema (application/problem+json) |
| 404 | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Mostrar la cancelación de suscripción de una notificación
El enlace en el pie de un correo de alerta. No lleva sesión ni bearer; el token t, creado por screenRIG para una notificación n y una persona u, es toda la autoridad, nunca vence y es válido mientras se conserve la versión de la clave de emisión que nombra.
La respuesta es una página que pide detener los correos de esa notificación para esa persona y que no cambia nada, de modo que un analizador de correo que abre el enlace no detiene nada; su botón envía a esta ruta. Una persona ya detenida ve una página cuyo botón la vuelve a suscribir.
Cualquier token, notificación o persona que no coincida, y una notificación que ya no existe o que no es por correo electrónico, recibe la misma página 404. La página no tiene scripts y solo envía a este origen. Máximo 30 solicitudes por minuto por dirección (rate_limited).
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| n | consulta | requerido | La notificación a la que está destinado el enlace. |
| u | consulta | requerido | El user_id de la persona a la que está destinado el enlace. |
| t | consulta | requerido | El token del enlace. |
Plantilla y respuestas de solicitud
curl --request GET 'https://api.screenrig.ai/api/notifications/unsubscribe?n=N&u=U&t=T'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | La página que pide detener las alertas. | cadena (text/html) |
| 404 | El enlace no es válido; la misma página para cualquier causa. | cadena (text/html) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Cancelar la suscripción a una notificación
Detiene los correos de una notificación para la persona a la que está destinado el enlace. La consulta es la del enlace GET; el cuerpo no se lee, de modo que funcionan tanto la solicitud de un clic RFC 8058 de un proveedor de correo (List-Unsubscribe=One-Click, de los encabezados List-Unsubscribe y List-Unsubscribe-Post que lleva cada correo de alerta y de prueba) como el botón de la página.
Solo se detiene a esa persona, y solo para esa notificación; las demás siguen recibiendo correos, y la persona sigue en los destinatarios (recipients). Es idempotente. La primera vez aumenta la revisión y agrega notification.updated con los detalles change unsubscribed, user_id y via email_link.
La página con la que responde tiene un botón Resubscribe (POST /api/notifications/resubscribe); un miembro del proyecto ve a las personas detenidas en Notification.unsubscribed. Cuando no queda nadie a quien enviar correo, un aviso se omite como no_recipients. Cualquier enlace que no coincida recibe la página 404 del GET. Máximo 30 solicitudes por minuto por dirección (rate_limited).
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| n | consulta | requerido | La notificación a la que está destinado el enlace. |
| u | consulta | requerido | El user_id de la persona a la que está destinado el enlace. |
| t | consulta | requerido | El token del enlace. |
Plantilla y respuestas de solicitud
curl --request POST 'https://api.screenrig.ai/api/notifications/unsubscribe?n=N&u=U&t=T'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | La página que indica que las alertas se detuvieron. | cadena (text/html) |
| 404 | El enlace no es válido; la misma página para cualquier causa. | cadena (text/html) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |
Volver a suscribirse a una notificación
Deshace POST /api/notifications/unsubscribe para la persona a la que está destinado el enlace: el botón Resubscribe de la página con la que responde. El mismo enlace, la misma autoridad y la misma página 404; idempotente. Un cambio aumenta la revisión y agrega notification.updated con los detalles change resubscribed, user_id y via email_link. Máximo 30 solicitudes por minuto por dirección (rate_limited).
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| n | consulta | requerido | La notificación a la que está destinado el enlace. |
| u | consulta | requerido | El user_id de la persona a la que está destinado el enlace. |
| t | consulta | requerido | El token del enlace. |
Plantilla y respuestas de solicitud
curl --request POST 'https://api.screenrig.ai/api/notifications/resubscribe?n=N&u=U&t=T'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | La página que indica que las alertas se reanudaron. | cadena (text/html) |
| 404 | El enlace no es válido; la misma página para cualquier causa. | cadena (text/html) |
| predeterminado | Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico. | Problema (application/problem+json) |