REST API reference

Test collections

Collections gather test cases that belong together across folders. A collection can be a fixed list or defined by rules that resolve dynamically.

List test collections

GET/api/v1/test_collections

Query parameters

filterstring
A FiltrQL expression, url-encoded. Combine with AND / OR and parentheses. See the Filtering page for the full operator list, or call /filter-reference for the live one.
status = 'PASSED' AND executedAt > now-7d
sortstring
Comma-separated field list. Prefix a field with a minus for descending order.
-createdAt,name
page[number]integer
Which page to return, starting at 1.
2
page[size]integer
Results per page. Defaults to 25, and the maximum is 100.
50
includestring
Comma-separated relationships to side-load into the response, saving a second request. Chains up to 3 deep.
requirement,folder
fields[type]string
Return only these attributes for the named resource type - a sparse fieldset. Cuts payload size sharply on wide entities.
fields[test_cases]=name,status

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned22

averageDurationnumber | null
collectionKeystring | null
collectionKeyNumericinteger | null
createdAtdate-time
createdByuuid | null
customFieldsany
defaultRuleAssigneeIduuid | null
deletedAtdate-time | null
Show the remaining 14
descriptionstring | null
filterIduuid | null
folderIduuid | null
iduuid
lastExecuteddate-time | null
namestring
occVersioninteger
organizationIduuid
passRatenumber | null
projectIduuid
purposestring
REGRESSIONSMOKEFUNCTIONALPERFORMANCESECURITYAPIUIINTEGRATIONCUSTOM
totalRunsinteger | null
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collections?page%5Bsize%5D=25" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collections",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "name": "Checkout rejects an expired card",
        "description": "Given a card past its expiry date, the payment is refused.",
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "averageDuration": 1,
        "collectionKey": "KAN-TC-42",
        "collectionKeyNumeric": 1,
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collections?page[number]=1",
    "next": "/api/v1/test_collections?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Create a test collection

POST/api/v1/test_collections

Needs a read-and-write token. A read-only token gets 403.

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Attributes you can send22

namestringrequired
organizationIduuidrequired
projectIduuidrequired
purposestringrequired
REGRESSIONSMOKEFUNCTIONALPERFORMANCESECURITYAPIUIINTEGRATIONCUSTOM
averageDurationnumber | null
collectionKeystring | null
collectionKeyNumericinteger | null
createdAtdate-time
createdByuuid | null
customFieldsany
defaultRuleAssigneeIduuid | null
deletedAtdate-time | null
descriptionstring | null
filterIduuid | null
folderIduuid | null
iduuid
lastExecuteddate-time | null
occVersioninteger
passRatenumber | null
totalRunsinteger | null
updatedAtdate-time
updatedByuuid | null

Attributes returned22

averageDurationnumber | null
collectionKeystring | null
collectionKeyNumericinteger | null
createdAtdate-time
createdByuuid | null
customFieldsany
defaultRuleAssigneeIduuid | null
deletedAtdate-time | null
Show the remaining 14
descriptionstring | null
filterIduuid | null
folderIduuid | null
iduuid
lastExecuteddate-time | null
namestring
occVersioninteger
organizationIduuid
passRatenumber | null
projectIduuid
purposestring
REGRESSIONSMOKEFUNCTIONALPERFORMANCESECURITYAPIUIINTEGRATIONCUSTOM
totalRunsinteger | null
updatedAtdate-time
updatedByuuid | null

Responses

  • 201Created.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collections" \
  -X POST \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "test_collections",
    "attributes": {
      "name": "Checkout rejects an expired card",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "purpose": "REGRESSION",
      "description": "Given a card past its expiry date, the payment is refused.",
      "createdAt": "2026-08-18T09:30:00Z"
    }
  }
}'
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collections",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "name": "Checkout rejects an expired card",
        "description": "Given a card past its expiry date, the payment is refused.",
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "averageDuration": 1,
        "collectionKey": "KAN-TC-42",
        "collectionKeyNumeric": 1,
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collections?page[number]=1",
    "next": "/api/v1/test_collections?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Get a test collection

GET/api/v1/test_collections/{id}

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned22

