OpenAPI YAMLOpenAPI JSONproblèmes YAMLVue d’ensemble de l’API
Ce groupe compte 10 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.
Campagnes
Lister les campagnes
Liste les campagnes du projet par ordre de priorité (au plus 100), l’ordre dans lequel la résolution les lit. reserved est présent sur chaque campagne.
Un appelant limité aux écrans (docs/screen-scope.md) voit chaque campagne, avec editable à true seulement quand toute l’audience est dans son périmètre (une feuille d’étiquette et la règle racine de tous les écrans ne le sont jamais ; une règle all exige un enfant contenu, une règle any chaque enfant) et que l’appelant peut modifier ce qui est diffusé.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolè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. |
Modèle de requête et réponses
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Les campagnes du projet. | CampaignList (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) |
Créer une campagne
Crée une campagne : chaque écran de son audience passe à playlist_id tant que from, until et windows sont valides dans le fuseau horaire de l’écran (screenrig.schedule/v1 ; omettez les trois pour toujours), et revient en arrière quand ils ne le sont plus.
Un écran détermine sa liste de lecture ainsi : sa prise de contrôle, puis la première campagne qui s’applique dans l’ordre de priorité (priority, la plus élevée d’abord, puis la plus récemment créée), puis son horaire de liste de lecture, puis sa liste de lecture par défaut. Une campagne ne s’applique qu’à un écran ayant une liste de lecture par défaut ; celle qui a from, until ou windows exige le fuseau horaire de l’écran.
La liste de lecture doit exister et être approuvée (playlist_not_approved). Les écrans changent en une minute ; GET /api/campaigns/{id}/screens montre la situation de chaque écran. Une organisation a au plus 100 campagnes, tous projets confondus (campaign_limit_reached).
Ajoute campaign.created. reserved à true réserve la campagne, et seule une personne qui peut approuver le définit (reserved_item pour un agent, un client de service ou toute autre personne), ce qui ajoute campaign.reserved_changed.
Un appelant limité aux écrans (docs/screen-scope.md) ne crée une campagne que pour une audience dans son périmètre (feuilles folder et screen_id ; ni étiquette, ni tous les écrans), sinon outside_screen_scope, et seulement en tant que personne qui peut approuver (approver_required).
Une campagne dont l’audience atteint un écran protégé est une révision protected_change décidée par un second approbateur (202 pending_review) à tous les niveaux d’accès. reserved true relève des dossiers protégés et paused true sur une nouvelle campagne (un brouillon) relève du contrôle des changements d’horaire, les deux faisant partie du forfait Enterprise ; un projet dont le forfait n’inclut pas cette fonctionnalité est refusé avec feature_not_in_plan (402).
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolè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-Key | en-tête | optionnel | Omettre 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
| Champ | Description |
|---|---|
| nom (obligatoire, chaîne) | minLength : 1 maxLength : 120 |
| playlist_id (obligatoire, chaîne) | minLength : 1 |
| audience (obligatoire, CampaignAudience) | Les écrans qu’une campagne cible : exactement un parmi all (chaque règle correspond), any (au moins une correspond), tag (l’écran porte l’étiquette), screen_id (cet écran) ou folder (les écrans de ce dossier d’écrans et de chaque dossier à l’intérieur, GET /api/screen-folders ; le dossier doit exister). Les règles s’imbriquent sur 3 niveaux au plus et une audience a au plus 500 règles. {"all": []} correspond à chaque écran du projet ; ailleurs, all et any listent au moins une règle. |
| from (optionnel, string) | motif : « ^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$ » |
| until (optionnel, string) | Postérieur à from. motif : « ^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$ » |
| windows (optionnel, array) | |
| monthly (facultatif, tableau) | |
| dates (facultatif, tableau) | |
| except (facultatif, tableau) | Dates civiles, stockées en ordre croissant et une seule fois chacune. Une exception supprime chaque occurrence que sa date commence, fins nocturnes comprises ; elle se situe entre from et until. |
| data (facultatif, PageDataCondition) | Un prédicat de données de carte, évalué avant l’heure civile. Les données manquantes ou expirées ne correspondent jamais. La page respecte aussi ses bornes temporelles ordinaires. Nécessite la capacité hôte page.conditions ; les hôtes plus anciens reçoivent la page désactivée. |
| interaction (facultatif, LevelInteraction) | Le niveau est en vigueur tant que quelqu’un utilise l’écran : d’un toucher, d’un clic ou d’une touche jusqu’à ce que idle_s secondes s’écoulent sans saisie. Usage typique : une page interactive au-dessus d’une boucle d’attraction. idle_s est stocké et renvoyé (60 si omis). |
| covers (facultatif, chaîne) | Où le niveau joue : la page complète (default, stocké absent) ou main, la page elle-même, pour une liste de lecture ordinaire ; header, footer ou side, une bande dessinée par-dessus la page, pour une liste de lecture de région de cette seule région (PlaylistRegionFormat). Une liste de lecture de région est refusée avec full ou main, et une bande exige une liste de lecture de région disposée sur un affichage ciblé. Autorisés : « full », « main », « header », « footer », « side » |
| displays (facultatif, tableau) | Les sorties d’un mur vidéo sur lesquelles il joue ; absent, il joue sur chaque sortie. |
| start (facultatif, chaîne) | on_time bascule à la limite, en interrompant l’élément en cours ; next_item (par défaut, stocké absent) attend sa fin. Autorisés : « next_item », « on_time » |
| priority (optionnel, integer) | par défaut : 0 minimum : 0 maximum : 100 |
| paused (optionnel, boolean) | par défaut : false |
| reserved (facultatif, booléen) | Seule une personne qui peut approuver réserve une campagne (sinon reserved_item). default: false |
Modèle de requête et réponses
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/campaigns'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Créé. | Campaign (application/json) ; en-têtes : ETag |
| 400 | invalid_request, y compris une règle d’audience, une fenêtre ou un playlist_id que le projet n’a pas. | Problème (application/problem+json) |
| 402 | feature_not_in_plan — Les dossiers protégés et le contrôle des changements d’horaire font partie du forfait Enterprise ; le problème nomme la fonctionnalité, le forfait du compte et required_plan. Une campagne qui verrouille une liste de lecture sur l’afficheur 2 ou au-delà d’un mur vidéo (displays) fait partie de Plus. Le problème nomme la fonctionnalité, le forfait du projet et required_plan. | Problème (application/problem+json) |
| 409 | campaign_limit_reached, playlist_not_approved ou idempotency_mismatch. | Problème (application/problem+json) |
| 202 | L’écriture est devenue une révision et attend l’approbation d’une personne (docs/reviews.md), sous l’accès Proposer, ou à n’importe quel niveau d’accès quand elle atteint un écran d’un dossier d’écrans protégé, où un second approbateur décide (docs/screen-scope.md). Une personne approuve, rejette ou demande des modifications dans le tableau de bord à review.url. Une relecture d’Idempotency-Key répond avec le même corps. | ReviewPending (application/json) |
| 403 | outside_screen_scope ou approver_required comme sur ScreenScopePlays, ou reserved_item - une campagne réservée n’est modifiée, mise en pause, supprimée ni dé-réservée que par une personne qui peut approuver les révisions, jamais par un agent ou un client de service (docs/screen-scope.md). | 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) |
Aperçu de la campagne
Ce qu’une écriture de campagne changerait, sans l’effectuer. Avec id, body est le corps PATCH de cette campagne ; sans, c’est le corps POST d’une nouvelle. Le corps est vérifié comme l’écriture le vérifie (une règle d’audience, une fenêtre, une liste de lecture non approuvée, un dossier d’écrans que le projet n’a pas).
La réponse liste les écrans qui gagneraient la campagne sur leur pile et ceux qui la perdraient (count, et les 500 premiers identifiants d’écran), et le calendrier d’horaire des écrans de l’ancienne et de la nouvelle audience tel qu’il est (before) et tel qu’il serait (after) de from à to (par défaut : une semaine à partir de maintenant ; au plus 93 jours), regroupé comme GET /api/schedule/calendar regroupe.
Une campagne en pause n’est sur aucune pile, donc en publier une gagne son audience ; une modification qui garde la campagne sur la pile d’un écran ne gagne ni ne perd rien et apparaît dans les calendriers. Accès Lecture seule : rien n’est écrit.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolè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. |
Champs du corps de la requête
| Champ | Description |
|---|---|
| id (optionnel, chaîne) | La campagne sur laquelle un corps PATCH est prévisualisé ; omettez pour prévisualiser une création. |
| corps (obligatoire, objet) | Un CampaignPatch avec id, un CampaignWrite sans. |
| from (optionnel, string) | Début des calendriers ; par défaut maintenant. format: "date-time" |
| to (optionnel, chaîne) | Fin des calendriers ; par défaut une semaine après from, au plus 93 jours après. format: "date-time" |
Modèle de requête et réponses
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/campaigns/preview'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | L’aperçu. | SchedulePreview (application/json) |
| 400 | 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) |
| 404 | 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) |
| 409 | 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) |
| 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) |
Obtenir une campagne
Une campagne. reserved est toujours présent ; editable est présent pour un appelant limité aux écrans (voir listCampaigns).
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolè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. |
| id | chemin | obligatoire |
Modèle de requête et réponses
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Une campagne. | Campaign (application/json) ; en-têtes : ETag |
| 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) |
Mettre à jour une campagne
Modifie les membres que le corps définit ; null efface from, until ou windows. paused true arrête la campagne sur tous les écrans et false la reprend. Une campagne en pause est un brouillon : elle n’est sur la pile d’aucun écran, et une écriture qui la laisse en pause ne réévalue aucun écran.
Le publier pour un test est ce PATCH avec paused false et une audience qui est un dossier de test ou quelques écrans ; POST /api/campaigns/{id}/promote copie ensuite cette audience sur la vraie. Chaque écran de l’ancienne et de la nouvelle audience résout à nouveau dans la minute. Ajoute campaign.updated. If-Match protège la révision.
Chaque écriture est stockée dans l’historique de la campagne (GET /api/campaigns/{id}/revisions). campaign.updated. If-Match protège la révision. reserved définit ou efface l’indicateur de réservation (une campagne réservée n’est modifiée, mise en pause ou dont la réservation est levée que par une personne qui peut approuver : sinon reserved_item) ; un basculement ajoute campaign.reserved_changed.
Un appelant limité aux écrans (docs/screen-scope.md) ne modifie une campagne que si son audience enregistrée et sa nouvelle audience se trouvent dans son périmètre (outside_screen_scope ; sinon elle est en lecture seule pour lui).
Une campagne qui atteint un écran protégé est une révision protected_change décidée par un second approbateur (202 pending_review). reserved true sur une campagne qui n’est pas réservée relève des dossiers protégés, que le forfait Enterprise inclut ; un projet dont le forfait n’inclut pas cette fonctionnalité est refusé avec feature_not_in_plan (402).
La mise en pause ou la reprise d’une campagne, ainsi que la modification ou la libération d’une campagne réservée, sont ouvertes à tous les forfaits.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolè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. |
| id | chemin | obligatoire | |
| If-Match | en-tête | optionnel | Révision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict. |
| Idempotency-Key | en-tête | optionnel | Omettre 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
| Champ | Description |
|---|---|
| nom (optionnel, chaîne) | minLength : 1 maxLength : 120 |
| playlist_id (optionnel, chaîne) | minLength : 1 |
| audience (optionnel, CampaignAudience) | Les écrans qu’une campagne cible : exactement un parmi all (chaque règle correspond), any (au moins une correspond), tag (l’écran porte l’étiquette), screen_id (cet écran) ou folder (les écrans de ce dossier d’écrans et de chaque dossier à l’intérieur, GET /api/screen-folders ; le dossier doit exister). Les règles s’imbriquent sur 3 niveaux au plus et une audience a au plus 500 règles. {"all": []} correspond à chaque écran du projet ; ailleurs, all et any listent au moins une règle. |
| from (optionnel, en ligne) | null l’efface. |
| jusqu’à (optionnel, en ligne) | null l’efface. |
| windows (optionnel, en ligne) | null les efface. |
| monthly (facultatif, en ligne) | null les efface. |
| dates (facultatif, en ligne) | null les efface. |
| except (facultatif, en ligne) | null les efface. |
| data (facultatif, en ligne) | null l’efface. |
| interaction (facultatif, en ligne) | null l’efface. |
| covers (facultatif, en ligne) | null correspond à la page complète. header, footer et side exigent une liste de lecture de cette région (PlaylistRegionFormat). |
| displays (facultatif, en ligne) | null joue sur chaque sortie. |
| start (facultatif, en ligne) | null équivaut à next_item. |
| priority (optionnel, integer) | minimum : 0 maximum : 100 |
| paused (optionnel, boolean) | |
| reserved (facultatif, booléen) | Seule une personne qui peut approuver réserve ou libère une campagne (reserved_item sinon). |
Modèle de requête et réponses
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | La campagne mise à jour. | Campaign (application/json) ; en-têtes : ETag |
| 402 | feature_not_in_plan — Les dossiers protégés font partie du forfait Enterprise ; le problème nomme la fonctionnalité, le forfait du compte et required_plan. Définir displays sur une valeur autre que celle de la campagne fait partie de Plus ; null l’efface dans tous les forfaits. Le problème nomme la fonctionnalité, le forfait du projet et required_plan. | Problème (application/problem+json) |
| 409 | playlist_not_approved ou idempotency_mismatch. | Problème (application/problem+json) |
| 412 | revision_conflict. | Problème (application/problem+json) |
| 202 | L’écriture est devenue une révision et attend l’approbation d’une personne (docs/reviews.md), sous l’accès Proposer, ou à n’importe quel niveau d’accès quand elle atteint un écran d’un dossier d’écrans protégé, où un second approbateur décide (docs/screen-scope.md). Une personne approuve, rejette ou demande des modifications dans le tableau de bord à review.url. Une relecture d’Idempotency-Key répond avec le même corps. | ReviewPending (application/json) |
| 403 | outside_screen_scope ou approver_required comme sur ScreenScopePlays, ou reserved_item - une campagne réservée n’est modifiée, mise en pause, supprimée ni dé-réservée que par une personne qui peut approuver les révisions, jamais par un agent ou un client de service (docs/screen-scope.md). | 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 une campagne
Supprime la campagne et son historique de révisions. Chaque écran qui l’affiche revient à ce qu’il afficherait sans elle dans la minute. Ajoute campaign.deleted. If-Match protège la révision. Une campagne réservée n’est supprimée que par une personne qui peut approuver (reserved_item).
Un appelant limité aux écrans (docs/screen-scope.md) ne supprime une campagne que si son audience se trouve dans son périmètre (outside_screen_scope). Une campagne qui atteint un écran protégé est une révision protected_change décidée par un second approbateur (202 pending_review).
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolè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. |
| id | chemin | obligatoire | |
| If-Match | en-tête | optionnel | Révision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict. |
| Idempotency-Key | en-tête | optionnel | Omettre 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
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 204 | Supprimé. | pas de corps |
| 412 | revision_conflict. | Problème (application/problem+json) |
| 202 | L’écriture est devenue une révision et attend l’approbation d’une personne (docs/reviews.md), sous l’accès Proposer, ou à n’importe quel niveau d’accès quand elle atteint un écran d’un dossier d’écrans protégé, où un second approbateur décide (docs/screen-scope.md). Une personne approuve, rejette ou demande des modifications dans le tableau de bord à review.url. Une relecture d’Idempotency-Key répond avec le même corps. | ReviewPending (application/json) |
| 403 | outside_screen_scope ou approver_required comme sur ScreenScopePlays, ou reserved_item - une campagne réservée n’est modifiée, mise en pause, supprimée ni dé-réservée que par une personne qui peut approuver les révisions, jamais par un agent ou un client de service (docs/screen-scope.md). | 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) |
Lister les révisions de campagne
Les révisions de la campagne, de la plus récente à la plus ancienne : la campagne telle que stockée après chaque écriture par une personne, un agent ou une importation d’horaires (une création, une mise à jour, une promotion, une restauration), avec le type de changement et son auteur.
L’historique commence par la révision qu’une campagne détenait lorsque l’historique des révisions a été enregistré pour la première fois : jusqu’à sa prochaine écriture, la liste contient cette seule révision, avec change baseline. Une campagne dont l’historique ne contient aucune révision avec paused false est un brouillon. Les révisions sont conservées aussi longtemps que la campagne et disparaissent avec elle.
Au plus 50 par page ; next_cursor tant qu’il en reste, null sur la dernière page.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolè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. |
| id | chemin | obligatoire | |
| après | requête | optionnel | next_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
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID/revisions'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Les révisions de la campagne, de la plus récente à la plus ancienne. | CampaignRevisionList (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) |
Restaurer une révision de campagne
Remet une révision antérieure comme révision actuelle en la copiant vers l’avant par la même écriture que PATCH : ses champs name, playlist, audience, rule, placement, priority et paused deviennent une nouvelle révision (change restored, restored_from la révision copiée), vérifiée comme l’est une mise à jour (sa liste de lecture doit encore exister et être approuvée), et chaque écran de l’ancienne et de la nouvelle audience est réévalué, sauf si la campagne était en pause et le reste.
Les révisions antérieures restent telles qu’elles étaient. If-Match est obligatoire et nomme la révision actuelle (invalid_request en son absence, revision_conflict si obsolète). Une révision dont le contenu est le contenu actuel ne change rien et répond avec la campagne actuelle. Le même accès que PATCH.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolè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. |
| id | chemin | obligatoire | |
| révision | chemin | obligatoire | Une révision de l’enregistrement, telle que sa liste de révisions la numérote. |
| If-Match | en-tête | optionnel | Révision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict. |
| Idempotency-Key | en-tête | optionnel | Omettre 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
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID/revisions/REVISION/restore'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | La campagne avec la révision copiée comme révision actuelle ; ETag porte sa révision. | Campaign (application/json) ; en-têtes : ETag |
| 404 | 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) |
| 409 | 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) |
| 412 | 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) |
| 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) |
Promouvoir une campagne
Publie un test. Une publication de test est un PATCH d’un brouillon avec paused false et une audience qui est un dossier de test ou quelques écrans ; promote copie alors l’audience de revision (la révision du brouillon lui-même, en pause) sur la campagne en une seule écriture (change promoted, restored_from la révision copiée) et chaque écran de l’ancienne et de la nouvelle audience est réévalué.
Refusé (invalid_request, nommant revision) lorsque cette révision n’était pas en pause, puisqu’elle n’est pas un brouillon, et lorsque la campagne est en pause maintenant, puisqu’il n’y a aucun test à promouvoir. If-Match est obligatoire et nomme la révision actuelle. Une révision dont l’audience est l’audience actuelle ne change rien. Le même accès que PATCH.
La promotion relève du contrôle des changements d’horaire, que le forfait Enterprise inclut ; un projet dont le forfait n’inclut pas cette fonctionnalité est refusé avec feature_not_in_plan (402). L’historique des révisions, la restauration et les aperçus sont ouverts à tous les forfaits.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolè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. |
| id | chemin | obligatoire | |
| If-Match | en-tête | optionnel | Révision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict. |
| Idempotency-Key | en-tête | optionnel | Omettre 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
| Champ | Description |
|---|---|
| révision (obligatoire, entier) | La révision (en pause) du brouillon dont la campagne prend l’audience. minimum: 1 |
Modèle de requête et réponses
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID/promote'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | La campagne avec l’audience du brouillon ; ETag porte sa révision. | Campaign (application/json) ; en-têtes : ETag |
| 402 | feature_not_in_plan — Le contrôle des changements d’horaire fait partie du forfait Enterprise ; le problème nomme la fonctionnalité, le forfait du compte et required_plan. | Problème (application/problem+json) |
| 404 | 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) |
| 409 | 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) |
| 412 | 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) |
| 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) |
Lister les écrans d’une campagne
La portée de la campagne. counts couvre chaque écran actif de son audience (audience, puis un compte par statut) ; items est une page de ces écrans dans l’ordre des identifiants d’écran avec la situation de la campagne sur chacun (voir CampaignStatus).
Un appelant limité aux écrans (docs/screen-scope.md) ne voit et ne compte que les écrans de l’audience qui sont dans son périmètre ; les totaux et la pagination portent sur cet ensemble.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolè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. |
| id | chemin | obligatoire | |
| limite | requête | optionnel | |
| curseur | requête | optionnel | next_cursor de la page précédente. |
Modèle de requête et réponses
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/campaigns/RESOURCE_ID/screens'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | L’audience et la situation de la campagne. | CampaignScreens (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) |