Référence API

API Applications

Applications et opérations

Référence HTTP. Générée à partir du contrat backend. Parcourez les points de terminaison ci-dessous ou téléchargez OpenAPI.

Ce groupe compte 11 opérations, générées à partir de api/openapi.yaml. Filtrez par chemin, action ou authentification. Chaque point de terminaison liste ses entrées ; développez-le pour voir un modèle de requête et les codes de réponse. Les modèles demandent vos propres valeurs et un corps conforme au schéma.

Remplacez les espaces réservés en majuscules par vos valeurs. Pour une requête JSON, enregistrez un corps correspondant au schéma dans request.json. Les exemples de cookies utilisent un pot à cookies local issu d’une session authentifiée.

Applications et opérations

GET/api/applications

Lister les applications

Liste les applications, les plus récentes d’abord, au maximum 500 par page. Les noms sont des étiquettes et ne doivent pas être uniques ; adressez une application par son identifiant. next_cursor est la position de la dernière ligne retournée tant qu’il reste des lignes ; renvoyez-le comme after, avec les mêmes filtres, pour la page suivante. next_cursor est null à la dernière page.

Authentification
projectBearer OU dashboardSession
Corps de la requête
aucun
ID d’opération
listApplications

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
aprèsrequêteoptionnelnext_cursor de la page précédente de la même liste, avec les mêmes filtres. Omission commence à la ligne la plus récente. Une valeur qui n’est pas un tel curseur est invalid_request.
Modèle de requête et réponses
shell · modèle de requête
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/applications'

Réponses

StatutSensCorps et en-têtes
200ApplicationsApplicationList (application/json)
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)
POST/api/applications

Téléverser l’application

Diffuse un tar.gz produit par CLI directement dans une mise en scène durable bornée. Les métadonnées sont dans les en-têtes, donc l’archive n’est jamais enveloppée en base64 ni matérialisée en JSON par le serveur.

Le proxy devant l’API met fin à une requête à laquelle il n’a pas répondu en environ 100 s, donc une grande archive sur une liaison montante lente échoue ici ; POST /api/applications/uploads envoie plutôt l’archive directement au magasin d’objets.

Authentification
projectBearer
Corps de la requête
string
ID d’opération
uploadApplication

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
Idempotency-Keyen-têteobligatoire
ScreenRig-Archive-SHA256en-têteobligatoire
ScreenRig-Expanded-Bytesen-têteobligatoire
ScreenRig-File-Counten-têteobligatoire
ScreenRig-SDK-Versionen-têteoptionnel
ScreenRig-Application-Nameen-têteoptionnel

Nom ASCII de l’application ; exclusif avec ScreenRig-Application-Name*. Les espaces en début et fin sont supprimés. Les contrôles et valeurs d’en-tête dupliquées sont rejetés. Le nom décodé est limité à 120 valeurs scalaires Unicode.

ScreenRig-Application-Name*en-têteoptionnel

Nom d’application Unicode encodé en RFC 8187 UTF-8'' suivi d’octets UTF-8 encodés en pourcentage (langue vide, jeu de caractères UTF-8 exact). Mutuellement exclusif avec ScreenRig-Application-Name. Les échappements invalides, UTF-8 invalide, contrôles et valeurs d’en-tête en double sont rejetés.

Les espaces blancs en début et fin sont supprimés ; le nom décodé est limité à 120 valeurs scalaires Unicode. Aucun en-tête de nom ne peut renommer une mise à jour de version. Cela évite les Unicode bruts dans les valeurs d’en-tête HTTP.

Modèle de requête et réponses
shell · modèle de requête
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://screenrig.ai/api/applications'

Réponses

StatutSensCorps et en-têtes
202Téléversement acceptéOpération acceptée (application/json) ; en-têtes : RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)
POST/api/applications/{id}/releases

Téléverser la version de l’application

Publie une nouvelle version immuable d’une application possédée en utilisant la même chaîne de téléversement tar.gz liée. If-Match protège la révision de l’application ; l’acceptation l’incrémente, et la publication réussie l’incrémente à nouveau lorsque latest_ready_release change. Le nom et l’identité de l’application sont conservés. Les épingles de version de liste de lecture existantes ne sont pas modifiées.

Une nouvelle tentative idempotente identique renvoie l’opération originale même après des modifications de révision. Le proxy devant l’API met fin à une requête à laquelle il n’a pas répondu en environ 100 s, donc une grande archive sur une liaison montante lente échoue ici ; POST /api/applications/{id}/uploads envoie plutôt l’archive directement au magasin d’objets.

Authentification
projectBearer
Corps de la requête
string
ID d’opération
uploadApplicationRelease

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
idcheminobligatoire
If-Matchen-têteoptionnelRévision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict.
Idempotency-Keyen-têteobligatoire
ScreenRig-Archive-SHA256en-têteobligatoire
ScreenRig-Expanded-Bytesen-têteobligatoire
ScreenRig-File-Counten-têteobligatoire
ScreenRig-SDK-Versionen-têteoptionnel
Modèle de requête et réponses
shell · modèle de requête
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/applications/RESOURCE_ID/releases'