averageDurationnumber | null
collectionKeystring | null
collectionKeyNumericinteger | null
createdAtdate-time
createdByuuid | null
customFieldsany
defaultRuleAssigneeIduuid | null
deletedAtdate-time | null
Show the remaining 14
descriptionstring | null
filterIduuid | null
folderIduuid | null
iduuid
lastExecuteddate-time | null
namestring
occVersioninteger
organizationIduuid
passRatenumber | null
projectIduuid
purposestring
REGRESSIONSMOKEFUNCTIONALPERFORMANCESECURITYAPIUIINTEGRATIONCUSTOM
totalRunsinteger | null
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collections/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collections",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "name": "Checkout rejects an expired card",
      "description": "Given a card past its expiry date, the payment is refused.",
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "averageDuration": 1,
      "collectionKey": "KAN-TC-42",
      "collectionKeyNumeric": 1,
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Update a test collection

PATCH/api/v1/test_collections/{id}

Needs a read-and-write token. A read-only token gets 403.

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Attributes you can send22

averageDurationnumber | null
collectionKeystring | null
collectionKeyNumericinteger | null
createdAtdate-time
createdByuuid | null
customFieldsany
defaultRuleAssigneeIduuid | null
deletedAtdate-time | null
descriptionstring | null
filterIduuid | null
folderIduuid | null
iduuid
lastExecuteddate-time | null
namestring
occVersioninteger
organizationIduuid
passRatenumber | null
projectIduuid
purposestring
REGRESSIONSMOKEFUNCTIONALPERFORMANCESECURITYAPIUIINTEGRATIONCUSTOM
totalRunsinteger | null
updatedAtdate-time
updatedByuuid | null

Attributes returned22

averageDurationnumber | null
collectionKeystring | null
collectionKeyNumericinteger | null
createdAtdate-time
createdByuuid | null
customFieldsany
defaultRuleAssigneeIduuid | null
deletedAtdate-time | null
Show the remaining 14
descriptionstring | null
filterIduuid | null
folderIduuid | null
iduuid
lastExecuteddate-time | null
namestring
occVersioninteger
organizationIduuid
passRatenumber | null
projectIduuid
purposestring
REGRESSIONSMOKEFUNCTIONALPERFORMANCESECURITYAPIUIINTEGRATIONCUSTOM
totalRunsinteger | null
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collections/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -X PATCH \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "test_collections",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "name": "Checkout rejects an expired card",
      "description": "Given a card past its expiry date, the payment is refused.",
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "averageDuration": 1,
      "collectionKey": "KAN-TC-42"
    }
  }
}'
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collections",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "name": "Checkout rejects an expired card",
      "description": "Given a card past its expiry date, the payment is refused.",
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "averageDuration": 1,
      "collectionKey": "KAN-TC-42",
      "collectionKeyNumeric": 1,
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Delete a test collection

DEL/api/v1/test_collections/{id}

Needs a read-and-write token. A read-only token gets 403.

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collections/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -X DELETE \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collections",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {}
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Aggregate test collections

GET/api/v1/test_collections/aggregate

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collections/aggregate" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "meta": {
    "count": 128
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Describe the test collection schema

GET/api/v1/test_collections/schema

Query parameters

filterstring
A FiltrQL expression, url-encoded. Combine with AND / OR and parentheses. See the Filtering page for the full operator list, or call /filter-reference for the live one.
status = 'PASSED' AND executedAt > now-7d
sortstring
Comma-separated field list. Prefix a field with a minus for descending order.
-createdAt,name
page[number]integer
Which page to return, starting at 1.
2
page[size]integer
Results per page. Defaults to 25, and the maximum is 100.
50
includestring
Comma-separated relationships to side-load into the response, saving a second request. Chains up to 3 deep.
requirement,folder
fields[type]string
Return only these attributes for the named resource type - a sparse fieldset. Cuts payload size sharply on wide entities.
fields[test_cases]=name,status

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collections/schema?page%5Bsize%5D=25" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collections",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {}
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collections?page[number]=1",
    "next": "/api/v1/test_collections?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

List test collection folders

GET/api/v1/test_collection_folders

Query parameters

filterstring
A FiltrQL expression, url-encoded. Combine with AND / OR and parentheses. See the Filtering page for the full operator list, or call /filter-reference for the live one.
status = 'PASSED' AND executedAt > now-7d
sortstring
Comma-separated field list. Prefix a field with a minus for descending order.
-createdAt,name
page[number]integer
Which page to return, starting at 1.
2
page[size]integer
Results per page. Defaults to 25, and the maximum is 100.
50
includestring
Comma-separated relationships to side-load into the response, saving a second request. Chains up to 3 deep.
requirement,folder
fields[type]string
Return only these attributes for the named resource type - a sparse fieldset. Cuts payload size sharply on wide entities.
fields[test_cases]=name,status

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned11

