Referencia API

API de Proyectos

Proyectos, invitaciones e inicio de sesión

Referencia HTTP. Generada a partir del contrato backend. Explore los endpoints abajo o descargue OpenAPI.

Este grupo tiene 147 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.

Proyectos, invitaciones e inicio de sesión

GET/api/project/deletion-preview

Vista previa del agente de eliminación de proyecto

Devuelve detalles actuales de confirmación, bloqueadores de eliminación y dispositivos archivados que serán desconectados. allowed es falso, con una razón, cuando el llamante no puede eliminar el proyecto (solo su propietario o un administrador de su organización puede; para un agente, su persona responsable) o queda un bloqueador.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
previewProjectDeletionAgent

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
project_idconsultaopcionalID de proyecto esperado; se rechaza una selección cambiada.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/project/deletion-preview'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProjectDeletionPreview (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)
PUT/api/project/owner

Transferir agente propietario del proyecto

El propietario transfiere la propiedad a un miembro existente y verificado del proyecto; esto no concede ninguna membresía nueva. La membresía del nuevo propietario deja cualquier screen_scope y upload_scope, así que el nuevo propietario accede a todo el proyecto.

Una sesión del dashboard de un administrador de la organización del proyecto que es miembro transfiere la propiedad de la misma manera, desde quien es propietario del proyecto; un administrador de la organización que no es miembro usa PUT /api/organizations/{org_id}/projects/{project_id}/owner.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ProjectOwnerTransfer
ID de operación
transferProjectOwnerAgent

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.

Campos del cuerpo de la solicitud

CampoDescripción
project_id (opcional, cadena)ID de proyecto esperado. El servidor rechaza la acción si la credencial actual o la sesión de cookie apunta a otro proyecto; los clientes de navegador envían el ID del proyecto de la página. minLength: 1 maxLength: 200
user_id (requerido, cadena)minLength: 1 maxLength: 200
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/project/owner'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProjectContext (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)
POST/api/project/move

Mover agente de proyecto

El movimiento autorizado por el propietario transfiere la ocupación de la pantalla y el nuevo uso al pagador destino atómicamente; los cargos históricos mantienen su pagador. Un destino que ya tiene tantos proyectos activos como permite su plan es project_limit_reached, cuyo required_plan nombra el plan con espacio, ausente en Enterprise.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ProjectMove
ID de operación
moveProjectAgent

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.

Campos del cuerpo de la solicitud

CampoDescripción
project_id (opcional, cadena)ID de proyecto esperado. El servidor rechaza la acción si la credencial actual o la sesión de cookie apunta a otro proyecto; los clientes de navegador envían el ID del proyecto de la página. minLength: 1 maxLength: 200
organization_id (requerida, cadena)minLength: 1 maxLength: 200
Plantilla y respuestas de solicitud
shell · plantilla 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/project/move'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProjectContext (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)
GET/api/project/moves

Proyecto permitido mueve agente

Lista destinos que el propietario administra o cuyo dominio verificado coincide con su correo electrónico verificado.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
allowedProjectMovesAgent

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
project_idconsultaopcionalID de proyecto esperado; se rechaza una selección cambiada.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/project/moves'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProjectMoveDestinations (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)
GET/api/projects

Listar proyectos de agentes

Lista todas las membresías activas de la identidad, con contexto de organización y propietario, incluyendo membresías omitidas de este token o el consentimiento de su concesión. Cada entrada marca in_token; el descubrimiento no añade autoridad y no tiene límite de 64 proyectos.

Autenticación
agentIdentityBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
listAgentProjects

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto 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
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/projects'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProjectContextList (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)
POST/api/projects

Crear proyecto de agente

Crea un proyecto con nombre propiedad de la persona responsable verificada. Si no se nombra organización, se asigna a la organización del dominio verificado de la persona, o a la organización del proyecto actual, o a la organización que la persona usó más recientemente entre las que administra o tiene como gratuita, o a una nueva organización.

Un nombre de organización selecciona exactamente una coincidencia visible, de lo contrario crea una nueva organización. Una persona tiene una organización Standard gratuita; una nueva organización más allá de esa es free_organization_limit, nombrando la que posee.

Una organización tiene como máximo tantos proyectos activos como permite su plan (Standard 1, Plus 3, Premium 10, Education 50, Enterprise 100, ampliado por sus featuresets); uno más es project_limit_reached, cuyo required_plan nombra el plan con espacio, ausente en Enterprise (comuníquese con soporte).

Un reintento idempotente exacto vuelve a entregar su credencial de membresía sellada durante diez minutos. La inscripción está exenta del límite.

Bajo un JWT de acceso de agente (alcance de identidad, access:manage, una concesión con acceso de identidad Manage) no se entrega token de proyecto; el proyecto se une a la concesión con Manage y todas las capacidades, y una actualización con su project_id devuelve un token para él.

Autenticación
agentIdentityBearer O dashboardSession
Cuerpo de la solicitud
ProjectCreate
ID de operación
createAgentProject

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
nombre (requerido, ProjectName)Nombre de proyecto imprimible recortado. Rechaza controles, texto con apariencia de URL, @, www. y ://. minLength: 1 maxLength: 60
organization_id (opcional, cadena)minLength: 1 maxLength: 200
organization_name (opcional, ProjectName)Nombre de proyecto imprimible recortado. Rechaza controles, texto con apariencia de URL, @, www. y ://. minLength: 1 maxLength: 60
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/projects'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Resultado del ciclo de vida del proyectoProyectoCreado (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)
GET/api/invitations

Listar invitaciones

Lista registros del ciclo de vida de invitaciones para el proyecto actual, excluyendo restablecimientos de inicio de sesión. Las direcciones de destinatarios son visibles para el proyecto propietario, que las suministró. Nunca se listan tokens ni URLs de credenciales.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
listInvitations

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
kindconsultaopcional
estadoconsultaopcional
cursorconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/invitations'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Lista registros del ciclo de vida de invitaciones para el proyecto actual, excluyendo restablecimientos de inicio de sesión.Lista de invitaciones
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)
POST/api/invitations

Crear invitaciones

Crea invitaciones para miembros o compradores de anuncios. La entrega por correo electrónico nunca devuelve una credencial. La entrega por enlace es solo para miembros y devuelve una URL, incluso en reintentos idempotentes exactos dentro de 24 horas. Las invitaciones por correo electrónico expiran tras siete días; los enlaces expiran tras 24 horas. Las invitaciones por correo electrónico pendientes del mismo tipo, dirección y proyecto se reutilizan.

Un miembro limitado a pantallas no invita a personas (outside_screen_scope).

Una invitación por correo electrónico project_member a una persona que sería un invitado externo de la organización del proyecto (no es su organización principal) está sujeta a la política de invitados de esa organización, y responde guest_not_allowed (403) cuando la política (allow, domains o none) no admite la dirección. Aceptar la invitación lo comprueba de nuevo.

El personal y los propios administradores de la organización están exentos. Un screen_scope en la invitación corresponde al alcance de pantallas, que incluye el plan Enterprise; un proyecto cuyo plan no lo incluye se rechaza con feature_not_in_plan (402).

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
Creación de invitación
ID de operación
createInvitations

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
kind (requerido, cadena)Permitido: "project_member", "ad_buyer"
entrega (opcional, cadena)Permitido: "email", "link" predeterminado: "email"
correos electrónicos (opcional, arreglo)
advertising (opcional, InvitationAdvertising)Alcance propiedad del vendedor: al menos una pantalla o espacio publicitario. Se aceptan solo pantallas, solo espacios o ambos.
upload_scope (opcional, UploadScope)

Lo que un usuario de carga puede usar (docs/uploaders.md): las listas de reproducción cuyas páginas cambia y las carpetas de medios en las que sube. Las carpetas son exactamente las listadas, nunca sus subcarpetas. Un id que al escribirse no nombra ningún objeto activo del proyecto es invalid_request en su posición; una eliminación posterior deja un id muerto, que no concede nada.

El alcance se lee en cada solicitud, así que un cambio se aplica a la siguiente.

screen_scope (opcional, ScreenScope)

Sobre qué puede actuar un miembro o agente con alcance (docs/screen-scope.md): las pantallas de las carpetas de pantallas listadas y de cada carpeta que hay dentro, y las pantallas listadas. Al menos un id en total. Un id que no nombra ninguna carpeta ni pantalla viva del proyecto cuando se escribe es invalid_request en su posición; una eliminación posterior deja un id muerto, que no concede nada.

El alcance se lee en cada solicitud, así que un cambio se aplica a la siguiente. Las etiquetas nunca son alcance.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/invitations'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Crea invitaciones para miembros o compradores de anuncios.Invitación creada (application/json); encabezados: RateLimit-Policy, RateLimit
402

feature_not_in_plan — un alcance de pantallas necesita Enterprise, y un alcance de carga (un usuario de carga) necesita Plus; el problema nombra la función, el plan que tiene la cuenta y required_plan. Restringir un alcance de carga y quitar cualquiera de los dos alcances siempre están permitidos.

Problema (application/problem+json)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
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
POST/api/invitations/{id}/revoke

Revocar invitación

Revoca una invitación pendiente. Una invitación aceptada devuelve invitation_consumed. Un miembro limitado a pantallas no revoca invitaciones (outside_screen_scope).

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
revokeInvitation

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/invitations/RESOURCE_ID/revoke'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Revoca una invitación pendiente.sin cuerpo
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
POST/api/sign-in-resets

Solicitar restablecimiento de inicio de sesión

Acepta una solicitud de restablecimiento de inicio de sesión sin revelar si una persona posee la dirección.

También se encuentra a una persona cuya dirección no está verificada, como un registro de autoservicio, y completar ese restablecimiento, que su propietario debe confirmar con replace_unverified_account, da al propietario de la bandeja de entrada una cuenta nueva (una persona nueva con la credencial del restablecimiento, una organización y un proyecto nuevos) y elimina a la persona no verificada, de quien nadie había demostrado que la dirección le pertenecía.

Un enlace de restablecimiento caduca una hora después de la última solicitud. Mientras el enlace de una persona siga activo y tenga menos de un día, otra solicitud reenvía ese mismo enlace (como máximo una vez cada diez minutos) y lleva su caducidad a una hora desde la solicitud, de modo que una solicitud nunca invalida el enlace que ya está en la bandeja de entrada; si no, un enlace nuevo lo reemplaza. No hay límite por dirección.

Completar un restablecimiento elimina las demás claves de acceso de la persona (todas sus claves de acceso en un restablecimiento de contraseña), elimina la contraseña cuando la nueva credencial es una clave de acceso, descarta un cambio de correo pendiente y cierra todas las sesiones. Con o sin persona, la solicitud también reenvía como máximo diez invitaciones dirigidas al correo, y cada invitación como máximo una vez por hora.

De los diez proyectos no eliminados más recientes cuya dirección de contacto coincide, cada proyecto activo con un plan del catálogo y cuya propiedad siga pendiente desde la inscripción recibe de nuevo su invitación de inscripción, aunque haya caducado o la persona destinataria ya se haya unido como miembro ordinario.

Aceptar esa invitación de inscripción con el inicio de sesión existente completa la reclamación de propiedad; solicitar la recuperación por sí solo no cambia la propiedad ni las credenciales. Las invitaciones por correo pendientes para miembros y compradores de anuncios de proyectos activos con un plan del catálogo, y las invitaciones pendientes para administradores de organizaciones activas, ocupan las plazas restantes, de la más reciente a la más antigua.

Una invitación reenviada conserva su ID y recibe un enlace y una fecha de caducidad nuevos; el enlace anterior deja de funcionar y el número de invitaciones pendientes del proyecto no cambia. Una invitación de inscripción caducada vuelve como una invitación nueva que ocupa de nuevo una plaza, por lo que el contador aumenta en uno; se omite si el proyecto está lleno.

No se reenvían otras invitaciones caducadas, ni las revocadas, aceptadas o compartidas mediante enlace.

Autenticación
ninguno
Cuerpo de la solicitud
SignInResetRequest
ID de operación
requestSignInReset

Parámetros

NombreEnviar¿Requerido?Descripción
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
correo electrónico (requerido, cadena)minLength: 3 maxLength: 254 formato: "email"
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/sign-in-resets'

Respuestas

EstadoSignificadoCuerpo y encabezados
202Acepta una solicitud de restablecimiento de inicio de sesión sin revelar si una persona posee la dirección.SignInResetAccepted (application/json); encabezados: 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)
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
POST/api/enrollments

Registrar CLI

Crea un nuevo proyecto y su primer agente mediante inscripción explícita con CLI agrupada, incluso si la dirección de contacto ya pertenece a una persona o proyecto. El correo de contacto permanece sin verificar y no otorga autoridad; direcciones malformadas devuelven invalid_request.

Encola una invitación de inscripción en la misma transacción. project_name es opcional; si se omite, se usa un nombre legible de dos palabras. La repetición idempotente exacta precede a los límites de frecuencia. Persista la credencial permanente antes de informar el éxito; su sobre de repetición expira en issuance_expires_at y los reintentos posteriores devuelven credential_issuance_expired.

El registro de idempotencia dura 24 horas.

Autenticación
ninguno
Cuerpo de la solicitud
Solicitud de inscripción CLI
ID de operación
enrollCLI

Parámetros

NombreEnviar¿Requerido?Descripción
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
credential_format (opcional, cadena)

Debe ser oauth, que responde con el par JWT del agente (CLIEnrollmentOAuth). legacy, o omitirlo, responde 410 client_update_required, porque los portadores permanentes heredados están retirados. Un servidor que no emite JWT de agente responde not_ready. Permitidos: "oauth", "legacy"

intent (opcional, cadena)

Propósito de inscripción opcional. Omitir o signage mantiene screens=true, advertiser=false. advertising establece advertiser=true, screens=false y nunca cambia la asignación del plan de facturación. Permitidos: "signage", "advertising"

client_id (requerido, cadena)Identidad de instalación anónima estable generada a partir de 32 bytes CSPRNG y persistida antes de la primera solicitud. Es material para limitar la tasa, no una credencial de proyecto. patrón: "^cli_[A-Za-z0-9_-]{43}$"
correo electrónico (opcional, cadena)

Dirección de contacto del proyecto no verificada. Se requiere exactamente uno entre correo electrónico o agentid_claim. La inscripción siempre crea un nuevo proyecto y pone en cola su invitación; una dirección sola no otorga autoridad. minLength: 3 maxLength: 254 formato: "email"

agentid_claim (opcional, cadena)

Código de reclamación AgentID de un solo uso desde la página de inicio de sesión AgentID. Se requiere exactamente uno de email o agentid_claim. La dirección verificada del propietario de AgentID se convierte en el contacto del proyecto y destinatario de la invitación. patrón: "^agid_[A-Za-z0-9_-]{43}$"

beta_key (opcional, cadena)Requerido cuando el servidor tiene una clave beta de inscripción configurada. Omitir cuando el servidor no restringe la inscripción.
nombre (opcional, cadena)predeterminado: "Agente" minLength: 1 maxLength: 80
agent_type (opcional, cadena)predeterminado: "cli" patrón: "^[A-Za-z0-9][A-Za-z0-9._-]{0,31}$"
plataforma (opcional, cadena)maxLength: 80
version (opcional, cadena)maxLength: 40
install_source (opcional, cadena)

Opcional. Desde dónde se instaló la integración: el host y, después de una barra, el marketplace (claude/screenrig, codex/screenrig, grok/screenrig), o un host solo, como npm. Lo informa el software, no una persona, por lo que un valor ausente o con forma incorrecta se ignora y nunca hace fallar la inscripción.

Solo cuenta de dónde vinieron las instalaciones y no concede nada. pattern: "^[a-z][a-z0-9-]{0,31}(/[a-z0-9][a-z0-9._-]{0,63})?$"

project_name (opcional, ProjectName)Nombre de proyecto imprimible recortado. Rechaza controles, texto con apariencia de URL, @, www. y ://. minLength: 1 maxLength: 60
setup_code (opcional, cadena)

Código de configuración opcional que la persona copió del sitio web junto con el prompt de configuración (dos grupos de cuatro letras y dígitos, sin distinguir mayúsculas ni guion). Vincula el proyecto nuevo con esa visita al sitio; un código desconocido o caducado se ignora y nunca hace fallar el registro. No concede nada. pattern: "^[0-9A-Za-z]{4}-?[0-9A-Za-z]{4}$"

organización (opcional, ProjectName)Nombre de proyecto imprimible recortado. Rechaza controles, texto con apariencia de URL, @, www. y ://. minLength: 1 maxLength: 60
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/enrollments'

Respuestas

EstadoSignificadoCuerpo y encabezados
201

Nuevo proyecto y credencial bearer permanente. El proyecto lleva la dirección de contacto no verificada en su forma suministrada recortada. Persista y verifique el token antes de informar éxito de inscripción. La credencial no tiene expiración programada pero su sobre de entrega exacta cifrada existe solo hasta issuance_expires_at.

CLIEnrollmentOAuth (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

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)
409

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)
410

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)
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
500

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)
GET/agentid/start

Iniciar ID de agente Iniciar sesión

Inicia un inicio de sesión de navegador AgentID (OIDC) en el host API derivado del origen público en tiempo de ejecución (https://play.<domain> -> https://api.<domain>). Establece una cookie de enlace de un solo uso y redirige al punto de autorización AgentID con PKCE S256. Responde solo en el host API.

Mientras la parte confiable no tiene id de cliente ni secreto, la ruta muestra una página simple de no disponible con 503.

Autenticación
ninguno
Cuerpo de la solicitud
ninguno
ID de operación
startAgentIDSignIn
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET 'https://api.screenrig.ai/agentid/start'

Respuestas

EstadoSignificadoCuerpo y encabezados
302Redirigir al punto de autorización AgentID.sin cuerpo
503Inicio de sesión con AgentID no disponible.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)
GET/agentid/callback

Completar inicio de sesión Agent ID

Completa un inicio de sesión AgentID en navegador en el host API. Requiere iss igual al emisor configurado, la cookie de enlace y una transacción de un solo uso no expirada.

Intercambia el código con client_secret_basic y PKCE, verifica el id_token ES256 (iss, aud, exp con desviación de 60 s, nonce) contra el JWKS en caché, llama a userinfo y aplica las reglas del propietario, luego muestra una página de código de reclamación de un solo uso. Un sujeto ya vinculado a un agente muestra la página ya inscrita.

Esta ruta nunca crea un proyecto, identidad o invitación.

Autenticación
ninguno
Cuerpo de la solicitud
ninguno
ID de operación
completeAgentIDSignIn

Parámetros

NombreEnviar¿Requerido?Descripción
códigoconsultaopcional
estadoconsultaopcional
issconsultaopcional
errorconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET 'https://api.screenrig.ai/agentid/callback'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Página de código de reclamación AgentID de un solo uso con pasos para instalar el complemento.cadena (text/html)
409El sujeto AgentID ya está inscrito.cadena (text/html)
503Inicio de sesión con AgentID no disponible.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)
GET/api/project

Obtener proyecto

El proyecto que llama. No debita el medidor API de 1 crédito, por lo que un proyecto con saldo cero aún puede leer el saldo restante y recuperarse. Después de un principal de proyecto exitoso, las respuestas JSON autenticadas /api y de problemas incluyen ScreenRig-Credits-Remaining, ScreenRig-Credits-Reset y ScreenRig-Credits-Included como créditos enteros.

SSE, runtime, contenido y respuestas no autenticadas los omiten.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
getProject

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto 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
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/project'

Respuestas

EstadoSignificadoCuerpo y encabezados
200ProyectoProyecto (application/json); encabezados: ScreenRig-Credits-Remaining, ScreenRig-Credits-Reset, ScreenRig-Credits-Included, ScreenRig-Credits-Low
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)
PATCH/api/project

Actualizar proyecto

Renombra el proyecto actual. Los nombres contienen de 1 a 60 caracteres imprimibles y no texto con apariencia de URL.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ProjectPatch
ID de operación
updateProject

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.

Campos del cuerpo de la solicitud

CampoDescripción
project_id (opcional, cadena)ID de proyecto esperado. El servidor rechaza la acción si la credencial actual o la sesión de cookie apunta a otro proyecto; los clientes de navegador envían el ID del proyecto de la página. minLength: 1 maxLength: 200
nombre (requerido, ProjectName)Nombre de proyecto imprimible recortado. Rechaza controles, texto con apariencia de URL, @, www. y ://. minLength: 1 maxLength: 60
Plantilla y respuestas de solicitud
shell · plantilla 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/project'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Renombra el proyecto actual.Proyecto (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)
ELIMINAR/api/project

Eliminar agente de proyecto

Solo el propietario del proyecto o un administrador de su organización puede eliminarlo; cualquier otro llamante es rechazado con forbidden. Una persona también debe ser miembro del proyecto.

Un agente necesita la capacidad de proyecto de membresía objetivo y elimina para su persona responsable, que debe ser el propietario o un administrador de la organización; un agente sin persona responsable no puede eliminar, excepto el agente que inscribió el proyecto mientras nadie ha aceptado su inscripción.

También requiere el nombre y la revisión actuales, cero pantallas no archivadas, sin crédito, reservas ni deuda en su propia billetera y sin publicidad en vivo. Un saldo negativo acumulado bajo términos gratuitos o de lanzamiento no bloquea; la eliminación lo cancela con una entrada de libro mayor project_delete_writeoff. Encola avisos para miembros y usa la lápida irreversible.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ProjectDeleteConfirmation
ID de operación
deleteProjectAgent

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.

Campos del cuerpo de la solicitud

CampoDescripción
project_id (opcional, cadena)ID de proyecto esperado. El servidor rechaza la acción si la credencial actual o la sesión de cookie apunta a otro proyecto; los clientes de navegador envían el ID del proyecto de la página. minLength: 1 maxLength: 200
empty_only (opcional, booleano)

Requiere un proyecto Screens vacío en la transacción de eliminación, incluyendo contenido, otros agentes o miembros, trabajo y correspondencia. La CLI además requiere su procedencia de inscripción guardada antes de usar esta protección de limpieza. La omisión mantiene la eliminación explícita de miembros.

nombre (requerido, ProjectName)Nombre de proyecto imprimible recortado. Rechaza controles, texto con apariencia de URL, @, www. y ://. minLength: 1 maxLength: 60
revisión (requerida, entero)mínimo: 1
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/project'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProyecto eliminado (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)
GET/api/project/capabilities

Obtener capacidades de proyecto

El plan del proyecto que llama, indicadores independientes de anunciante/pantallas con su revisión, el conjunto de capacidades efectivas derivadas, las funciones del plan que tiene (plan_features) y sus límites (limits). Nunca refleja una reclamación del cliente; un plan desconocido falla cerrado como prohibido.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
getProjectCapabilities

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto 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
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/project/capabilities'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Capacidades del proyecto.ProjectCapabilities (application/json); headers: Cache-Control
403prohibido: el plan del proyecto no está en el catálogo.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)
GET/api/organizations/{org_id}/audit

Listar la auditoría de la organización

El registro de auditoría propio de la organización: los cambios en sus administradores, dominios y ajustes de facturación, con las mismas entradas, filtros y formatos que GET /api/audit. Requiere un administrador de la organización. Forma parte del registro de auditoría, que incluye el plan Enterprise; una organización cuyo plan no lo incluye se rechaza con feature_not_in_plan (402).

Todos los planes registran sus cambios.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
listOrganizationAudit

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
actorconsultaopcional
actor_kindconsultaopcional
origenconsultaopcional
acciónconsultaopcional
desdeconsultaopcional
hastaconsultaopcional
cursorconsultaopcional
límiteconsultaopcional
formatoconsultaopcionaljson (por defecto) devuelve el informe como JSON. csv, xlsx y pdf devuelven las mismas filas como archivo adjunto (cada página de un informe paginado, hasta 50000 filas).
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/audit'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de entradas, o el registro filtrado como archivo.AuditList (application/json), string (text/csv), string (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet), string (application/pdf)
400

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)
402feature_not_in_plan — El registro de auditoría forma parte del plan Enterprise; el problema nombra la función, el plan que tiene la cuenta y required_plan.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)
GET/api/organizations/{org_id}/notifications

Listar notificaciones de la organización

Las notificaciones de la organización, de todos los canales, de la más antigua a la más reciente (máximo 50).

Una notificación pertenece a la organización y cubre todos sus proyectos, incluidos los añadidos después (project_ids ausente), o los proyectos elegidos (project_ids); actúa sobre las pantallas, fuentes, campañas y tarjetas de esos proyectos exactamente igual que una notificación de proyecto. status es failing mientras lo estén las entregas de cualquier proyecto cubierto, y failing_since, last_success_at y last_failure_at integran las de los proyectos cubiertos (el inicio de fallo más antiguo, el último éxito y el último fallo).

El secreto de firma de un webhook nunca se devuelve aquí. Requiere un administrador de la organización; para cualquier otra persona es not_found.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
listOrganizationNotifications

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Las notificaciones de la organización.OrganizationNotificationList (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)
POST/api/organizations/{org_id}/notifications

Crear notificación de la organización

Crea una notificación de la organización, con los miembros de POST /api/notifications y los proyectos que cubre: project_ids ausente o null cubre todos los proyectos de la organización (los que tiene y los que reciba), una lista cubre exactamente esos, cada uno un proyecto activo de esta organización (invalid_request en caso contrario).

Los destinatarios de una notificación por correo electrónico son owner (el propietario de cada proyecto cubierto), o user_ids de personas de la organización (sus administradores y miembros de la organización) o de miembros de un proyecto cubierto; cada proyecto sigue enviando correo solo a las personas que son miembros de él.

Una organización tiene como máximo 50 notificaciones, sin contar las predeterminadas que crea el sistema (notification_limit_reached). Las mismas funciones del plan restringen los canales, reglas y condiciones que en las rutas de proyecto, evaluadas según el plan de la organización. Cada proyecto cubierto recibe notification.created, y el cambio queda registrado en el registro de auditoría de la organización.

El secreto de firma de un webhook se devuelve solo en esta respuesta y en rotate-secret; un único secreto firma las entregas de todos los proyectos cubiertos. Un reintento exacto con la misma Idempotency-Key devuelve esta misma respuesta, secreto incluido, durante veinticuatro horas.

