Référence API

API Soutien

Assistance

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

POST/website/support-messages

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.

Authentification
aucun
Corps de la requête
object
ID d’opération
submitWebsiteSupportMessage

Paramètres

NomEnvoyerRequis ?Description
Origineen-têteobligatoire
Idempotency-Keyen-têteobligatoire

Champs du corps de la requête

ChampDescription
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
shell · modèle de requête
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

StatutSensCorps et en-têtes
202Message 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)
GET/api/support/status

É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.

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

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.
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/support/status'

Réponses

StatutSensCorps et en-têtes
200Ré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)
GET/api/support/conversations

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é.

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

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.
avantrequêteoptionnelID de conversation du curseur suivant de la page précédente.
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/support/conversations'

Réponses

StatutSensCorps et en-têtes
200Ré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)
POST/api/support/conversations

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.

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

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
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
shell · modèle de requête
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

StatutSensCorps et en-têtes
201Résultat d’assistance.SupportSubmission (application/json)
422Le 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)
GET/api/support/conversations/{id}/messages

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.

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

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
aprèsrequêteoptionnelSéquence de messages d’assistance du projet ; reprend strictement après cette position.
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/support/conversations/RESOURCE_ID/messages'

Réponses

StatutSensCorps et en-têtes
200Ré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)
POST/api/support/conversations/{id}/messages

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.

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

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
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
shell · modèle de requête
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

StatutSensCorps et en-têtes
201Résultat d’assistance.SupportSubmission (application/json)
422Le 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)
PUT/api/support/conversations/{id}/read

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.

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

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

Champs du corps de la requête

ChampDescription
séquence (obligatoire, entier)minimum : 0
Modèle de requête et réponses
shell · modèle de requête
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

StatutSensCorps et en-têtes
200Ré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)
POST/api/support/conversations/{id}/close

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.

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

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 POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/support/conversations/RESOURCE_ID/close'

Réponses

StatutSensCorps et en-têtes
200Conversation 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)
GET/stream/support

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.

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

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êteoptionnelSéquence de messages d’assistance du projet ; reprend strictement après cette position.
Last-Event-IDen-têteoptionnel
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/stream/support'

Réponses

StatutSensCorps et en-têtes
200Message 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)