createdAtdate-time
createdByuuid | null
descriptionstring | null
iduuid
namestring
organizationIduuid
parentFolderIduuid | null
projectIduuid
Show the remaining 3
rankinteger
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_folders?page%5Bsize%5D=25" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collection_folders",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "name": "Checkout rejects an expired card",
        "description": "Given a card past its expiry date, the payment is refused.",
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "parentFolderId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collection_folders?page[number]=1",
    "next": "/api/v1/test_collection_folders?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Create a test collection folder

POST/api/v1/test_collection_folders

Needs a read-and-write token. A read-only token gets 403.

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Attributes you can send11

namestringrequired
organizationIduuidrequired
projectIduuidrequired
rankintegerrequired
createdAtdate-time
createdByuuid | null
descriptionstring | null
iduuid
parentFolderIduuid | null
updatedAtdate-time
updatedByuuid | null

Attributes returned11

createdAtdate-time
createdByuuid | null
descriptionstring | null
iduuid
namestring
organizationIduuid
parentFolderIduuid | null
projectIduuid
Show the remaining 3
rankinteger
updatedAtdate-time
updatedByuuid | null

Responses

  • 201Created.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_folders" \
  -X POST \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "test_collection_folders",
    "attributes": {
      "name": "Checkout rejects an expired card",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "rank": 1,
      "description": "Given a card past its expiry date, the payment is refused.",
      "createdAt": "2026-08-18T09:30:00Z"
    }
  }
}'
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collection_folders",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "name": "Checkout rejects an expired card",
        "description": "Given a card past its expiry date, the payment is refused.",
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "parentFolderId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collection_folders?page[number]=1",
    "next": "/api/v1/test_collection_folders?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Get a test collection folder

GET/api/v1/test_collection_folders/{id}

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned11

createdAtdate-time
createdByuuid | null
descriptionstring | null
iduuid
namestring
organizationIduuid
parentFolderIduuid | null
projectIduuid
Show the remaining 3
rankinteger
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_folders/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_folders",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "name": "Checkout rejects an expired card",
      "description": "Given a card past its expiry date, the payment is refused.",
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "parentFolderId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Update a test collection folder

PATCH/api/v1/test_collection_folders/{id}

Needs a read-and-write token. A read-only token gets 403.

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Attributes you can send11

createdAtdate-time
createdByuuid | null
descriptionstring | null
iduuid
namestring
organizationIduuid
parentFolderIduuid | null
projectIduuid
rankinteger
updatedAtdate-time
updatedByuuid | null

Attributes returned11

createdAtdate-time
createdByuuid | null
descriptionstring | null
iduuid
namestring
organizationIduuid
parentFolderIduuid | null
projectIduuid
Show the remaining 3
rankinteger
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_folders/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -X PATCH \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "test_collection_folders",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "name": "Checkout rejects an expired card",
      "description": "Given a card past its expiry date, the payment is refused.",
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}'
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_folders",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "name": "Checkout rejects an expired card",
      "description": "Given a card past its expiry date, the payment is refused.",
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "parentFolderId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Delete a test collection folder

DEL/api/v1/test_collection_folders/{id}

Needs a read-and-write token. A read-only token gets 403.

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_folders/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -X DELETE \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_folders",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {}
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Aggregate test collection folders

GET/api/v1/test_collection_folders/aggregate

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_folders/aggregate" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "meta": {
    "count": 128
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

List test collection test cases

GET/api/v1/test_collection_test_cases

Query parameters

filterstring
A FiltrQL expression, url-encoded. Combine with AND / OR and parentheses. See the Filtering page for the full operator list, or call /filter-reference for the live one.
status = 'PASSED' AND executedAt > now-7d
sortstring
Comma-separated field list. Prefix a field with a minus for descending order.
-createdAt,name
page[number]integer
Which page to return, starting at 1.
2
page[size]integer
Results per page. Defaults to 25, and the maximum is 100.
50
includestring
Comma-separated relationships to side-load into the response, saving a second request. Chains up to 3 deep.
requirement,folder
fields[type]string
Return only these attributes for the named resource type - a sparse fieldset. Cuts payload size sharply on wide entities.
fields[test_cases]=name,status

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned11