Autenticación
dashboardSession
Cuerpo de la solicitud
OrganizationNotificationWrite
ID de operación
createOrganizationNotification

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripció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
project_ids (opcional, en línea)Los proyectos que cubre la notificación; null o ausente cubre todos los proyectos de la organización.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/notifications'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creada. El secreto de un webhook se muestra solo aquí y en rotate-secret.Notification (application/json); encabezados: Cache-Control
400invalid_request, webhook_url_rejected o notification_destination_rejected.Problema (application/problem+json)
402feature_not_in_plan — como en POST /api/notifications, para el plan 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)
409notification_limit_reached o idempotency_mismatch.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)
GET/api/organizations/{org_id}/notifications/{id}

Obtener notificación de la organización

Una notificación de la organización, tal como la muestra GET /api/organizations/{org_id}/notifications.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
getOrganizationNotification

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una notificación.Notification (application/json); encabezados: ETag
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)
PATCH/api/organizations/{org_id}/notifications/{id}

Actualizar notificación de la organización

Cambia los mismos miembros que PATCH /api/notifications/{id}, en la notificación y en cada proyecto cubierto, y project_ids: ausente deja los proyectos, null cubre todos los proyectos, una lista cubre exactamente esos. Un proyecto que gana la notificación empieza desde su evento actual (no se envía nada anterior); a uno que la pierde se le elimina la notificación.

Cada proyecto cubierto recibe notification.updated, y el cambio queda registrado en el registro de auditoría de la organización.

Un cambio que hace que la notificación cubra un proyecto que hoy no cubre se somete a la misma verificación que la creación de la notificación tal como quedará (su canal, reglas y condiciones de pantalla, según el plan de la organización); cubrir menos proyectos nunca se verifica, y pasar de una lista a todos los proyectos siempre cubre más. If-Match protege la revisión.

Autenticación
dashboardSession
Cuerpo de la solicitud
OrganizationNotificationPatch
ID de operación
updateOrganizationNotification

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
idrutarequerido
If-MatchencabezadoopcionalRevisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict.
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripció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 NotificationPatch.
min_severity (opcional, en línea)Como en NotificationPatch.
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.
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.
project_ids (opcional, en línea)Ausente deja los proyectos que cubre la notificación, null cubre todos los proyectos de la organización, una lista cubre exactamente esos proyectos.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PATCH --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Notificación actualizada.Notification (application/json); encabezados: ETag
400invalid_request, webhook_url_rejected o notification_destination_rejected.Problema (application/problem+json)
402feature_not_in_plan — como en PATCH /api/notifications/{id}, para el plan 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)
412revision_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/api/organizations/{org_id}/notifications/{id}

Eliminar notificación de la organización

Elimina la notificación de todos los proyectos que cubre, con notification.deleted en cada uno, y la registra en el registro de auditoría de la organización. Los avisos pendientes se marcan como fallidos con webhook_deleted.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
deleteOrganizationNotification

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
idrutarequerido
If-MatchencabezadoopcionalRevisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict.
Idempotency-KeyencabezadoopcionalOmitir 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
shell · plantilla de solicitud
curl --request DELETE --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Eliminado.sin cuerpo; encabezados: Cache-Control
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)
412revision_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)
POST/api/organizations/{org_id}/notifications/{id}/rotate-secret

Rotar secreto de la notificación de la organización

Solo notificaciones de webhook (cualquier otro canal es invalid_request). Reemplaza el secreto de firma en todos los proyectos cubiertos a la vez, de modo que un receptor sigue verificando un solo secreto, y devuelve la notificación con el nuevo en secret.

Como en POST /api/notifications/{id}/rotate-secret, como máximo un intento por proyecto que ya está en vuelo todavía puede llegar firmado con el secreto anterior. Un reintento exacto con la misma Idempotency-Key devuelve el mismo secreto nuevo durante veinticuatro horas.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
rotateOrganizationNotificationSecret

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
idrutarequerido
If-MatchencabezadoopcionalRevisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict.
Idempotency-KeyencabezadoopcionalOmitir 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
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID/rotate-secret'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La notificación y su secreto nuevo.Notification (application/json); encabezados: Cache-Control
400invalid_request: la notificación no es un webhook.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)
412revision_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)
POST/api/organizations/{org_id}/notifications/{id}/test

Probar notificación de la organización

Envía un notification.test a través del primer proyecto que cubre la notificación (por id de proyecto), igual que POST /api/notifications/{id}/test lo envía a través de su proyecto: una entrega, cuyo resultado muestra la lista de entregas, intentada una sola vez.

Todos los proyectos cubiertos tienen el mismo receptor, destino y secreto, así que una prueba basta para comprobar el canal; el correo electrónico de una prueba va a los destinatarios de ese proyecto. Una notificación que no cubre ningún proyecto es invalid_request.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
testOrganizationNotification

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID/test'

Respuestas

EstadoSignificadoCuerpo y encabezados
202La entrega de prueba en cola.NotificationDelivery (application/json); encabezados: RateLimit-Policy, RateLimit
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)
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)
GET/api/organizations/{org_id}/notifications/{id}/deliveries

Listar entregas de notificaciones de la organización

Los registros de entregas de todos los proyectos que cubre la notificación, en una sola lista, con las filas más recientes primero según cuándo se puso en cola cada una. Cada fila nombra su proyecto (project_id), y su id abre GET .../deliveries/{delivery_id}/attempts. Pase next_cursor de vuelta como antes para la página siguiente.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
listOrganizationNotificationDeliveries

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
idrutarequerido
beforeconsultaopcionalnext_cursor de la página anterior de entregas.
límiteconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID/deliveries'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de entregas.NotificationDeliveryList (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)
GET/api/organizations/{org_id}/notifications/{id}/deliveries/{delivery_id}/attempts

Listar intentos de entrega de notificaciones de la organización

Los intentos de una entrega, de los más recientes a los más antiguos, hasta los 20 más recientes. Una entrega que no es de esta notificación es not_found.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
listOrganizationNotificationDeliveryAttempts

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
idrutarequerido
delivery_idrutarequeridoEl id de una de las entregas del webhook.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID/deliveries/DELIVERY_ID/attempts'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Los 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)
ELIMINAR/api/organizations/{org_id}/notifications/{id}/unsubscribed/{user_id}

Volver a suscribir a una persona a una notificación de la organización

Vuelve a enviar los correos de una notificación por correo electrónico a una persona que los detuvo con el enlace para cancelar la suscripción de su correo, en todos los proyectos que cubre la notificación (el enlace la detiene en todos). Idempotente: una persona que no está detenida no cambia nada, y la respuesta es la notificación tal como es.

Un cambio incrementa la revisión y agrega notification.updated con los detalles change resubscribed, user_id y via api a cada proyecto cubierto.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
resubscribeOrganizationNotificationUser

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
idrutarequerido
user_idrutarequeridoEl user_id de una persona de la lista unsubscribed de la notificación.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request DELETE --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID/unsubscribed/USER_ID'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La notificación, sin la persona en unsubscribed.Notification (application/json); encabezados: ETag
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)
GET/api/projects/{project_id}/reports

Listar los tipos de informe en un proyecto

Lista los tipos de informe que construye GET /api/reports/{kind}, con los filtros de cada uno, y los formatos en que se escribe un informe. Requiere la capacidad de informes.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listReportKindsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/reports'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Los tipos de informe.ReportCatalog (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)
GET/api/projects/{project_id}/report-subscriptions

Listar las suscripciones a informes en un proyecto

Lista los informes programados del proyecto, del más antiguo al más reciente (como máximo 50), cada uno con su próximo envío y el resultado del último. Requiere la capacidad del proyecto.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listReportSubscriptionsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/report-subscriptions'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Las suscripciones a informes del proyecto.ReportSubscriptionList (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)
POST/api/projects/{project_id}/report-subscriptions

Crear suscripción a un informe en un proyecto

Programa el envío de un informe por correo, como adjunto PDF, XLSX o CSV, cada día, semana o mes a una hora en una zona horaria.

Cada envío cubre el periodo anterior, en días UTC: el día anterior, los siete días anteriores o el mes pasado. recipients son miembros del proyecto, indicados por user_id o por la dirección de correo del miembro; cualquier otra persona se rechaza, así que una suscripción nunca sirve para escribir a un extraño, y un miembro que se va deja de recibirla.

Una ejecución fallida se reintenta y aparece con last_status failed y last_error. Como máximo 50 por organización en todos sus proyectos (report_subscription_limit_reached).

Autenticación
projectBearer
Cuerpo de la solicitud
ReportSubscriptionWrite
ID de operación
createReportSubscriptionInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
nombre (requerido, cadena)minLength: 1 maxLength: 100
kind (requerido, cadena)Valores permitidos: "fleet_health", "uptime", "publishing", "alerts", "alert_log", "proof_of_play"
filters (opcional, objeto)Los filtros del informe distintos de los días (GET /api/reports los lista).
schedule (requerido, ReportSchedule)
format (requerido, cadena)Valores permitidos: "pdf", "xlsx", "csv"
recipients (requerido, arreglo)user_id o dirección de correo de miembros del proyecto.
habilitado (opcional, booleano)predeterminado: true
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/report-subscriptions'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creado.ReportSubscription (application/json); encabezados: ETag
400

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)
402feature_not_in_plan — Los informes forman parte de Plus. El problema nombra la función, el plan del proyecto y required_plan.Problema (application/problem+json)
409report_subscription_limit_reached.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)
GET/api/projects/{project_id}/cards

Listar tarjetas en proyecto

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listCardsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
proyectoconsultaopcional
despuésconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/cards'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Recurso de tarjetaobjeto (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)
POST/api/projects/{project_id}/cards

Crear tarjeta de proyecto

Autenticación
projectBearer
Cuerpo de la solicitud
Crear tarjeta
ID de operación
createProjectCard

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
tipo (requerido, cadena)
mayor (opcional, entero)mínimo: 1
params (requerido, objeto)
datos (opcional, objeto)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/cards'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Recurso de tarjetaInstancia de tarjeta (application/json)
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)
POST/api/organizations/{org_id}/billing/portal-sessions

Crear un portal para una organización

Requiere un administrador designado de una organización activa, autenticación por cookie del mismo origen exacto y CSRF de JWT. El actor y la URL de retorno los controla el servidor. La respuesta es privada y no-store. También está abierto a una organización delegada en un revendedor, para su tarjeta y sus facturas pasadas.

Autenticación
dashboardSession
Cuerpo de la solicitud
EmptyPaymentRequest
ID de operación
createOrganizationPortal

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/billing/portal-sessions'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Resultado de la gestión de facturación.BillingPortalSession (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)
PUT/api/organizations/{org_id}/billing/auto-top-up

Establecer la recarga automática de una organización

Requiere un administrador designado de una organización activa, autenticación por cookie del mismo origen exacto y CSRF de JWT. El actor lo controla el servidor. Deshabilitar conserva los importes guardados y el gasto mensual; los campos de importe se ignoran cuando se deshabilita. La respuesta es privada y no-store. Cambiar la configuración levanta una pausa recuperable solo después de que se anule de forma segura cualquier factura por pagar fallida.

Activarlo para una organización delegada en un revendedor responde 409 billed_by_reseller; desactivarlo sigue disponible.

Autenticación
dashboardSession
Cuerpo de la solicitud
AutoTopUpSettings
ID de operación
setOrganizationAutoTopUp

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/billing/auto-top-up'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado de la gestión de facturación.AutoTopUpView (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)
GET/api/organizations/{org_id}/billing/payments

Obtener los pagos de una organización

Vistas de pagos de una organización activa. Requiere la cookie de su administrador designado; la visibilidad del personal por sí sola no concede acceso a compras. Los pagos sin configurar devuelven available false. El regreso del navegador nunca concede créditos.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
getOrganizationPayments

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/billing/payments'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Disponibilidad de pagos y compras recientes.OrganizationPayments (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)
POST/api/organizations/{org_id}/billing/credit-checkouts

Crear un pago para una organización

Iniciar una compra prepagada para el administrador designado de una organización activa. Requiere autenticación mediante cookie del mismo origen y, para las sesiones JWT, un encabezado CSRF coincidente. El servidor controla la organización, el cliente, el actor y las URL de retorno. Los créditos se aplican solo cuando el servicio de facturación confirma el pago. Ante respuestas ambiguas, reintentar con la misma Idempotency-Key y el mismo importe.

Una organización delegada en un revendedor responde 409 billed_by_reseller.

Autenticación
dashboardSession
Cuerpo de la solicitud
object
ID de operación
createOrganizationCheckout

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
amount_cents (obligatorio, entero)mínimo: 10000 máximo: 1000000 formato: "int64"
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/billing/credit-checkouts'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Compra creada o repetida. La URL de pago se omite después de completarse. Las respuestas son privadas y no-store.CreditPurchase (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)
GET/api/organizations/{org_id}/billing/balance

Obtener saldo de facturación de organización

La billetera de la organización. Requiere un administrador designado de la organización, un administrador del revendedor en el que está delegada la organización o una sesión de personal. No otorga membresía de proyecto.

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
getOrganizationBillingBalance

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/billing/balance'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Saldo de facturación de organización.Saldo de facturación (application/json); encabezados: Cache-Control
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)
GET/api/organizations/{org_id}/billing/statement

Obtener estado de cuenta de facturación de organización

Entradas de diario atribuidas a esta organización en el momento del cargo, con identidades de proyecto y pagador. Los movimientos no transfieren acceso histórico. Las entradas anteriores al contexto registrado de la organización permanecen en sus estados de cuenta del proyecto. Las leen las mismas personas que el saldo (getOrganizationBillingBalance).

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
getOrganizationBillingStatement

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
cursorconsultaopcional
límiteconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/billing/statement'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Estado de cuenta de facturación de organización.Estado de cuenta de facturación (application/json); encabezados: Cache-Control
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)
GET/api/organizations/{org_id}/billing/usage

Obtener uso de facturación de organización

El fondo de uso de la organización y la participación de cada proyecto durante un mes UTC. Cubre el uso pagado por esta organización; los demás costos del pagador están en el estado de cuenta de la organización. Las leen las mismas personas que el saldo (getOrganizationBillingBalance).

Autenticación
dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
getOrganizationBillingUsage

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido
cursorconsultaopcional
límiteconsultaopcional
periodoconsultaopcionalMes UTC en formato YYYY-MM; por defecto el mes actual.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/billing/usage'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Uso de facturación de organización.OrganizationBillingUsage (application/json); encabezados: Cache-Control
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)
GET/api/organizations

Lista de organizaciones de agentes

Organizaciones visibles, incluidas las organizaciones vacías para sus administradores. Los nombres no son únicos.

Autenticación
agentIdentityBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
agentOrganizationsList
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/organizations'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado de organización.OrganizationList (application/json); encabezados: Cache-Control
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)
PATCH/api/organizations/{org_id}

Renombrar organizaciones de agentes

Los administradores designados y agentes cuyo responsable verificado es un administrador pueden renombrar una organización. No se concede permiso ni membresía de proyecto.

Autenticación
agentIdentityBearer O dashboardSession
Cuerpo de la solicitud
Renombrar organización
ID de operación
agentOrganizationsRename

Parámetros

NombreEnviar¿Requerido?Descripción
org_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
nombre (requerido, ProjectName)Nombre de proyecto imprimible recortado. Rechaza controles, texto con apariencia de URL, @, www. y ://. minLength: 1 maxLength: 60
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PATCH --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/organizations/ORG_ID'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado de organización.OrganizationView (application/json); encabezados: Cache-Control
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)
PUT/api/project/review-policy

Establecer política de revisión del proyecto

Activa o desactiva Requerir revisión para cambios de agente. Mientras está activado, cada agente y cliente de servicio en el proyecto tiene acceso Proponer en cada solicitud, sin importar sus credenciales. Solo el propietario del proyecto o un administrador de la organización del proyecto pueden cambiarlo (prohibido para otros); las sesiones de sombra del personal no pueden modificarlo.

If-Match lleva review_policy_revision (0 permitido) y es obligatorio; un valor obsoleto es revision_conflict. Desactivarlo requiere prueba, la prueba de passkey fresca o password que usa la aprobación de conexión del agente; activarlo no. Las revisiones abiertas permanecen decidibles de cualquier modo. Añade project.review_policy_changed.

Autenticación
dashboardSession
Cuerpo de la solicitud
ReviewPolicyUpdate
ID de operación
setProjectReviewPolicy

Parámetros

NombreEnviar¿Requerido?Descripción
If-Matchencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
agent_changes_require_review (requerido, booleano)
proof (opcional, DashboardProof)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/project/review-policy'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La política vigente.ReviewPolicy (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)
GET/api/projects/{project_id}/project/deletion-preview

Vista previa del agente de eliminación de proyecto en proyecto

Devuelve detalles actuales de confirmación, bloqueadores de eliminación y dispositivos archivados que serán desconectados. allowed es falso, con una razón, cuando el llamante no puede eliminar el proyecto (solo su propietario o un administrador de su organización puede; para un agente, su persona responsable) o queda un bloqueador.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
previewProjectDeletionAgentInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
project_idconsultaopcionalID de proyecto esperado; se rechaza una selección cambiada.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/deletion-preview'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProjectDeletionPreview (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)
PUT/api/projects/{project_id}/project/owner

Transferir agente propietario del proyecto dentro del proyecto

El propietario transfiere la propiedad a un miembro existente y verificado del proyecto; esto no concede ninguna membresía nueva. La membresía del nuevo propietario deja cualquier screen_scope y upload_scope, así que el nuevo propietario accede a todo el proyecto.

Autenticación
projectBearer
Cuerpo de la solicitud
ProjectOwnerTransfer
ID de operación
transferProjectOwnerAgentInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
project_id (opcional, cadena)ID de proyecto esperado. El servidor rechaza la acción si la credencial actual o la sesión de cookie apunta a otro proyecto; los clientes de navegador envían el ID del proyecto de la página. minLength: 1 maxLength: 200
user_id (requerido, cadena)minLength: 1 maxLength: 200
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/owner'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProjectContext (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)
POST/api/projects/{project_id}/project/move

Mover agente de proyecto en proyecto

El movimiento autorizado por el propietario transfiere la ocupación de la pantalla y el nuevo uso al pagador destino atómicamente; los cargos históricos mantienen su pagador.

Autenticación
projectBearer
Cuerpo de la solicitud
ProjectMove
ID de operación
moveProjectAgentInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
project_id (opcional, cadena)ID de proyecto esperado. El servidor rechaza la acción si la credencial actual o la sesión de cookie apunta a otro proyecto; los clientes de navegador envían el ID del proyecto de la página. minLength: 1 maxLength: 200
organization_id (requerida, cadena)minLength: 1 maxLength: 200
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/move'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProjectContext (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)
GET/api/projects/{project_id}/project/moves

Proyecto permitido mueve agente en proyecto

Lista destinos que el propietario administra o cuyo dominio verificado coincide con su correo electrónico verificado.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
allowedProjectMovesAgentInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
project_idconsultaopcionalID de proyecto esperado; se rechaza una selección cambiada.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/moves'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProjectMoveDestinations (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)
GET/api/projects/{project_id}/invitations

Listar invitaciones en proyecto

Lista registros del ciclo de vida de invitaciones para el proyecto actual, excluyendo restablecimientos de inicio de sesión. Las direcciones de destinatarios son visibles para el proyecto propietario, que las suministró. Nunca se listan tokens ni URLs de credenciales.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listInvitationsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
kindconsultaopcional
estadoconsultaopcional
cursorconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/invitations'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Lista registros del ciclo de vida de invitaciones para el proyecto actual, excluyendo restablecimientos de inicio de sesión.Lista de invitaciones
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)
POST/api/projects/{project_id}/invitations

Crear invitaciones en proyecto

Crea invitaciones para miembros o compradores de anuncios. La entrega por correo electrónico nunca devuelve una credencial. La entrega por enlace es solo para miembros y devuelve una URL, incluso en reintentos idempotentes exactos dentro de 24 horas. Las invitaciones por correo electrónico expiran tras siete días; los enlaces expiran tras 24 horas. Las invitaciones por correo electrónico pendientes del mismo tipo, dirección y proyecto se reutilizan.

Un miembro limitado a pantallas no invita a personas (outside_screen_scope).

Una invitación por correo electrónico project_member a una persona que sería un invitado externo de la organización del proyecto (no es su organización principal) está sujeta a la política de invitados de esa organización, y responde guest_not_allowed (403) cuando la política (allow, domains o none) no admite la dirección. Aceptar la invitación lo comprueba de nuevo.

El personal y los propios administradores de la organización están exentos. Un screen_scope en la invitación corresponde al alcance de pantallas, que incluye el plan Enterprise; un proyecto cuyo plan no lo incluye se rechaza con feature_not_in_plan (402).

Autenticación
projectBearer
Cuerpo de la solicitud
Creación de invitación
ID de operación
createInvitationsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
kind (requerido, cadena)Permitido: "project_member", "ad_buyer"
entrega (opcional, cadena)Permitido: "email", "link" predeterminado: "email"
correos electrónicos (opcional, arreglo)
advertising (opcional, InvitationAdvertising)Alcance propiedad del vendedor: al menos una pantalla o espacio publicitario. Se aceptan solo pantallas, solo espacios o ambos.
upload_scope (opcional, UploadScope)

Lo que un usuario de carga puede usar (docs/uploaders.md): las listas de reproducción cuyas páginas cambia y las carpetas de medios en las que sube. Las carpetas son exactamente las listadas, nunca sus subcarpetas. Un id que al escribirse no nombra ningún objeto activo del proyecto es invalid_request en su posición; una eliminación posterior deja un id muerto, que no concede nada.

El alcance se lee en cada solicitud, así que un cambio se aplica a la siguiente.

screen_scope (opcional, ScreenScope)

Sobre qué puede actuar un miembro o agente con alcance (docs/screen-scope.md): las pantallas de las carpetas de pantallas listadas y de cada carpeta que hay dentro, y las pantallas listadas. Al menos un id en total. Un id que no nombra ninguna carpeta ni pantalla viva del proyecto cuando se escribe es invalid_request en su posición; una eliminación posterior deja un id muerto, que no concede nada.

El alcance se lee en cada solicitud, así que un cambio se aplica a la siguiente. Las etiquetas nunca son alcance.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/invitations'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Crea invitaciones para miembros o compradores de anuncios.Invitación creada (application/json); encabezados: RateLimit-Policy, RateLimit
402

feature_not_in_plan — un alcance de pantallas necesita Enterprise, y un alcance de carga (un usuario de carga) necesita Plus; el problema nombra la función, el plan que tiene la cuenta y required_plan. Restringir un alcance de carga y quitar cualquiera de los dos alcances siempre están permitidos.

Problema (application/problem+json)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
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
GET/api/projects/{project_id}/project

Obtener proyecto en proyecto

El proyecto que llama. No debita el medidor API de 1 crédito, por lo que un proyecto con saldo cero aún puede leer el saldo restante y recuperarse. Después de un principal de proyecto exitoso, las respuestas JSON autenticadas /api y de problemas incluyen ScreenRig-Credits-Remaining, ScreenRig-Credits-Reset y ScreenRig-Credits-Included como créditos enteros.

SSE, runtime, contenido y respuestas no autenticadas los omiten.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getProjectInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project'

Respuestas

EstadoSignificadoCuerpo y encabezados
200ProyectoProyecto (application/json); encabezados: ScreenRig-Credits-Remaining, ScreenRig-Credits-Reset, ScreenRig-Credits-Included, ScreenRig-Credits-Low
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)
PATCH/api/projects/{project_id}/project

Actualizar proyecto dentro del proyecto

Renombra el proyecto actual. Los nombres contienen de 1 a 60 caracteres imprimibles y no texto con apariencia de URL.

Autenticación
projectBearer
Cuerpo de la solicitud
ProjectPatch
ID de operación
updateProjectInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
project_id (opcional, cadena)ID de proyecto esperado. El servidor rechaza la acción si la credencial actual o la sesión de cookie apunta a otro proyecto; los clientes de navegador envían el ID del proyecto de la página. minLength: 1 maxLength: 200
nombre (requerido, ProjectName)Nombre de proyecto imprimible recortado. Rechaza controles, texto con apariencia de URL, @, www. y ://. minLength: 1 maxLength: 60
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Renombra el proyecto actual.Proyecto (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)
ELIMINAR/api/projects/{project_id}/project

Eliminar agente de proyecto en proyecto

Solo el propietario del proyecto o un administrador de su organización puede eliminarlo; cualquier otro llamante es rechazado con forbidden. Una persona también debe ser miembro del proyecto.

Un agente necesita la capacidad de proyecto de membresía objetivo y elimina para su persona responsable, que debe ser el propietario o un administrador de la organización; un agente sin persona responsable no puede eliminar, excepto el agente que inscribió el proyecto mientras nadie ha aceptado su inscripción.

También requiere el nombre y la revisión actuales, cero pantallas no archivadas, sin crédito, reservas ni deuda en su propia billetera y sin publicidad en vivo. Un saldo negativo acumulado bajo términos gratuitos o de lanzamiento no bloquea; la eliminación lo cancela con una entrada de libro mayor project_delete_writeoff. Encola avisos para miembros y usa la lápida irreversible.

Autenticación
projectBearer
Cuerpo de la solicitud
ProjectDeleteConfirmation
ID de operación
deleteProjectAgentInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
project_id (opcional, cadena)ID de proyecto esperado. El servidor rechaza la acción si la credencial actual o la sesión de cookie apunta a otro proyecto; los clientes de navegador envían el ID del proyecto de la página. minLength: 1 maxLength: 200
empty_only (opcional, booleano)

Requiere un proyecto Screens vacío en la transacción de eliminación, incluyendo contenido, otros agentes o miembros, trabajo y correspondencia. La CLI además requiere su procedencia de inscripción guardada antes de usar esta protección de limpieza. La omisión mantiene la eliminación explícita de miembros.

nombre (requerido, ProjectName)Nombre de proyecto imprimible recortado. Rechaza controles, texto con apariencia de URL, @, www. y ://. minLength: 1 maxLength: 60
revisión (requerida, entero)mínimo: 1
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado del ciclo de vida del proyectoProyecto eliminado (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)
GET/api/projects/{project_id}/applications

Listar aplicaciones en proyecto

Lista aplicaciones, las más nuevas primero, máximo 500 por página. Los nombres son etiquetas y no necesitan ser únicos; diríjase a una aplicación por ID. next_cursor es la posición de la última fila devuelta mientras queden más filas; páselo como after, con los mismos filtros, para la siguiente página. next_cursor es nulo en la última página.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listApplicationsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
despuésconsultaopcionalnext_cursor de la página anterior de la misma lista, con los mismos filtros. Omitido comienza en la fila más reciente. Un valor que no sea tal cursor es invalid_request.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/applications'

