Test results
Test results within test runs are important for analyzing and understanding the outcomes of your testing efforts. Our REST API offers comprehensive endpoints for managing test results in test runs, enabling you to automate the collection and evaluation of testing data. With these endpoints, you can add one or more test results in your test runs within your project.
Get all test results for a test run
Use this API to fetch the list of all test results for a test run in a project. You will need the id
of the project and the id
of the test run (eg: TR-2343).
This list is paginated; for more information, refer Pagination.
Request Parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
https://test-management.browserstack.com/api/v2/projects/{project_id}/test-runs/{test_run_id}/results
-
project_id* String
Identifier of the project.
-
test_run_id* String
Identifier of the test run.
Response Attributes 200 OK
json
Response
{
"success": true,
"test-results": [
{
"id": 425536077,
"created_by": "abc@email.com",
"created_at": "2024-08-19T07:38:55.000Z",
"description": "This is the notes added with result",
"test_run_id": "TR-321",
"test_case_id": "TC-123",
"result_status": {
"field_value": "Passed"
},
"updated_at": "2024-08-19T07:38:55.000Z",
"issues": [
{
"issue_id": "UI-393854",
"created_at": "2024-08-19T07:35:42.000Z",
"issue_type": "jira"
}
],
"custom_fields": [
{
"field_name": "custom estimates",
"value": "10.23"
}
],
"step_result" : {
"step": "Launch the App",
"result": "Open the Android app on the device or emulator.",
"result_status": {
"field_value": "Passed"
}
},
}
]
"info" : {
"page": 1,
"page_size": 30,
"count": 20,
"prev": null,
"next": null
}
}
-
success Boolean
Indicates whether the API call was executed successfully.
-
test-results Array
List of test results associated with the test run or test case.
-
id Integer
Unique identifier of the test result.
-
created_by String
Email of the user who created the test result.
-
created_at String
Timestamp (ISO 8601) when the test result was created.
-
description String
Notes or additional information added to the test result.
-
test_run_id String
Unique identifier of the test run to which the test result belongs.
-
test_case_id String
Unique identifier of the test case to which the test result belongs.
-
result_status Object
Contains the status of the test result.
-
result_status.field_value String
The result status value, e.g., โPassedโ or โFailed.โ
-
updated_at String
Timestamp (ISO 8601) when the test result was last updated.
-
-
issues Array
List of issues linked to the test result.
-
issue_id String
Unique identifier of the linked issue.
-
created_at String
Timestamp (ISO 8601) when the issue was created.
-
issue_type String
Type of the issue, e.g., โJira.โ
-
-
custom_fields Array
List of custom fields associated with the test result.
-
field_name String
Name of the custom field.
-
value String
Value of the custom field.
-
-
step_result Object
Contains the detailed execution steps associated with this specific test result. It includes each stepโs definition, outcome, and status.
-
step String
The defined action or instruction for the test step.
-
result String
The observed outcome or result after performing the test step.
-
result_status String
The execution status of the individual test step.
-
Handle unmatched test case IDs
To ensure successful data submission, every test result must map to a valid Test Case ID already present in the specified test run. If you submit a result referencing a test case ID that does not exist within the test run, the API will return a 400 Bad Request
error with a message indicating the ID is invalid or not found.
A single API request for result submission can process a maximum of 300 unique test case IDs. Validate test case IDs against the test run before initiating the API call to prevent request failures and ensure data integrity.
Request Parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X POST https://test-management.browserstack.com/api/v2/projects/PR-75/test-runs/TR-152/results?validate_tc=true
-
project_id* String
Identifier of the project.
-
test_run_id* String
Identifier of the test run.
Response Attributes 200 OK
json
Response
{
{
"success": false,
"message": "Invalid test case IDs: TC-10171233"
}
}
-
success Boolean
Indicates whether the API call was not executed successfully.
-
message String
Message describing the issue with the missing test case IDs.
Get all test results for a test case in a test run
Use this API to fetch all test results for a test case in a test run in a project. You will need the id
of the project, the id
of the run and the id
of the test case.
This list is paginated; for more information, refer Pagination.
Request Parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
https://test-management.browserstack.com/api/v2/projects/{project_id}/test-runs/{test_run_id}/test-cases/{test_case_id}/results
-
project_id* String
Identifier of the project.
-
test_run_id* String
Identifier of the test run.
-
test_case_id* String
Identifier of the test case.
Response Attributes 200 OK
json
Response
{
"success": true,
"test-results": [
{
"id": 425536077,
"created_by": "abc@email.com",
"created_at": "2024-08-19T07:38:55.000Z",
"description": "This is the notes added with result",
"test_run_id": "TR-321",
"test_case_id": "TC-123",
"result_status": {
"field_value": "Passed"
},
"updated_at": "2024-08-19T07:38:55.000Z",
"issues": [
{
"issue_id": "UI-393854",
"created_at": "2024-08-19T07:35:42.000Z",
"issue_type": "jira"
}
],
"custom_fields": [
{
"field_name": "custom estimates",
"value": "10.23"
}
],
"step_result" : {
"step": "Launch the App",
"result": "Open the Android app on the device or emulator.",
"result_status": {
"field_value": "Passed"
}
},
}
]
"info" : {
"page": 1,
"page_size": 30,
"count": 20,
"prev": null,
"next": null
}
}
-
success Boolean
Indicates whether the API call was executed successfully.
-
test-results Array
List of test results associated with the test run or test case.
-
id Integer
Unique identifier of the test result.
-
created_by String
Email of the user who created the test result.
-
created_at String
Timestamp (ISO 8601) when the test result was created.
-
description String
Notes or additional information added to the test result.
-
test_run_id String
Unique identifier of the test run to which the test result belongs.
-
test_case_id String
Unique identifier of the test case to which the test result belongs.
-
result_status Object
Contains the status of the test result.
-
result_status.field_value String
The result status value, e.g., โPassedโ or โFailed.โ
-
updated_at String
Timestamp (ISO 8601) when the test result was last updated.
-
-
issues Array
List of issues linked to the test result.
-
issue_id String
Unique identifier of the linked issue.
-
created_at String
Timestamp (ISO 8601) when the issue was created.
-
issue_type String
Type of the issue, e.g., โJira.โ
-
-
custom_fields Array
List of custom fields associated with the test result.
-
field_name String
Name of the custom field.
-
value String
Value of the custom field.
-
-
step_result Object
Contains the detailed execution steps associated with this specific test result. It includes each stepโs definition, outcome, and status.
-
step String
The defined action or instruction for the test step.
-
result String
The observed outcome or result after performing the test step.
-
result_status String
The execution status of the individual test step.
-
Get all test results for a test case across test runs
Use this API to fetch the list of all test results for a test case across test runs in a project. You will need the id
of the project and the id
of the test case.
This list is paginated; for more information, refer Pagination.
Request Parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
https://test-management.browserstack.com/api/v2/projects/{project_id}/test-cases/{test_case_id}/results
-
project_id* String
Identifier of the project.
-
test_case_id* String
Identifier of the test case.
Response Attributes 200 OK
json
Response
{
"success": true,
"test-results": [
{
"id": 425536077,
"created_by": "abc@gmail.com",
"created_at": "2024-08-19T07:38:55.000Z",
"description": "This is the notes added with result",
"test_run_id": "TR-321",
"test_case_id": "TC-123",
"result_status": {
"field_value": "Passed"
},
"updated_at": "2024-08-19T07:38:55.000Z",
"issues": [
{
"issue_id": "UI-393854",
"created_at": "2024-08-19T07:35:42.000Z",
"issue_type": "jira"
},
"custom_fields",
":",
[
{
"field_name": "custom estimates",
"value": "10.23"
}
]
],
"step_result" : {
"step": "Launch the App",
"result": "Open the Android app on the device or emulator.",
"result_status": {
"field_value": "Passed"
}
},
}
]
"info" : {
"page": 1,
"page_size": 30,
"count": 20,
"prev": null,
"next": null
}
}
-
success Boolean
Indicates whether the API call was executed successfully.
-
test-results Array
List of test results associated with the test run or test case.
-
id Integer
Unique identifier of the test result.
-
created_by String
Email of the user who created the test result.
-
created_at String
Timestamp (ISO 8601) when the test result was created.
-
description String
Notes or additional information added to the test result.
-
test_run_id String
Unique identifier of the test run to which the test result belongs.
-
test_case_id String
Unique identifier of the test case to which the test result belongs.
-
result_status Object
Contains the status of the test result.
-
result_status.field_value String
The result status value, e.g., โPassedโ or โFailed.โ
-
updated_at String
Timestamp (ISO 8601) when the test result was last updated.
-
-
issues Array
List of issues linked to the test result.
-
issue_id String
Unique identifier of the linked issue.
-
created_at String
Timestamp (ISO 8601) when the issue was created.
-
issue_type String
Type of the issue, e.g., โJira.โ
-
-
custom_fields Array
List of custom fields associated with the test result.
-
field_name String
Name of the custom field.
-
value String
Value of the custom field.
-
-
step_result Object
Contains the detailed execution steps associated with this specific test result. It includes each stepโs definition, outcome, and status.
-
step String
The defined action or instruction for the test step.
-
result String
The observed outcome or result after performing the test step.
-
result_status String
The execution status of the individual test step.
-
Add test result to test run
Use this API to add test results to test runs in a given project. To add a test result to a specific test run, you will need both the id
of the project (eg: PR-2134) and the id
of the test run (eg: TR-2343) within that project.
Request Parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X POST https://test-management.browserstack.com/api/v2/projects/{project_id}/test-runs/{test_run_id}/results
-
project_id* String
Identifier of the project.
-
test_run_id* String
Identifier of the test run.
Request Body
Request Body
{
"test_result": {
"status": "passed",
"description": "Login functionality under high user load",
"issues": [
"TR-2",
"XYZ-2"
],
"issue_tracker": {
"name": "jira",
"host": "https://demo.atlassian.net"
},
"custom_fields": {
"custom_fields_name": "value"
}
},
"test_case_id": "TC-13",
"configuration_id": 116
}
-
status* String
The status field is mandatory.ย Use either a system value (e.g.,ย โPassed,โ โFailed,โ etc.) or a custom value defined in Test Management.ย Attempting to define new status values via this API will result in an error response.
-
description String
Brief information about the test run.
-
issues Array
List of the linked Jira, Asana or Azure issues.
-
issue_tracker Object
Ensures that issue IDs are correctly associated with their respective issue tracking tool, facilitating accurate linking and management.
-
name String
โSpecifies the issue tracking system to integrate with. For example, use
jira
for Jira,azure
for Azure DevOps, orasana
for Asana.โ -
host String
The base URL of your issue tracking system. For Jira Cloud instances, this typically follows the format
https://your-domain.atlassian.net
.
-
-
custom_fields Object
List of the custom fields and their corresponding values.
-
test_case_id* String
Identifier of each test case.
-
configurations_id Integer
Unique identifier for a specific operating system, browser, and device configuration. This optional parameter is required only if a test run includes configurations.
Response Attributes 200 OK
json
Response
{
"success": true,
"test-result": {
"id": 66782871,
"created_at": "2023-11-29T06:30:36.000Z",
"description": "Test passed successfully, but with some issues noted",
"status": "passed",
"issues": [
"TR-2",
"XYZ-2"
]
}
}
-
success Boolean
API call is executed successfully.
-
id Integer
Identifier for the test result.
-
created_at String
Tht time at which the test result was created on BrowserStack servers.
-
status String
Gives the status of the test result.
-
description String
Brief information about the Test Run.
-
issues Array
List of the linked Jira, Asana or Azure issues.
Add multiple test results in a test run
Use this API to add multiple test results in a test run in a given project. To do so, you will need the id
of the project, the id
of the test run (eg: TR-2343) within that project, status of the test result and the id
of the test case.
Request Parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X POST https://test-management.browserstack.com/api/v2/projects/{project_id}/test-runs/{test_run_id}/results
-
project_id* String
Identifier of the project.
-
test_run_id* String
Identifier of the test run.
Request Body
Request Body
{
"results": [
{
"test_result": {
"status": "passed",
"description": "Login functionality under high user load",
"issues": [
"TR-2",
"XYZ-2"
],
"issue_tracker": {
"name": "jira",
"host": "https://demo.atlassian.net"
},
"custom_fields": {
"custom_fields_name": "value"
}
},
"test_case_id": "TC-337204",
"configuration_id": 116
},
{
"test_result": {
"status": "skipped",
"description": "Sensitive data is masked or encrypted",
"issues": [
"TR-23",
"XYZ-27"
],
"issue_tracker": {
"name": "jira",
"host": "https://demo.atlassian.net"
},
"custom_fields": {
"custom_fields_name": "value"
}
},
"test_case_id": "TC-337205",
"configuration_id": 126
},
...
]
}
-
test_result Object
This list has information about test results.
-
status* String
The status field is mandatory.ย Use either a system value (e.g.,ย โPassed,โ โFailed,โ etc.) or a custom value defined in Test Management.ย Attempting to define new status values via this API will not record those statuses.
-
description String
Brief information/notes about the test result.
-
issues Array
List of the linked Jira, Asana or Azure issues.
-
custom_fields Object
List of the custom fields and their corresponding values.
-
-
test_case_id* String
Identifier of each test case.
-
issues Array
List of the linked Jira, Asana or Azure issues.
-
issue_tracker Object
Ensures that issue IDs are correctly associated with their respective issue tracking tool, facilitating accurate linking and management.
-
name String
โSpecifies the issue tracking system to integrate with. For example, use
jira
for Jira,azure
for Azure DevOps, orasana
for Asana.โ -
host String
The base URL of your issue tracking system. For Jira Cloud instances, this typically follows the format
https://your-domain.atlassian.net
.
-
-
configuration_id Integer
Unique identifier for a specific operating system, browser, and device configuration. This optional parameter is required only if a test run includes configurations.
Response Attributes 200 OK
json
Response
{
"success": true
}
-
success Boolean
API call is executed successfully.
Add test result with steps to a test run
This API adds a single test result to a specific test case within a test run. Use this endpoint when you need to include the status of individual test steps within your result payload. To add a test result to a specific test run, you need both the id
of the project and the id
of the test run (eg: TR-2343) within that project.
If you do not need to report step-level results, you can use the simpler Add test result to test run endpoint.
Request Parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X POST https://test-management.browserstack.com/api/v2/projects/PR-45592/test-runs/TR-839042/results
-
project_id* String
Identifier of the project.
-
test_run_id* String
Identifier of the test run.
Request Body
Request Body
{
"test_result":{
"status":"passed",
"step_results":[
{
"step_index":1,
"status":"failed",
"description":"This is actually step 1"
},
{
"step_index":2,
"status":"passed",
"description":"This is actually step 1"
},
{
"step_index":3,
"status":"failed",
"description":"This is actually step 1"
},
{
"step_index":4,
"status":"passed",
"description":"This is actually step 1"
}
]
},
"test_case_id":"TC-972130"
}
-
test_result* Object
The overall test result object, including status and step results.
-
status* String
The overall status of the test case result (e.g.,
passed
,failed
). -
step_results* Array
Array of step-level results for the test case.
-
step_index* Integer
The index of the step in the test case (starts from 1). Use with caution, as this index will change if the order of steps is modified in the test case. You either pass
step_id
orstep_index
. -
step_id* Integer
The unique and permanent identifier for the step. This ID remains the same even if steps are reordered. You either pass
step_id
orstep_index
. -
status* String
The status of the step (e.g.,
passed
,failed
). -
description String
Description or notes for the step result.
-
-
-
test_case_id* String
Identifier of the test case.
Response Attributes 200 OK
json
Response
{
"success":true,
"test-run-step-results":[
{
"id":1261084955,
"created_at":"2025-08-29T16:11:32.000Z",
"description":"This is actually step 1",
"status":"failed",
"test_run_test_case_step_details":{
"id":3522947,
"status":"failed",
"status_id":982101,
"step_mapping_id":34001034,
"colour":"#F87171",
"field_value":"Failed",
"step":"Initiate multiple password reset requests (simulating normal load) for different test user accounts.",
"result":"The system should accept all reset requests without errors.",
"order":1
},
"issues":[
]
},
{
"id":1261084957,
"created_at":"2025-08-29T16:11:32.000Z",
"description":"This is actually step 1",
"status":"passed",
"test_run_test_case_step_details":{
"id":3522948,
"status":"passed",
"status_id":982100,
"step_mapping_id":34001035,
"colour":"#059669",
"field_value":"Passed",
"step":"Measure the time taken for the system to process each reset request.",
"result":"The processing time for each request should be within the predefined acceptable range for normal load (e.g., < 2 seconds).",
"order":2
},
"issues":[
]
},
{
"id":1261084959,
"created_at":"2025-08-29T16:11:32.000Z",
"description":"This is actually step 1",
"status":"failed",
"test_run_test_case_step_details":{
"id":3522949,
"status":"failed",
"status_id":982101,
"step_mapping_id":34001036,
"colour":"#F87171",
"field_value":"Failed",
"step":"Monitor the time taken to generate and send recovery emails for each request.",
"result":"Recovery emails should be generated and sent within the predefined acceptable time frame (e.g., < 5 seconds).",
"order":3
},
"issues":[
]
}
],
"overall-result-status":"Passed"
}
-
success Boolean
API call is executed successfully.
-
test-run-step-results Array
Array of step-level test results for the test case.
-
id Integer
Unique identifier for the step result.
-
created_at String
The time at which the step result was created on BrowserStack servers.
-
description String
Description or notes for the step result.
-
status String
Status of the step result (e.g.,
passed
,failed
). -
test_run_test_case_step_details Object
Details of the test case step executed in the test run.
-
id Integer
Unique identifier for the test case step.
-
status String
Status of the test case step (e.g.,
passed
,failed
). -
status_id Integer
Unique identifier for the status value.
-
step_mapping_id Integer
Unique identifier for the step mapping.
-
colour String
Colour code representing the status.
-
field_value String
Human-readable status value (e.g.,
Passed
,Failed
). -
step String
The defined action or instruction for the test step.
-
result String
The expected or observed outcome for the test step.
-
order Integer
The sequence order of the step in the test case.
-
-
issues Array
List of the linked issues for the step result.
-
-
overall-result-status String
The overall result status for the test case (e.g.,
Passed
,Failed
).
Add multiple test results with steps to a test run
This endpoint adds multiple test results to their respective test cases within a test run in a single API call. Use this endpoint for bulk operations where you need to include the status of individual test steps for one or more results in the payload. To do so, you will need the id
of the project, the id
of the test run (eg: TR-2343) within that project, status of the test result and the id
of the test case.
If you do not need to report step-level results, you can use the simpler Add multiple test results to a test run endpoint.
Note: To identify a step, you must provide either
step_id
orstep_index
in each step result object.
Request Parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X POST https://test-management.browserstack.com/api/v2/projects/PR-45592/test-runs/TR-839042/results
-
project_id* String
Identifier of the project.
-
test_run_id* String
Identifier of the test run.
Request Body
Request Body
{
"results":[
{
"test_result":{
"step_results":[
{
"step_id":34001040,
"status":"passed",
"description":"This is actually step 1"
},
{
"step_index":2,
"status":"passed",
"description":"This is actually step 1"
}
]
},
"test_case_id":"TC-972131"
},
{
"test_result":{
"status":"passed",
"step_results":[
{
"step_index":1,
"status":"passed",
"description":"This is actually step 1"
},
{
"step_index":2,
"status":"failed",
"description":"This is actually step 1"
}
]
},
"test_case_id":"TC-972132"
}
]
}
-
results* Array
Array of test case result objects, each containing test_result and test_case_id.
-
test_result* Object
The test result object, including step-level results.
-
status* String
The overall status of the test case result (e.g.,
passed
,failed
). -
step_results* Array
Array of step-level results for the test case.
-
step_index* Integer
The index of the step in the test case (starts from 1). Use with caution, as this index will change if the order of steps is modified in the test case. You either pass
step_id
orstep_index
. -
step_id* Integer
The unique and permanent identifier for the step. This ID remains the same even if steps are reordered. You either pass
step_id
orstep_index
. -
status* String
The status of the step (e.g.,
passed
,failed
). -
description String
Description or notes for the step result.
-
-
-
test_case_id* String
Unique identifier of the test case.
-
Response Attributes 200 OK
json
Response
{
"success": true
}
-
success Boolean
API call is executed successfully.
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.