Skip to main content
Experience faster, smarter testing with BrowserStack AI Agents. See what your workflowโ€™s been missing. Explore now!
No Result Found
Connect & Get help from fellow developers on our Discord community. Ask the CommunityAsk the Community

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

GET /api/v2/projects/{project_id}/test-runs/{test_run_id}/results

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.

    โ–ถ SHOW VALUES
    • 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.

    โ–ถ SHOW VALUES
    • 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.

    โ–ถ SHOW VALUES
    • 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.

    โ–ถ SHOW VALUES
    • 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

GET /api/v2/projects/PR-75/test-runs/TR-152/results?validate_tc=true

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

GET /api/v2/projects/{project_id}/test-runs/{test_run_id}/test-cases/{test_case_id}/results

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.

    โ–ถ SHOW VALUES
    • 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.

    โ–ถ SHOW VALUES
    • 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.

    โ–ถ SHOW VALUES
    • 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.

    โ–ถ SHOW VALUES
    • 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

GET /api/v2/projects/{project_id}/test-cases/{test_case_id}/results

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.

    โ–ถ SHOW VALUES
    • 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.

    โ–ถ SHOW VALUES
    • 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.

    โ–ถ SHOW VALUES
    • 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.

    โ–ถ SHOW VALUES
    • 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

POST /api/v2/projects/{project_id}/test-runs/{test_run_id}/results

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.

    โ–ถ SHOW VALUES
    • name String

      โ€‹Specifies the issue tracking system to integrate with. For example, use jira for Jira, azure for Azure DevOps, or asana 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

POST /api/v2/projects/{project_id}/test-runs/{test_run_id}/results

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.

    โ–ถ SHOW VALUES
    • 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.

    โ–ถ SHOW VALUES
    • name String

      โ€‹Specifies the issue tracking system to integrate with. For example, use jira for Jira, azure for Azure DevOps, or asana 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

POST /api/v2/projects/{project_id}/test-runs/{test_run_id}/results

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.

    โ–ถ SHOW VALUES
    • 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.

      โ–ถ SHOW VALUES
      • 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 or step_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 or step_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.

    โ–ถ SHOW VALUES
    • 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.

      โ–ถ SHOW VALUES
      • 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

POST /api/v2/projects/{project_id}/test-runs/{test_run_id}/results

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 or step_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.

    โ–ถ SHOW VALUES
    • test_result* Object

      The test result object, including step-level results.

      โ–ถ SHOW VALUES
      • 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.

        โ–ถ SHOW VALUES
        • 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 or step_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 or step_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.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback

Download Copy Check Circle