api-referenceGET
GET
https://analytics.flowsery.com/analytics/api/v1/issuesList the issues Flowsery's AI detected while analyzing session recordings, deduplicated across sessions and ranked by severity.
Bearer Token (workspace token or website API key)
Workspace Tokens Need a Website Selector
Workspace API tokens can access every website in the workspace. Pass either <code>websiteId</code> or <code>domain</code> so Flowsery knows which website to query or mutate. Website API keys are already scoped to one website, so the selector can be omitted.Website Selector
| Parameter | Type | Description |
|---|---|---|
websiteId | string | Website ID to use with a workspace API token. Omit when authenticating with a website API key. |
domain | string | Website domain to use with a workspace API token when websiteId is not provided. Omit when authenticating with a website API key. |
Suspended Issues Are Hidden by Default
The list excludes suspended issues unless you request them explicitly with <code>status=suspended</code>.Optional Parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by workflow status: open, in_progress, resolved, or suspended. Omit to receive every status except suspended. |
severity | string | Filter by severity: low, medium, high, or critical. |
search | string | Text search matched against issue titles and descriptions. Max 200 characters. |
sort | string | severity (default) orders the most severe issues first; recency orders by lastSeenAt, newest first. |
limit | number | Maximum issues to return (default: 100, max: 1000). |
offset | number | Rows to skip for pagination (min 0, default: 0). |
Response Fields
| Parameter | Type | Description |
|---|---|---|
id | string | Unique issue identifier. Pass it as issueId to the detail and update endpoints. |
websiteId | string | Website the issue belongs to. |
title | string | Short AI-generated summary of the problem. |
description | string | AI-generated explanation of what goes wrong and how it affects visitors. |
severity | string | AI-assigned impact rating: low, medium, high, or critical. |
status | string | Workflow status: open, in_progress, resolved, or suspended. |
sessionsCount | number | How many analyzed sessions hit this issue. |
firstSeenAt | string | When the issue was first detected in a recording. |
lastSeenAt | string | Most recent recording in which the issue appeared. |
stepsToReplicate | array | Ordered reproduction steps derived from the recordings where the issue occurred. |
sampleRecordingId | string | Recording that best demonstrates the issue. |
externalTicketProvider / externalTicketKey / externalTicketUrl | string | null | Linked ticket in an external tracker, or null when no ticket is linked. |
counts | object | Issue totals per status (open, inProgress, resolved) for the selected website, independent of the pagination window. |
List all issues
curl --request GET \
--url https://analytics.flowsery.com/analytics/api/v1/issues \
--header 'Authorization: Bearer <api-key>'Filter open critical issues
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
}
}