collectionIduuid
createdAtdate-time
createdByuuid | null
defaultAssigneeIduuid | null
iduuid
organizationIduuid
positionOrderinteger
projectIduuid
Show the remaining 3
testCaseIduuid
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_test_cases?page%5Bsize%5D=25" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collection_test_cases",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "defaultAssigneeId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "positionOrder": 1,
        "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collection_test_cases?page[number]=1",
    "next": "/api/v1/test_collection_test_cases?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Create a test collection test case

POST/api/v1/test_collection_test_cases

Needs a read-and-write token. A read-only token gets 403.

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Attributes you can send11

collectionIduuidrequired
organizationIduuidrequired
projectIduuidrequired
testCaseIduuidrequired
createdAtdate-time
createdByuuid | null
defaultAssigneeIduuid | null
iduuid
positionOrderinteger
updatedAtdate-time
updatedByuuid | null

Attributes returned11

collectionIduuid
createdAtdate-time
createdByuuid | null
defaultAssigneeIduuid | null
iduuid
organizationIduuid
positionOrderinteger
projectIduuid
Show the remaining 3
testCaseIduuid
updatedAtdate-time
updatedByuuid | null

Responses

  • 201Created.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_test_cases" \
  -X POST \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "test_collection_test_cases",
    "attributes": {
      "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "testCaseId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z"
    }
  }
}'
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collection_test_cases",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "defaultAssigneeId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "positionOrder": 1,
        "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collection_test_cases?page[number]=1",
    "next": "/api/v1/test_collection_test_cases?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Get a test collection test case

GET/api/v1/test_collection_test_cases/{id}

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned11

collectionIduuid
createdAtdate-time
createdByuuid | null
defaultAssigneeIduuid | null
iduuid
organizationIduuid
positionOrderinteger
projectIduuid
Show the remaining 3
testCaseIduuid
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_test_cases/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_test_cases",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "defaultAssigneeId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "positionOrder": 1,
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Update a test collection test case

PATCH/api/v1/test_collection_test_cases/{id}

Needs a read-and-write token. A read-only token gets 403.

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Attributes you can send11

collectionIduuid
createdAtdate-time
createdByuuid | null
defaultAssigneeIduuid | null
iduuid
organizationIduuid
positionOrderinteger
projectIduuid
testCaseIduuid
updatedAtdate-time
updatedByuuid | null

Attributes returned11

collectionIduuid
createdAtdate-time
createdByuuid | null
defaultAssigneeIduuid | null
iduuid
organizationIduuid
positionOrderinteger
projectIduuid
Show the remaining 3
testCaseIduuid
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_test_cases/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -X PATCH \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "test_collection_test_cases",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "defaultAssigneeId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}'
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_test_cases",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "defaultAssigneeId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "positionOrder": 1,
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Delete a test collection test case

DEL/api/v1/test_collection_test_cases/{id}

Needs a read-and-write token. A read-only token gets 403.

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_test_cases/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -X DELETE \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_test_cases",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {}
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Aggregate test collection test cases

GET/api/v1/test_collection_test_cases/aggregate

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_test_cases/aggregate" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "meta": {
    "count": 128
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

List test collection requirements

GET/api/v1/test_collection_requirements

Query parameters

filterstring
A FiltrQL expression, url-encoded. Combine with AND / OR and parentheses. See the Filtering page for the full operator list, or call /filter-reference for the live one.
status = 'PASSED' AND executedAt > now-7d
sortstring
Comma-separated field list. Prefix a field with a minus for descending order.
-createdAt,name
page[number]integer
Which page to return, starting at 1.
2
page[size]integer
Results per page. Defaults to 25, and the maximum is 100.
50
includestring
Comma-separated relationships to side-load into the response, saving a second request. Chains up to 3 deep.
requirement,folder
fields[type]string
Return only these attributes for the named resource type - a sparse fieldset. Cuts payload size sharply on wide entities.
fields[test_cases]=name,status

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned10

collectionIduuid
createdAtdate-time
createdByuuid | null
iduuid
organizationIduuid
positionOrderinteger
projectIduuid
requirementIduuid
Show the remaining 2
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_requirements?page%5Bsize%5D=25" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collection_requirements",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "positionOrder": 1,
        "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "requirementId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collection_requirements?page[number]=1",
    "next": "/api/v1/test_collection_requirements?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Create a test collection requirement

POST/api/v1/test_collection_requirements

Needs a read-and-write token. A read-only token gets 403.

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Attributes you can send10