Respuestas

EstadoSignificadoCuerpo y encabezados
200AplicacionesApplicationList (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)
POST/api/projects/{project_id}/applications

Subir aplicación en proyecto

Transmite un tar.gz producido por CLI directamente a un almacenamiento duradero limitado. Los metadatos se llevan en los encabezados para que el archivo nunca se codifique en base64 ni se materialice como JSON por el servidor.

El proxy frente a la API termina una solicitud que no ha respondido en unos 100 s, por lo que un archivo grande en una subida lenta falla aquí; POST /api/applications/uploads envía el archivo directamente al almacén de objetos.

Autenticación
projectBearer
Cuerpo de la solicitud
string
ID de operación
uploadApplicationInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido
ScreenRig-Archive-SHA256encabezadorequerido
ScreenRig-Expanded-Bytesencabezadorequerido
ScreenRig-File-Countencabezadorequerido
ScreenRig-SDK-Versionencabezadoopcional
ScreenRig-Application-Nameencabezadoopcional

Nombre de aplicación ASCII; mutuamente exclusivo con ScreenRig-Application-Name*. Se recortan espacios en blanco al inicio y al final. Se rechazan valores de encabezado duplicados y de control. El nombre decodificado está limitado a 120 valores escalares Unicode.

ScreenRig-Application-Name*encabezadoopcional

Nombre de aplicación Unicode codificado como RFC 8187 UTF-8'' seguido de bytes UTF-8 codificados en porcentaje (idioma vacío, conjunto de caracteres UTF-8 exacto). Mutuamente exclusivo con ScreenRig-Application-Name. Se rechazan escapes inválidos, UTF-8 inválido, controles y valores duplicados en encabezados.

Se recortan los espacios en blanco al inicio y al final; el nombre decodificado está limitado a 120 valores escalares Unicode. Ningún encabezado de nombre puede renombrar una actualización de versión. Esto evita Unicode sin procesar en los valores de encabezado HTTP.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'ScreenRig-Archive-SHA256: VALUE' --header 'ScreenRig-Expanded-Bytes: VALUE' --header 'ScreenRig-File-Count: VALUE' --header 'Content-Type: application/gzip' --data-binary '@request.bin' 'https://api.screenrig.ai/api/projects/PROJECT_ID/applications'

Respuestas

EstadoSignificadoCuerpo y encabezados
202Archivo subido aceptadoOperación aceptada (application/json); encabezados: 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)
POST/api/projects/{project_id}/applications/uploads

Crear carga de aplicación en proyecto

Declara una carga directa de un tar.gz producido por la CLI que crea una nueva aplicación. La respuesta es una autorización firmada para exactamente un PUT de objeto del archivo, por lo que los bytes van directamente al almacén de objetos y nunca pasan por la API, cuyo proxy termina una solicitud que no ha respondido en unos 100 s.

Envíe el archivo con PUT a upload_url, luego confirme con POST /api/applications/uploads/{id}/commit y espere la operación. La aplicación, su versión y la operación receptora existen desde esta respuesta, como después de POST /api/applications. Una carga no confirmada en 24 horas falla, y una aplicación que nunca publicó una versión se elimina.

La misma Idempotency-Key y el mismo cuerpo devuelven la misma carga con una URL recién firmada. GET /api/capabilities establece features.application_direct_uploads donde se sirven estas rutas.

Autenticación
projectBearer
Cuerpo de la solicitud
ApplicationUploadDeclaration
ID de operación
createApplicationUploadInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
nombre (opcional, cadena)

Nombre de una nueva aplicación, recortado; como máximo 120 caracteres Unicode y sin controles. Omitido o vacío selecciona un nombre generado. Una declaración de versión (POST /api/applications/{id}/uploads) no debe llevar uno. maxLength: 120

sha256 (obligatorio, cadena)SHA-256 de los bytes del archivo. pattern: "^[0-9a-f]{64}$"
compressed_bytes (requerido, entero)Tamaño del archivo en bytes. mínimo: 1 máximo: 104857600
expanded_bytes (requerido, entero)mínimo: 1 máximo: 262144000
file_count (requerido, entero)mínimo: 1 máximo: 5000
sdk_version (opcional, cadena)maxLength: 64
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/applications/uploads'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Autorización firmada para exactamente un PUT de objeto del archivo. Envíe el método devuelto y cada encabezado devuelto textualmente; el PUT debe comenzar antes de expires_at, dos horas después de la declaración.ApplicationUploadSession (application/json); encabezados: Cache-Control, 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)
GET/api/projects/{project_id}/playlists

Listar playlists V2 en proyecto

Lista de listas de reproducción versionadas que puede exponer páginas de espacios publicitarios. La lista v1 rechaza una página que contiene un documento con anuncios con version_required en lugar de filtrarla.

Páginas como listPlaylists, las más nuevas primero, máximo 200 por página y menos una vez que una página contiene 8 MiB de listas de reproducción almacenadas. next_cursor es la posición de la última fila devuelta mientras quedan más filas; páselo como after, con los mismos filtros, para la siguiente página. next_cursor es null en la última página. library=true enumera en su lugar las listas de reproducción de la Biblioteca de la organización (solo lectura; prográmelas o cree otras a partir de sus plantillas).

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listPlaylistsV2InProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
libraryconsultaopcional

true enumera el proyecto Biblioteca de la organización en lugar de este proyecto: sus elementos son de solo lectura aquí y llevan library true. Una organización sin Biblioteca, o el propio proyecto Biblioteca, no enumera nada con true.

despuésconsultaopcionalnext_cursor de la página anterior de la misma lista, con los mismos filtros. Omitido comienza en la fila más reciente. Un valor que no sea tal cursor es invalid_request.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playlists'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Listas de reproducción con la unión de la página de espacio publicitario.PlaylistV2List (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)
POST/api/projects/{project_id}/playlists

Crear lista de reproducción V2 en proyecto

Entrada de creación para la unión de páginas de espacio publicitario. Como máximo 16 páginas de espacio publicitario, al menos una página ordinaria sin visibilidad, y la reutilización de una definición de espacio en diferentes páginas siguen siendo verificaciones del servidor. La resolución de referencias y DNS siguen siendo verificaciones del servidor.

Una escritura que contiene una página iframe que el Player web no puede encuadrar se guarda de todos modos; la respuesta incluye advertencias (PlaylistWarning) y el registro del proyecto recibe un evento playlist.iframe_framing_refused por cada página.

Una escritura cuyo src de iframe, fallback_src o params de aplicación leen un token de pantalla ({screen.field.NAME} y los demás de los esquemas de primitivas) que le falta a una pantalla que muestra la lista de reproducción también responde con una advertencia screen_fact_missing que nombra las primeras 20 pantallas de ese tipo; los manifiestos de esas pantallas omiten esa primitiva.

Un src o fallback_src de iframe que sea un enlace de Google Slides, Docs o Sheets (compartir, Publicar en la web o insertar) o un enlace Embed de Microsoft 365 OneDrive o SharePoint se almacena reconstruido para la pantalla: Slides se repite y avanza según el delayms del enlace, limitado a la duración de la página, y Docs, Sheets, Word y Excel se recargan cada 5 minutos.

Un código de inserción <iframe> pegado en src o fallback_src se lee por su src. Un archivo que pide a los espectadores que inicien sesión se rechaza con document_not_shared (400), cuyo errors[0].field es ese src o fallback_src y cuyo detalle nombra el ajuste de uso compartido que hay que cambiar.

Autenticación
projectBearer
Cuerpo de la solicitud
PlaylistCreateRequest
ID de operación
createPlaylistV2InProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Screenrig-Review-Noteencabezadoopcional

Nota opcional del proponente en una escritura de clase revisión, enviada como UTF-8 codificado en porcentaje (lo que escribe encodeURIComponent de JavaScript). El servidor la decodifica en porcentaje (una escape inválido es 400 invalid_request); la nota decodificada es texto plano, máximo 280 caracteres tras recortar, sin caracteres de control (de lo contrario 400 invalid_request).

Almacenado en la revisión cuando la escritura se convierte en una; ignorado cuando se aplica en vivo.

Idempotency-KeyencabezadoopcionalOmitir 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
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playlists'

Respuestas

EstadoSignificadoCuerpo y encabezados
202

La escritura se convirtió en una revisión y espera la aprobación de una persona (docs/reviews.md), con acceso Proponer, o con cualquier nivel de acceso cuando alcanza una pantalla de una carpeta de pantallas protegida, donde la decide un segundo aprobador (docs/screen-scope.md). Una persona aprueba, rechaza o solicita cambios en el panel, en review.url.

Una repetición de Idempotency-Key responde con el mismo cuerpo.

ReviewPending (application/json)
201Lista de reproducción con sus páginas de espacios publicitarios.PlaylistV2 (application/json)
402

feature_not_in_plan — Declarar campos, bloquear una primitiva o cambiar una lista de reproducción que declara campos corresponde a las plantillas de listas de reproducción, y el plan del proyecto no las incluye; required_plan nombra el plan que sí las incluye. Crear una lista de reproducción a partir de una plantilla siempre está permitido.

Un formato de 2 o más monitores (un muro de video) forma parte de Plus; un formato de región y una lista de reproducción sin formato están en todos los planes. El problema nombra la función, el plan del proyecto y required_plan.

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)
GET/api/projects/{project_id}/screens

Listar pantallas en proyecto

La lista predeterminada devuelve pantallas pairing_pending y activas. Pase state=archived para listar solo pantallas archivadas. Pase tag para listar solo pantallas cuyos tags contengan exactamente esa etiqueta; las pantallas sin etiqueta se omiten cuando el filtro está presente.

Pase field, una vez por campo, como NAME:VALUE para listar solo las pantallas cuyos campos contienen todos los valores, y near como LAT,LON,KM para listar solo las pantallas ubicadas a KM kilómetros o menos del punto; se omiten las pantallas sin ubicación, y todos los filtros se combinan con state y tag.

Pase folder como un ID de carpeta de pantallas para listar solo las pantallas directamente dentro de ella (no las de sus subcarpetas), o root para las pantallas fuera de toda carpeta.

Las pantallas van de la más reciente a la más antigua, como máximo 500 por página. next_cursor es la posición de la última fila devuelta mientras quedan más filas; páselo de vuelta como after, con los mismos filtros, para la página siguiente. next_cursor es null en la última página. Un llamador limitado a pantallas (docs/screen-scope.md) lista solo las pantallas de su alcance.

Una solicitud que no nombra ningún proyecto omite cada proyecto donde el llamador está limitado a pantallas; nombre el proyecto para listarlo.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listScreensInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
estadoconsultaopcionalOmitir para pairing_pending y activo. Pase archived para listar solo pantallas archivadas.
etiquetaconsultaopcionalEtiqueta exacta de pantalla. Las pantallas sin etiqueta se omiten cuando este filtro está presente.
fieldconsultaopcional

NAME:VALUE, dividido en el primer signo de dos puntos: solo las pantallas cuyo campo NAME contiene exactamente VALUE. Repita el parámetro para varios campos; todos deben coincidir, y un nombre puede indicarse una sola vez. Uno con formato incorrecto o repetido devuelve invalid_request e indica field.

nearconsultaopcional

LAT,LON,KM en grados decimales y kilómetros, por ejemplo 47.6062,-122.3321,25: solo las pantallas cuya ubicación está a KM kilómetros o menos del punto. La latitud va de -90 a 90, la longitud de -180 a 180 y KM debe ser mayor que 0 y como máximo 20038. Se omiten las pantallas sin ubicación. Un valor con formato incorrecto devuelve invalid_request e indica near.

carpetaconsultaopcionalUn ID de carpeta de pantallas mantiene solo las pantallas directamente dentro de esa carpeta, no las de sus subcarpetas; root mantiene solo las pantallas fuera de toda carpeta. Si se omite, lista todas las pantallas.
despuésconsultaopcionalnext_cursor de la página anterior de la misma lista, con los mismos filtros. Omitido comienza en la fila más reciente. Un valor que no sea tal cursor es invalid_request.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screens'

Respuestas

EstadoSignificadoCuerpo y encabezados
200PantallasScreenList (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)
GET/api/projects/{project_id}/screen-folders

Listar carpetas de pantallas en proyecto

Lista todas las carpetas de pantallas del proyecto, como máximo 1000, ordenadas por nombre.

Las carpetas organizan las pantallas y las seleccionan: una hoja de audiencia de campaña {"folder": ID} coincide con las pantallas de esa carpeta y de cada carpeta que contiene, un selector de acción de flota by:folder actúa sobre las mismas pantallas, y el default_playlist_id de una carpeta es lo que muestran sus pantallas que no tienen una lista de reproducción propia. parent_id es null en la raíz del proyecto; construya el árbol a partir de parent_id. screens cuenta las pantallas en vivo directamente dentro de cada carpeta.

La carpeta de una pantalla es Screen.folder_id. Un llamador limitado a pantallas (docs/screen-scope.md) lista las carpetas dentro de su alcance y las carpetas que están encima, que son de solo lectura para que su árbol tenga raíz; las carpetas de arriba no llevan recuento de pantallas y las carpetas hermanas se ocultan. Una solicitud que no nombra ningún proyecto omite cada proyecto donde el llamador está limitado a pantallas.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listScreenFoldersInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screen-folders'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Carpetas de pantallasScreenFolderList (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)
POST/api/projects/{project_id}/screen-folders

Crear carpeta de pantallas en proyecto

Crea una carpeta de pantallas en la raíz del proyecto (parent_id nulo o ausente) o dentro de parent_id. Los nombres se recortan, tienen de 1 a 100 caracteres Unicode sin controles, no son "." ni ".." y son únicos entre las carpetas del mismo nivel (resource_conflict).

Una organización tiene como máximo 1000 carpetas en todos sus proyectos (quota_exceeded) anidadas a lo sumo 10 niveles (invalid_request). default_playlist_id, cuando se establece, debe nombrar una lista de reproducción aprobada (playlist_not_approved). Emite screen.folder_created.

Un llamador limitado a pantallas (docs/screen-scope.md) crea una carpeta solo dentro de una carpeta de su alcance; la raíz del proyecto o cualquier otro padre es outside_screen_scope. Crear una carpeta dentro de una carpeta protegida es una revisión protected_change (202 pending_review) decidida por un segundo aprobador.

Autenticación
projectBearer
Cuerpo de la solicitud
ScreenFolderCreate
ID de operación
createScreenFolderInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
nombre (requerido, cadena)Recortado; de 1 a 100 caracteres Unicode, sin controles, distinto de . y .., único entre las carpetas del mismo nivel. minLength: 1 maxLength: 100
parent_id (opcional, en línea)La carpeta en la que crearla; null o ausente para la raíz del proyecto.
default_playlist_id (opcional, cadena)Una lista de reproducción aprobada para las pantallas de la carpeta que no tienen una propia. minLength: 1
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screen-folders'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Carpeta creada.ScreenFolder (application/json); encabezados: ETag
202

La escritura se convirtió en una revisión y espera la aprobación de una persona (docs/reviews.md), con acceso Proponer, o con cualquier nivel de acceso cuando alcanza una pantalla de una carpeta de pantallas protegida, donde la decide un segundo aprobador (docs/screen-scope.md). Una persona aprueba, rechaza o solicita cambios en el panel, en review.url.

Una repetición de Idempotency-Key responde con el mismo cuerpo.

ReviewPending (application/json)
403outside_screen_scope como en OutsideScreenScope, o approver_required - un miembro limitado a pantallas que no puede aprobar revisiones no cambia lo que reproduce una pantalla ni cuándo (docs/screen-scope.md).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)
POST/api/projects/{project_id}/screens/move

Mover pantallas en proyecto

Mueve pantallas (screen_ids) y carpetas (folder_ids) a una carpeta (folder_id), o a la raíz del proyecto cuando folder_id es null, en una sola solicitud de todo o nada de como máximo 1000 ids. Todos los ids deben existir (not_found). Una carpeta no puede moverse dentro de sí misma ni dentro de una carpeta contenida en ella, y el movimiento debe mantener todas las carpetas dentro de 10 niveles (invalid_request).

Los elementos que ya están en el destino se dejan tal cual; cada pantalla y carpeta movidas avanza su revisión. Las pantallas movidas vuelven a resolver su lista de reproducción en unos 15 segundos: levels nombra las campañas cuya audiencia de carpeta entran o dejan y las listas de reproducción predeterminadas de carpeta que ganan o pierden. Emite screen.moved.

Un llamador limitado a pantallas (docs/screen-scope.md) mueve pantallas y carpetas dentro de su alcance a una carpeta de su alcance; cualquier id o destino fuera de él, y la raíz del proyecto, rechazan todo el movimiento (outside_screen_scope), también cuando una pantalla sale del alcance entre la comprobación y la escritura.

Un movimiento hacia dentro o fuera de una carpeta protegida es una revisión protected_change decidida por un segundo aprobador (202 pending_review).

Autenticación
projectBearer
Cuerpo de la solicitud
ScreenMove
ID de operación
moveScreensInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
folder_id (requerido, en línea)Carpeta de destino; null para la raíz del proyecto.
screen_ids (opcional, array)
folder_ids (opcional, arreglo)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screens/move'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Cuántas pantallas y carpetas se movieron, y los niveles que las pantallas movidas ganan o pierden.ScreenMoveResult (application/json)
202

La escritura se convirtió en una revisión y espera la aprobación de una persona (docs/reviews.md), con acceso Proponer, o con cualquier nivel de acceso cuando alcanza una pantalla de una carpeta de pantallas protegida, donde la decide un segundo aprobador (docs/screen-scope.md). Una persona aprueba, rechaza o solicita cambios en el panel, en review.url.

Una repetición de Idempotency-Key responde con el mismo cuerpo.

ReviewPending (application/json)
403outside_screen_scope como en OutsideScreenScope, o approver_required - un miembro limitado a pantallas que no puede aprobar revisiones no cambia lo que reproduce una pantalla ni cuándo (docs/screen-scope.md).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)
GET/api/projects/{project_id}/schedule/calendar

Obtener calendario de horario en proyecto

Responde qué reproducen las pantallas de un sujeto durante [from, to) y por qué, para el calendario de Horario del panel: exactamente uno de screen_id, folder_id (las pantallas de la carpeta y de cada carpeta dentro de ella), tag o campaign_id (las pantallas de su audiencia).

Las pantallas cuyas pilas tienen entradas idénticas (los mismos niveles, predeterminado, zona horaria y número de pantallas) comparten un grupo con una línea de tiempo, de modo que un sujeto grande cuesta decenas de líneas de tiempo; un grupo lista hasta 500 de sus pantallas y una respuesta, como máximo 200 grupos (truncated).

Cada grupo lleva su pila, de mayor a menor (takeover, las campañas que alcanzan las pantallas, sus propias entradas de horario, luego la lista de reproducción predeterminada o la de la carpeta más cercana), los tramos de cada nivel (se reproduce en cada pantalla a la que apunta, parcial con las pantallas en las que se reproduce, superado, o condicional mientras espera una interacción o una condición de datos que solo un Player observa), lo que muestra cada pantalla (on_screen; la región principal de una página completa) y conflictos (dos campañas de una misma prioridad vigentes a la vez; un nivel que rige pero nunca se reproduce). from y to son instantes RFC 3339, con to posterior a from y como máximo 93 días de diferencia; se truncan al minuto.

Las reglas se leen en la zona horaria de cada grupo, igual que las leen el barrido y cada Player; todo nivel se juzga reproducible. Un llamador limitado a pantallas (docs/screen-scope.md) debe enviar un screen_id o un folder_id dentro de su alcance; una etiqueta, un campaign_id o ningún asunto es outside_screen_scope.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getScheduleCalendarInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
desdeconsultarequerido
aconsultarequerido
screen_idconsultaopcional
folder_idconsultaopcional
etiquetaconsultaopcional
campaign_idconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/schedule/calendar?from=FROM&to=TO'

Respuestas

EstadoSignificadoCuerpo y encabezados
200El calendario del sujeto.ScheduleCalendar (application/json)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
GET/api/projects/{project_id}/schedule/imports/template

Obtener plantilla de importación de programación en proyecto

Responde con una hoja con las columnas que lee una importación de programación y tres filas de ejemplo (un código de pantalla, una carpeta de pantallas y una etiqueta), como CSV o, con format=xlsx, un libro XLSX.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getScheduleImportTemplateInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
formatoconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/schedule/imports/template'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La hoja de plantilla.cadena (text/csv), cadena (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
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)
POST/api/projects/{project_id}/schedule/imports/preview

Vista previa de importación de programación en proyecto

Lee una hoja de filas de programación contra el proyecto y responde qué haría confirmarla, sin escribir nada.

Cada fila indica un destino (una pantalla por id, por el valor de un campo de pantalla como un código de sala, o por nombre; folder:NAME; tag:NAME; varios separados por ; o |), el contenido (un nombre de archivo multimedia, o playlist:NAME o un id de lista de reproducción), un inicio y un fin (una fecha sola como fin cierra ese día) y, opcionalmente, timezone, days (Mon-Fri), una ventana diaria (daily_start, daily_end), priority de 0 a 100, un nombre y números de pantalla.

Las horas se leen en el reloj propio de cada pantalla; una columna timezone las convierte desde otra zona.

Cada fila se verifica e informa sus errores por columna: pantalla, carpeta o etiqueta desconocida o ambigua, archivo faltante o ambiguo, un archivo que no puede llenar una pantalla, horas inválidas o invertidas, un fin en el pasado, ninguna indicación de tiempo, una pantalla sin zona horaria o sin lista de reproducción predeterminada, dos filas vigentes a la vez en una pantalla con la misma prioridad, y más niveles de los que admite una pantalla (32), o más campañas de las que admite su organización en todos sus proyectos (100; cada nivel compartido cuenta como una).

Las filas que coinciden en contenido, horas, prioridad y nombre forman un nivel: una pantalla es una entrada de la programación propia de esa pantalla; varias pantallas, una carpeta o una etiqueta son un nivel compartido (una campaña), que prevalece sobre los niveles propios de una pantalla.

La respuesta lista los niveles con lo que hace una confirmación a cada uno (create, update, unchanged), los niveles que una ejecución anterior de la misma importación creó y que la hoja ya no tiene (removals), las pilas de las pantallas tal como quedarían (calendar) y una huella para enviar a la confirmación. La hoja son filas JSON, CSV o XLSX, de como máximo 5,000 filas.

No disponible para un llamador limitado a pantallas (outside_screen_scope). La importación de programación forma parte del plan Enterprise; un proyecto cuyo plan no lo incluye se rechaza con feature_not_in_plan (402). La plantilla está abierta en todos los planes.

Autenticación
projectBearer
Cuerpo de la solicitud
ScheduleImportRequest
ID de operación
previewScheduleImportInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
nameconsultaopcionalEl nombre de la importación; importar de nuevo con el mismo nombre actualiza los niveles que creó (predeterminado import). Se envía con un cuerpo de archivo.
zona horariaconsultaopcionalLa zona IANA en la que se escriben las horas cuando una fila no tiene timezone. Sin una, las horas se leen en el reloj propio de cada pantalla.
origenconsultaopcionalEl nombre del archivo, registrado con la importación.
code_fieldconsultaopcionalLeer un código de pantalla solo de este campo de pantalla (por ejemplo code o room_id); de lo contrario, un código coincide con cualquier campo.

Campos del cuerpo de la solicitud

CampoDescripción
nombre (opcional, cadena)Identifica la importación; el mismo nombre actualiza los niveles que creó (predeterminado import). minLength: 1 maxLength: 80
source (opcional, cadena)El archivo del que provienen las filas. maxLength: 200
zona horaria (opcional, cadena)La zona IANA en la que se escriben las horas cuando una fila no tiene timezone.
code_field (opcional, cadena)Leer un código de pantalla solo de este campo de pantalla.
fingerprint (opcional, cadena)La huella de la vista previa; la confirmación la requiere.
rows (obligatorio, arreglo)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/schedule/imports/preview'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La vista previa. valid es false mientras alguna fila tenga un error.ScheduleImportPreview (application/json)
402feature_not_in_plan — La importación de programación forma parte del plan Enterprise; el problema nombra la función, el plan que tiene la cuenta y required_plan.Problema (application/problem+json)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
POST/api/projects/{project_id}/schedule/imports

Confirmar importación de programación en proyecto

Confirma una importación con vista previa: la misma hoja y la huella que respondió su vista previa. Cada nivel se crea, se actualiza o se elimina, las programaciones de las pantallas y los niveles compartidos se escriben en una sola transacción, y se añade el evento de importación schedule.imported: todas las filas se aplican o ninguna.

Primero se crean las listas de reproducción de un solo archivo que necesitan los archivos de la hoja (no cambian nada en ninguna pantalla). Una hoja cuyas filas tienen errores se rechaza (schedule_import_invalid); un proyecto que cambió desde la vista previa, o filas que se leen de otra forma, se rechaza (schedule_import_stale), y el cliente previsualiza de nuevo.

Importar la misma hoja de nuevo con el mismo nombre no cambia nada; una fila modificada actualiza su nivel y una fila eliminada elimina su nivel. Requiere una persona que pueda aprobar en el dashboard y, para un agente, una credencial con acceso de escritura.

Una confirmación que actualizaría o eliminaría una campaña reservada responde reserved_item (403) y no escribe nada, a menos que la confirme una persona que puede aprobar.

Una confirmación que alcanza una pantalla protegida se rechaza por completo con protected_target, también cuando la importación no tiene niveles pero elimina entradas de importación de una pantalla protegida o elimina una campaña de importación cuya audiencia alcanza una.

En un proyecto con carpetas de pantallas protegidas, una confirmación cuya vista previa falla en un servicio, no en la hoja, responde dependency_unavailable y no escribe nada: envíe la misma solicitud de nuevo tras una breve espera. Un error de validación de hoja, campaña o pantalla responde como lo haría la confirmación (invalid_request y los demás problemas de arriba).

No disponible para un llamador limitado a pantallas. La importación de programación forma parte del plan Enterprise; un proyecto cuyo plan no lo incluye se rechaza con feature_not_in_plan (402). La plantilla está abierta en todos los planes.

