OpenAPI YAMLOpenAPI JSONproblèmes YAMLVue d’ensemble de l’API
Ce groupe compte 9 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.
Assistance
Envoyer un message depuis le formulaire de contact
Réception JSON anonyme de même origine pour le formulaire de contact du site. Exige l’en-tête Origin du site et une clé Idempotency-Key de 20 à 128 lettres, chiffres, traits d’union ou traits de soulignement. Ne crée aucun compte ni aucune session. Enregistre le message et le courriel de réponse avant d’en accuser réception; le service d’assistance les transmet au canal Slack d’assistance configuré.
Le courriel fourni par le visiteur est une coordonnée, jamais une preuve d’identité. Les nouvelles tentatives identiques reçoivent le même accusé de réception sans nouvelle livraison; un corps modifié avec la même clé entraîne idempotency_mismatch.
Au maximum 10 nouveaux messages par adresse IP cliente par heure (IPv6 regroupées par /64), 3 par courriel par jour et 200 au total par heure; toutes les requêtes partagent une limite de 120 par IP par minute. Retry-After fait autorité. Les messages restent en attente en cas d’échec de livraison; les enregistrements livrés expirent après 30 jours.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| Origine | en-tête | obligatoire | |
| Idempotency-Key | en-tête | obligatoire |
Champs du corps de la requête
| Champ | Description |
|---|---|
| courriel (requis, chaîne) | maxLength : 254 format : « courriel » |
| message (obligatoire, chaîne) | Message littéral, conservant les paragraphes et l’indentation; le texte composé uniquement d’espaces est refusé. minLength: 1 maxLength: 4000 |
| website (facultatif, chaîne) | Champ antipourriel; laisser vide. maxLength: 200 |
Modèle de requête et réponses
curl --request POST --header 'Origin: https://screenrig.ai' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/website/support-messages'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 202 | Message enregistré pour livraison, ou nouvelle tentative identique confirmée. Ne contient aucune coordonnée. | objet (application/json); en-têtes : Cache-Control |
| 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) |
État de l’assistance
Disponibilité et heures pour tout projet actif. chat_allowed est vrai pour chaque projet actif, y compris Standard. human_available est vrai lorsqu’une personne peut se joindre au clavardage sur demande (Education, Premium et Enterprise) ; Standard et Plus ont la documentation et l’assistance par IA. staffed indique si le personnel est dans ses heures en ce moment. Luna répond tout de suite sur 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. |
Modèle de requête et réponses
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/support/status'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Résultat d’assistance. | SupportStatus (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) |
Lister les conversations de soutien
Conversations du projet, les plus récentes en premier, au maximum 100. Les comptes de non-lus du personnel sont par personne ou agent authentifié.
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. |
| avant | requête | optionnel | ID de conversation du curseur suivant 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://screenrig.ai/api/support/conversations'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Résultat d’assistance. | SupportConversationList (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 conversation d’assistance
Disponible sur tous les forfaits ; Luna répond en premier, tout de suite. Là où une personne peut se joindre (human_available dans l’état du soutien), une demande en ce sens met Luna en pause pour le personnel ; sur Standard et Plus, elle est ignorée et Luna répond. Contrôlé avant stockage ou Slack.
Un message d’ouverture de moins de 8 caractères ou 3 mots retourne submission_too_short ; un message qui n’est pas une question ou un problème retourne submission_unclear ; spam, texte avec trop de liens, injection de prompt et texte non sécurisé retournent submission_rejected. Le texte rejeté n’est ni conservé ni envoyé à Luna, et le détail du problème ne le répète jamais.
Le texte en forme d’identifiants autre que les identifiants ScreenRig (jetons porteurs, clés cloud et API, clés privées) est remplacé par [caviardé] avant stockage ; le matériel d’identifiants ScreenRig renvoie invalid_request. Une nouvelle conversation démarre un fil Slack ; les suivis restent dans ce fil. Les requêtes avec la même clé rejouent pendant 24 heures, refus inclus.
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 | obligatoire |
Champs du corps de la requête
| Champ | Description |
|---|---|
| corps (obligatoire, chaîne) | minLength : 1 maxLength : 4000 |
| human_requested (optionnel, booléen) | Demander une personne, ce qui met Luna en pause et attend le personnel. Ne compte que là où une personne peut se joindre (human_available : Education, Premium et Enterprise) ; sur Standard et Plus, elle est ignorée et Luna répond. défaut : 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 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/support/conversations'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Résultat d’assistance. | SupportSubmission (application/json) |
| 422 | Le message a été refusé par filtrage : submission_too_short ou submission_unclear (seulement le message d’ouverture) ou submission_rejected. Le détail ne répète jamais le texte. | 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 messages de soutien
Messages dans la conversation du projet, séquence ascendante, au maximum 100. Continuer après la dernière séquence de message pour la pagination des conversations plus anciennes. La lecture ne reconnaît pas l’état non lu du personnel.
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 | Séquence de messages d’assistance du projet ; reprend strictement après cette position. |
Modèle de requête et réponses
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/support/conversations/RESOURCE_ID/messages'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Résultat d’assistance. | SupportMessageList (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) |
Répondre à la conversation d’assistance
Ajoute un message client à une conversation ouverte. Un suivi n’a pas de longueur minimale et n’est jamais refusé comme peu clair seul (« merci », « oui ») ; il est filtré pour la sécurité, l’injection d’invite et le spam de liens, refusé avec submission_rejected, et le texte en forme d’identifiants est traité comme pour une nouvelle conversation.
Le texte rejeté n’est pas conservé, et un refus est rejoué sous la même clé pendant 24 heures.
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 | |
| Idempotency-Key | en-tête | obligatoire |
Champs du corps de la requête
| Champ | Description |
|---|---|
| corps (obligatoire, chaîne) | minLength : 1 maxLength : 4000 |
| human_requested (optionnel, booléen) | Demander une personne, ce qui met Luna en pause et attend le personnel. Ne compte que là où une personne peut se joindre (human_available : Education, Premium et Enterprise) ; sur Standard et Plus, elle est ignorée et Luna répond. défaut : 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 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/support/conversations/RESOURCE_ID/messages'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Résultat d’assistance. | SupportSubmission (application/json) |
| 422 | Le message a été refusé par filtrage : submission_too_short ou submission_unclear (seulement le message d’ouverture) ou submission_rejected. Le détail ne répète jamais le texte. | 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) |
Lire une conversation de soutien
Reconnaissance monotone des messages par séquence pour ce lecteur. Impossible de reconnaître au-delà de la conversation last_sequence.
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 |
Champs du corps de la requête
| Champ | Description |
|---|---|
| séquence (obligatoire, entier) | minimum : 0 |
Modèle de requête et réponses
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/support/conversations/RESOURCE_ID/read'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Résultat d’assistance. | SupportRead (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) |
Fermer la conversation d’assistance
Terminer cette conversation de projet et annuler les réponses IA en attente. Répétable ; conserve l’historique. Le personnel peut la rouvrir dans Slack.
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 POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/support/conversations/RESOURCE_ID/close'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Conversation fermée. | SupportConversation (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) |
Messages de soutien en flux
Messages d’assistance du projet sur tous les forfaits sous forme de SSE reprenables. event est support.message ; id est la séquence d’assistance du projet, data est SupportMessage. after a priorité sur Last-Event-ID. Le curseur 0 rejoue l’historique. Les messages du personnel, du client et de l’IA sont distingués par rôle. Les flux revalident les identifiants et l’accès actif au projet.
Aucune capture d’écran ni donnée d’identification n’est envoyée.
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. |
| après | requête | optionnel | Séquence de messages d’assistance du projet ; reprend strictement après cette position. |
| Last-Event-ID | en-tête | optionnel |
Modèle de requête et réponses
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/stream/support'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Message d’assistance SSE. | chaîne (text/event-stream) |
| 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) |