collectionIduuidrequired
organizationIduuidrequired
projectIduuidrequired
requirementIduuidrequired
createdAtdate-time
createdByuuid | null
iduuid
positionOrderinteger
updatedAtdate-time
updatedByuuid | null

Attributes returned10

collectionIduuid
createdAtdate-time
createdByuuid | null
iduuid
organizationIduuid
positionOrderinteger
projectIduuid
requirementIduuid
Show the remaining 2
updatedAtdate-time
updatedByuuid | null

Responses

  • 201Created.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_requirements" \
  -X POST \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "test_collection_requirements",
    "attributes": {
      "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "requirementId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z"
    }
  }
}'
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collection_requirements",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "positionOrder": 1,
        "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "requirementId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collection_requirements?page[number]=1",
    "next": "/api/v1/test_collection_requirements?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Get a test collection requirement

GET/api/v1/test_collection_requirements/{id}

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned10

collectionIduuid
createdAtdate-time
createdByuuid | null
iduuid
organizationIduuid
positionOrderinteger
projectIduuid
requirementIduuid
Show the remaining 2
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_requirements/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_requirements",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "positionOrder": 1,
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "requirementId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Update a test collection requirement

PATCH/api/v1/test_collection_requirements/{id}

Needs a read-and-write token. A read-only token gets 403.

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Attributes you can send10

collectionIduuid
createdAtdate-time
createdByuuid | null
iduuid
organizationIduuid
positionOrderinteger
projectIduuid
requirementIduuid
updatedAtdate-time
updatedByuuid | null

Attributes returned10

collectionIduuid
createdAtdate-time
createdByuuid | null
iduuid
organizationIduuid
positionOrderinteger
projectIduuid
requirementIduuid
Show the remaining 2
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_requirements/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -X PATCH \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
  "data": {
    "type": "test_collection_requirements",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "positionOrder": 1
    }
  }
}'
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_requirements",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "positionOrder": 1,
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "requirementId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Delete a test collection requirement

DEL/api/v1/test_collection_requirements/{id}

Needs a read-and-write token. A read-only token gets 403.

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json
Content-Typestringrequired
Must be application/vnd.api+json on any request with a body. Any other value returns 415 Unsupported Media Type.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_requirements/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -X DELETE \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_requirements",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {}
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Aggregate test collection requirements

GET/api/v1/test_collection_requirements/aggregate

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_requirements/aggregate" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "meta": {
    "count": 128
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

List test collection rules

GET/api/v1/test_collection_rules

Query parameters

filterstring
A FiltrQL expression, url-encoded. Combine with AND / OR and parentheses. See the Filtering page for the full operator list, or call /filter-reference for the live one.
status = 'PASSED' AND executedAt > now-7d
sortstring
Comma-separated field list. Prefix a field with a minus for descending order.
-createdAt,name
page[number]integer
Which page to return, starting at 1.
2
page[size]integer
Results per page. Defaults to 25, and the maximum is 100.
50
includestring
Comma-separated relationships to side-load into the response, saving a second request. Chains up to 3 deep.
requirement,folder
fields[type]string
Return only these attributes for the named resource type - a sparse fieldset. Cuts payload size sharply on wide entities.
fields[test_cases]=name,status

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned19

collectionIduuid
conditionTypestring | null
FOLDERFIELD_FILTER
createdAtdate-time
createdByuuid | null
fieldNamestring | null
fieldOperatorstring | null
EQUALSNOT_EQUALSINNOT_INGREATER_THANLESS_THANGREATER_EQUALLESS_EQUALCONTAINSNOT_CONTAINSSTARTS_WITHENDS_WITHIS_NULLIS_NOT_NULL
fieldValuestring | null
folderIduuid | null
Show the remaining 11
iduuid
includeSubfoldersboolean | null
isActiveboolean | null
logicalOperatorstring
ANDOR
organizationIduuid
parentRuleIduuid | null
positionOrderinteger
projectIduuid
ruleTypestring
CONDITIONGROUP
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_rules?page%5Bsize%5D=25" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collection_rules",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "conditionType": "FOLDER",
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "fieldName": "string",
        "fieldOperator": "EQUALS",
        "fieldValue": "string"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collection_rules?page[number]=1",
    "next": "/api/v1/test_collection_rules?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Get a test collection rule

GET/api/v1/test_collection_rules/{id}

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned19