Autenticación
projectBearer
Cuerpo de la solicitud
ScheduleImportRequest
ID de operación
commitScheduleImportInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente.
fingerprintconsultaopcionalLa huella de la vista previa, para un cuerpo CSV o XLSX; un cuerpo JSON la lleva como miembro.
nameconsultaopcionalEl nombre de la importación; importar de nuevo con el mismo nombre actualiza los niveles que creó (predeterminado import). Se envía con un cuerpo de archivo.
zona horariaconsultaopcionalLa zona IANA en la que se escriben las horas cuando una fila no tiene timezone. Sin una, las horas se leen en el reloj propio de cada pantalla.
origenconsultaopcionalEl nombre del archivo, registrado con la importación.
code_fieldconsultaopcionalLeer un código de pantalla solo de este campo de pantalla (por ejemplo code o room_id); de lo contrario, un código coincide con cualquier campo.

Campos del cuerpo de la solicitud

CampoDescripción
nombre (opcional, cadena)Identifica la importación; el mismo nombre actualiza los niveles que creó (predeterminado import). minLength: 1 maxLength: 80
source (opcional, cadena)El archivo del que provienen las filas. maxLength: 200
zona horaria (opcional, cadena)La zona IANA en la que se escriben las horas cuando una fila no tiene timezone.
code_field (opcional, cadena)Leer un código de pantalla solo de este campo de pantalla.
fingerprint (opcional, cadena)La huella de la vista previa; la confirmación la requiere.
rows (obligatorio, arreglo)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/schedule/imports'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Lo que aplicó la confirmación.ScheduleImportCommitted (application/json)
402feature_not_in_plan — La importación de programación forma parte del plan Enterprise; el problema nombra la función, el plan que tiene la cuenta y required_plan.Problema (application/problem+json)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

Problema (application/problem+json)
409

protected_target - el cambio alcanza una pantalla de una carpeta de pantallas protegida y no tiene una vía de revisión (docs/screen-scope.md). Quite la protección de la carpeta mediante una revisión, haga el cambio y proteja la carpeta de nuevo.

Problema (application/problem+json)
500dependency_unavailable - no se pudo ejecutar la comprobación de carpetas de pantallas protegidas; envíe la misma solicitud de nuevo tras una breve espera.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)
POST/api/projects/{project_id}/project/browser-links/claim

Reclamar enlace del navegador en proyecto

Reclama un código de enlace de navegador para el proyecto autenticado y crea atómicamente exactamente una pantalla first pairing_pending más su concesión de aprovisionamiento de navegador existente. La inscripción sigue siendo solo para el proyecto. La respuesta es solo metadatos seguros y nunca contiene un token de aprovisionamiento, URL fragmentada, cookie o prueba.

Autenticación
projectBearer
Cuerpo de la solicitud
BrowserLinkClaimRequest
ID de operación
claimBrowserLinkInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
código (requerido, cadena)patrón: "^[23456789ABCDEFGHJKMNPQRSTUVWXYZ]{3}-?[23456789ABCDEFGHJKMNPQRSTUVWXYZ]{3}$"
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/browser-links/claim'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Reclamación exacta de enlace de navegador sin fragmentos y segura para reproducción.BrowserLinkClaim (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

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)
403

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)
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)
409

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)
410

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)
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
500

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)
POST/api/projects/{project_id}/screens/pair

Emparejar pantalla en proyecto

Reclama una sesión de emparejamiento de Player global para la flota con seis caracteres. Reintentos con la misma Idempotency-Key devuelven el resultado original duradero sin consumir cuota nuevamente.

La sesión del panel lo reclama en su proyecto actual con el mismo cuerpo, Idempotency-Key, presupuestos y problemas, salvo que su not_found para un código desconocido o ya reclamado no nombra ningún comando de la CLI; es un cambio de estado, así que sigue las reglas de mutación del panel, se rechaza una sesión sombra sin modo de escritura del personal, y los eventos que añade la reclamación nombran al usuario del panel. folder_id nombra la carpeta en la que queda la pantalla.

Un llamador limitado a pantallas (docs/screen-scope.md) debe enviar una carpeta dentro de su alcance y empareja solo como persona que puede aprobar (outside_screen_scope, approver_required).

Autenticación
projectBearer
Cuerpo de la solicitud
Pantalla de vinculación
ID de operación
pairScreenInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
código (requerido, cadena)patrón: "^[23456789ABCDEFGHJKMNPQRSTUVWXYZ]{6}$"
etiqueta (opcional, cadena)minLength: 1 maxLength: 120
folder_id (opcional, cadena)

La carpeta de pantallas en la que queda la pantalla; si se omite, queda en la raíz del proyecto. Un llamador limitado a pantallas debe enviar una carpeta dentro de su alcance (de lo contrario outside_screen_scope). Una carpeta que el proyecto no contiene es invalid_request para un llamador de todo el proyecto.

Parte de la solicitud idempotente: otro folder_id con la misma Idempotency-Key es idempotency_mismatch. minLength: 1

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screens/pair'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Reclamo duradero de pantalla pairing_pending.PairingClaim (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

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)
401

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)
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)
409

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)
413

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)
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
500

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)
403outside_screen_scope como en OutsideScreenScope, o approver_required - un miembro limitado a pantallas que no puede aprobar revisiones no cambia lo que reproduce una pantalla ni cuándo (docs/screen-scope.md).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)
POST/api/projects/{project_id}/screens/provision

Provisionar pantalla en proyecto

Aprovisionamiento opcional de una pantalla nueva, solo en navegador. Siempre crea una pantalla nueva en pairing_pending; como máximo cinco esperan a vincularse a la vez (quota_exceeded). Los reintentos exactos vuelven a entregar el mismo token de fragmento durante diez minutos. El emparejamiento de seis caracteres sigue siendo el flujo predeterminado y el único de recuperación. folder_id nombra la carpeta en la que queda la pantalla.

Un llamador limitado a pantallas (docs/screen-scope.md) debe enviar una carpeta dentro de su alcance (de lo contrario outside_screen_scope).

Autenticación
projectBearer
Cuerpo de la solicitud
ProvisionScreen
ID de operación
provisionScreenInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
etiqueta (opcional, cadena)minLength: 1 maxLength: 120
folder_id (opcional, cadena)La carpeta de pantallas en la que queda la pantalla, como en PairScreen. minLength: 1
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screens/provision'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Nuevo enlace de aprovisionamiento para navegador.ScreenProvisioning (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

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)
401

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)
409

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)
410

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)
413

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)
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
500

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)
403outside_screen_scope como en OutsideScreenScope, o approver_required - un miembro limitado a pantallas que no puede aprobar revisiones no cambia lo que reproduce una pantalla ni cuándo (docs/screen-scope.md).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)
POST/api/projects/{project_id}/screens/actions

Aplicar acciones de pantalla en proyecto

Aplica una acción a una flota seleccionada sin límite de conteo de pantallas. Seleccione screen_ids únicos o una etiqueta que coincida con pantallas activas en orden de creación. La selección resuelta se fija antes de cualquier mutación, se almacena en fragmentos limitados y se mantiene durante veinticuatro horas bajo Idempotency-Key.

Cada paso utiliza su ruta de mutación de pantalla única, preservando revisiones, eventos, señales de tiempo de ejecución y límites por pantalla. Una respuesta contiene una página limitada de resultados; coincidentes, exitosos y fallidos describen esa página. HTTP 202 incluye total, offset y next_cursor. Continúe con el mismo selector, acción y Idempotency-Key, pasando next_cursor como after.

Respete Retry-After cuando esté presente, incluso una página con cero resultados. La respuesta refleja Idempotency-Key, incluyendo una clave generada cuando el llamante la omitió; conserve esta clave para continuaciones. HTTP 200 finaliza la selección. Las páginas respondidas se reproducen exactamente, incluyendo fallos por pantalla; los pasos interrumpidos se reproducen sin repetir sus efectos.

Las acciones grandes se regulan según los presupuestos existentes de 600 por minuto por organización para recarga, toast, toma de control, programación de listas de reproducción, reinicio, pantalla y programación de pantalla; el agotamiento del presupuesto de la organización pausa la acción en lugar de rechazar la flota. El agotamiento por pantalla falla solo esa pantalla.

Un paso assign, takeover o set_playlist_schedule que vincula una lista de reproducción con formato a una pantalla cuyo muro tiene otra forma falla solo para esa pantalla con 409 playlist_format_mismatch. Las asignaciones y los cambios de etiquetas no tienen presupuesto de mensajes.

Una asignación cuya lista de reproducción tiene un src de iframe o parámetros de aplicación que leen un token de pantalla que le falta a alguna pantalla de la página añade una advertencia screen_fact_missing a esa página (warnings, PlaylistWarning). El fallo parcial es un resultado normal. Todas las páginas y reintentos bajo una misma clave son una sola acción medida.

Las solicitudes usan una carga útil de bytes acotada; use una etiqueta para una selección mayor que la carga útil del transporte. Un selector o una acción mal formados se rechazan antes de tocar ninguna pantalla. El selector o la acción se rechazan antes de tocar ninguna pantalla.

Un llamador limitado a pantallas (docs/screen-scope.md) selecciona por screen_ids o por carpeta, cada pantalla dentro de su alcance; un selector de etiqueta, una pantalla fuera del alcance o una desconocida rechaza toda la acción (outside_screen_scope) antes de que se fije o se proponga nada.

Assign, takeover, takeover_clear, set_playlist_schedule y clear_playlist_schedule que alcanzan una pantalla protegida se convierte en una revisión que decide un segundo aprobador (202 pending_review) en todos los niveles de acceso; set_tags, add_tags y remove_tags en una pantalla protegida son protected_target (409).

Una acción set_playlist_schedule con una entrada pausada (un borrador) corresponde al control de cambios de la programación, que incluye el plan Enterprise; un proyecto cuyo plan no lo incluye se rechaza con feature_not_in_plan (402).

Autenticación
projectBearer
Cuerpo de la solicitud
ScreenActionRequest
ID de operación
applyScreenActionsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Screenrig-Review-Noteencabezadoopcional

Nota opcional del proponente en una escritura de clase revisión, enviada como UTF-8 codificado en porcentaje (lo que escribe encodeURIComponent de JavaScript). El servidor la decodifica en porcentaje (una escape inválido es 400 invalid_request); la nota decodificada es texto plano, máximo 280 caracteres tras recortar, sin caracteres de control (de lo contrario 400 invalid_request).

Almacenado en la revisión cuando la escritura se convierte en una; ignorado cuando se aplica en vivo.

Idempotency-KeyencabezadoopcionalOmitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente.
despuésconsultaopcionalnext_cursor de la página de resultados anterior. Reutilice la Idempotency-Key original y el cuerpo de la solicitud.

Campos del cuerpo de la solicitud

CampoDescripción
selector (requerido, ScreenActionSelector)
acción (requerida, ScreenAction)Una acción de flota, discriminada por tipo. Cada miembro lleva solo sus propios parámetros; un miembro de otro tipo es un campo desconocido e invalid_request.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screens/actions'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultados por pantalla. El éxito parcial es una respuesta normal.ScreenActionResult (application/json); encabezados: Idempotency-Key, Cache-Control, RateLimit-Policy, RateLimit
202

Quedan más pantallas (continúe con next_cursor y la misma Idempotency-Key y el mismo cuerpo, respetando Retry-After), o, con estado pending_review, la acción se convirtió en una revisión con acceso Proponer (docs/reviews.md), o con cualquier nivel de acceso porque alcanza una pantalla de una carpeta de pantallas protegida (docs/screen-scope.md).

Solo asignar, takeover, takeover_clear, set_playlist_schedule y clear_playlist_schedule se convierten en revisiones; cualquier otra acción es insufficient_access para Propose.

inline (application/json); encabezados: Idempotency-Key, Retry-After, Cache-Control, RateLimit-Policy, RateLimit
400

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)
401

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)
402

feature_not_in_plan — set_reboot_schedule con enabled true (reinicios programados) y set_playlist_schedule con un bloqueo de displays (muros de video) forman parte de Plus; las acciones de borrado y los comandos puntuales están abiertos. payment_required — el proyecto no tiene crédito restante. El problema nombra la función, el plan del proyecto y required_plan.

Problema (application/problem+json)
403insufficient_access, outside_screen_scope cuando un llamador limitado a pantallas selecciona fuera de su alcance, o approver_required para un miembro limitado a pantallas que no puede aprobar.Problema (application/problem+json)
409

playlist_format_mismatch y los demás conflictos de la acción, o protected_target cuando set_tags, add_tags, remove_tags, toast, display, display_clear, set_display_schedule o clear_display_schedule alcanza una pantalla de una carpeta de pantallas protegida.

Problema (application/problem+json)
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)
POST/api/projects/{project_id}/tab-shares

Iniciar uso compartido de pestañas en proyecto

Muestra pestañas del navegador en pantallas del proyecto indicado; solicitud, respuesta, acceso y límites son los de POST /api/tab-shares.

Autenticación
projectBearer
Cuerpo de la solicitud
TabShareWrite
ID de operación
startTabShareInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
screen_ids (opcional, array)Pantallas por id. Los duplicados se unifican.
folder_ids (opcional, arreglo)Carpetas de pantallas; cada una incluye todas sus subcarpetas.
tags (opcional, array)Una pantalla con cualquiera de las etiquetas.
tabs (requerido, array)
cookies (opcional, array)Cookies del remitente para las páginas, hasta 64 KiB codificados. Secretas; véase POST /api/tab-shares.
reload_s (opcional, integer)0 (nunca, por defecto) o de 60 a 86400: frecuencia de recarga del iframe de cada página.
until (opcional, string)Estrictamente en el futuro y como máximo dentro de 24 horas; 24 horas desde ahora si se omite. Fin del control en cada destino y caducidad de la lista temporal. format: "date-time"
qr (opcional, boolean)Cuando es true, cada página lleva un código QR de su dirección abajo a la derecha. Por defecto false.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/tab-shares'

Respuestas

EstadoSignificadoCuerpo y encabezados
200El recurso compartido. Se tomó el control de al menos una pantalla.TabShare (application/json); encabezados: RateLimit-Policy, RateLimit
400

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)
401

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)
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)
409

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)
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
403outside_screen_scope como en OutsideScreenScope, o approver_required - un miembro limitado a pantallas que no puede aprobar revisiones no cambia lo que reproduce una pantalla ni cuándo (docs/screen-scope.md).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)
GET/api/projects/{project_id}/campaigns

Listar campañas en proyecto

Lista las campañas del proyecto en orden de precedencia (como máximo 100), el orden en que las lee la resolución. reserved está presente en cada campaña.

Un llamador limitado a pantallas (docs/screen-scope.md) ve todas las campañas, con editable true solo cuando toda la audiencia está dentro de su alcance (una hoja de etiqueta y la regla raíz de todas las pantallas nunca lo están; una regla all necesita un hijo contenido, una regla any todos los hijos) y el llamador puede cambiar lo que se reproduce.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listCampaignsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/campaigns'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Las campañas del proyecto.CampaignList (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)
POST/api/projects/{project_id}/campaigns

Crear campaña en proyecto

createCampaign para el proyecto nombrado en la ruta. reserved true reserva la campaña, y solo lo define una persona que puede aprobar (reserved_item para un agente, un cliente de servicio o cualquier otro), añadiendo campaign.reserved_changed.

Un llamador limitado a pantallas (docs/screen-scope.md) crea una campaña solo para una audiencia dentro de su alcance (hojas folder y screen_id; ni tag ni la regla de todas las pantallas), de lo contrario outside_screen_scope, y solo como persona que puede aprobar (approver_required).

Una campaña cuya audiencia alcanza una pantalla protegida es una revisión protected_change decidida por un segundo aprobador (202 pending_review) en todos los niveles de acceso. reserved true corresponde a las carpetas protegidas y paused true en una campaña nueva (un borrador) corresponde al control de cambios de la programación, y ambos forman parte del plan Enterprise; un proyecto cuyo plan no lo incluye se rechaza con feature_not_in_plan (402).

Autenticación
projectBearer
Cuerpo de la solicitud
CampaignWrite
ID de operación
createCampaignInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
nombre (requerido, cadena)minLength: 1 maxLength: 120
playlist_id (requerido, cadena)minLength: 1
audience (requerido, 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.

from (opcional, string)patrón: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$"
until (opcional, string)Posterior a from. patrón: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$"
windows (opcional, array)
monthly (opcional, arreglo)
dates (opcional, arreglo)
except (opcional, arreglo)Fechas civiles, almacenadas en orden ascendente y una sola vez cada una. Una excepción elimina todas las repeticiones que empiezan en su fecha, incluidas las colas nocturnas; cae entre from y until.
data (opcional, PageDataCondition)

Un predicado de datos de tarjeta, evaluado antes de la hora civil. Los datos faltantes o caducados nunca coinciden. La página también respeta sus límites de tiempo ordinarios. Requiere la capacidad host page.conditions; los hosts más antiguos reciben la página deshabilitada.

interaction (opcional, LevelInteraction)

El nivel rige mientras alguien usa la pantalla: desde un toque, clic o tecla hasta que pasan idle_s segundos sin entrada. Uso típico: una página interactiva sobre un bucle de atracción. idle_s se almacena y se devuelve (60 si se omite).

covers (opcional, cadena)

Dónde se reproduce el nivel: la página completa (default, se almacena ausente) o main, la propia página, para una lista de reproducción ordinaria; header, footer o side, una franja dibujada sobre la página, solo para una lista de reproducción de región de esa región (PlaylistRegionFormat). Una lista de reproducción de región se rechaza con full o main, y una franja necesita una lista de reproducción de región dispuesta en un monitor de destino.

Permitido: "full", "main", "header", "footer", "side"

displays (opcional, arreglo)Las salidas de un muro de video en las que se reproduce; si está ausente, se reproduce en todas las salidas.
start (opcional, cadena)on_time cambia en el borde, interrumpiendo el elemento actual; next_item (predeterminado, se almacena ausente) espera a que termine. Permitido: "next_item", "on_time"
priority (opcional, integer)predeterminado: 0 mínimo: 0 máximo: 100
paused (opcional, boolean)predeterminado: false
reserved (opcional, booleano)Solo una persona que puede aprobar reserva una campaña (de lo contrario reserved_item). default: false
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/campaigns'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creado.Campaign (application/json); encabezados: ETag
202

La escritura se convirtió en una revisión y espera la aprobación de una persona (docs/reviews.md), con acceso Proponer, o con cualquier nivel de acceso cuando alcanza una pantalla de una carpeta de pantallas protegida, donde la decide un segundo aprobador (docs/screen-scope.md). Una persona aprueba, rechaza o solicita cambios en el panel, en review.url.

Una repetición de Idempotency-Key responde con el mismo cuerpo.

ReviewPending (application/json)
402

feature_not_in_plan — Las carpetas protegidas y el control de cambios de la programación forman parte del plan Enterprise; el problema nombra la función, el plan que tiene la cuenta y required_plan. Una campaña que bloquea una lista de reproducción en el monitor 2 o posteriores de un muro de video (displays) forma parte de Plus. El problema nombra la función, el plan del proyecto y required_plan.

Problema (application/problem+json)
403

outside_screen_scope o approver_required como en ScreenScopePlays, o reserved_item - una campaña reservada solo la cambia, pausa, elimina o deja de reservar una persona que puede aprobar revisiones, nunca un agente ni un cliente de servicio (docs/screen-scope.md).

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)
GET/api/projects/{project_id}/connections

Listar conexiones de un proyecto

Lista las conexiones del proyecto, las más recientes primero, como máximo 200 por página; devuelva next_cursor como after para la siguiente. Un secreto, una clave o un token de actualización nunca se devuelve: secret indica si hay uno guardado y una pista que no es secreta. Una lectura nunca incluye un enlace de consentimiento.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listConnectionsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
despuésconsultaopcionalnext_cursor de la página anterior de la misma lista, con los mismos filtros. Omitido comienza en la fila más reciente. Un valor que no sea tal cursor es invalid_request.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/connections'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de conexiones.ConnectionList (application/json); encabezados: Cache-Control
400invalid_request, incluido un cursor mal formado.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)
POST/api/projects/{project_id}/connections

Crear una conexión en un proyecto

Crea en este proyecto una conexión con Microsoft o Google: modo own_app con las credenciales propias del cliente, o modo screenrig_app, que responde consent_url, un enlace de un solo uso para la persona que lo completa (vea createConnection). Añade connection.created. Un reintento exacto con la misma Idempotency-Key devuelve la misma conexión.

Autenticación
projectBearer
Cuerpo de la solicitud
ConnectionWrite
ID de operación
createConnectionInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
provider (requerido, cadena)Permitido: "microsoft", "google"
mode (requerido, cadena)Permitido: "own_app", "screenrig_app"
nombre (requerido, cadena)minLength: 1 maxLength: 80
config (opcional, ConnectionConfigWrite)Microsoft, modo own_app: ambos miembros. No se acepta para una conexión de Google ni para el modo screenrig_app.
secret (opcional, cadena)

Modo own_app. Microsoft: el valor de uno de los secretos de cliente de la aplicación (no su ID; como máximo 1024 caracteres), con config.tenant_id y config.client_id. Google: el archivo de clave JSON de la cuenta de servicio, completo (como máximo 16384 bytes). Se sella al llegar y nunca se devuelve; la CLI lo lee de un archivo o de la entrada estándar, nunca de un argumento.

No se acepta en modo screenrig_app. minLength: 1 maxLength: 16384

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/connections'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creada. Una conexión en modo screenrig_app lleva consent_url y consent_expires_at.ConnectionConsent (application/json); encabezados: ETag, Location, Cache-Control
400invalid_request, que nombra el campo no válido.Problema (application/problem+json)
409connection_app_not_configured, connection_limit_reached o idempotency_mismatch.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)
GET/api/projects/{project_id}/bi-connections

Listar conexiones BI en proyecto

Lista las conexiones BI del proyecto, de la más antigua a la más reciente, 200 por página; devuelva next_cursor como cursor para la siguiente. Un secreto nunca se devuelve: secret indica si está definido y sus últimos 4 caracteres.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listBIConnectionsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
cursorconsultaopcionalnext_cursor de la página anterior.
límiteconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/bi-connections'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de conexiones.BIConnectionList (application/json); encabezados: Cache-Control
400invalid_request, incluido un cursor mal formado.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)
POST/api/projects/{project_id}/bi-connections

Crear una conexión BI en proyecto

Agrega una conexión a un sistema BI del que el proyecto es propietario. Para Grafana: su dirección (http o https en un host público, con un prefijo de ruta opcional) y un token de cuenta de servicio con el rol Viewer. El token se sella y nunca se devuelve.

Grafana renders dashboards for screens through its Image Renderer plugin or remote rendering service, so the customer installs one; run POST /api/bi-connections/{id}/test to check. For Power BI (kind powerbi): config.tenant_id and config.client_id of a Microsoft Entra app registration and its client secret value as secret.

Un administrador de Power BI debe activar los ajustes de desarrollador Embed content in apps y Service principals can call Fabric public APIs para la aplicación (portal de administración, configuración del inquilino), la aplicación debe ser Miembro o Administrador de cada área de trabajo que muestre, y los informes necesitan una capacidad Embedded, Fabric o Premium en producción.

For Tableau (kind tableau): config.url (the https address of Tableau Server, or of your Tableau Cloud pod such as https://10ay.online.tableau.com), config.site (the site content URL, empty for the default site), config.client_id and config.secret_id of a connected app with direct trust, config.username (the Tableau user the screens views are shown as) and the secret value as secret.

Añada embed_origin de la respuesta a la lista de dominios permitidos de la aplicación conectada y habilite el secreto. Cualquiera que tenga un ticket de pantalla puede incrustar cualquier vista que ese usuario pueda ver, así que use un usuario que solo vea los paneles de las pantallas. Tableau Cloud, o Tableau Server 2023.3 o posterior.

Para una página web con inicio de sesión (kind web): la cuenta de servicio de un sitio que muestra su panel tras un inicio de sesión. config.login_mode es auto (config.login_url, config.username y la contraseña como secret: el renderizador abre la página de inicio de sesión y rellena el formulario), steps (config.login_url y config.steps, un script de pasos goto, fill, click, press, wait_for y wait_ms cuyos valores pueden contener {{username}}, {{password}} y {{otp}}) o none (sin inicio de sesión: la conexión muestra páginas con las cookies que usted le da). totp_secret es la clave base32, o la dirección otpauth://, de la aplicación de autenticación de la cuenta: el servidor calcula el código de un solo uso (RFC 6238) y envía al renderizador solo el código. cookies es un conjunto de cookies exportado de un navegador con la sesión iniciada, para un sitio cuyo inicio de sesión no se puede automatizar (inicio de sesión único que se aprueba en un teléfono, una comprobación de dispositivo); el servidor guarda el conjunto y lo renueva con las cookies que devuelve cada captura, así que un inicio de sesión es raro.

La contraseña, la semilla y las cookies se sellan y nunca se devuelven. Use una cuenta de servicio de solo lectura. La contraseña se escribe solo en config.login_url y en los pasos goto, así que moverlos a otro origen exige secret de nuevo. Tras cinco inicios de sesión rechazados seguidos, la conexión deja de iniciar sesión hasta que cambian sus credenciales.

Un servidor sin renderizador de páginas responde bi_web_unavailable. Añade bi_connection.created. Un reintento exacto con la misma Idempotency-Key devuelve esta misma respuesta.

Autenticación
projectBearer
Cuerpo de la solicitud
BIConnectionWrite
ID de operación
createBIConnectionInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
nombre (requerido, cadena)minLength: 1 maxLength: 80
kind (requerido, cadena)Permitido: "grafana", "powerbi", "tableau", "web"
config (requerido, BIConnectionConfig)
secret (opcional, cadena)

Obligatorio salvo para web, y para una conexión de Power BI que nombra connection_id. El token de la cuenta de servicio (Grafana), el valor del secreto de cliente de la aplicación (Power BI), el valor del secreto de la aplicación conectada (Tableau) o la contraseña de la cuenta de servicio (web: la exige login_mode auto, no la usa none).

Se sella al llegar; la CLI lo lee de un archivo o de la entrada estándar, nunca de un argumento. minLength: 1 maxLength: 4096

totp_secret (opcional, cadena)

Web: la clave base32 de la aplicación de autenticación de la cuenta (de 16 a 128 caracteres, con espacios permitidos), o su dirección otpauth://totp, que puede fijar el algoritmo (SHA1, SHA256, SHA512), los dígitos (6 a 8) y el periodo. Sellado; solo el código calculado sale del servidor. maxLength: 1024

cookies (opcional, array)Web: un conjunto de cookies exportado de un navegador con la sesión iniciada. Sellado; se renueva con cada captura.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/bi-connections'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creado.BIConnection (application/json); encabezados: ETag, Cache-Control
400invalid_request, incluida una dirección que no es un host público de Internet.Problema (application/problem+json)
402feature_not_in_plan — el plan del proyecto no incluye paneles de BI; required_plan nombra el plan que sí los incluye.Problema (application/problem+json)
409idempotency_mismatch.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)
GET/api/projects/{project_id}/bi-views

