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

Suites API

List and read the test suites of a Qualflare project over the REST API, analyze a suite's coverage and save its score, with every parameter and field.

Last updated

The Suites API lets you list and read test suites, and analyze and save their coverage score, in a Qualflare project over REST at https://api.qualflare.com/api/v1/suites, authenticated with a project access token.

Base path/api/v1/suites and /api/v1/suite/{suiteSeq}
ReadsAny token. Token creator: Viewer+ · project (requires the Viewer role or higher in the project)
WritesSaving a coverage score: a token created with Allow writes. Token creator: Editor+ · project (requires the Editor role or higher in the project)
Pages20 suites per page, as items and paging
LimitsRate limits and request sizes
ErrorsErrors and status codes
CLIqf <identifier> suites list, qf <identifier> suite get <seq> (Suites commands)
MCPlist_test_suites, get_test_suite, analyze_suite_coverage, attach_coverage_score (MCP server reference)

The four endpoints, each with its own section below:

EndpointWhat it does
GET /api/v1/suitesList suites
GET /api/v1/suite/{suiteSeq}Get a suite
GET /api/v1/suite/{suiteSeq}/coverage-analysisAnalyze a suite's coverage
PUT /api/v1/suite/{suiteSeq}/coverage-scoreSave a coverage score

List suites

List suites returns one page of the project's test suites, searched and sorted as you ask.

GET /api/v1/suites

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

NameTypeDefaultRequiredDescription
pagequery, integer1NoPage number, 1 to 1,000
qquery, stringNoText to look for in suite names and descriptions, up to 255 characters
sortByquery, stringNoseq, name, priority, createdAt, updatedAt, caseCount, teamName or coverageScore
sortDirquery, booleanfalseNotrue sorts in descending order
curl -sS "https://api.qualflare.com/api/v1/suites?page=1" \
  -H "Authorization: Bearer $QF_TOKEN"

Returns 200: A page of suites: items and paging, 20 suites per page.

Get a suite

Get a suite returns one suite by its number.

GET /api/v1/suite/{suiteSeq}

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

NameTypeDefaultRequiredDescription
suiteSeqpath, integerYesThe suite number
curl -sS "https://api.qualflare.com/api/v1/suite/12" \
  -H "Authorization: Bearer $QF_TOKEN"

Returns 200: The suite.

{
  "seq": 12,
  "name": "Checkout",
  "description": "Cart, coupons and payment",
  "priority": "high",
  "automation": "automated",
  "testType": "playwright",
  "coverageScore": 82,
  "caseCount": 48,
  "teamSeq": 2,
  "teamName": "Payments",
  "isArchived": false,
  "createdAt": "2026-08-03T10:15:00Z",
  "updatedAt": "2026-10-28T14:02:41Z"
}
  • A number that isn't a suite of the project answers 404 with suite not found.

Analyze a suite's coverage

Analyze a suite's coverage scores the suite's test cases by test type, priority, quality and completeness, and returns the score with recommendations.

GET /api/v1/suite/{suiteSeq}/coverage-analysis

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

NameTypeDefaultRequiredDescription
suiteSeqpath, integerYesThe suite number
curl -sS "https://api.qualflare.com/api/v1/suite/12/coverage-analysis" \
  -H "Authorization: Bearer $QF_TOKEN"

Returns 200: The coverage analysis. Nothing is saved.

Save a coverage score

Save a coverage score stores a 0 to 100 coverage score on the suite.

PUT /api/v1/suite/{suiteSeq}/coverage-score

Needs a project access token created with Allow writes, whose creator has the Editor role or higher in the project.

NameTypeDefaultRequiredDescription
suiteSeqpath, integerYesThe suite number
coverageScorebody, integerYesThe score to save, 0 to 100; 0 is a valid score
reasonbody, stringNoWhy the score changed, up to 512 characters
curl -sS -X PUT "https://api.qualflare.com/api/v1/suite/12/coverage-score" \
  -H "Authorization: Bearer $QF_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"coverageScore": 82, "reason": "Checked after the release"}'

Returns 200: The updated suite.

  • coverageScore is required, 0 to 100 (0 is a valid score); reason is optional, up to 512 characters.
  • It is not counted against the coverage quota, and it is recorded in the suite's coverage history.

Suite fields

Every suite the Suites API returns has these fields, in list items and in Get a suite:

FieldTypeNotes
seqintegerThe suite number in the project
namestringThe suite name
descriptionstringEmpty when the suite has none
prioritystringlow, medium, high or critical
automationstringmanual or automated
testTypestringThe kind of test, or the framework that reported it: a value of testType in List a suite's cases
coverageScoreinteger0 to 100
caseCountintegerThe number of cases in the suite
teamSeq, teamNameinteger, stringThe owning team, or null
isArchivedbooleantrue for an archived suite
archivedAtstringWhen it was archived; left out unless archived
createdAt, updatedAtstringRFC 3339 timestamps

Coverage analysis fields

The answer of Analyze a suite's coverage has these fields:

FieldTypeNotes
suiteSeq, suiteNameinteger, stringThe suite
testTypestringThe suite's test type
totalCasesintegerThe number of cases scored
finalScoreintegerThe coverage score
breakdownobjectThe four parts of the score: testTypeScore, priorityScore, qualityScore and completenessScore
analysisSummarystringA summary written from the numbers
recommendationsarray of stringsNever null; empty when there is nothing to add
canAttachScorebooleanWhether your token may save the score
algorithmVersionstringThe version of the scoring that produced the numbers

CLI and MCP equivalents

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

RESTqf command and MCP tool
GET /api/v1/suitesqf <identifier> suites list; list_test_suites
GET /api/v1/suite/{suiteSeq}qf <identifier> suite get <seq>; get_test_suite
GET /api/v1/suite/{suiteSeq}/coverage-analysisNo qf command; analyze_suite_coverage
PUT /api/v1/suite/{suiteSeq}/coverage-scoreNo qf command; attach_coverage_score