Réponses

StatutSensCorps et en-têtes
202Téléversement acceptéOpération acceptée (application/json) ; en-têtes : RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)
POST/api/applications/uploads

Créer un téléversement d’application

Déclare un téléversement direct d’un tar.gz produit par la CLI qui crée une nouvelle application. La réponse est une autorisation signée pour exactement un PUT d’objet de l’archive, donc les octets vont directement au magasin d’objets et ne passent jamais par l’API, dont le proxy met fin à une requête à laquelle il n’a pas répondu en environ 100 s.

Envoyez l’archive par PUT à upload_url, puis validez avec POST /api/applications/uploads/{id}/commit et attendez l’opération. L’application, sa version et l’opération de réception existent dès cette réponse, comme après POST /api/applications. Un téléversement non validé dans les 24 heures échoue, et une application qui n’a jamais publié de version est supprimée.

La même Idempotency-Key et le même corps renvoient le même téléversement avec une URL fraîchement signée. GET /api/capabilities définit features.application_direct_uploads là où ces routes sont servies.

Authentification
projectBearer
Corps de la requête
ApplicationUploadDeclaration
ID d’opération
createApplicationUpload

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
Idempotency-Keyen-têteobligatoire

Champs du corps de la requête

ChampDescription
nom (optionnel, chaîne)

Nom d’une nouvelle application, rogné ; au plus 120 caractères Unicode et aucun caractère de contrôle. Omis ou vide sélectionne un nom généré. Une déclaration de version (POST /api/applications/{id}/uploads) ne doit pas en porter un. maxLength: 120

sha256 (obligatoire, chaîne)SHA-256 des octets de l’archive. pattern: "^[0-9a-f]{64}$"
compressed_bytes (obligatoire, entier)Taille de l’archive en octets. minimum : 1 maximum : 104 857 600
expanded_bytes (obligatoire, entier)minimum : 1 maximum : 262 144 000
file_count (obligatoire, entier)minimum : 1 maximum : 5 000
sdk_version (optionnel, chaîne)maxLength : 64
Modèle de requête et réponses
shell · modèle de requête
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/applications/uploads'

Réponses

StatutSensCorps et en-têtes
201Autorisation signée pour exactement un PUT d’objet de l’archive. Envoyez la méthode retournée et chaque en-tête retourné textuellement ; le PUT doit commencer avant expires_at, deux heures après la déclaration.ApplicationUploadSession (application/json) ; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)
POST/api/applications/{id}/uploads

Créer un téléversement de version d’application

Déclare un téléversement direct d’une nouvelle version immuable d’une application possédée, avec une réponse comme pour POST /api/applications/uploads. If-Match protège la révision de l’application comme sur POST /api/applications/{id}/releases, et l’acceptation l’incrémente. Le corps ne porte aucun nom ; une version conserve le nom de son application. Les épinglages de version de listes de lecture existants ne sont pas modifiés.

Authentification
projectBearer
Corps de la requête
ApplicationUploadDeclaration
ID d’opération
createApplicationReleaseUpload

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
idcheminobligatoire
If-Matchen-têteoptionnelRévision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict.
Idempotency-Keyen-têteobligatoire

Champs du corps de la requête

ChampDescription
nom (optionnel, chaîne)

Nom d’une nouvelle application, rogné ; au plus 120 caractères Unicode et aucun caractère de contrôle. Omis ou vide sélectionne un nom généré. Une déclaration de version (POST /api/applications/{id}/uploads) ne doit pas en porter un. maxLength: 120

sha256 (obligatoire, chaîne)SHA-256 des octets de l’archive. pattern: "^[0-9a-f]{64}$"
compressed_bytes (obligatoire, entier)Taille de l’archive en octets. minimum : 1 maximum : 104 857 600
expanded_bytes (obligatoire, entier)minimum : 1 maximum : 262 144 000
file_count (obligatoire, entier)minimum : 1 maximum : 5 000
sdk_version (optionnel, chaîne)maxLength : 64
Modèle de requête et réponses
shell · modèle de requête
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/applications/RESOURCE_ID/uploads'

Réponses

StatutSensCorps et en-têtes
201Autorisation signée pour exactement un PUT d’objet de l’archive. Envoyez la méthode retournée et chaque en-tête retourné textuellement ; le PUT doit commencer avant expires_at, deux heures après la déclaration.ApplicationUploadSession (application/json) ; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)
POST/api/applications/uploads/{id}/commit

Valider téléversement d’application

Valide un téléversement direct d’application une fois son PUT terminé. Le serveur vérifie l’archive préparée par rapport à la déclaration (sa taille et la somme de contrôle SHA-256 que le magasin d’objets a prise avec le PUT), la copie dans sa propre zone de préparation de téléversement et met la publication en file d’attente.