Listar vistas BI en proyecto

Lists the project's BI views, oldest first, 200 to a page; pass next_cursor back as cursor for the next. Each carries embed_url, the address an iframe primitive shows (content_fit fill); it is null where this server has no embed host.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listBIViewsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
cursorconsultaopcionalnext_cursor de la página anterior.
límiteconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/bi-views'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de vistas.BIViewList (application/json); encabezados: Cache-Control
400invalid_request, incluido un cursor mal formado.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)
POST/api/projects/{project_id}/bi-views

Crear una vista BI en proyecto

Agrega una vista de un panel de Grafana de la conexión o de uno solo de sus paneles (url: una dirección /d/{uid}/... en el host de la conexión, o target), o de un enlace de panel público de Grafana (kind grafana y target.public_url, sin conexión).

Put the answer's embed_url in an iframe primitive: the server renders the dashboard as a PNG through Grafana's /render API, refreshed every refresh_s (30 to 86400, default 300) and shared by every screen of the same size; the screen never talks to Grafana. A public dashboard plays live from Grafana, which must allow embedding.

La página de inserción solo muestra un ticket que lleva el manifiesto de la pantalla, así que una vista solo se reproduce en las pantallas de su propio proyecto.

For Power BI (kind powerbi): a report of a workspace the connection's app is a member of (url: an app.powerbi.com /groups/{workspace}/reports/{report} address, or target with workspace_id and report_id), with pages to show and rotate_s to rotate through them (pages listing two or more, or rotate_all_pages, need rotate_s of 10 to 3600; one report page needs none), and refresh_s of 0 (no refresh) or 60 to 86400 (default 300).

The page asks the server for a short-lived view-only embed token (GenerateToken, App owns data) and renews it before it expires; the screen never holds the client secret. A Power BI Publish to web link is a view without a connection (kind powerbi, target.public_url https://app.powerbi.com/view?r=...), framed as it is.

For Tableau (kind tableau): a view of the connection site (url: an address copied from Tableau, such as https://HOST/t/SITE/views/WORKBOOK/VIEW or Tableau Cloud https://HOST/#/site/SITE/views/WORKBOOK/VIEW, or Workbook/View; or target.view), optionally with target.rotate_sheets and rotate_s of 10 to 3600 to turn the workbook published sheets (rotate_s and rotate_sheets go together; rotate_sheets may be given as the whole target beside url), and refresh_s of 0 (no refresh) or 60 to 86400 (default 300).

The page asks the server for a five minute JWT with only the embed scope, signed with the connected app secret, and builds the Embedding API v3 tableau-viz from the Tableau host; the screen never holds the secret.

Una visualización de Tableau Public es una vista sin conexión (kind tableau, target.public_url, reconstruida como https://public.tableau.com/views/WORKBOOK/VIEW) y también acepta rotate_sheets. Para una página web (kind web): una página del sitio de la conexión web (url: una dirección https en un host público, sin target).

El navegador en el borde la abre con la sesión iniciada, espera el elemento wait_for si está definido y wait_ms milisegundos (hasta 10000), y dibuja clip, un selector CSS, si está definido, o si no la página entera.

La imagen se redibuja cada refresh_s (60 a 86400, 300 por defecto) y la comparten todas las pantallas del mismo tamaño, y solo mientras una pantalla muestra la vista; cuando falla una captura, la última imagen sigue en pantalla. Defina wait_for con un elemento que solo exista cuando la página tiene la sesión iniciada, para que nunca se muestre una página de inicio de sesión. Añade bi_view.created.

Autenticación
projectBearer
Cuerpo de la solicitud
BIViewWrite
ID de operación
createBIViewInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
connection_id (opcional, cadena)
kind (opcional, cadena)Obligatorio sin connection_id; si no, debe coincidir con la conexión. Permitido: "grafana", "powerbi", "tableau", "web"
nombre (requerido, cadena)minLength: 1 maxLength: 80
url (opcional, cadena)

Una dirección de panel /d/{uid}/... en el host de la conexión. El servidor lee de ella orgId, viewPanel (N o panel-N) o panelId, from, to, var-* y theme. Tableau: una dirección de vista en el host de la conexión (/views/W/V, /t/SITE/views/W/V, #/site/SITE/views/W/V) o Workbook/View. Web: la dirección https de la página en un host público. maxLength: 2048

target (opcional, BITarget)

Qué muestra una vista. Grafana con una conexión: dashboard_uid (y opcionalmente un panel). Power BI con una conexión: workspace_id y report_id, con pages o rotate_all_pages. Tableau con una conexión: view (Workbook/View), con rotate_sheets. Web con una conexión: url. Sin una conexión: solo public_url (y rotate_sheets para Tableau).

refresh_s (opcional, entero)Grafana 30 a 86400; Power BI y Tableau 0 o 60 a 86400; web 60 a 86400. default: 300 minimum: 0 maximum: 86400
rotate_s (opcional, entero)Power BI y Tableau: 0 o de 10 a 3600; obligatorio para un destino que rota páginas u hojas. default: 0 minimum: 0 maximum: 3600
fit (opcional, cadena)Permitidos: "contain", "cover", "fill" por defecto: "contain"
wait_for (opcional, cadena)Web: un selector CSS de un elemento que aparece cuando la página está lista, y solo cuando tiene la sesión iniciada. maxLength: 512
wait_ms (opcional, entero)Web: los milisegundos que se esperan después de que la página esté lista. minimum: 0 maximum: 10000
clip (opcional, cadena)Web: un selector CSS de la parte de la página que se dibuja. maxLength: 512
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/bi-views'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creado.BIView (application/json); encabezados: ETag, Cache-Control
400invalid_request, incluida una url que no es una dirección de panel de la conexión.Problema (application/problem+json)
402feature_not_in_plan — el plan del proyecto no incluye paneles de BI; required_plan nombra el plan que sí los incluye.Problema (application/problem+json)
404not_found: la conexión no está en este proyecto.Problema (application/problem+json)
409idempotency_mismatch.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)
GET/api/projects/{project_id}/triggers

Listar disparadores en proyecto

Enumera los disparadores de alerta CAP del proyecto, del más antiguo al más reciente (máximo 20), cada uno con su URL de ingestión, nombre de usuario y última alerta. La contraseña nunca se devuelve aquí.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listTriggersInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/triggers'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Los triggers del proyecto.Lista de disparadores (application/json); encabezados: Cache-Control
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)
POST/api/projects/{project_id}/triggers

Crear disparador en proyecto

Crea un disparador de alerta CAP: una URL entrante a la que un sistema de notificaciones de emergencia (Everbridge, Rave, Alertus, relés IPAWS y otros emisores CAP 1.2) envía alertas, con credenciales HTTP Basic.

La respuesta es el único lugar donde aparece la contraseña (con la respuesta de rotación): guárdela en el sistema de envío de inmediato. target es una etiqueta (todas las pantallas activas con ella cuando llega la alerta) o hasta 500 screen_ids.

Una alerta toma todas las pantallas objetivo con una lista de reproducción predeterminada hasta que la alerta <expires>, o para default_for_seconds (60 a 604800, por defecto 3600); vea POST /api/triggers/{id}/cap. Una organización tiene como máximo 20 disparadores en todos sus proyectos (trigger_limit_reached). Añade trigger.created.

Un reintento exacto con la misma Idempotency-Key devuelve esta misma respuesta, contraseña incluida, durante veinticuatro horas. Un activador cuyo selector alcanza una pantalla protegida es protected_target (409), y una lectura fallida de la protección de pantallas es dependency_unavailable (500, repita la misma solicitud); un activador no está disponible para un llamador limitado a pantallas.

Autenticación
projectBearer
Cuerpo de la solicitud
TriggerWrite
ID de operación
createTriggerInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
kind (opcional, cadena)Permitidos: "cap", "overlay" predeterminado: "cap"
etiqueta (requerida, cadena)minLength: 1 maxLength: 80
objetivo (requerido, TriggerTarget)Exactamente uno de tag y screen_ids.
default_for_seconds (opcional, entero)

Cuánto tiempo mantiene las pantallas una alerta sin <expires>: de 60 a 604800, por defecto 3600, en un activador CAP; cuánto tiempo mantiene su alerta un envío sin duration: de 10 a 604800, por defecto 600, en un activador de superposición. minimum: 10 maximum: 604800

pull (opcional, CapPull)

CAP fuentes que la plataforma lee para el disparador, con dónde están las pantallas objetivo y qué alertas cuentan: los parámetros de una colocación de tarjeta de alerta cap (docs/feeds.md "Alertas CAP"). Cada URL fuente se consulta una vez por minuto para cada disparador y colocación que la nombre.

Sin fuentes, se leen los feeds públicos de la plataforma que cubren la ubicación (NWS, Canada NAAD y MeteoAlarm para una ubicación con códigos de área). La alerta coincidente más severa toma el control de las pantallas objetivo exactamente como lo haría un mensaje enviado; cuando las fuentes no muestran ninguna (una cancelación o expiración), termina una alerta extraída.

Una fuente obsoleta o fallida nunca termina una alerta. location es obligatorio a menos que se proporcionen fuentes.

overlay (opcional, TriggerOverlayWrite)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/triggers'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creado, con su URL, nombre de usuario y contraseña.TriggerWithPassword (application/json); encabezados: ETag, Cache-Control
400invalid_request, incluyendo una etiqueta malformada o tanto etiqueta como screen_ids.Problema (application/problem+json)
409trigger_limit_reached, idempotency_mismatch, o protected_target cuando el selector alcanza una pantalla de una carpeta de pantallas protegida.Problema (application/problem+json)
500dependency_unavailable - no se pudo ejecutar la comprobación de carpetas de pantallas protegidas; envíe la misma solicitud de nuevo tras una breve espera.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)
GET/api/projects/{project_id}/events

Listar eventos en proyecto

Lista eventos duraderos del proyecto en orden ascendente por secuencia.

La paginación es contigua: pase el next_cursor devuelto como after para continuar exactamente donde la página se detuvo. next_cursor es el cursor del último evento devuelto mientras ya existen eventos más nuevos, y null al final del historial. limit por defecto es 50 y acepta 1-200; un valor fuera de ese rango se rechaza con invalid_request y un miembro errors[] nombrando limit.

No se admite paginación por desplazamiento. source=log lista el registro del Player en su lugar: los informes de condición que envían los Players (runtime.reported) en orden ascendente por hora de recepción, filtrados por screen_id y severidad en una ventana desde hasta (por defecto las últimas 24 horas, máximo 31 días).

Sus cursores son opacos: lg1_ o ev1_ según dónde el servidor guarda el registro del Player, así que devuelva el que una página retornó; un cursor del otro tipo se rechaza con invalid_request nombrando el campo. Los registros del Player no tienen secuencia, no están en GET /stream/project y no se entregan a webhooks.

Un registro se reconoce cuando la cola del log del Player lo acepta y se mantiene para la retención de eventos del proyecto. Una consulta con el último cursor y la ventana predeterminada sigue al log. Los registros del log del Player no están en la lista predeterminada (source=project). from y to se rechazan con invalid_request a menos que source sea log.

La lista de proyectos toma screen_id, playlist_id y application_id para leer los eventos de una pantalla, lista de reproducción o aplicación, todos con alcance al proyecto de la credencial (un id indica qué eventos leer, nunca de quién): screen_id mantiene los eventos cuyo recurso es esa pantalla; playlist_id los eventos cuyo recurso es esa lista de reproducción más los eventos que la nombran como details.playlist_id (una pantalla que la toma); application_id los eventos cuyo recurso es esa aplicación más los que llevan esa aplicación como application_id (sus versiones y entradas clave/valor).

Un valor que no es un id de su tipo se rechaza con invalid_request nombrando el campo; playlist_id y application_id se rechazan con source=log, cuyos registros pertenecen solo a una pantalla.

Ambas fuentes toman resource_id, tipo y severidad (como mínimo), combinados entre sí, con los filtros de id y con paginación; un registro de log de Player es un registro runtime.reported cuyo recurso es su pantalla, por lo que un resource_id que no sea esa pantalla o un tipo que excluya runtime.reported responde con una página vacía. Las páginas before (o order=desc) muestran primero las más nuevas: next_cursor es entonces el cursor del ítem más antiguo devuelto y se pasa de nuevo como before para continuar hacia ítems más antiguos.

Sin from, una página newest-first source=log alcanza más allá de las 24 horas predeterminadas hasta el registro más antiguo que la retención de eventos del proyecto conserva, como máximo 31 días por debajo del límite superior de la página por solicitud. Una página newest-first source=log puede contener menos registros que el límite, incluso ninguno, con un next_cursor; null aún la termina, al final del registro retenido.

Un llamador limitado a pantallas (docs/screen-scope.md) lee un feed filtrado: eventos de pantallas dentro de su alcance, de las carpetas de pantallas que puede ver (las suyas, las que están encima y las que están dentro; screen.moved solo cuando el destino está dentro de su alcance), de campañas, listas de reproducción, medios, aplicaciones y tarjetas, y revisiones playlist_change.

Se omite cualquier otro evento, así que una página puede contener menos eventos que limit, incluso ninguno, con un next_cursor; siga paginando con él. source=log necesita un screen_id dentro de su alcance. No se envían los eventos sobre el propio proyecto.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listEventsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
despuésconsultaopcional

Un cursor de una respuesta previa: ev1_ para eventos de proyecto (y los flujos de eventos). El registro del Player (source=log) pagina con cursores lg1_ o ev1_ según donde el servidor lo guarda; trátelos como opacos y devuelva el que una página retornó. Un cursor de otro tipo se rechaza con invalid_request.

beforeconsultaopcional

Páginas más nuevas primero, estrictamente más antiguas que este cursor: un next_cursor de una página más nueva primero, o cualquier cursor de elemento (ev1_ para eventos de proyecto; para source=log el cursor opaco que llevan sus elementos). Vacío o ausente con order=desc comienza en el elemento más nuevo.

ordenconsultaopcionalasc páginas más antiguas primero con after; desc páginas más nuevas primero con before. before implica desc; order=asc con before es rechazado.
límiteconsultaopcionalTamaño de página. Un valor fuera de 1-200 se rechaza con invalid_request y un miembro errors[] cuyo campo es limit.
origenconsultaopcionalel proyecto lista los eventos secuenciados del proyecto. el registro lista el registro del Player: informes de condición del Player (runtime.reported), en orden ascendente por hora de recepción.
resource_idconsultaopcionalSolo elementos cuyo resource.id es este id (una pantalla, lista de reproducción, multimedia, webhook, agente o id de aplicación). Con source=log es la pantalla del registro.
tipoconsultaopcionalUn tipo de evento exacto como playlist.updated, o un prefijo de familia que termina en punto como playlist. para cada tipo playlist.*.
screen_idconsultaopcionalSolo los eventos de esta pantalla: con source=project aquellos cuyo recurso es la pantalla, con source=log sus registros Player. Otro tipo de id es rechazado con invalid_request.
playlist_idconsultaopcionalCon source=project, solo los eventos de esta lista de reproducción: aquellos cuyo recurso es la lista de reproducción y aquellos que la nombran como details.playlist_id. Rechazado con source=log.
application_idconsultaopcional

Con source=project, solo los eventos de esta aplicación: aquellos cuyo recurso es la aplicación y aquellos cuyo recurso la lleva como application_id (sus lanzamientos y entradas clave/valor). Rechazado con source=log.

gravedadconsultaopcionalSeveridad mínima: info incluye todos los ítems, warning mantiene advertencias y errores, error mantiene errores. Ambas fuentes.
desdeconsultaopcionalCon source=log, el inicio de la ventana (inclusivo). Por defecto es 24 horas antes de to; una página newest-first sin from retrocede hasta la retención de eventos del proyecto.
aconsultaopcionalCon source=log, el fin de la ventana (exclusivo). Por defecto es ahora. La ventana es como máximo de 31 días.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/events'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Eventos duraderos (source=project) o registros de log del Player (source=log)EventList (application/json)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
GET/api/projects/{project_id}/project/capabilities

Obtener capacidades de proyecto en proyecto

El plan del proyecto que llama, indicadores independientes de anunciante/pantallas con su revisión, el conjunto de capacidades efectivas derivadas, las funciones del plan que tiene (plan_features) y sus límites (limits). Nunca refleja una reclamación del cliente; un plan desconocido falla cerrado como prohibido.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getProjectCapabilitiesInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/capabilities'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Capacidades del proyecto.ProjectCapabilities (application/json); headers: Cache-Control
403prohibido: el plan del proyecto no está en el catálogo.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)
GET/api/projects/{project_id}/billing/balance

Obtener saldo de facturación en proyecto

La instantánea del saldo consciente de la fuente del proyecto que llama. Todos los montos en milicréditos son cadenas decimales canónicas. Es una instantánea, no autoridad para pagar; rails_available es falso mientras la tarjeta, impuestos y canal de retiro no estén disponibles.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getBillingBalanceInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/billing/balance'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Instantánea de balance.Saldo de facturación (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)
GET/api/projects/{project_id}/billing/statement

Obtener estado de cuenta de facturación en proyecto

Paginación estable con cursor sobre entradas de diario inmutables publicadas para el proyecto que llama. Las retenciones no son entradas publicadas. Las correcciones enlazan al evento original en lugar de reescribirlo. No hay mutación arbitraria de concesión o pago en esta superficie.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getBillingStatementInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
cursorconsultaopcional
límiteconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/billing/statement'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Página de estado de cuenta.Estado de cuenta de facturación (application/json)
400invalid_request - el límite está fuera de rango.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)
GET/api/projects/{project_id}/billing/usage

Obtener uso de facturación en proyecto

El uso del proyecto que llama durante un mes UTC, con los bytes servidos y recibidos (nunca se cobran), el almacenamiento cobrado por encima del almacenamiento gratuito del plan del pagador (allowance.storage_bytes), y las solicitudes de API, los eventos de flujo del proyecto facturados y los intentos de entrega de webhook contados frente a los 10,000 gratuitos al mes. Un proyecto que paga por sí mismo lee su propio fondo.

Un proyecto que otro pagador paga comparte el grupo de ese pagador con los otros proyectos del pagador; lee su propia parte, y payer nombra al pagador. El total del grupo del pagador permanece en las lecturas de facturación del pagador.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getBillingUsageInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
periodoconsultaopcionalMes UTC en formato YYYY-MM; por defecto el mes actual.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/billing/usage'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Uso del proyecto.ProjectBillingUsage (application/json); headers: Cache-Control
400invalid_request - el período no es un mes UTC en formato YYYY-MM.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)
GET/api/projects/{project_id}/advertising/network

Obtener red publicitaria en proyecto

La red única del vendedor que llama, incluyendo su tarifa resuelta de servicio de ScreenRig. Los vendedores no pueden cambiar esa tarifa.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getAdvertisingNetworkInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/network'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Red.AdvertisingNetwork (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)
POST/api/projects/{project_id}/advertising/network

Crear red publicitaria en proyecto

Crea la única red del vendedor que llama si no existe. Requiere screens=true. Idempotente; repetir devuelve la misma red.

Autenticación
projectBearer
Cuerpo de la solicitud
AdvertisingNetworkCreate
ID de operación
createAdvertisingNetworkInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
nombre (requerido, cadena)maxLength: 120
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/network'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Red.AdvertisingNetwork (application/json)
403prohibido: el proyecto carece de capacidad para pantalla o tiene un plan desconocido.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)
POST/api/projects/{project_id}/advertising/network/rate

Establecer tarifa predeterminada de publicidad en proyecto

Establece la tarifa predeterminada del proyecto del vendedor por cada 15 segundos de reproducción completada. Un cambio que altera la tarifa efectiva de una campaña aceptada pausa toda esa campaña con price_change_pending; un cambio enmascarado o sin efecto no. If-Match lleva la revisión de la red.

Autenticación
projectBearer
Cuerpo de la solicitud
AdvertisingRate
ID de operación
setAdvertisingDefaultRateInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
If-MatchencabezadoopcionalRevisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict.

Campos del cuerpo de la solicitud

CampoDescripción
rate_mcr_per_15s (requerido, McrString)Cantidad exacta de milicréditos enteros como cadena decimal canónica. 1 crédito es 1000 mcr. pattern: "^-?[0-9]+$"
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/network/rate'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Red actualizada.AdvertisingNetwork (application/json)
412revision_conflict: If-Match está obsoleto.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)
GET/api/projects/{project_id}/advertising/inventory

Listar inventario publicitario en proyecto

El inventario seleccionado por el vendedor que llama.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listAdvertisingInventoryInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/inventory'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Inventario.AdvertisingInventoryList (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)
GET/api/projects/{project_id}/advertising/slots

Listar espacios publicitarios en proyecto

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listAdvertisingSlotsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/slots'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Ranuras.AdvertisingSlotList (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)
POST/api/projects/{project_id}/advertising/slots

Crear espacio publicitario en proyecto

Crea un espacio de vendedor reutilizable. Las imágenes duran de 5 a 30 segundos y los videos como máximo el límite de la plataforma de 120 segundos. Los anuncios siempre están silenciados.

Autenticación
projectBearer
Cuerpo de la solicitud
AdvertisingSlotWrite
ID de operación
createAdvertisingSlotInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
nombre (requerido, cadena)minLength: 1 maxLength: 120
habilitado (opcional, booleano)
accepted_media (requerido, arreglo)
max_image_duration_ms (requerido, entero)mínimo: 5000 máximo: 30000
max_video_duration_ms (requerido, entero)mínimo: 1000 máximo: 120000
rate_override_mcr_per_15s (opcional, en línea)
vast_tag_url (opcional, en línea)

La propia etiqueta de anuncio VAST 2-4 del vendedor, probada cuando ninguna campaña invitada llena este espacio en las pantallas propias del vendedor. Solo HTTPS en puerto 443 o 8443 a un host público.

El backend lo obtiene, sigue hasta cinco Wrappers, ingiere el MediaFile MP4 o WebM progresivo elegido en los medios del proyecto y dispara Impression, creativeView y start en un inicio aceptado, complete en una finalización aceptada y Error en fallo. No se disparan rastreadores de cuartiles.

Se expanden las macros [CACHEBUSTING], [TIMESTAMP], [SCREENRIG_SCREEN_ID], [SCREENRIG_SLOT_ID] y [SCREENRIG_PAGE_ID]. La ranura debe aceptar video. Null, ausente o vacío limpia la etiqueta. Los compradores nunca la ven.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/slots'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Ranuraslot.AdvertisingSlot (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)
GET/api/projects/{project_id}/advertising/memberships

Listar membresías publicitarias en proyecto

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listAdvertisingMembershipsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/memberships'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Membresías.AdvertisingMembershipList (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)
GET/api/projects/{project_id}/advertising/networks

Listar redes publicitarias unidas en proyecto

Redes a las que pertenece actualmente el anunciante que llama, con el alcance y la política de revisión otorgados. El conteo de pantallas no garantiza impresiones.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listAdvertisingJoinedNetworksInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/networks'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Redes unidas.AdvertisingJoinedNetworkList (application/json)
403prohibido: el proyecto carece de la bandera de anunciante.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)
GET/api/projects/{project_id}/advertising/creatives

Listar creatividades publicitarias en proyecto

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listAdvertisingCreativesInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/creatives'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Creatividades.AdvertisingCreativeList (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)
POST/api/projects/{project_id}/advertising/creatives

Crear creatividad publicitaria en proyecto

Vincula una revisión de contenido multimedia lista y propia a una creativa inmutable. No copia bytes, no vuelve a subir ni recarga generación. Se rechaza contenido multimedia desconocido o no listo.

Autenticación
projectBearer
Cuerpo de la solicitud
AdvertisingCreativeCreate
ID de operación
createAdvertisingCreativeInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
media_id (requerido, cadena)
copy (opcional, cadena)maxLength: 500
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/creatives'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creatividad.AdvertisingCreative (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)
GET/api/projects/{project_id}/advertising/campaigns

Listar campañas publicitarias en proyecto

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listAdvertisingCampaignsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/campaigns'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Campañas.AdvertisingCampaignList (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)
POST/api/projects/{project_id}/advertising/campaigns

Crear campaña publicitaria en proyecto

Crea una campaña en borrador. Los borradores no contienen dinero, no reservan nada y no autorizan entregas. La activación requiere una cotización aceptada explícitamente.

Autenticación
projectBearer
Cuerpo de la solicitud
AdvertisingCampaignDraft
ID de operación
createAdvertisingCampaignInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
nombre (requerido, cadena)minLength: 1 maxLength: 120
category (opcional, AdvertisingCategory)

La categoría del anunciante. Dos anuncios de una misma categoría nunca se reproducen en la misma pausa publicitaria de una pantalla; un anuncio sin categoría nunca se separa.

Permitido: "alcohol", "apparel", "automotive", "beauty", "cannabis", "consumer_electronics", "education", "entertainment", "financial_services", "food_and_beverage", "gambling", "government", "grocery", "health_and_pharma", "home_and_garden", "insurance", "jobs", "legal", "media", "political", "quick_service_restaurants", "real_estate", "restaurants", "retail", "sports_and_fitness", "technology", "telecom", "tobacco_and_vaping", "travel", "utilities"

daily_cap_mcr (requerido, McrString)Cantidad exacta de milicréditos enteros como cadena decimal canónica. 1 crédito es 1000 mcr. pattern: "^-?[0-9]+$"
lifetime_cap_mcr (requerido, McrString)Cantidad exacta de milicréditos enteros como cadena decimal canónica. 1 crédito es 1000 mcr. pattern: "^-?[0-9]+$"
image_duration_ms (opcional, entero)Tiempo de permanencia de imagen en toda la campaña. Los videos mantienen su duración verificada por el servidor. predeterminado: 10000 mínimo: 5000 máximo: 30000
max_play_price_mcr (opcional, en línea)Precio máximo positivo por reproducción completada. Omitir para no tener límite adicional.
flight_start (requerido, cadena)formato: "date-time"
flight_end (requerido, cadena)formato: "date-time"
redes (requerido, arreglo)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/campaigns'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Campaña en borrador.AdvertisingCampaign (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)
GET/api/projects/{project_id}/advertising/reviews

