List your suites as a tree
const url = 'https://beta-api.plune.ai/v1/suites';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://beta-api.plune.ai/v1/suites \ --header 'Authorization: Bearer <token>'Roots at the top level, each with its children nested in position order and its caseCount (a folder sums its subtree). Only your project’s nodes.
Authorizations
Section titled “Authorizations ”Responses
Section titled “ Responses ”Your suite forest
object
A suite with its children nested — the recursive shape GET /v1/suites returns.
object
Absent on a root node. Always a folder.
Order among siblings — dense and 0-based; every write that places a node renumbers them.
Free text, up to 16 384 bytes of UTF-8. Absent when empty.
The project’s star on the node (#1255), shared by its members; absent when not starred.
The spec path this suite was filed from (an automated case’s specRef, normalised). Set by filing alone and never by hand; absent on nodes a person made.
Values of the project’s custom fields (#1764), field id → value. Absent while the suite has none.
object
Test cases in this suite; on a folder, the sum over its whole subtree.
Example
{ "suites": [ { "schemaVersion": 1, "id": "6f1c2b3a-0000-4000-8000-0000000000a1", "name": "checkout.spec.ts", "projectId": "u-shop::default", "kind": "suite", "position": 0, "description": "Cart and checkout flows of the web shop.", "createdAt": "2026-09-16T09:12:04.151Z", "updatedAt": "2026-09-16T09:12:04.151Z", "children": [], "caseCount": 1 } ]}No / invalid token or session