Skip to content
The docs are now organized by product area. Old links still work. Report a broken link

Failure clusters API

List and read the failure clusters Qualflare groups from your uploaded results over the REST API, with severity and status filters and sample failures.

Last updated

The Failure clusters API lets you list and read the failure clusters of a Qualflare project over REST at https://api.qualflare.com/api/v1/clusters, authenticated with a project access token.

Base path/api/v1/clusters and /api/v1/cluster/{clusterId}. A cluster is addressed by its id, not a seq
ReadsAny token. Token creator: Viewer+ · project (requires the Viewer role or higher in the project). The API has no cluster writes
Pageslimit 1 to 100 clusters per page, 10 by default, as items and paging
LimitsRate limits and request sizes
ErrorsErrors and status codes
CLIqf <identifier> clusters list, qf <identifier> cluster get <id> (Clusters commands)
MCPlist_failure_clusters, get_failure_cluster (MCP server reference)
PlansWhich plans create clusters: Failure Clusters

The two endpoints, each with its own section below:

EndpointWhat it does
GET /api/v1/clustersList failure clusters
GET /api/v1/cluster/{clusterId}Get a failure cluster

List failure clusters

List failure clusters returns one page of the project's failure clusters, most failures first by default.

GET /api/v1/clusters

Needs a project access token whose creator has the Viewer role or higher in the project.

NameTypeDefaultRequiredDescription
limitquery, integer10NoClusters per page, 1 to 100
pagequery, integer1NoPage number, 1 to 1,000
severity[]query, stringNolow, medium, high or critical. Repeat it for more, up to 10
status[]query, stringNopending or analysed. Repeat it for both
qquery, stringNoText to look for in cluster labels, up to 255 characters
sortByquery, stringfailureCountNofailureCount, firstSeenAt, lastSeenAt, severity or label
sortDirquery, booleantrueNofalse sorts in ascending order
curl -sS -g "https://api.qualflare.com/api/v1/clusters?severity[]=high" \
  -H "Authorization: Bearer $QF_TOKEN"

Returns 200: A page of clusters: items and paging, most failures first by default.

  • Filter by severity[], status[] (pending or analysed) and q, a search in the label. The bracketed names can repeat, and the curl example passes -g so curl sends the brackets as they are.

Get a failure cluster

Get a failure cluster returns one cluster by its id and adds up to 10 of the cluster's failures in sampleFailures.

GET /api/v1/cluster/{clusterId}

Needs a project access token whose creator has the Viewer role or higher in the project.

NameTypeDefaultRequiredDescription
clusterIdpath, integerYesThe cluster id
curl -sS "https://api.qualflare.com/api/v1/cluster/15" \
  -H "Authorization: Bearer $QF_TOKEN"

Returns 200: The cluster, with up to 10 of its failures in sampleFailures.

{
  "id": 15,
  "label": "Refund requests time out in the payment service",
  "summary": "Refund tests fail after 30 seconds waiting for the payment service to answer.",
  "failureCount": 38,
  "severity": "critical",
  "status": "analysed",
  "firstSeenAt": "2026-10-19T07:55:10Z",
  "lastSeenAt": "2026-10-28T09:12:33Z",
  "rootCause": "The refund call waits on a lock the nightly settlement job holds.",
  "fixSuggestion": "Run the settlement job outside test hours, or give refunds their own lock.",
  "createdAt": "2026-10-19T08:01:47Z",
  "updatedAt": "2026-10-28T09:20:15Z",
  "sampleFailures": [
    {
      "caseRunId": 90412,
      "caseName": "Refund a paid order",
      "suiteName": "Payments",
      "errorText": "TimeoutError: waiting for /refunds to answer exceeded 30000 ms",
      "similarity": 0.94,
      "launchSeq": 88,
      "caseRunSeq": 1204,
      "suiteRunSeq": 310
    }
  ]
}
  • An id that isn't a cluster of the project answers 404 with cluster not found.

Cluster fields

Every cluster the Failure clusters API returns has these fields:

FieldTypeNotes
idintegerThe cluster id, which Get a failure cluster takes
labelstringThe cluster's name
summarystringA short description of the cluster
failureCountintegerThe failures in the cluster
severitystringlow, medium, high or critical
statusstringpending until the AI analysis has run, then analysed
firstSeenAt, lastSeenAtstringWhen its first and its latest failure were seen
rootCause, fixSuggestionstringThe analysis's root cause and suggested fix, or null
createdAt, updatedAtstringRFC 3339 timestamps
sampleFailuresarrayOn get only: up to 10 failures, with the fields below. Left out of list items

Sample failure fields

Each item of sampleFailures is one failed case result:

FieldTypeNotes
caseRunIdintegerThe case result's ID
caseName, suiteNamestringThe test case and its suite
errorTextstringThe error the test reported
similaritynumberHow close the failure is to the cluster
launchSeqintegerThe launch number
caseRunSeq, suiteRunSeqintegerThe numbers of the case result and of its suite run

CLI and MCP equivalents

The qf CLI and the MCP server run the same reads, so they return the same JSON:

RESTqf command and MCP tool
GET /api/v1/clustersqf <identifier> clusters list; list_failure_clusters
GET /api/v1/cluster/{clusterId}qf <identifier> cluster get <id>; get_failure_cluster