Listar reseñas publicitarias en proyecto

Versiones creativas enviadas al vendedor que llama para revisión. Un vendedor ve solo la creatividad enviada exacta, nunca la biblioteca del comprador.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listAdvertisingReviewsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/reviews'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Revisiones.AdvertisingReviewList (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)
GET/api/projects/{project_id}/advertising/reports/spend

Obtener gasto publicitario en proyecto

Gastos y conteos de entrega limitados al comprador para una campaña. Las cantidades son cadenas decimales mcr. Nunca expone ingresos del vendedor, estado bancario o uso del proyecto.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getAdvertisingSpendInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
formatoconsultaopcionaljson (por defecto) devuelve el informe como JSON. csv, xlsx y pdf devuelven las mismas filas como archivo adjunto (cada página de un informe paginado, hasta 50000 filas).
campaign_idconsultarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/reports/spend?campaign_id=CAMPAIGN_ID'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Informe de gastos.AdvertisingSpendReport (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)
GET/api/projects/{project_id}/advertising/reports/delivery

Obtener entrega publicitaria en proyecto

Bruto, tarifa de servicio y neto con alcance del vendedor para una ventana, con su propia evidencia de entrega. Nunca expone la cartera del comprador u otras redes. Solo la evidencia autorizada de reproducción completa establece la entrega facturable. La ventana es como máximo de 92 días; una ventana más amplia es invalid_request.

Cuando contiene más de 5000 liquidaciones, la respuesta establece truncado, totales y recuentos aún cubren todos ellos y filas lista solo los primeros 5000.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getAdvertisingDeliveryInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
formatoconsultaopcionaljson (por defecto) devuelve el informe como JSON. csv, xlsx y pdf devuelven las mismas filas como archivo adjunto (cada página de un informe paginado, hasta 50000 filas).
desdeconsultarequerido
aconsultarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/reports/delivery?from=FROM&to=TO'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Informe de entrega.AdvertisingDeliveryReport (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)
GET/api/projects/{project_id}/playback

Listar agregados de reproducción en proyecto

Agregados diarios de reproducción.

JSON devuelve a lo sumo 200 filas y no tiene límite de tasa. format=csv (o Accept text/csv sin application/json) transmite cada fila coincidente dentro de day_from a day_to (días UTC inclusivos; por defecto day_to hoy y day_from 30 días antes; máximo 366 días, sino invalid_request) como CSV con una fila fija de encabezado (PlaybackAggregateCsv); solo el formulario CSV consume los presupuestos playback-export-org (30 por minuto) y playback-export-ip (60 por minuto).

Cualquiera de las dos formas es una solicitud API medida. Las respuestas llevan Vary Accept. Un llamador limitado a pantallas (docs/screen-scope.md) debe enviar screen_id y debe ser una pantalla dentro de su alcance (de lo contrario outside_screen_scope); las formas CSV siguen la misma regla.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listPlaybackAggregatesInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
screen_idconsultaopcional
media_idconsultaopcional
díaconsultaopcionalDía calendario UTC del agregado.
day_fromconsultaopcionalPrimer día UTC, inclusive. Excluye day. Con day_to abarca como máximo 366 días. CSV lo establece por defecto a 30 días antes de day_to.
day_toconsultaopcionalÚltimo día UTC, inclusive. Excluye el día. CSV lo establece por defecto a hoy (UTC).
formatoconsultaopcionaljson (por defecto), csv, xlsx o pdf. Si se omite, un encabezado Accept que nombra text/csv pero no application/json selecciona csv. xlsx y pdf escriben las primeras 50000 filas de la misma lista.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playback'

Respuestas

EstadoSignificadoCuerpo y encabezados
200

Agregados diarios de reproducción para el proyecto que realiza la llamada, tanto imágenes como videos. Una fila por pantalla, contenido multimedia y día UTC. Los días más recientes primero. Los identificadores filtran las filas propias del llamante y nunca son una búsqueda cruzada entre proyectos.

PlaybackAggregateList (application/json), PlaybackAggregateCsv (text/csv); encabezados: Vary, RateLimit-Policy, RateLimit
400

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)
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
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
GET/api/projects/{project_id}/playback/plays

Listar reproducciones de reproducción en proyecto

Registros por reproducción: una fila por cada playback.media_started aceptado (o playback.video_started heredado) y una fila por cada playback.application_started aceptado (release_id establecido, campos de medios vacíos) del proyecto que llama, el más antiguo primero por received_at, empates por inserción. desde (inclusive) y hasta (exclusivo) límite received_at; hasta por defecto ahora, desde hasta 24 horas antes de hasta, y el rango es como máximo 31 días (invalid_request de lo contrario).

Los últimos 5 segundos aún no se devuelven: el to efectivo es como máximo ahora menos 5 segundos (retraso de asentamiento), por lo que una cola en vivo nunca omite una fila que se compromete detrás de su cursor. Filtran screen_id, media_id, playlist_id (la lista de reproducción desde la que se mostró el inicio) y tag (una etiqueta de pantalla que la pantalla tenía cuando se recibió la reproducción).

Una página de playlist_id puede contener menos filas que el límite, incluso ninguna, con un next_cursor cuando se escaneó un largo tramo de reproducciones de otras listas; null aún termina el rango.

JSON es una página de a lo sumo limit filas (por defecto 200, máximo 1000) con next_cursor, null al final del rango; devuélvalo como cursor con los mismos filtros. order=desc (o before) pagina los más nuevos primero dentro del mismo rango: next_cursor es entonces el cursor de la fila más antigua devuelta, null al inicio del rango, y se devuelve como before (exclusivo) con los mismos filtros; order=asc con before se rechaza con invalid_request nombrando order, y cursor con una página newest-first nombrando cursor.

Una página con lo más nuevo primero puede contener menos filas que el límite, incluso ninguna, con un next_cursor; null aún termina la lista.

Una página posterior nunca omite una fila que existía cuando se leyó la página anterior y no repite una, excepto que un inicio que el Player reenvió tras un reporte no reconocido (el mismo play_id, recibido un momento después) puede aparecer de nuevo en una página posterior; el flujo CSV la lista una vez. format=csv (o Aceptar text/csv sin application/json) transmite cada reproducción desde el cursor hasta el final del rango como CSV (PlaybackPlayCsv), más recientes primero abajo antes con order=desc; se rechaza limit con CSV.

La medición es por solicitud: cada página JSON cuesta un crédito de solicitud API, mientras que un flujo CSV de todo el rango cuesta uno. Cada solicitud de reproducciones (página o flujo) consume los presupuestos playback-export-org (30 por minuto) y playback-export-ip (60 por minuto).

Un flujo delimita cada escritura (15 segundos) y termina cuando el cliente se desconecta; si falla después del encabezado 200, la conexión se aborta, por lo que una exportación que lee hasta un final limpio está completa. Las respuestas llevan Vary Accept. Las reproducciones se mantienen por la retención de eventos del plan (30 días es el mínimo entregado; la retención basada en el plan usa la ventana propia de 7 o 90 días del plan).

Un llamador limitado a pantallas (docs/screen-scope.md) debe enviar screen_id y debe ser una pantalla dentro de su alcance (de lo contrario outside_screen_scope); las formas CSV siguen la misma regla.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listPlaybackPlaysInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
desdeconsultaopcionalLímite inferior inclusivo en received_at. Por defecto, 24 horas antes de to.
aconsultaopcionalLímite superior exclusivo en received_at. Por defecto es ahora. to - from es máximo 31 días.
screen_idconsultaopcional
media_idconsultaopcional
playlist_idconsultaopcionalSolo reproducciones mostradas de esta lista de reproducción.
etiquetaconsultaopcionalUna etiqueta de pantalla que la pantalla llevaba cuando se recibió la reproducción.
cursorconsultaopcionalnext_cursor de la página anterior, con los mismos filtros. Opaco.
ordenconsultaopcionalasc páginas más antiguas primero con cursor; desc páginas más nuevas primero con before. before implica desc; order=asc con before es rechazado.
beforeconsultaopcionalPáginas más nuevas primero, estrictamente más antiguas que esta posición: el next_cursor de una página más nueva primero, con los mismos filtros. Opaco.
límiteconsultaopcionalTamaño de página JSON. Rechazado con CSV.
formatoconsultaopcionaljson (por defecto), csv, xlsx o pdf. Si se omite, un encabezado Accept que nombra text/csv pero no application/json selecciona csv. xlsx y pdf escriben las primeras 50000 filas de la misma lista.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playback/plays'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de reproducciones, o el flujo CSV.PlaybackPlayList (application/json), PlaybackPlayCsv (text/csv); encabezados: Cache-Control, Vary, RateLimit-Policy, RateLimit
400

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)
401

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)
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
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
GET/api/projects/{project_id}/playback/totals

Obtener totales de reproducción en proyecto

Totales de reproducción del proyecto que llama durante días UTC inclusivos, leídos de los resúmenes diarios: by=day devuelve una fila por día con reproducciones (screen_id o media_id lo limita a una pantalla o medio), by=screen y by=media clasifican las pantallas o medios más activos (top, máximo 100), y by=screen_day devuelve la serie diaria de las pantallas principales (top máximo 10). day_to por defecto es hoy (UTC) y day_from 29 días antes.

Una serie de días abarca como máximo 366 días (92 cuando se limita a una pantalla o medio); un ranking como máximo 92. Los conteos incluyen cada inicio que el proyecto ha registrado, incluidos los almacenados antes de que existieran los rollups de reproducción.

Los rollups siguen la ingestión hasta aproximadamente 21 minutos. truncated es verdadero cuando un ranking se construyó a partir de fragmentos de una ventana demasiado grande para una lectura: cubre las mejores claves de cada fragmento. No tiene límite de tasa. Una solicitud de API medida.

Un llamador limitado a pantallas (docs/screen-scope.md) debe enviar screen_id y debe ser una pantalla dentro de su alcance (de lo contrario outside_screen_scope); las formas CSV siguen la misma regla.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getPlaybackTotalsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
formatoconsultaopcionaljson (por defecto) devuelve el informe como JSON. csv, xlsx y pdf devuelven las mismas filas como archivo adjunto (cada página de un informe paginado, hasta 50000 filas).
porconsultaopcionaldía: reproducciones por día; pantalla, multimedia: las claves más activas; screen_day: la serie diaria de las pantallas principales.
day_fromconsultaopcionalPrimer día UTC, inclusive. Por defecto 29 días antes de day_to. Una serie de días abarca como máximo 366 días (92 cuando se limita a una pantalla o contenido multimedia), un ranking como máximo 92.
day_toconsultaopcionalÚltimo día UTC, inclusive. Por defecto hoy (UTC).
screen_idconsultaopcional
media_idconsultaopcional
superiorconsultaopcionalCuántas pantallas o contenidos multimedia devuelve un ranking (máximo 10 para by=screen_day). Rechazado con by=day.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playback/totals'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Totales del agrupamiento solicitado.PlaybackTotals (application/json); encabezados: Cache-Control
400

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)
401

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)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
GET/api/projects/{project_id}/playback/completeness

Obtener completitud de la reproducción en el proyecto

Cuántas de las reproducciones que realizaron las pantallas llegaron al backend y dónde estaban las que no llegaron. Los Players numeran los inicios de sus elementos multimedia, así que un inicio que nunca llegó deja un hueco en la numeración, por ejemplo cuando una pantalla permanece sin conexión más allá de su cola de informes de 24 horas o la cola descarta informes.

En los días UTC inclusivos de day_from a day_to (day_to es por defecto hoy, en UTC, y day_from 29 días antes; la ventana abarca como máximo 92 días), la respuesta contiene measured_plays, las reproducciones numeradas que llegaron; missing_plays, los números que los Players omitieron; completeness, measured_plays dividido entre su suma, null cuando ambos son 0; days, las mismas tres cifras de cada día que tenga alguna reproducción medida o faltante, del más antiguo al más reciente, con un hueco contado en el día UTC de la reproducción que le sigue; y gaps, los huecos del más reciente al más antiguo, cada uno con su screen_id, su day, from y to (las horas de inicio de las reproducciones a cada lado del hueco) y missing_plays. screen_id limita days y gaps a una pantalla; limit (100 por defecto, máximo 500) establece el máximo de gaps, y truncated es true cuando hay más.

Una pantalla apagada no realiza reproducciones ni deja huecos. Las reproducciones sin número (Players antiguos, inicios almacenados antes de los números de reproducción) no se miden: están en play_count de GET /api/playback/totals y en ninguna de estas cifras. Sin límite de frecuencia. Una solicitud de API medida.

Un llamador limitado a pantallas (docs/screen-scope.md) debe enviar screen_id y debe ser una pantalla dentro de su alcance (de lo contrario outside_screen_scope); las formas CSV siguen la misma regla.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getPlaybackCompletenessInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
formatoconsultaopcionaljson (por defecto) devuelve el informe como JSON. csv, xlsx y pdf devuelven las mismas filas como archivo adjunto (cada página de un informe paginado, hasta 50000 filas).
day_fromconsultaopcionalPrimer día UTC, inclusive. El valor predeterminado es 29 días antes de day_to. Con day_to, el intervalo abarca como máximo 92 días.
day_toconsultaopcionalÚltimo día UTC, inclusive. Por defecto hoy (UTC).
screen_idconsultaopcional
límiteconsultaopcionalCantidad máxima de huecos que se listan, del más reciente al más antiguo.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playback/completeness'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La completitud de la ventana y sus huecos.PlaybackCompleteness (application/json); encabezados: Cache-Control
400

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)
401

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)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
GET/api/projects/{project_id}/health/trend

Obtener Health Trend en proyecto

La salud de la flota del proyecto por hora UTC: cuántas pantallas reportaron, y cuántas de ellas estaban calientes (a 80 °C o más), tenían un monitor desconectado o estaban fallando (3 o más fallos en 24 horas). from (inclusive) y to (exclusive) por defecto son las últimas 24 horas, máximo 93 días; una página contiene a lo sumo limit filas (por defecto 100, máximo 500) con next_cursor, nulo al final.

Las horas van por detrás de los informes hasta unos 5 minutos. Se rechaza a un llamador limitado a pantallas (outside_screen_scope); GET /api/screens/{id}/health/history es la forma por pantalla.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getHealthTrendInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
formatoconsultaopcionaljson (por defecto) devuelve el informe como JSON. csv, xlsx y pdf devuelven las mismas filas como archivo adjunto (cada página de un informe paginado, hasta 50000 filas).
desdeconsultaopcionalLímite inferior inclusivo en el tiempo del informe. Por defecto, 24 horas antes de to.
aconsultaopcionalLímite superior exclusivo en el tiempo del informe. Por defecto es ahora.
límiteconsultaopcionalTamaño de página.
cursorconsultaopcionalnext_cursor de la página anterior, con los mismos filtros. Opaco.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/health/trend'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de estado de salud de la flota por hora.HealthTrend (application/json); encabezados: Cache-Control
400

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)
401

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)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
GET/api/projects/{project_id}/uptime/daily

Obtener tiempo activo de proyecto en proyecto

Disponibilidad diaria de las pantallas del proyecto durante días UTC inclusivos (por defecto y rango como GET /api/screens/{id}/uptime). Cada fila suma los segundos online y offline de las pantallas con estado registrado ese día; la cobertura es la proporción del día de esas pantallas con estado registrado.

Los intervalos se cuentan cuando terminan, así que la fila de hoy abarca los intervalos que han terminado hasta ahora; el recuento en línea en vivo está en el resumen del panel. Se rechaza a un llamador limitado a pantallas (outside_screen_scope); GET /api/screens/{id}/uptime es la forma por pantalla.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
getProjectUptimeInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
formatoconsultaopcionaljson (por defecto) devuelve el informe como JSON. csv, xlsx y pdf devuelven las mismas filas como archivo adjunto (cada página de un informe paginado, hasta 50000 filas).
day_fromconsultaopcionalPrimer día UTC, inclusive. Por defecto 29 días antes de day_to. Con day_to abarca como máximo 366 días.
day_toconsultaopcionalÚltimo día UTC, inclusive. Por defecto hoy (UTC).
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/uptime/daily'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Filas diarias de tiempo activo, las más antiguas primero.ProjectUptime (application/json); headers: Cache-Control
400

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)
401

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)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
GET/api/projects/{project_id}/card-types

Listar tipos de tarjetas en proyecto

Descubra tarjetas integradas del catálogo publicado de este entorno, combinado con el inventario del proveedor. La actualización y verificación del esquema se realizan en segundo plano; esta ruta nunca llama al bucket edge. Cada entrada lista su copia actual, su nivel y los diseños permitidos para ese nivel, y cada versión principal servida.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listCardTypesInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/card-types'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Catálogo de tarjetas integrado, ordenado por idCatálogo de tarjetas (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)
GET/api/projects/{project_id}/card-data

Listar datos de tarjetas en proyecto

Enumera los documentos de datos de tarjeta del proyecto, como máximo 200 en orden ascendente por clave. next_cursor es la última clave devuelta; pásela como after para la siguiente página, null cuando no haya más. Los documentos de datos de tarjeta contienen las propiedades dinámicas de las ubicaciones de tarjetas (secciones de menú, elementos de ticker, mosaicos KPI); la clave de datos de la ubicación nombra una.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listCardDataInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
despuésconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/card-data'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Documentos de datos de tarjetaLista de datos de tarjeta (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)
GET/api/projects/{project_id}/media

Listar multimedia en proyecto

Lista multimedia listo, las más nuevas primero, máximo 1000 por página. folder mantiene solo los archivos directamente dentro de una carpeta multimedia (su ID), o con root solo los de la raíz de la biblioteca; un ID de carpeta bien formado que no nombra ninguna carpeta no lista nada. next_cursor es la posición de la última fila devuelta mientras queden más filas; páselo como after, con los mismos filtros, para la siguiente página. next_cursor es nulo en la última página.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listMediaInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
etiquetaconsultaopcionalEtiqueta multimedia exacta. Los objetos sin etiqueta se omiten cuando este filtro está presente.
primitivaconsultaopcional
carpetaconsultaopcionalUn ID de carpeta multimedia mantiene solo los archivos directamente dentro de esa carpeta, no los de sus subcarpetas; root mantiene solo los archivos en la raíz de la biblioteca. Omitir lista todos los archivos.
idsconsultaopcional

IDs de medios separados por comas, como máximo 200 distintos; si son más, es invalid_request en ids. Conserva solo esos archivos: un id que no nombra ningún archivo listo está ausente, y los demás filtros y la paginación se siguen aplicando. Un valor vacío no lista nada.

libraryconsultaopcional

true enumera el proyecto Biblioteca de la organización en lugar de este proyecto: sus elementos son de solo lectura aquí y llevan library true. Una organización sin Biblioteca, o el propio proyecto Biblioteca, no enumera nada con true.

despuésconsultaopcionalnext_cursor de la página anterior de la misma lista, con los mismos filtros. Omitido comienza en la fila más reciente. Un valor que no sea tal cursor es invalid_request.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media'

Respuestas

EstadoSignificadoCuerpo y encabezados
200MultimediaMediaList (application/json)
POST/api/projects/{project_id}/media/generations

Crear generación de medios en proyecto

Generar una imagen fija a partir de un prompt, almacenarla como medio privado listo del proyecto y facturar su uso. El POST responde 202 de inmediato con Operation, con o sin Prefer: respond-async, porque un proxy situado delante de la API descarta una solicitud que no envía ningún byte durante 100 s y una imagen fija de alta calidad puede tardar más.

Consulte GET /api/operations/{id} hasta que Operation sea succeeded, cuando su result es {media_id, usage: {quality, credits, usd}} (MediaGenerationUsage), o failed, cuando su error es el problema. Un rechazo decidido antes de cualquier trabajo del proveedor (payment_required, reseller_generation_limit, rate_limited, not_ready, invalid_request) aún responde al POST.

Nunca incluye bytes de imagen, b64_json, claves de objeto, URLs firmadas, URLs del proveedor, costo del proveedor, tokens del proveedor ni el nombre del modelo de despliegue. El prompt son bytes del cliente y no se repite.

Antes de que la indicación llegue al proveedor de imágenes, el servidor añade requisitos fijos de encuadre: la obra debe llenar el marco de borde a borde, y no se puede mostrar ningún televisor, monitor, pantalla, panel, marco, borde, montaje, soporte, pared, habitación, maqueta de dispositivo, sombra o fotografía de un letrero instalado, y cualquier texto en la indicación del llamante que describa dónde colgará el letrero o qué dispositivo lo mostrará se trata como metadatos de ubicación y no como tema.

Las reglas decorativas y los bordes dentro del propio diseño permanecen disponibles. El prompt del llamador nunca se reescribe ni se elimina y se almacena sin cambios. Idempotency-Key reproduce la misma Operation, nunca un segundo intento facturado. Los clientes no hacen PUT ni confirman los bytes generados.

La versión almacenada es WebP con pérdida (calidad 90) en el tamaño exacto de aspecto con un borde corto de 1080 px (16:9 es 1920x1080, 9:16 1080x1920, 1:1 1080x1080, 4:3 1440x1080, 3:4 1080x1440, 3:2 1620x1080, 2:3 1080x1620); el lienzo del proveedor se recorta y remuestrea centrado a ese tamaño.

El nombre de archivo es distintivo por generación, generado-16x9-1a2b3c4d.webp, con el sufijo tomado del id del medio. Obtenga los bytes con GET /api/media/{id}/content. Own-gen-then-upload sigue siendo válido.

En Standard, el saldo restante que no puede cubrir el doble del costo del proveedor de la imagen fija, redondeado a créditos enteros, después del piso de introducción (negativo 1,000,000 créditos hasta 2027-01-01, luego cero) devuelve payment_required, excepto SCREENRIG__ENVIRONMENT=development, y la admisión antes de la llamada al proveedor requiere un saldo por encima de ese piso por el mínimo por calidad: 200 créditos para baja, 800 para media, 2000 para alta.

Los demás planes nunca se rechazan por su saldo.

Una organización facturada a través de un revendedor es rechazada con reseller_generation_limit (402) en cuanto a los clientes delegados de su revendedor se les ha facturado el límite mensual de generación de imágenes ($100 a precio de lista mientras el revendedor espera revisión, $1,000 después, contado por mes UTC), salvo que el crédito propio de la organización cubra la imagen; una generación ya admitida termina.

Una configuración vacía del proveedor seleccionado devuelve not_ready. Solo con token de proyecto. Una sola generación en curso por organización; más paralelismo es rate_limited.

Autenticación
projectBearer
Cuerpo de la solicitud
MediaGenerationRequest
ID de operación
createMediaGenerationInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido
PreferencabezadoopcionalOpcional. La ruta responde 202 de inmediato con Operation, con o sin este encabezado; consulte Operation.

Campos del cuerpo de la solicitud

CampoDescripción
prompt (requerido, cadena)minLength: 1 maxLength: 4000
aspect_ratio (opcional, cadena)Permitido: "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" predeterminado: "16:9"
calidad (opcional, cadena)Permitido: "low", "medium", "high" por defecto: "medium"
etiqueta (opcional, cadena)patrón: "^[A-Za-z0-9]{1,32}$"
referencias (opcional, arreglo)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media/generations'

Respuestas

EstadoSignificadoCuerpo y encabezados
202

La generación fue aceptada y continúa; consulte GET /api/operations/{id} hasta que Operation sea succeeded (result media_id y usage) o failed (error). El mismo Idempotency-Key responde con la misma Operation.

Operación (application/json); encabezados: Preference-Applied, RateLimit-Policy, RateLimit
402

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)
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)
500

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)
GET/api/projects/{project_id}/media-folders

Listar carpetas de medios en proyecto

Lista todas las carpetas multimedia en el proyecto, máximo 1000, ordenadas por nombre. Las carpetas organizan la biblioteca multimedia, y un selector de playlist por:folder reproduce los archivos directamente dentro de una carpeta. El parent_id de una carpeta es nulo en la raíz de la biblioteca.

Construya el árbol desde parent_id; la carpeta de un archivo es Media.folder_id. library=true enumera en su lugar las carpetas de la Biblioteca de la organización (solo lectura; un selector by:folder puede nombrar una).

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listMediaFoldersInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
libraryconsultaopcional

true enumera el proyecto Biblioteca de la organización en lugar de este proyecto: sus elementos son de solo lectura aquí y llevan library true. Una organización sin Biblioteca, o el propio proyecto Biblioteca, no enumera nada con true.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-folders'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Carpetas multimediaMediaFolderList (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)
POST/api/projects/{project_id}/media-folders

Crear carpeta de medios en proyecto

Crea una carpeta de medios en la raíz de la biblioteca (parent_id nulo o ausente) o dentro de parent_id. Los nombres se recortan, tienen de 1 a 100 caracteres Unicode sin controles, no son "." ni "..", y pueden repetirse. Una organización tiene como máximo 1000 carpetas en todos sus proyectos (quota_exceeded) anidadas a lo sumo 10 niveles (invalid_request). Emite media.folder_created.

Autenticación
projectBearer
Cuerpo de la solicitud
MediaFolderCreate
ID de operación
createMediaFolderInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
nombre (requerido, cadena)Recortado; 1 a 100 caracteres Unicode, sin controles, no . ni .. minLength: 1 maxLength: 100
parent_id (opcional, en línea)La carpeta donde crearla; nulo o ausente para la raíz de la biblioteca.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-folders'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Carpeta creada.MediaFolder (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)
POST/api/projects/{project_id}/media/move

Mover multimedia en proyecto

Mueve archivos (media_ids) y carpetas (folder_ids) a una carpeta (folder_id), o a la raíz de la biblioteca cuando folder_id es nulo, en una sola solicitud todo o nada de hasta 1000 IDs. Cada ID debe existir (not_found). Una carpeta no puede moverse dentro de sí misma ni dentro de una carpeta contenida en ella, y el movimiento debe mantener cada carpeta dentro de 10 niveles (invalid_request).

Los elementos ya en el destino se dejan tal cual; cada archivo y carpeta movidos avanza su revisión. Mover archivos cambia lo que los selectores by:folder de sus carpetas vieja y nueva reproducen, desde la resolución del siguiente selector de cada pantalla; mover una carpeta no cambia los archivos propios de ninguna carpeta. Emite media.moved.