collectionIduuid
conditionTypestring | null
FOLDERFIELD_FILTER
createdAtdate-time
createdByuuid | null
fieldNamestring | null
fieldOperatorstring | null
EQUALSNOT_EQUALSINNOT_INGREATER_THANLESS_THANGREATER_EQUALLESS_EQUALCONTAINSNOT_CONTAINSSTARTS_WITHENDS_WITHIS_NULLIS_NOT_NULL
fieldValuestring | null
folderIduuid | null
Show the remaining 11
iduuid
includeSubfoldersboolean | null
isActiveboolean | null
logicalOperatorstring
ANDOR
organizationIduuid
parentRuleIduuid | null
positionOrderinteger
projectIduuid
ruleTypestring
CONDITIONGROUP
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_rules/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_rules",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "conditionType": "FOLDER",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "fieldName": "string",
      "fieldOperator": "EQUALS",
      "fieldValue": "string"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Aggregate test collection rules

GET/api/v1/test_collection_rules/aggregate

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_rules/aggregate" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "meta": {
    "count": 128
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

List test collection tags

GET/api/v1/test_collection_tags

Query parameters

filterstring
A FiltrQL expression, url-encoded. Combine with AND / OR and parentheses. See the Filtering page for the full operator list, or call /filter-reference for the live one.
status = 'PASSED' AND executedAt > now-7d
sortstring
Comma-separated field list. Prefix a field with a minus for descending order.
-createdAt,name
page[number]integer
Which page to return, starting at 1.
2
page[size]integer
Results per page. Defaults to 25, and the maximum is 100.
50
includestring
Comma-separated relationships to side-load into the response, saving a second request. Chains up to 3 deep.
requirement,folder
fields[type]string
Return only these attributes for the named resource type - a sparse fieldset. Cuts payload size sharply on wide entities.
fields[test_cases]=name,status

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned9

collectionIduuid
createdAtdate-time
createdByuuid | null
iduuid
organizationIduuid
projectIduuid
tagIduuid
updatedAtdate-time
Show the remaining 1
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_tags?page%5Bsize%5D=25" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "test_collection_tags",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "tagId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "updatedBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/test_collection_tags?page[number]=1",
    "next": "/api/v1/test_collection_tags?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Get a test collection tag

GET/api/v1/test_collection_tags/{id}

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned9

collectionIduuid
createdAtdate-time
createdByuuid | null
iduuid
organizationIduuid
projectIduuid
tagIduuid
updatedAtdate-time
Show the remaining 1
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_tags/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "test_collection_tags",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "collectionId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "tagId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "updatedBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Aggregate test collection tags

GET/api/v1/test_collection_tags/aggregate

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/test_collection_tags/aggregate" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "meta": {
    "count": 128
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

List collection tags

GET/api/v1/collection_tags

Query parameters

filterstring
A FiltrQL expression, url-encoded. Combine with AND / OR and parentheses. See the Filtering page for the full operator list, or call /filter-reference for the live one.
status = 'PASSED' AND executedAt > now-7d
sortstring
Comma-separated field list. Prefix a field with a minus for descending order.
-createdAt,name
page[number]integer
Which page to return, starting at 1.
2
page[size]integer
Results per page. Defaults to 25, and the maximum is 100.
50
includestring
Comma-separated relationships to side-load into the response, saving a second request. Chains up to 3 deep.
requirement,folder
fields[type]string
Return only these attributes for the named resource type - a sparse fieldset. Cuts payload size sharply on wide entities.
fields[test_cases]=name,status

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned8

