api-referenceGET
GET
https://analytics.flowsery.com/analytics/api/v1/issuesLister les problèmes que l'IA de Flowsery a détectés en analysant les enregistrements de session, dédupliqués entre les sessions et classés par gravité.
Jeton Bearer (jeton workspace ou clé API de site)
Les jetons d'espace de travail nécessitent un sélecteur de site Web
Les jetons de l'API Workspace peuvent accéder à tous les sites Web de l'espace de travail. Transmettez <code>websiteId</code> ou <code>domain</code> pour que Flowsery sache quel site Web interroger ou muter. Les clés API de site Web sont déjà limitées à un seul site Web, le sélecteur peut donc être omis.Sélecteur de site Web
| Parametre | Taper | Description |
|---|---|---|
websiteId | string | ID de site Web à utiliser avec un jeton API d'espace de travail. Omettre lors de l'authentification avec une clé API de site Web. |
domain | string | Site Web domain à utiliser avec un jeton API d'espace de travail lorsque websiteId n'est pas fourni. Omettre lors de l'authentification avec une clé API de site Web. |
Les problèmes suspendus sont masqués par défaut
La liste exclut les problèmes suspendus, sauf s'ils sont demandés explicitement avec <code>status=suspended</code>.Parametres facultatifs
| Parametre | Taper | Description |
|---|---|---|
status | string | Filtrer par statut de traitement : open, in_progress, resolved ou suspended. Sans ce paramètre, tous les statuts sont retournés sauf suspended. |
severity | string | Filtrer par gravité : low, medium, high ou critical. |
search | string | Recherche textuelle sur les titres et descriptions des problèmes. 200 caractères max. |
sort | string | severity (par défaut) place les problèmes les plus graves en premier ; recency trie par lastSeenAt, du plus récent au plus ancien. |
limit | number | Nombre maximum de problèmes à retourner (par défaut : 100, max : 1000). |
offset | number | Lignes a ignorer pour la pagination (min 0, par defaut : 0). |
Champs de reponse
| Parametre | Taper | Description |
|---|---|---|
id | string | Identifiant unique du problème. À passer comme issueId aux endpoints de détail et de mise à jour. |
websiteId | string | Site web auquel le problème appartient. |
title | string | Court résumé du problème généré par l'IA. |
description | string | Explication générée par l'IA de ce qui dysfonctionne et de l'impact sur les visiteurs. |
severity | string | Niveau d'impact attribué par l'IA : low, medium, high ou critical. |
status | string | Statut de traitement : open, in_progress, resolved ou suspended. |
sessionsCount | number | Nombre de sessions analysées ayant rencontré ce problème. |
firstSeenAt | string | Première détection du problème dans un enregistrement. |
lastSeenAt | string | Enregistrement le plus récent dans lequel le problème est apparu. |
stepsToReplicate | array | Étapes de reproduction ordonnées, déduites des enregistrements où le problème s'est produit. |
sampleRecordingId | string | Enregistrement qui illustre le mieux le problème. |
externalTicketProvider / externalTicketKey / externalTicketUrl | string | null | Ticket lié dans un outil externe, ou null quand aucun ticket n'est lié. |
counts | object | Totaux de problèmes par statut (open, inProgress, resolved) pour le site web sélectionné, indépendamment de la fenêtre de pagination. |
Lister tous les problèmes
curl --request GET \
--url https://analytics.flowsery.com/analytics/api/v1/issues \
--header 'Authorization: Bearer <api-key>'Filtrer les problèmes critiques ouverts
curl --request GET \
--url "https://analytics.flowsery.com/analytics/api/v1/issues?status=open&severity=critical&search=checkout&sort=recency" \
--header 'Authorization: Bearer <api-key>'200
{
"status": "success",
"data": [
{
"id": "iss_64f1c2a9e8b4d90012ab34cd",
"websiteId": "flid_abc123",
"title": "Checkout button unresponsive on mobile Safari",
"description": "Tapping the checkout button produces no navigation or feedback. Visitors tap repeatedly and abandon the cart.",
"severity": "critical",
"status": "open",
"sessionsCount": 14,
"firstSeenAt": "2026-08-02T09:14:31.000Z",
"lastSeenAt": "2026-08-27T18:40:05.000Z",
"stepsToReplicate": [
"Open the store on an iPhone in Safari",
"Add any product to the cart",
"Tap the checkout button on the cart page"
],
"sampleRecordingId": "rec_9f8e7d6c5b4a",
"externalTicketProvider": "linear",
"externalTicketKey": "SHOP-142",
"externalTicketUrl": "https://linear.app/acme/issue/SHOP-142"
},
{
"id": "iss_64f1c2a9e8b4d90012ab34ce",
"websiteId": "flid_abc123",
"title": "Pricing table overflows on narrow viewports",
"description": "The pricing table renders outside the viewport below 375px, hiding the yearly plan column.",
"severity": "medium",
"status": "in_progress",
"sessionsCount": 6,
"firstSeenAt": "2026-08-10T12:03:12.000Z",
"lastSeenAt": "2026-08-25T07:55:48.000Z",
"stepsToReplicate": [
"Open /pricing on a viewport narrower than 375px",
"Scroll horizontally inside the pricing table"
],
"sampleRecordingId": "rec_1a2b3c4d5e6f",
"externalTicketProvider": null,
"externalTicketKey": null,
"externalTicketUrl": null
}
],
"counts": {
"open": 5,
"inProgress": 2,
"resolved": 11
},
"pagination": {
"limit": 100,
"offset": 0,
"total": 7
}
}