El movimiento de una credencial Propose hace que cada archivo movido quede pendiente y pone en cola su revisión de medios, y los selectores de listas de reproducción aprobadas lo resuelven por la carpeta con la que fue aprobado hasta que una persona aprueba el cambio (docs/reviews.md).

Autenticación
projectBearer
Cuerpo de la solicitud
MediaMove
ID de operación
moveMediaInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
folder_id (requerido, en línea)Carpeta de destino; nulo para la raíz de la biblioteca.
media_ids (opcional, arreglo)
folder_ids (opcional, arreglo)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media/move'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Cuántos archivos y carpetas se movieron.MediaMoveResult (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)
POST/api/projects/{project_id}/media/uploads

Crear carga de medios en proyecto

Autenticación
projectBearer
Cuerpo de la solicitud
MediaUploadDeclaration
ID de operación
createMediaUploadInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido
project_idconsultaopcional

Requerido con dashboardSession: el proyecto donde se puso en cola el archivo. Debe coincidir con el proyecto seleccionado en la sesión, de lo contrario resource_conflict. Esto vincula la admisión de carga entre pestañas. El id de carga devuelto permanece con alcance de proyecto para carga y compromiso de bytes. Omitido con un portador de proyecto.

Campos del cuerpo de la solicitud

CampoDescripción
nombre de archivo (requerido, cadena)Nombre de los bytes que se están subiendo, tal como se enviarán: solo un nombre de archivo de 255 bytes UTF-8 como máximo, sin directorio, barra invertida ni caracteres de control. minLength: 1 maxLength: 255
source_filename (opcional, cadena)

Nombre original del archivo del llamante antes de cualquier transcodificación del lado del cliente. Solo el nombre del archivo, de 255 bytes UTF-8 como máximo. Guardado tal cual en el medio listo como source_filename y usado para derivar filename. minLength: 1 maxLength: 255

content_type (obligatorio, cadena)Permitido: "image/png", "image/jpeg", "image/webp", "image/gif", "video/mp4", "video/webm", "audio/mpeg"
bytes (requerido, entero)mínimo: 1 máximo: 1073741824
sha256 (obligatorio, cadena)patrón: "^[a-f0-9]{64}$"
etiqueta (opcional, cadena)patrón: "^[A-Za-z0-9]{1,32}$"
folder_id (opcional, cadena)

La carpeta de medios en la que cae el medio listo; si se omite, cae en la raíz de la biblioteca. La carpeta debe existir cuando se declara la carga (de lo contrario, invalid_request en folder_id) y cuando se confirma (la operación falla con invalid_request: declárela de nuevo). Un usuario de carga (docs/uploaders.md) debe enviar una de sus carpetas (de lo contrario, outside_upload_scope).

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media/uploads'

Respuestas

EstadoSignificadoCuerpo y encabezados
201

Autorización firmada de corta duración para exactamente un PUT de objeto privado. Envíe el método devuelto y cada encabezado devuelto textualmente. Así también carga el dashboard. Su navegador envía los bytes con PUT directamente al almacén de objetos, nunca a través de la API, porque un proxy situado delante de la API rechaza un cuerpo de solicitud de más de 100 MB.

Un navegador establece Content-Length por sí mismo a partir del cuerpo, por lo que envía cada encabezado devuelto excepto ese.

MediaUploadSession (application/json); encabezados: Cache-Control, 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)
POST/api/projects/{project_id}/selectors/preview

Selector de vista previa en proyecto

Vista previa solo lectura de coincidencias actuales de imagen o video propiedad del proyecto. Devuelve orden de archivo y política normalizada; la reproducción aleatoria se baraja en cada nuevo ciclo en el Player. No avanza cursores, concede contenido ni altera manifiestos. Más de 1024 coincidencias devuelve invalid_request.

Autenticación
projectBearer
Cuerpo de la solicitud
SelectorPreviewInput
ID de operación
previewSelectorInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
zona horaria (opcional, cadena)Zona IANA en la que se lee la disponibilidad del medio; UTC por defecto.
rect (opcional, objeto)El tamaño rect de la primitiva; obligatorio con selector.fit aspect.
primitiva (requerido, cadena)Permitido: "image", "video"
selector (requerido, en línea)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/selectors/preview'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Coincidencias del selector actual.SelectorPreview (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)
GET/api/projects/{project_id}/feedback/bugs

Listar reportes de errores en proyecto

Devuelve los informes de errores propios del proyecto que llama, los más recientes primero, hasta cien. Nunca se devuelven envíos de otro proyecto. Lea un hilo propio por su ID de retroalimentación. No hay cursor de paginación en v1. Cada envío lleva su estado y las respuestas del personal/agente, las más antiguas primero.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listBugReportsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/feedback/bugs'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Informes de errores propiedad del proyecto que llama.FeedbackList (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)
POST/api/projects/{project_id}/feedback/bugs

Reportar error en proyecto

Registra un informe de error contra el proyecto que llama. Los campos propios de una presentación no pueden actualizarse ni eliminarse; agregue una corrección o más información con una respuesta en el mismo hilo de retroalimentación.

Un reintento exacto con la misma Idempotency-Key devuelve la presentación original por veinticuatro horas en lugar de crear un duplicado, y un cuerpo diferente bajo esa clave devuelve idempotency_mismatch. Cada presentación se examina antes de almacenarse.

Un cuerpo con menos de 12 caracteres o 3 palabras devuelve submission_too_short; texto que no describe problema o solicitud (caracteres aleatorios, pulsaciones de teclado) devuelve submission_unclear; spam, texto con muchos enlaces, inyección de prompt y texto malicioso devuelven submission_rejected.

Una presentación rechazada no se almacena, su detalle de problema nunca repite el texto enviado, y un reintento exacto bajo la misma Idempotency-Key devuelve el mismo rechazo.

Nunca coloque credenciales, cookies, encabezados Authorization, nonces de finalización, URLs firmadas o claves de objetos en título, cuerpo o contexto; el texto con forma de credencial (tokens ScreenRig, JWTs, tokens bearer, claves cloud y API, claves privadas) se reemplaza con [redactado] antes de almacenar la presentación, y la respuesta lleva el texto redactado.

Cuando el modelo de revisión está brevemente no disponible, la presentación se acepta y se mantiene para una nueva revisión en segundo plano; después de varias aceptaciones así en una hora, el proyecto recibe submission_screening_unavailable (500, Retry-After) y reintenta la misma solicitud más tarde.

Autenticación
projectBearer
Cuerpo de la solicitud
Escribir comentarios
ID de operación
reportBugInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
título (requerido, cadena)Resumen de una línea. Se recortan los espacios en blanco al inicio y al final, y se rechazan los caracteres de control. minLength: 1 maxLength: 120
body (requerido, cadena)Descripción completa. Solo se aceptan caracteres de control salto de línea y tabulación. minLength: 1 maxLength: 4000
context (opcional, FeedbackContext)

Sobre cerrado de diagnóstico. Cada miembro es un escalar opcional restringido, el anidamiento es estructuralmente imposible, y un miembro desconocido se rechaza con invalid_request. La forma existe para que un cliente no pueda persistir valores de argumentos, credenciales o datos de entorno de forma libre a través de ella.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/feedback/bugs'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Informe de error almacenado. Un reintento idempotente exacto devuelve esta misma presentación.FeedbackSubmission (application/json); encabezados: RateLimit-Policy, RateLimit
400

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)
409

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)
422

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)
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)
GET/api/projects/{project_id}/feedback/features

Listar solicitudes de funciones en proyecto

Devuelve las solicitudes de funciones propias del proyecto que llama, las más recientes primero, hasta cien. Nunca se devuelven envíos de otro proyecto. Lea un hilo propio por su ID de retroalimentación. No hay cursor de paginación en v1. Cada envío lleva su estado y las respuestas del personal/agente, las más antiguas primero.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listFeatureRequestsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/feedback/features'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Solicitudes de funciones propiedad del proyecto que llama.FeedbackList (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)
POST/api/projects/{project_id}/feedback/features

Solicitar función en proyecto

Registra una solicitud de función contra el proyecto que llama. Los campos propios de una presentación no pueden actualizarse ni eliminarse; agregue una corrección o más información con una respuesta en el mismo hilo de retroalimentación.

Un reintento exacto con la misma Idempotency-Key devuelve la presentación original por veinticuatro horas en lugar de crear un duplicado, y un cuerpo diferente bajo esa clave devuelve idempotency_mismatch. Cada presentación se examina antes de almacenarse.

Un cuerpo con menos de 12 caracteres o 3 palabras devuelve submission_too_short; texto que no describe problema o solicitud (caracteres aleatorios, pulsaciones de teclado) devuelve submission_unclear; spam, texto con muchos enlaces, inyección de prompt y texto malicioso devuelven submission_rejected.

Una presentación rechazada no se almacena, su detalle de problema nunca repite el texto enviado, y un reintento exacto bajo la misma Idempotency-Key devuelve el mismo rechazo.

Nunca coloque credenciales, cookies, encabezados Authorization, nonces de finalización, URLs firmadas o claves de objetos en título, cuerpo o contexto; el texto con forma de credencial (tokens ScreenRig, JWTs, tokens bearer, claves cloud y API, claves privadas) se reemplaza con [redactado] antes de almacenar la presentación, y la respuesta lleva el texto redactado.

Cuando el modelo de revisión está brevemente no disponible, la presentación se acepta y se mantiene para una nueva revisión en segundo plano; después de varias aceptaciones así en una hora, el proyecto recibe submission_screening_unavailable (500, Retry-After) y reintenta la misma solicitud más tarde.

Autenticación
projectBearer
Cuerpo de la solicitud
Escribir comentarios
ID de operación
requestFeatureInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
título (requerido, cadena)Resumen de una línea. Se recortan los espacios en blanco al inicio y al final, y se rechazan los caracteres de control. minLength: 1 maxLength: 120
body (requerido, cadena)Descripción completa. Solo se aceptan caracteres de control salto de línea y tabulación. minLength: 1 maxLength: 4000
context (opcional, FeedbackContext)

Sobre cerrado de diagnóstico. Cada miembro es un escalar opcional restringido, el anidamiento es estructuralmente imposible, y un miembro desconocido se rechaza con invalid_request. La forma existe para que un cliente no pueda persistir valores de argumentos, credenciales o datos de entorno de forma libre a través de ella.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/feedback/features'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Solicitud de función almacenada. Un reintento idempotente exacto devuelve esta misma presentación.FeedbackSubmission (application/json); encabezados: RateLimit-Policy, RateLimit
400

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)
409

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)
422

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)
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)
GET/api/projects/{project_id}/service-clients

Listar clientes de servicio en proyecto

Los clientes de servicio del proyecto (especificación: un servidor, script o trabajo CI de un cliente propiedad del proyecto), los más nuevos primero, activos y revocados, con sus claves públicas, ids secretos y uso; nunca un secreto o su resumen. Necesita la capacidad del proyecto.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listServiceClientsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/service-clients'

Respuestas

EstadoSignificadoCuerpo y encabezados
200El cliente de servicio.ServiceClientList (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)
POST/api/projects/{project_id}/service-clients

Crear cliente de servicio en proyecto

Crea un cliente de servicio propiedad del proyecto con un nombre, capacidades (omitido significa las seis; cada una debe ser poseída por el administrador, de lo contrario 403), acceso (lectura, por defecto, o gestión), y una clave pública JWK (OKP Ed25519, EC P-256 o RSA de al menos 2048 bits) y/o secreto verdadero. El secreto se devuelve una vez, solo aquí. Máximo 50 clientes activos por organización.

Los agentes necesitan alcance de identidad, identidad activa Gestionar, su propia concesión Gestionar con la capacidad del proyecto en el proyecto, y un rol activo de administrador de organización; una persona usa la sesión del panel con project_id y una prueba fresca (tipo service_client_change, sujeto el id del cliente, o el id del proyecto al crear) en el cuerpo. Un token de servicio es rechazado con 403.

Un miembro limitado a pantallas no conecta agentes, no emite credenciales ni administra a las personas del proyecto: outside_screen_scope (pida al propietario del proyecto).

Autenticación
agentIdentityBearer
Cuerpo de la solicitud
ServiceClientChange
ID de operación
createServiceClientInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
project_id (opcional, cadena)Solo sesión del panel.
proof (opcional, DashboardProof)
nombre (opcional, cadena)minLength: 1 maxLength: 80
capacidades (opcional, arreglo)
acceso (opcional, cadena)Administrar requiere una persona que pueda aprobar revisiones (403 approver_required). Permitido: "leer", "proponer", "administrar"
key (opcional, objeto)Una JWK pública: OKP Ed25519, EC P-256 o RSA de al menos 2048 bits.
secreto (opcional, booleano)Generar un secreto (solo creación).
upload_scope (opcional, UploadScope)

Lo que un usuario de carga puede usar (docs/uploaders.md): las listas de reproducción cuyas páginas cambia y las carpetas de medios en las que sube. Las carpetas son exactamente las listadas, nunca sus subcarpetas. Un id que al escribirse no nombra ningún objeto activo del proyecto es invalid_request en su posición; una eliminación posterior deja un id muerto, que no concede nada.

El alcance se lee en cada solicitud, así que un cambio se aplica a la siguiente.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/service-clients'

Respuestas

EstadoSignificadoCuerpo y encabezados
201El cliente de servicio.ServiceClientResult (application/json)
402

feature_not_in_plan — un alcance de carga crea un usuario de carga, y el plan del proyecto no incluye usuarios de carga; required_plan nombra el plan que sí los incluye. Restringir un alcance y quitarlo siempre están permitidos.

Problema (application/problem+json)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
GET/api/projects/{project_id}/media-sync-accounts

Listar cuentas de sincronización de medios en proyecto

Lists the project's media sync accounts, newest first (200 per page; next_cursor continues). Each shows its tenant and client id, its state and its last test; the client secret is never returned, only whether one is set and its last four characters.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listMediaSyncAccountsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
cursorconsultaopcionalEl next_cursor de la página anterior.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-sync-accounts'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Las cuentas del proyecto.MediaSyncAccountList (application/json); encabezados: Cache-Control
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)
POST/api/projects/{project_id}/media-sync-accounts

Crear una cuenta de sincronización de medios en proyecto

Añade una cuenta que sincroniza leyendo. kind microsoft365 almacena las credenciales de la propia aplicación de Microsoft Entra del proyecto, para que las sincronizaciones puedan leer una carpeta de SharePoint o de OneDrive para la empresa: config.tenant_id es el ID de directorio o el dominio principal del tenant (common, organizations y consumers se rechazan), config.client_id el ID de aplicación de la aplicación, y secret el valor de uno de los secretos de cliente de la aplicación; la aplicación necesita el permiso de aplicación de Microsoft Graph Sites.Selected (concedido en cada sitio) o Files.Read.All, con consentimiento del administrador.

En lugar de esos tres, config.connection_id nombra una conexión de Microsoft del proyecto (createConnection), en cualquiera de los dos modos, que inicia sesión y guarda el secreto. kind canva solo toma un nombre: la cuenta queda en pending_consent y la respuesta lleva authorize_url, un enlace de un solo uso (válido hasta authorize_expires_at) que abre la persona titular de la cuenta de Canva, con la sesión iniciada en Canva, para conectarla mediante la integración de Canva de screenRIG.

La concesión pertenece al proyecto, así que sus sincronizaciones sobreviven a la persona que la conectó.

Un servidor sin la integración de Canva responde 409 canva_not_configured. kind dropbox funciona como canva: la cuenta queda en pending_consent y authorize_url es un enlace de un solo uso que abre la persona titular de la cuenta de Dropbox, con la sesión iniciada en Dropbox, para permitir el acceso de solo lectura (files.metadata.read, files.content.read, account_info.read, sharing.read).

Se hace a través de la aplicación de Dropbox de screenRIG o, cuando config.app_key la nombra, a través de la propia aplicación de Dropbox del cliente (PKCE, así que no hay secreto de la aplicación; la aplicación debe incluir https://API_ORIGIN/api/dropbox/callback como URI de redirección).

Un servidor sin la aplicación de Dropbox de screenRIG responde 409 dropbox_not_configured a una cuenta dropbox sin app_key. kind google_drive queda en ready de inmediato y lee las carpetas compartidas con config.service_account_email: la cuenta de servicio de screenRIG, o la del propio cliente cuando secret es la clave JSON de esa cuenta de servicio.

Una carpeta compartida con la cuenta de servicio de screenRIG solo se sincroniza cuando un miembro del proyecto con un correo electrónico verificado la compartió o es su propietario. Un servidor sin la cuenta de servicio de screenRIG responde 409 google_drive_not_configured a una cuenta google_drive sin clave. Un secreto se sella en reposo y nunca se devuelve ni se registra. Añade media_sync_account.created.

Un reintento exacto con la misma Idempotency-Key devuelve la misma cuenta (un reintento de Canva o de Dropbox recibe un enlace nuevo).

Autenticación
projectBearer
Cuerpo de la solicitud
MediaSyncAccountWrite
ID de operación
createMediaSyncAccountInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
kind (requerido, cadena)Permitidos: "microsoft365", "canva", "dropbox", "google_drive"
nombre (requerido, cadena)minLength: 1 maxLength: 80
config (opcional, object)

Para microsoft365, o bien tenant_id y client_id (ambos) con secret, o bien connection_id solo: el id de una conexión de Microsoft de este proyecto. Para dropbox, app_key nombra opcionalmente la aplicación de Dropbox propia del cliente. No se acepta para canva ni google_drive.

secret (opcional, cadena)

Obligatorio para microsoft365 con tenant_id y client_id: el valor de uno de los secretos de cliente de la aplicación (no su id), como máximo 1024 caracteres.

Para google_drive, opcional: la clave JSON de la propia cuenta de servicio de Google Cloud del cliente (type service_account), cuyo client_email pasa a ser el service_account_email de la cuenta; sin ella, la cuenta lee a través de la cuenta de servicio de screenRIG. No se acepta con connection_id, ni para canva ni para dropbox. minLength: 1 maxLength: 8192

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-sync-accounts'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creada, con su secreto enmascarado; una cuenta de Canva o de Dropbox también lleva authorize_url.MediaSyncAccountConnect (application/json); encabezados: ETag, Cache-Control
400invalid_request.Problema (application/problem+json)
402feature_not_in_plan — el plan del proyecto no incluye la sincronización de medios; required_plan nombra el plan que sí la incluye.Problema (application/problem+json)
409

canva_not_configured (este servidor no tiene la integración de Canva; solo para kind canva), dropbox_not_configured (no hay aplicación de Dropbox de screenRIG ni config.app_key; solo para kind dropbox), google_drive_not_configured (no hay cuenta de servicio de screenRIG ni clave; solo para kind google_drive), resource_conflict o idempotency_mismatch.

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)
GET/api/projects/{project_id}/media-syncs

Listar sincronizaciones de medios en proyecto

Lists the project's media syncs, newest first (200 per page; next_cursor continues), optionally of one account_id or state. Each shows its source folder, the media folder it fills, its cadence, state, next run and the summary of its last run.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listMediaSyncsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
cursorconsultaopcionalEl next_cursor de la página anterior.
account_idconsultaopcionalLista solo las sincronizaciones que leen a través de esta cuenta.
estadoconsultaopcionalLista solo las sincronizaciones en este estado.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-syncs'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Las sincronizaciones del proyecto.MediaSyncList (application/json); encabezados: Cache-Control
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)
POST/api/projects/{project_id}/media-syncs

Crear una sincronización de medios en proyecto

provider canva: lee el diseño (design es su id o su dirección canva.com/design/ID/...) a través de una cuenta de Canva conectada y guarda la sincronización, que vence ahora.

Each run asks Canva for the design's last change and, when it moved, exports the pages (pages, default all; format png gives one image per page and mp4 one video) and imports them into the media folder, replacing the bytes of a page already imported under the same media id so the playlists that use it update; a page the design no longer has leaves play like a removed SharePoint file.

Un diseño que Canva ya no muestra detiene la sincronización en el estado error (error de ejecución design_unavailable) y conserva los medios.

