Get list of defects
GET
/defectsGet list of defects
Example
Section titled “Example”Use resource IDs from your own project. Keep the API token in your server or CI environment.
import { createConfiguration, DefectsApi } from '@testcollab/sdk';
const config = createConfiguration(process.env.TESTCOLLAB_TOKEN!);const api = new DefectsApi(config);
const result = await api.getDefects({ "project": 123});console.log(result);curl --request GET \ "https://api.testcollab.io/defects?token=$TESTCOLLAB_TOKEN&project=123"Parameters
Section titled “Parameters”| Name | Location | Type | Required | Description |
|---|---|---|---|---|
project |
query | number | Yes | Project ID |
_limit |
query | integer | No | Limit the size of the returned results |
_start |
query | integer | No | Skip a specific number of entries (for pagination) |
_sort |
query | string | No | Sort according to a specific field. |
_filter |
query | string | No | Stringified filter object (the filtering guide) |
testplan |
query | number | No | Test Plan ID |
Response
Section titled “Response”200 — List of defects
| Field | Type | Required | Description |
|---|---|---|---|
[].id |
number | Yes | — |
[].project |
number | Yes | — |
[].external_id |
string | Yes | — |
[].title |
string | Yes | — |
[].user_comment |
string | No | — |
[].defect_url |
string | No | — |
[].defect_status |
string | No | — |
[].testcase |
Test Case | No | — |
[].testcase.id |
number | Yes | — |
[].testcase.display_number |
number | No | Per-company human-readable business number (shown as TC-204). Distinct from the internal id. |
[].testcase.title |
string | Yes | — |
[].testcase.suite |
Suite | No | — |
[].testcase.suite.id |
number | Yes | — |
[].testcase.suite.title |
string | Yes | — |
[].testcase.suite.description |
string | No | — |
[].testcase.suite.parent_id |
number | No | — |
[].testcase.suite.order |
number | No | — |
[].testcase.suite.created_by |
number | No | — |
[].testcase.suite.is_bdd_managed |
boolean | No | True when the suite is managed by BDD sync from a feature file in Git. |
[].testcase.suite.is_reference |
boolean | No | Will be true only for links |
[].testcase.suite.source_id |
number | No | Only for links - source entity ID |
[].testcase.suite.source_project |
number | No | Only for links - source Project ID |
[].testcase.suite.is_main_link |
boolean | No | Will be true only for top level link suite |
[].testcase.description |
string | Yes | Test case description (generated by rich text editor) |
[].testcase.steps |
Step Collection | No | — |
[].testcase.steps[].step |
string | Yes | (can contain HTML) |
[].testcase.steps[].expected_result |
string | Yes | (can contain HTML) |
[].testcase.steps[].reusable_step_id |
number | Yes | Reusable Step ID |
[].testcase.steps_parsed |
Step Parsed Collection | No | — |
[].testcase.steps_parsed[].step |
string | Yes | (can contain HTML) |
[].testcase.steps_parsed[].step_id |
number | No | — |
[].testcase.steps_parsed[].expected_result |
string | Yes | (can contain HTML) |
[].testcase.steps_parsed[].step_index |
number | No | — |
[].testcase.steps_parsed[].parsed_reusable_step_id |
number | No | — |
[].testcase.priority |
number | Yes | Priority, 0 - Low, 1- Normal, 2 - High Values: 0, 1, 2. |
[].testcase.tags |
Tag Collection | No | — |
[].testcase.tags[].id |
number | Yes | — |
[].testcase.tags[].name |
string | Yes | — |
[].testcase.tags[].test_case_count |
number | No | — |
[].testcase.requirements |
Requirement Collection | No | — |
[].testcase.requirements[].id |
number | No | — |
[].testcase.requirements[].title |
string | Yes | — |
[].testcase.requirements[].requirementManager |
string | No | — |
[].testcase.requirements[].requirement_id |
string | Yes | — |
[].testcase.requirements[].requirement_key |
string | No | — |
[].testcase.requirements[].requirement_url |
string | No | — |
[].testcase.requirements[].project |
number | Yes | — |
[].testcase.requirements[].status |
number | No | — |
[].testcase.requirements[].req_info |
string | No | Stringified JSON object |
[].testcase.requirements[].testcase_count |
number | No | — |
[].testcase.requirements[].link_sync |
Requirement Link Sync | No | Azure DevOps reciprocal-link state for the requested test-case relation. |
[].testcase.requirements[].custom_fields |
Array of Custom Field Collection Output | No | Array of custom fields - applicable only for inbuilt |
[].testcase.requirements[].requirement_folder |
Generic Folder | No | Requirement folder - applicable only for inbuilt |
[].testcase.requirements[].attachments |
Upload Collection | No | Requirement attachments - applicable only for inbuilt |
[].testcase.requirements[].description |
string | No | Requirement description - applicable only for inbuilt |
[].testcase.requirements[].created_at |
string | No | — |
[].testcase.requirements[].updated_at |
string | No | — |
[].testcase.requirements[].created_by |
User Minified | No | — |
[].testcase.attachments |
Upload Collection | No | — |
[].testcase.attachments[].id |
number | Yes | — |
[].testcase.attachments[].name |
string | Yes | — |
[].testcase.attachments[].hash |
string | Yes | — |
[].testcase.attachments[].ext |
string | Yes | — |
[].testcase.attachments[].mime |
string | Yes | — |
[].testcase.attachments[].size |
string | Yes | — |
[].testcase.attachments[].url |
string | Yes | — |
[].testcase.attachments[].created_by |
number | No | — |
[].testcase.attachments[].created_at |
string | Yes | — |
[].testcase.attachments[].updated_at |
string | Yes | — |
[].testcase.custom_fields |
Array of Custom Field Collection Output | No | Array of custom fields |
[].testcase.sort_order |
number | No | — |
[].testcase.created_at |
string | No | — |
[].testcase.updated_at |
string | No | — |
[].testcase.created_by |
User Minified | No | — |
[].testcase.created_by.id |
number | Yes | — |
[].testcase.created_by.username |
string | No | — |
[].testcase.created_by.name |
string | Yes | — |
[].testcase.created_by.avatar |
Upload | No | — |
[].testcase.created_by.is_guest |
number | No | — |
[].testcase.last_run_status |
string | No | Last run status of the test case |
[].testcase.run_count |
number | No | — |
[].testcase.avg_execution_time |
number | No | — |
[].testcase.last_run_on |
string | No | — |
[].testcase.failure_rate |
number | No | Test failure percentage |
[].testcase.archived |
boolean | No | True when the test case is archived. An archived case is left out of the default test case lists and cannot be added to a test plan, while its revisions, executions and results are kept. Archive and restore it with the archive and unarchive actions of POST /testcases/bulkAction. |
[].testcase.trash_entry |
number | No | ID of the project Trash entry while the test case is in Trash, null otherwise. Ordinary test case reads leave out a case in Trash, so the value is set only where a record keeps its link to the case, for example the testcase of a defect (GET /defects/{id}). |
[].testcase.is_bdd_managed |
boolean | No | True when a BDD sync (tc sync) created the test case from a scenario of a .feature file in Git. The repository owns the case, so it cannot be edited, archived, restored or deleted by hand. : when its scenario is removed from the repository, the sync archives the case; when the scenario comes back with the same steps, the sync restores it. So a case with both is_bdd_managed and archived true was removed from the repository. |
[].testcase.is_reference |
boolean | No | Will be true only for links |
[].testcase.source_id |
number | No | Only for links - source entity ID |
[].testcase.source_project |
number | No | Only for links - source Project ID |
[].testcase.under_review |
number | No | 1 if test case is under review else 0 (applicable when test case review feature is enabled) |
[].testcase.is_automated |
number | No | Can be considered for execution by copilot (applicable when test case automation feature is enabled) |
[].testcase.automation_coverage |
string | No | Whether automation covers this case. observed is set by TestCollab when a CI-sourced result matches the case, so coverage reflects what actually ran rather than what someone remembered to tick. declared is set by a person for automation that legitimately never reports in (performance, security, pipelines that are not wired up). Distinct from is_automated, which is a QA Copilot flag. Values: none, observed, declared. |
[].testcase.automation_last_run_at |
string | No | When a CI-sourced result last matched this case. Lets coverage age out, so a case stops counting once its automated test stops reporting. |
[].testcase.automation_declared_by |
User Minified | No | — |
[].testcase.automation_declared_by.id |
number | Yes | — |
[].testcase.automation_declared_by.username |
string | No | — |
[].testcase.automation_declared_by.name |
string | Yes | — |
[].testcase.automation_declared_by.avatar |
Upload | No | — |
[].testcase.automation_declared_by.is_guest |
number | No | — |
[]Errors
Section titled “Errors”| Status | Meaning |
|---|---|
403 |
Forbidden |