createdAtdate-time
createdByuuid | null
iduuid
organizationIduuid
projectIduuid
tagNamestring
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/collection_tags?page%5Bsize%5D=25" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": [
    {
      "type": "collection_tags",
      "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "attributes": {
        "createdAt": "2026-08-18T09:30:00Z",
        "updatedAt": "2026-08-18T09:30:00Z",
        "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
        "tagName": "string",
        "updatedBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
      }
    }
  ],
  "meta": {
    "totalCount": 128
  },
  "links": {
    "first": "/api/v1/collection_tags?page[number]=1",
    "next": "/api/v1/collection_tags?page[number]=2"
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Get a collection tag

GET/api/v1/collection_tags/{id}

Path parameters

idstringrequired
The resource id (a UUID).

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Attributes returned8

createdAtdate-time
createdByuuid | null
iduuid
organizationIduuid
projectIduuid
tagNamestring
updatedAtdate-time
updatedByuuid | null

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/collection_tags/3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "data": {
    "type": "collection_tags",
    "id": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
    "attributes": {
      "createdAt": "2026-08-18T09:30:00Z",
      "updatedAt": "2026-08-18T09:30:00Z",
      "createdBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "organizationId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "projectId": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33",
      "tagName": "string",
      "updatedBy": "3f2b9c14-8d5e-4a71-9f60-2c1e7b4a8d33"
    }
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Aggregate collection tags

GET/api/v1/collection_tags/aggregate

Headers

Authorizationstringrequired
Your API token as a bearer credential.
Bearer bst_pat_YOUR_TOKEN_HERE
Acceptstringrequired
Must be application/vnd.api+json. Any other value returns 406 Not Acceptable.
application/vnd.api+json

Responses

  • 200OK.
  • 403The token is missing, expired, revoked, aimed at another Space, or lacks write access.
  • 404No such resource, or it is outside the Space your token reaches.
  • 406The Accept header did not include application/vnd.api+json.
  • 429Rate limit exceeded: 100 requests a minute per token, shared with MCP.
Request

curl

curl "https://prod-eu.getbestest.com/api/v1/collection_tags/aggregate" \
  -H "Authorization: Bearer bst_pat_YOUR_TOKEN_HERE" \
  -H "Accept: application/vnd.api+json"
Response

application/vnd.api+json

{
  "meta": {
    "count": 128
  }
}
Show an error response
Error

any 4xx

{
  "errors": [
    {
      "status": "403",
      "title": "Forbidden",
      "code": "FORBIDDEN",
      "detail": "Access denied.",
      "source": {
        "pointer": "/data"
      }
    }
  ]
}

Relationship endpoints

JSON:API exposes each relationship at its own URL. They take the same headers and return the same envelope as everything above, so they are listed rather than documented one by one. In most cases ?include= on the parent request is the better tool: one round trip instead of two.

Show all 85
  • GET/api/v1/test_collections/{id}/defaultRuleAssigneeUser
  • GET/api/v1/test_collections/{id}/fkTestCollectionsCreatedByUser
  • GET/api/v1/test_collections/{id}/fkTestCollectionsUpdatedByUser
  • GET/api/v1/test_collections/{id}/organization
  • GET/api/v1/test_collections/{id}/project
  • GET/api/v1/test_collections/{id}/savedFilter
  • GET/api/v1/test_collections/{id}/testCollectionFolder
  • POST/api/v1/test_collections/{id}/actions/restore
  • GET/api/v1/test_collections/{id}/relationships/defaultRuleAssigneeUser
  • GET/api/v1/test_collections/{id}/relationships/fkTestCollectionsCreatedByUser
  • GET/api/v1/test_collections/{id}/relationships/fkTestCollectionsUpdatedByUser
  • GET/api/v1/test_collections/{id}/relationships/organization
  • GET/api/v1/test_collections/{id}/relationships/project
  • GET/api/v1/test_collections/{id}/relationships/savedFilter
  • GET/api/v1/test_collections/{id}/relationships/testCollectionFolder
  • GET/api/v1/test_collection_folders/{id}/fkTestCollectionFoldersCreatedByUser
  • GET/api/v1/test_collection_folders/{id}/fkTestCollectionFoldersUpdatedByUser
  • GET/api/v1/test_collection_folders/{id}/organization
  • GET/api/v1/test_collection_folders/{id}/project
  • GET/api/v1/test_collection_folders/{id}/testCollectionFolder
  • GET/api/v1/test_collection_folders/{id}/relationships/fkTestCollectionFoldersCreatedByUser
  • GET/api/v1/test_collection_folders/{id}/relationships/fkTestCollectionFoldersUpdatedByUser
  • GET/api/v1/test_collection_folders/{id}/relationships/organization
  • GET/api/v1/test_collection_folders/{id}/relationships/project
  • GET/api/v1/test_collection_folders/{id}/relationships/testCollectionFolder
  • GET/api/v1/test_collection_test_cases/{id}/defaultAssigneeUser
  • GET/api/v1/test_collection_test_cases/{id}/fkCollectionTestCasesCreatedByUser
  • GET/api/v1/test_collection_test_cases/{id}/fkCollectionTestCasesUpdatedByUser
  • GET/api/v1/test_collection_test_cases/{id}/organization
  • GET/api/v1/test_collection_test_cases/{id}/project
  • GET/api/v1/test_collection_test_cases/{id}/testCase
  • GET/api/v1/test_collection_test_cases/{id}/testCollection
  • GET/api/v1/test_collection_test_cases/{id}/relationships/defaultAssigneeUser
  • GET/api/v1/test_collection_test_cases/{id}/relationships/fkCollectionTestCasesCreatedByUser
  • GET/api/v1/test_collection_test_cases/{id}/relationships/fkCollectionTestCasesUpdatedByUser
  • GET/api/v1/test_collection_test_cases/{id}/relationships/organization
  • GET/api/v1/test_collection_test_cases/{id}/relationships/project
  • GET/api/v1/test_collection_test_cases/{id}/relationships/testCase
  • GET/api/v1/test_collection_test_cases/{id}/relationships/testCollection
  • GET/api/v1/test_collection_requirements/{id}/fkCollectionRequirementsCreatedByUser
  • GET/api/v1/test_collection_requirements/{id}/fkCollectionRequirementsUpdatedByUser
  • GET/api/v1/test_collection_requirements/{id}/organization
  • GET/api/v1/test_collection_requirements/{id}/project
  • GET/api/v1/test_collection_requirements/{id}/requirement
  • GET/api/v1/test_collection_requirements/{id}/testCollection
  • GET/api/v1/test_collection_requirements/{id}/relationships/fkCollectionRequirementsCreatedByUser
  • GET/api/v1/test_collection_requirements/{id}/relationships/fkCollectionRequirementsUpdatedByUser
  • GET/api/v1/test_collection_requirements/{id}/relationships/organization
  • GET/api/v1/test_collection_requirements/{id}/relationships/project
  • GET/api/v1/test_collection_requirements/{id}/relationships/requirement
  • GET/api/v1/test_collection_requirements/{id}/relationships/testCollection
  • GET/api/v1/test_collection_rules/{id}/fkTestCollectionRulesCreatedByUser
  • GET/api/v1/test_collection_rules/{id}/fkTestCollectionRulesUpdatedByUser
  • GET/api/v1/test_collection_rules/{id}/organization
  • GET/api/v1/test_collection_rules/{id}/project
  • GET/api/v1/test_collection_rules/{id}/testCaseFolder
  • GET/api/v1/test_collection_rules/{id}/testCollection
  • GET/api/v1/test_collection_rules/{id}/testCollectionRule
  • GET/api/v1/test_collection_rules/{id}/relationships/fkTestCollectionRulesCreatedByUser
  • GET/api/v1/test_collection_rules/{id}/relationships/fkTestCollectionRulesUpdatedByUser
  • GET/api/v1/test_collection_rules/{id}/relationships/organization
  • GET/api/v1/test_collection_rules/{id}/relationships/project
  • GET/api/v1/test_collection_rules/{id}/relationships/testCaseFolder
  • GET/api/v1/test_collection_rules/{id}/relationships/testCollection
  • GET/api/v1/test_collection_rules/{id}/relationships/testCollectionRule
  • GET/api/v1/test_collection_tags/{id}/collectionTag
  • GET/api/v1/test_collection_tags/{id}/fkTestCollectionTagsCreatedByUser
  • GET/api/v1/test_collection_tags/{id}/fkTestCollectionTagsUpdatedByUser
  • GET/api/v1/test_collection_tags/{id}/organization
  • GET/api/v1/test_collection_tags/{id}/project
  • GET/api/v1/test_collection_tags/{id}/testCollection
  • GET/api/v1/test_collection_tags/{id}/relationships/collectionTag
  • GET/api/v1/test_collection_tags/{id}/relationships/fkTestCollectionTagsCreatedByUser
  • GET/api/v1/test_collection_tags/{id}/relationships/fkTestCollectionTagsUpdatedByUser
  • GET/api/v1/test_collection_tags/{id}/relationships/organization
  • GET/api/v1/test_collection_tags/{id}/relationships/project
  • GET/api/v1/test_collection_tags/{id}/relationships/testCollection
  • GET/api/v1/collection_tags/{id}/fkCollectionTagsCreatedByUser
  • GET/api/v1/collection_tags/{id}/fkCollectionTagsUpdatedByUser
  • GET/api/v1/collection_tags/{id}/organization
  • GET/api/v1/collection_tags/{id}/project
  • GET/api/v1/collection_tags/{id}/relationships/fkCollectionTagsCreatedByUser
  • GET/api/v1/collection_tags/{id}/relationships/fkCollectionTagsUpdatedByUser
  • GET/api/v1/collection_tags/{id}/relationships/organization
  • GET/api/v1/collection_tags/{id}/relationships/project