Attendez l’Operation retournée avec GET /api/operations/{id} jusqu’à ce qu’elle soit succeeded ou failed, comme après POST /api/applications. Une validation avant la fin du PUT répond invalid_request et ne change rien, donc elle peut être envoyée à nouveau ; des octets préparés qui diffèrent de la déclaration font échouer le téléversement. Une validation répétée répond la même opération.

Authentification
projectBearer
Corps de la requête
ApplicationUploadCommit
ID d’opération
commitApplicationUpload

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
idcheminobligatoire
Idempotency-Keyen-têteobligatoire

Champs du corps de la requête

ChampDescription
sha256 (obligatoire, chaîne)modèle : "^[0-9a-f]{64}$"
compressed_bytes (obligatoire, entier)minimum : 1 maximum : 104 857 600
Modèle de requête et réponses
shell · modèle de requête
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/applications/uploads/RESOURCE_ID/commit'

Réponses

StatutSensCorps et en-têtes
202L’archive est préparée et sa publication est mise en file d’attente.Opération (application/json)
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)
GET/api/applications/{id}

Obtenir l’application

Authentification
projectBearer OU dashboardSession
Corps de la requête
aucun
ID d’opération
getApplication

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
idcheminobligatoire
Modèle de requête et réponses
shell · modèle de requête
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/applications/RESOURCE_ID'

Réponses

StatutSensCorps et en-têtes
200ApplicationApplication (application/json)
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)
PATCH/api/applications/{id}

Renommer l’application

Modifie le nom d’affichage d’une application appartenant au projet authentifié. Les noms sont tronqués, contiennent de 1 à 120 caractères Unicode sans contrôles, et peuvent se répéter dans un projet. L’identité de l’application, les versions, les données K/V et les épingles de version de liste de lecture sont conservées.

Un nom modifié fait avancer la révision de l’application et émet application.updated ; le même nom est une opération sans effet. If-Match protège optionnellement la révision. Une nouvelle tentative idempotente identique renvoie la réponse originale après des modifications ultérieures des métadonnées.

Authentification
projectBearer
Corps de la requête
ApplicationRename
ID d’opération
renameApplication

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
idcheminobligatoire
If-Matchen-têteoptionnelRévision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict.
Idempotency-Keyen-têteoptionnelOmettre pour une opération fraîche. Fournissez et réutilisez une clé pour dédupliquer les tentatives ; le CLI gère les clés automatiquement.

Champs du corps de la requête

ChampDescription
nom (obligatoire, chaîne)Nom d’écran après suppression des espaces; contrôles et noms vides rejetés. minLength : 1 maxLength : 120
Modèle de requête et réponses
shell · modèle de requête
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/applications/RESOURCE_ID'

Réponses

StatutSensCorps et en-têtes
200Application renommée.Application (application/json) ; en-têtes : ETag
412revision_conflict — If-Match est périmé; la propriété current_revision de l’erreur contient la révision actuelle.Problème (application/problem+json)
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)
SUPPRIMER/api/applications/{id}

Supprimer l’application

Supprime une application appartenant au projet authentifié et toutes ses versions. Le porteur du projet est autorisé ; un identifiant inconnu ou d’un autre projet est not_found. If-Match protège la révision de l’application. Une référence manifeste active bloque la suppression avec application_in_use ; il n’y a pas de suppression forcée.

Authentification
projectBearer OU dashboardSession
Corps de la requête
aucun
ID d’opération
deleteApplication

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
idcheminobligatoire
If-Matchen-têteoptionnelRévision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict.
Idempotency-Keyen-têteoptionnelOmettre pour une opération fraîche. Fournissez et réutilisez une clé pour dédupliquer les tentatives ; le CLI gère les clés automatiquement.
Modèle de requête et réponses
shell · modèle de requête
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/applications/RESOURCE_ID'

Réponses

StatutSensCorps et en-têtes
204Application et versions tombstonées.pas de corps
409application_in_use — un manifeste actif référence encore une des versions de l’application.Problème (application/problem+json)
412revision_conflict — If-Match est périmé; la propriété current_revision de l’erreur contient la révision actuelle.Problème (application/problem+json)
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)
GET/api/operations/{id}

Obtenir l’opération

Authentification
projectBearer OU dashboardSession
Corps de la requête
aucun
ID d’opération
getOperation

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
idcheminobligatoire
Modèle de requête et réponses
shell · modèle de requête
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/operations/RESOURCE_ID'

Réponses

StatutSensCorps et en-têtes
200OpérationOpération (application/json)
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)
POST/api/operations/{id}/cancel

Annuler l’opération

Authentification
projectBearer
Corps de la requête
aucun
ID d’opération
cancelOperation

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton.
idcheminobligatoire
Idempotency-Keyen-têteobligatoire
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' 'https://api.screenrig.ai/api/operations/RESOURCE_ID/cancel'

Réponses

StatutSensCorps et en-têtes
200Opération durable annulée. Une clôture de travailleur en cours ne peut plus la finaliser.Opération (application/json)
par défaut

Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème (application/problem+json)