Un diseño o una página que la cuenta no puede ver da 409 media_sync_source_refused. provider dropbox: url es la dirección de la carpeta en Dropbox (https://www.dropbox.com/home/...), un enlace de carpeta compartida que la cuenta conectada ha agregado a su Dropbox, o una ruta que empieza con /; se lee una vez a través de una cuenta de Dropbox conectada y se guarda la sincronización, que vence ahora.

Las carpetas de un espacio de equipo se leen desde la raíz del equipo. Cada ejecución continúa desde la posición guardada de Dropbox en la carpeta, de modo que solo se leen los cambios.

Una carpeta que la cuenta no puede abrir da 409 media_sync_source_refused; una cuenta cuya conexión Dropbox ya no acepta da 409 dropbox_reconnect_required. provider google_drive: url es la dirección de la carpeta en Google Drive (https://drive.google.com/drive/folders/ID) o su id, compartida (basta con el rol Lector) con el service_account_email de la cuenta.

Cada ejecución lista la carpeta y compara la suma de verificación de cada archivo. Los archivos de Google Docs, Sheets y Slides se omiten como unsupported_type. Una carpeta que la dirección no puede abrir da 409 media_sync_source_refused.

Con la cuenta de servicio de screenRIG, la carpeta debe haber sido compartida por un miembro del proyecto con un correo electrónico verificado o ser de su propiedad (403 media_sync_sharer_not_member), y cada ejecución lo comprueba de nuevo (el error de ejecución sharer_not_member detiene la sincronización en el estado error). provider sharepoint: lee la dirección de la carpeta a través de la cuenta (una dirección de sitio de SharePoint como https://TENANT.sharepoint.com/sites/SITE/LIBRARY/FOLDER, o un enlace para compartir; la aplicación debe poder verla: Sites.Selected necesita una concesión en el sitio, un enlace para compartir necesita Files.Read.All) y guarda la sincronización, que vence ahora. folder_id es la carpeta de medios en la que se guardan los archivos; sin él, la sincronización crea una con el nombre de la carpeta de origen.

Each run imports the images (png, jpeg, webp, gif), videos (mp4, webm) and audio (mp3) directly in the source folder, replaces the bytes of a file that changed under the same media id so playlists that use it update, and takes a file removed at the source out of play: its media is deleted, or, while screens still hold it, moved to a Removed subfolder and deleted later.

Subfolders are ignored; other files are listed as skipped with the reason. every is the seconds between runs, 300 to 86400, default 900. A folder the provider refuses is 409 media_sync_source_refused and one it cannot reach is 500 media_sync_source_unavailable; nothing is stored. Appends media_sync.created.

Autenticación
projectBearer
Cuerpo de la solicitud
MediaSyncWrite
ID de operación
createMediaSyncInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
provider (requerido, cadena)Permitidos: "sharepoint", "canva", "dropbox", "google_drive"
account_id (requerido, cadena)Una cuenta del tipo que corresponde al proveedor: microsoft365 para sharepoint, canva, dropbox o google_drive.
url (opcional, cadena)

sharepoint (obligatorio): la dirección de SharePoint de la carpeta o un enlace para compartir, que se lee una vez para encontrar la carpeta y no se guarda. dropbox (obligatorio): la dirección de la carpeta en Dropbox, un enlace de carpeta compartida que la cuenta ha agregado, o una ruta que empieza con /. google_drive (obligatorio): la dirección de la carpeta en Google Drive o su id. maxLength: 4096

design (opcional, cadena)canva (obligatorio): el id del diseño o su dirección canva.com/design/ID/... maxLength: 2048
pages (opcional, arreglo)canva: las páginas que sincronizar; omítalo para todas. Un diseño que más tarde tenga menos páginas retira de la reproducción las que faltan.
format (opcional, cadena)canva: png da una imagen por página; mp4 un vídeo de las páginas. Allowed: "png", "mp4" default: "png"
folder_id (opcional, cadena)La carpeta de medios donde caen los archivos. Omítala para crear una con el nombre de la carpeta de origen.
every (opcional, entero)Segundos entre ejecuciones; 900 por defecto. minimum: 300 maximum: 86400
nombre (opcional, cadena)Por defecto, el nombre de la carpeta de origen. minLength: 1 maxLength: 80
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-syncs'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creada, vence ahora.MediaSync (application/json); encabezados: ETag, Cache-Control
400invalid_request.Problema (application/problem+json)
402feature_not_in_plan — el plan del proyecto no incluye la sincronización de medios; required_plan nombra el plan que sí la incluye.Problema (application/problem+json)
403media_sync_sharer_not_member — una carpeta de Google Drive leída a través de la cuenta de servicio de screenRIG no fue compartida por un miembro del proyecto con un correo electrónico verificado ni era de su propiedad.Problema (application/problem+json)
409

media_sync_source_refused (el proveedor rechazó la aplicación, su permiso o la carpeta), dropbox_reconnect_required (hay que volver a conectar la cuenta de Dropbox), dropbox_not_configured, google_drive_not_configured, resource_conflict (la misma fuente ya está sincronizada en esa carpeta de medios) o idempotency_mismatch.

Problema (application/problem+json)
500media_sync_source_unavailable: no se pudo contactar con el proveedor o respondió con un fallo.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)
GET/api/projects/{project_id}/fleet-links

Listar enlaces de flota en proyecto

Enumera los enlaces de flota del proyecto, del más antiguo al más reciente (máximo 50). Debajo de Manage efectivo cada URL está vacía y url_redacted es true, ya que la URL crea pantallas.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listFleetLinksInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/fleet-links'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Los enlaces de flota del proyecto.FleetLinkList (application/json); encabezados: Cache-Control
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)
POST/api/projects/{project_id}/fleet-links

Crear enlace de flota en proyecto

Crea un enlace de flota: una URL de Player (https://play.<domain>/player/#fleet=<secret>) que convierte cada dispositivo que la abre en su propia pantalla en este proyecto, sin código de vinculación. Colóquelo en un administrador de dispositivos, como una app quiosco de Google Admin console.

Cada nueva pantalla recibe las etiquetas, los campos y la lista de reproducción del enlace, y una etiqueta del dispositivo (su ID de activo de administrador, luego la ubicación), de lo contrario la siguiente etiqueta predeterminada. Un reproductor que ya tiene una pantalla nunca crea otra: su clave mantiene la identidad de la pantalla a través de recargas y reinicios.

Después de un restablecimiento de fábrica o reinstalación, un dispositivo que reporte el número de serie o DUID de una pantalla creada por un enlace de flota de este proyecto recupera esa pantalla (screen.recovered) en lugar de crear una nueva, una vez que la clave antigua ha estado inactiva durante diez minutos.

El secreto viaja en el fragmento de la URL, que los navegadores nunca envían a un servidor. max_screens limita las pantallas que crea el enlace y expires_at termina el enlace en ese momento, igual que desactivarlo. Una organización tiene como máximo 50 enlaces de flota en todos sus proyectos (fleet_link_limit_reached). Agrega fleet_link.created.

Un reintento exacto con la misma Idempotency-Key devuelve esta misma respuesta por veinticuatro horas.

Autenticación
projectBearer
Cuerpo de la solicitud
FleetLinkWrite
ID de operación
createFleetLinkInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
etiqueta (requerida, cadena)minLength: 1 maxLength: 80
habilitado (opcional, booleano)Por defecto es verdadero.
etiquetas (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.

fields (opcional, objeto)Campos con los que empieza cada pantalla que crea el enlace; las ubicaciones de tarjetas los leen mediante {screen.field.NAME}.
playlist_id (opcional, cadena)
max_screens (opcional, entero)mínimo: 1 máximo: 10000
expires_at (opcional, cadena)Cuándo vence el enlace (RFC 3339); una vez vencido, un enlace no crea ni recupera pantallas. Si se omite, nunca vence. Un instante que ya pasó se acepta y el enlace vence de inmediato. format: "date-time"
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/fleet-links'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creado, con su URL.FleetLink (application/json); encabezados: Cache-Control
400invalid_request, incluyendo un playlist_id desconocido o una etiqueta o un campo malformados.Problema (application/problem+json)
409fleet_link_limit_reached o idempotency_mismatch.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)
GET/api/projects/{project_id}/webhooks

Listar webhooks en proyecto

Lista las notificaciones de webhook del proyecto con la estructura de webhook, de la más antigua a la más reciente (máximo 50); GET /api/notifications lista todos los canales. El secreto de firma 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.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listWebhooksInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/webhooks'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Los webhooks del proyecto.WebhookList (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)
POST/api/projects/{project_id}/webhooks

Crear webhook en proyecto

Crea un webhook que recibe los eventos duraderos propios del proyecto como POSTs HTTPS firmados. La URL debe ser https en un host público de Internet: un literal IP o todas las respuestas DNS actuales del nombre deben ser públicas (privadas, loopback, link-local, CGNAT, IPv6 fuera de 2000::/3, documentación y otros rangos reservados se rechazan con webhook_url_rejected).

El puerto debe ser 443 (el predeterminado) o 8443, de lo contrario webhook_url_rejected. El host se resuelve y verifica nuevamente antes de cada entrega y la conexión se establece exactamente a la dirección verificada, por lo que una respuesta DNS que cambie después no puede redirigir las entregas. event_types lista tipos exactos de eventos (screen.online) o prefijos terminados en .* (screen.*).

Una organización tiene como máximo 50 notificaciones entre todos los canales (webhook_limit_reached). El servidor genera el secreto de firma 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.

La entrega empieza con el primer evento posterior a notification.created.

Autenticación
projectBearer
Cuerpo de la solicitud
Escritura de webhook
ID de operación
createWebhookInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
url (requerida, cadena)URL HTTPS en un host público de Internet, puerto 443 (el predeterminado) o 8443. Sin información de usuario ni fragmento. maxLength: 2048 formato: "uri"
event_types (requerido, WebhookEventTypes)

Tipos de evento exactos, como screen.online, o prefijos que terminan en .*, como screen.* (todos los tipos que empiezan con screen.). notification.test nunca se distribuye mediante una suscripción; solo lo envía POST /api/webhooks/{id}/test.

habilitado (opcional, booleano)predeterminado: true
descripción (opcional, cadena)maxLength: 200
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/webhooks'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creado. El secreto se muestra solo aquí y en rotar-secreto.Webhook con secreto (application/json); encabezados: Cache-Control
400invalid_request o webhook_url_rejected.Problema (application/problem+json)
409webhook_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)
GET/api/projects/{project_id}/alerts

Listar alertas en el proyecto

Lista las alertas de pantalla del proyecto: una por pantalla y condición mientras dura (open), y las que terminaron dentro de la retención de eventos del plan (resolved).

Una alerta se abre cuando llega el evento de su condición (screen.offline, un cambio de salud display_disconnected, temperature_high u on_battery, screen.storage_shortfall, un screen.manifest_upgrade atascado, un screen.status_changed de nivel error, un screen.glass_changed con veredicto detenido, en blanco o congelado) y se resuelve con el evento que pone fin a su condición; crashing es un aviso, no una alerta. counts.attention cuenta las alertas abiertas que no están reconocidas, pospuestas ni silenciadas, el número que muestra el panel.

Una pantalla que se reinicia por un reinicio que envió el backend no abre ninguna alerta screen_offline o display_disconnected hasta que el reinicio termina o pasan diez minutos desde que se envió; una condición que sigue vigente entonces abre su alerta en ese momento. Las alertas abiertas van primero, las más nuevas primero; pase next_cursor de vuelta como antes para la página siguiente.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listAlertsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
formatoconsultaopcionaljson (por defecto) devuelve el informe como JSON. csv, xlsx y pdf devuelven las mismas filas como archivo adjunto (cada página de un informe paginado, hasta 50000 filas).
estadoconsultaopcional
screen_idconsultaopcional
beforeconsultaopcionalnext_cursor de la página anterior.
límiteconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/alerts'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de alertas.AlertList (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)
GET/api/projects/{project_id}/alert-mutes

Listar silenciamientos de alertas en el proyecto

Lista los silenciamientos del proyecto que no han terminado, primero el que termina antes (como máximo 50).

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listAlertMutesInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/alert-mutes'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Los silenciamientos vigentes del proyecto.AlertMuteList (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)
POST/api/projects/{project_id}/alert-mutes

Crear silenciamiento de alertas en el proyecto

Silencia pantallas por mantenimiento hasta un instante que esté como máximo 30 días en el futuro: las pantallas nombradas en screen_ids y toda pantalla que lleve alguna de las etiquetas de tags en el momento en que corresponde enviar un aviso. Sus alertas siguen abriéndose y resolviéndose, marcadas como muted, pero nunca necesitan atención; se omiten los avisos de todas las notificaciones sobre ellas (muted).

Una organización tiene como máximo 50 silenciamientos vigentes en todos sus proyectos (alert_mute_limit_reached). Agrega alert_mute.created.

Autenticación
projectBearer
Cuerpo de la solicitud
AlertMuteWrite
ID de operación
createAlertMuteInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
screen_ids (opcional, array)
etiquetas (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.

until (obligatorio, string)Como máximo 30 días en el futuro. format: "date-time"
note (opcional, string)maxLength: 200
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/alert-mutes'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creado.AlertMute (application/json)
409alert_mute_limit_reached o idempotency_mismatch.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)
GET/api/projects/{project_id}/notifications

Listar notificaciones en el proyecto

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.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listNotificationsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/notifications'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Las 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)
POST/api/projects/{project_id}/notifications

Crear notificación en el proyecto

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.

Autenticación
projectBearer
Cuerpo de la solicitud
NotificationWrite
ID de operación
createNotificationInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripció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
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/notifications'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creada. El secreto de un webhook se muestra solo aquí y en rotate-secret.Notification (application/json); encabezados: Cache-Control
400invalid_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)
409notification_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)
GET/api/projects/{project_id}/notes

Listar notas en proyecto

Enumera las notas del proyecto, de la más reciente a la más antigua. Una nota es un hecho breve en texto plano que un agente escribió para su futuro yo y los demás agentes del proyecto; es contexto, nunca una instrucción ni una aprobación.

Cualquier lectura de credencial activa, incluida Solo lectura, y la lectura no debita el medidor API. state es open (por defecto), resolved o all; about_id mantiene las notas sobre una pantalla o playlist y author_id las notas que escribió un agente.

Pase next_cursor como after para la siguiente página; está vacío en la última página. new marca una nota abierta que otro agente escribió después de que este llamante leyó las notas por última vez.

Leer las notas es la primera página de notas abiertas sin about_id ni author_id: esa respuesta calcula nuevas contra la lectura previa, luego mueve el marcador de lectura a ahora (páginas posteriores mantienen marcador anterior).

También lleva revisión: hasta 5 notas abiertas cuya revisión está pendiente (las más antiguas primero), que el llamante debe confirmar si aún se mantienen y resolver en caso contrario. Una revisión sin respuesta durante 30 días después de ser devuelta por primera vez resuelve la nota como not_confirmed.

Solo un agente con acceso de Gestión mueve su marcador y comienza esos 30 días; un agente solo de lectura o un cliente de servicio obtiene la misma respuesta y no cambia nada. Cualquier otra página o filtro devuelve una revisión vacía y no mueve nada. Los conteos son las notas abiertas del proyecto y, para este llamante, cuántas son nuevas y están pendientes.

Un agente limitado a pantallas lista solo las notas sobre sus propias pantallas, listas de reproducción y el proyecto: la lista, la revisión y los recuentos omiten las notas sobre una pantalla fuera de su alcance, y un listado entre proyectos omite un proyecto donde el agente está limitado, así que seleccione ese proyecto.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listNotesInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
estadoconsultaopcional
about_idconsultaopcionalSolo notas sobre esta pantalla o lista de reproducción.
author_idconsultaopcionalSolo notas que este agente escribió.
despuésconsultaopcionalnext_cursor de la página anterior.
límiteconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/notes'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de notas, las notas para revisar y los conteos.NoteList (application/json)
400

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)
POST/api/projects/{project_id}/notes

Agregar nota en proyecto

Agrega una nota para los agentes del proyecto: un hecho sobre el que otro agente actuaría, nunca un informe de progreso, chat o un secreto. El cuerpo tiene de 1 a 2000 caracteres de texto plano después de recortar y puede abarcar líneas.

Se rechaza el texto que contiene una credencial (tokens, claves, claves privadas, contraseñas en URLs) con note_contains_credential y el texto que se lee como una instrucción para un modelo con note_rejected; no se almacena nada y el detalle nunca repite el texto. sobre nombres una pantalla (incluida archivada) o lista de reproducción del proyecto, si no not_found. ttl_seconds (3600 a 31536000) crea una nota temporal que se resuelve como expirada; una nota sin este valor se revisa 90 días después de añadida o confirmada por última vez. reemplaza nombres una nota abierta que esta reemplaza: se resuelve como reemplazada en la misma transacción (note_not_open cuando ya está resuelta).

Un cuerpo cuyo texto normalizado (recortado, con los espacios colapsados y en minúsculas) y cuyo campo about coinciden con una nota abierta confirma esa nota y la devuelve con 200 en lugar de añadir una; no se añade ningún evento note.added. Una organización mantiene como máximo 200 notas abiertas en todos sus proyectos; la 201.ª es note_limit_reached, cuyo detalle nombra hasta 5 notas que resolver primero.

Agrega note.added (y note.resolved para una nota reemplazada) sin el texto. Un reintento exacto con la misma Idempotency-Key devuelve la primera respuesta durante veinticuatro horas.

Para un agente limitado a pantallas (docs/screen-scope.md), un about que es una pantalla fuera de su alcance o desconocida para el proyecto, o un replaces que nombra una nota sobre una pantalla fuera de su alcance, es outside_screen_scope (403) y no se guarda nada.

Autenticación
projectBearer
Cuerpo de la solicitud
NoteWrite
ID de operación
addNoteInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
body (requerido, cadena)Texto plano, de 1 a 2000 caracteres después de recortar; se conservan los saltos de línea. minLength: 1 maxLength: 2000
acerca de (opcional, en línea)
ttl_seconds (opcional, entero)Expira la nota este tiempo después de ser añadida. Sin esto, la nota se revisa después de 90 días. mínimo: 3600 máximo: 31536000
replaces (opcional, cadena)Una nota abierta que esta reemplaza; se resuelve como reemplazada. patrón: "^(?:(?:stage|qa|development)_)?nte_[A-Za-z0-9_-]{16,24}$"
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/notes'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Agregado.Nota (application/json)
200El texto coincidió con una nota abierta, que se confirma y se devuelve.Nota (application/json)
400

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)
403

outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota.

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)
409note_not_open, note_limit_reached o idempotency_mismatch.Problema (application/problem+json)
422note_contains_credential o note_rejected.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)
GET/api/projects/{project_id}/support/status

Estado de soporte en proyecto

Disponibilidad y horarios para cualquier proyecto activo. chat_allowed es verdadero para cada proyecto activo, incluido Standard. human_available es verdadero cuando una persona puede unirse al chat si se solicita (Education, Premium y Enterprise); Standard y Plus tienen documentación y soporte por IA. staffed indica si el personal está en su horario ahora. Luna responde de inmediato en todos los planes.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
supportStatusInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/support/status'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado de soporte.SupportStatus (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)
GET/api/projects/{project_id}/support/conversations

Listar conversaciones de soporte en proyecto

Conversaciones del proyecto, las más recientes primero, máximo 100. Los conteos de no leídos del personal son por persona o agente autenticado.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listSupportConversationsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
beforeconsultaopcionalID de conversación del cursor siguiente de la página anterior.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/support/conversations'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Resultado de soporte.SupportConversationList (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)
POST/api/projects/{project_id}/support/conversations

Crear conversación de soporte en proyecto

Disponible en todos los planes; Luna responde primero, de inmediato. Donde una persona puede unirse (human_available en el estado del soporte), solicitarla pausa a Luna para el personal; en Standard y Plus se ignora y Luna responde. Se revisa antes del almacenamiento o Slack.

Un mensaje inicial con menos de 8 caracteres o 3 palabras devuelve submission_too_short; uno que no sea pregunta o problema devuelve submission_unclear; spam, texto con muchos enlaces, inyección de indicaciones y texto inseguro devuelven submission_rejected. El texto rechazado no se conserva ni se envía a Luna, y el detalle del problema nunca lo repite.

El texto con forma de credencial distinto a las credenciales de ScreenRig (tokens bearer, claves cloud y API, claves privadas) se reemplaza por [redactado] antes de almacenarlo; el material de credenciales de ScreenRig devuelve invalid_request. Una nueva conversación inicia un hilo en Slack; los seguimientos permanecen en él. Las solicitudes con la misma clave se repiten durante 24 horas, incluida una negativa.

Autenticación
projectBearer
Cuerpo de la solicitud
SupportWrite
ID de operación
createSupportConversationInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
Idempotency-Keyencabezadorequerido

Campos del cuerpo de la solicitud

CampoDescripción
body (requerido, cadena)minLength: 1 maxLength: 4000
human_requested (opcional, booleano)

Pedir una persona, lo que pausa a Luna y espera al personal. Solo cuenta donde una persona puede unirse (human_available: Education, Premium y Enterprise); en Standard y Plus se ignora y Luna responde. predeterminado: falso

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/support/conversations'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Resultado de soporte.SupportSubmission (application/json)
422El mensaje fue rechazado por filtrado: submission_too_short o submission_unclear (solo el mensaje inicial) o submission_rejected. El detalle nunca repite el texto.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)
GET/api/projects/{project_id}/reviews

Listar reseñas en proyecto

Las revisiones del proyecto (docs/reviews.md): cambios de lista de reproducción y pantalla propuestos bajo acceso Proponer, y para una red publicitaria las creatividades que los compradores enviaron (tipo ad_creative).

Las más nuevas primero, como máximo límite (por defecto 50, máximo 100) por página; pase next_cursor como cursor con los mismos filtros. state pendiente (el predeterminado), decidido (cualquier otro estado) o todo; kind limita a un tipo.

Una sesión del panel lee todos los tipos; un portador lee los tipos que cubren sus capacidades (listas de reproducción para playlist_change, pantallas para screen_change, publicidad para ad_creative), y un tipo que no puede leer es una página vacía. pending_count cuenta las revisiones pendientes de todos los tipos que el llamador ve.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
listReviewsInProject

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
estadoconsultaopcional
kindconsultaopcional
límiteconsultaopcional
cursorconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/reviews'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de revisiones.ReviewList (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)
GET/api/projects/{project_id}/card-data/{key}

Proyecto Scoped_get Card Data

Devuelve el documento y su revisión. ETag es la revisión, para If-Match en la siguiente escritura.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
projectScoped_getCardData

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
keyrutarequeridoClave de datos de tarjeta. No puede comenzar con feed:.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/card-data/KEY'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Documento de datos de tarjetaEntrada de datos de tarjeta (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)
PUT/api/projects/{project_id}/card-data/{key}

Proyecto Scoped_put Card Data

Crea o reemplaza un documento de datos de tarjeta. Cuando las ubicaciones de tarjetas en las playlists del proyecto vinculan la clave, el documento debe contener solo las propiedades dinámicas de cada tarjeta vinculada y validar contra ellas; de lo contrario, la escritura se rechaza con card_data_invalid nombrando la tarjeta y la ruta de la propiedad, y no cambia nada. Una clave sin ubicaciones vinculadas acepta cualquier objeto JSON.

Cada cadena que comienza con media: es una referencia de medios, media:<id>, para que una tarjeta dibuje (una foto); en cualquier clave debe nombrar una imagen lista y aprobada en este proyecto, como máximo 256 medios distintos por documento, o la escritura se rechaza con card_media_invalid nombrando la ruta de propiedad y media_id.

Las pantallas cuyo contenido lee la clave pueden luego obtener esos medios desde GET /media/{media_id}. Las pantallas que muestran una ubicación que lee la clave reciben screen.card_data_changed y la vuelven a obtener en su lugar; el registro del proyecto registra kv.updated con un recurso card_data_entry, que nunca llega a un Player.

Los límites, cuotas, mediciones, revisiones y la idempotencia son responsabilidad de la tienda K/V de la aplicación.

Las escrituras de agentes y webhooks también tienen límite de frecuencia, por organización según el plan (Standard y Plus 60 por minuto, Education y Premium 600, Enterprise 3,000) y 60 por minuto por clave en todos los planes; una escritura que supera un límite se rechaza con rate_limited y Retry-After, y no se mide.

Autenticación
projectBearer
Cuerpo de la solicitud
Escritura de datos de tarjeta
ID de operación
projectScoped_putCardData

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
keyrutarequeridoClave de datos de tarjeta. No puede comenzar con feed:.
If-MatchencabezadoopcionalRevisión positiva opcional de recurso. Omitir para crear o sobrescribir una clave; una revisión obsoleta suministrada es revision_conflict.
Idempotency-KeyencabezadoopcionalOmitir 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

CampoDescripción
documento (requerido, objeto)

El documento de datos de la tarjeta: un objeto JSON de máximo 1 MiB. Cuando una ubicación de tarjeta vincula la clave, solo contiene las propiedades dinámicas de esa tarjeta. Una cadena que comienza con media: es una referencia multimedia, media:<id>, que nombra una imagen lista y aprobada en este proyecto.

expires_at (opcional, cadena)Expiración absoluta; los datos omitidos nunca expiran. formato: "date-time"
ttl_seconds (opcional, entero)

TTL desde la primera escritura confirmada. Mutuamente excluyente con expires_at. Un reintento conserva la caducidad original. Omitir ambos borra la caducidad.

Ajústelo al calendario de quien escribe: cuando el documento de una tarjeta caduca sin ninguna escritura que lo renueve mientras una pantalla muestra la tarjeta, la tarjeta queda en blanco y la condición de notificación card_data_stale avisa al proyecto, así que un trabajo que se detuvo se nota. minimum: 1 maximum: 31536000

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/card-data/KEY'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Documento de datos de tarjetaEntrada de datos de tarjeta (application/json)
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)
ELIMINAR/api/projects/{project_id}/card-data/{key}

Proyecto Scoped_delete Card Data

Elimina un documento de datos de tarjeta. Una tarjeta vinculada a la clave se oculta en pantalla hasta que se escriba un documento nuevamente.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
projectScoped_deleteCardData

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
keyrutarequeridoClave de datos de tarjeta. No puede comenzar con feed:.
If-MatchencabezadoopcionalRevisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict.
Idempotency-KeyencabezadoopcionalOmitir 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
shell · plantilla de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/card-data/KEY'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Eliminadosin cuerpo
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)
GET/api/projects/{project_id}/feeds/{family}

Proyecto Scoped_get Feed

Lee un documento compartido de feed de terceros: el mismo documento que una tarjeta incorporada con los mismos parámetros lee (docs/feeds.md).

Los parámetros de consulta se normalizan en la clave de feed de la tarjeta, nombrada por el encabezado ScreenRig-Feed-Key: weather, airquality y alerts toman lat y lon (redondeados a una celda de 0,25 grados); earthquakes lat, lon, radius_km (10 a 20000, 500 por defecto), min_magnitude (0 a 9, 2,5 por defecto) y hours (1 a 168, 24 por defecto); cyclones basins (separados por comas at, ep, cp, wp; todos por defecto) y opcionalmente lat, lon y radius_km (las tormentas cercanas a ese lugar); tides station (un ID de estación de predicción de mareas de NOAA, como 9414290) o lat y lon (la estación más cercana en un radio de 100 km, o si no invalid_request); launches ningún parámetro (los próximos lanzamientos en todo el mundo); rates base (una moneda de referencia del BCE, EUR por defecto); crypto symbols (ID de CoinGecko o símbolos, separados por comas, como máximo 20) y currency (usd por defecto); headlines url (una URL RSS o Atom http o https); drugalerts (screenrig.drugalerts/v1) los informes de retiradas recientes de un país: country (us, ca o gb, obligatorio) y category (drug, por defecto, o food); respiratory (screenrig.respiratory/v1) la actividad semanal de gripe, COVID-19 y VRS de un lugar: country (us o gb, obligatorio) y region (un estado, territorio o DC de EE. UU. por nombre o código postal, o Inglaterra o una región de la UKHSA; el país si está vacío).

La solicitud nunca llama al proveedor. 200 es el documento (esquema, fetchedAt, atribución y los campos de la familia, como define el contrato de tarjetas); su ETag es el sha256 de los bytes y If-None-Match responde 304; Cache-Control max-age corre hasta la próxima búsqueda programada. 202 significa que aún no hay documento: se registró la demanda de lectura y el trabajador de alimentación obtiene la clave en aproximadamente un minuto (Retry-After).

Una lectura de API mantiene una clave obtenida durante 24 horas. Una organización registra como máximo 50 claves nuevas al día en todos sus proyectos (rate_limited después de eso). Una familia sin fuente en esta implementación responde not_found.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
projectScoped_getFeed

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
familiarutarequeridoLa familia de feeds.
latconsultaopcional
lonconsultaopcional
radius_kmconsultaopcional
min_magnitudeconsultaopcionalterremotos: la magnitud mínima.
horasconsultaopcionalterremotos: la ventana en horas.
cuencasconsultaopcionalciclones: separados por comas at, ep, cp, wp.
stationconsultaopcionaltides: un ID de estación de predicción de mareas de NOAA, como 9414290. Sin él, lat y lon eligen la estación más cercana en un radio de 100 km.
baseconsultaopcional
símbolosconsultaopcional
monedaconsultaopcional
urlconsultaopcional
countryconsultaopcionaldrugalerts: us, ca o gb. respiratory: us o gb. Ambos lo exigen.
categoryconsultaopcionaldrugalerts: drug (por defecto) o food.
regionconsultaopcionalrespiratory: un estado, territorio o DC de EE. UU. por nombre o código postal, o Inglaterra o una región de la UKHSA; el país si está vacío.
If-None-Matchencabezadoopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/feeds/FAMILY'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Documento de feedFeedDocument (application/json); encabezados: ETag, ScreenRig-Feed-Key
202Aún no hay documento; el trabajador de alimentación obtiene la clave en su próxima pasada.FeedPending (application/json); encabezados: Retry-After, ScreenRig-Feed-Key
304El documento coincide con If-None-Match.sin cuerpo
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)
GET/api/projects/{project_id}/advertising/networks/{seller_project_id}/inventory

Proyecto Scoped_list Advertising Joined Inventory

Inventario seleccionado y espacios reutilizables dentro de la membresía del llamante. Nunca expone capturas de pantalla, listas de reproducción o datos de proyecto del vendedor.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
projectScoped_listAdvertisingJoinedInventory

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
seller_project_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/projects/PROJECT_ID/advertising/networks/SELLER_PROJECT_ID/inventory'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Inventario y espacios permitidos.AdvertisingJoinedInventory (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)
GET/api/projects/{project_id}/agents/self

Proyecto Scoped_get Current Agent

Devuelve la instalación del agente vinculada al portador del proyecto que llama más connection_ready. Un proyecto está listo cuando al menos un miembro tiene una passkey o contraseña. El estado de identidad es diagnóstico y no descuenta del medidor de la API.

Autenticación
projectBearer
Cuerpo de la solicitud
ninguno
ID de operación
projectScoped_getCurrentAgent

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
ScreenRig-ProjectencabezadoopcionalObsoleto 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
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/agents/self'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Estado actual de conexión del agente y proyecto.AgentSelfStatus (application/json); encabezados: Cache-Control
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)
POST/api/projects/{project_id}/agents/self/disconnect

Proyecto Scoped_disconnect Current Agent

Revoca solo la membresía del proyecto que llama y su token de proyecto, preservando la identidad global, otras membresías, proyecto y contenido. Repetir con el mismo portador revocado y criptográficamente válido es una operación sin efecto con éxito. Desconectar al último agente activo devuelve agent_lockout_risk a menos que allow_last_agent sea explícito. No descuenta del medidor de API.

Un JWT de acceso de agente, incluido Solo lectura, desconecta al agente del proyecto de su token; la membresía termina, el consentimiento del proyecto deja los permisos del agente y ese par identidad/proyecto se corta para tokens de acceso antiguos. Otros proyectos en el token siguen funcionando. Un reintento con el mismo JWT después de la desconexión es un éxito sin operación.

Autenticación
revocableAgentBearer
Cuerpo de la solicitud
AgentDisconnectRequest
ID de operación
projectScoped_disconnectCurrentAgent

Parámetros

NombreEnviar¿Requerido?Descripción
project_idrutarequerido
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.

Campos del cuerpo de la solicitud

CampoDescripción
allow_last_agent (opcional, booleano)Acepta explícitamente la pérdida del último portador activo del agente. Un passkey registrado en el dashboard sigue siendo autoridad administrativa independiente. por defecto: false
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/agents/self/disconnect'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Agente desconectado.sin cuerpo; encabezados: Cache-Control
401

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)
409

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)