---
title: "Get test run summaries over a time range"
method: GET
path: "/results/workspace/{workspace_id}/testRuns"
tags: ["Reporting"]
---

# Get test run summaries over a time range

`GET /results/workspace/{workspace_id}/testRuns`

Get results for a batch of test runs, with filtering available for time range, test/plan labels, test ID, plan ID, application ID, environment ID, and status.

## Path parameters

- `workspace_id` string, required

## Query parameters

- `application_id` string
- `environment_id` string
- `test_id` string
- `test_label` string
- `plan_id` string
- `plan_label` string
- `outcomes` TestRunResultOutcomeEnum[]
- `earliest_run_start_time` integer
- `latest_run_start_time` integer
- `advanced_metrics` boolean
- `limit` integer
- `cursor` string

## Response `200`

Test run results

- TestRunResults — Detailed information about test runs over a time range and matching provided filters
  - `workspace_id` string — Workspace ID
  - `workspace_name` string — Workspace name
  - `earliest_run_start_time` integer — Beginning of the time range used to identify runs
  - `latest_run_start_time` integer — End of the time range used to identify runs
  - `number_of_runs` integer — Total number of runs
  - `number_of_successful_runs` integer — Total number of successful runs
  - `number_of_failed_runs` integer — Total number of failed runs
  - `test_results` TestRunResultBulkSummary[] — Summaries for each test run
    - `id` string — Test run id
    - `test_ref_id` string — reference to this test in another system
    - `workspace_id` string — workspace Id
    - `started_time` integer — Time test run was started, in epoch milliseconds
    - `completed_time` integer — Time test run was completed, in epoch milliseconds
    - `tags` Tag[] — Free text tags associated with this entity
      - `name` string, required — tag name
      - `values` string[]
    - `journey_id` string — (deprecated, use test_id) Test id
    - `test_id` string — Test id
    - `test_labels` string[] — Test labels
    - `test_name` string — Test name
    - `test_type` 'api' | 'browser' | 'performance' | 'mobile' — Type of test
    - `failure_summary` TestRunFailureSummary — Information useful for diagnosing test run failures
      - `flow_id` string — ID of the flow in which the failure occurred
      - `flow_name` string — Name of the flow in which the failure occurred, if any
      - `step_number` integer — Step number within the flow where the failure occurred
      - `step_id` string — ID of the step (with respect to the flow) where the failure occurred
      - `step_id_in_test` string — ID of the step (with respect to the test) where the failure occurred
      - `step_display_number` string — Display number of the failing step in nested dotted notation (e.g. "2.7" or "2.7.3"). Null when unavailable; only populated for runs executed after this field shipped (not present on backfilled historical runs).
      - `error` string — Unexpected error or formatted assertion failure that was recorded
      - `image_uri` string — URL of an image showing the error
      - `image_href` string — URL of an image showing the error
      - `image_artifact_url` string — API url of the image that will redirect to a newly signed image url
      - `assert_failure` AssertFailure — Details about assert failure
        - `reason` string — Assert failure description without expected/found values to eliminate the need for parsing downstream
        - `expected` string — Expected value where applicable
        - `found` string — Value actually found during test execution
    - `failure_categorization` FailureCategorization — Information describing the cause of a test run failure
      - `failure_category_id` string — A failure category id
      - `failure_synopsis` string — DEPRECATED -- Now persisted as FailureAnalysis -- A synopsis of the failure summary
      - `failure_summary_text` string — A summary describing the test run failure and potential root cause
      - `is_failure_category_generated` boolean — Indicates if the failure category was generated by AI
      - `is_failure_summary_generated` boolean — Indicates if the failure summary was generated by AI
      - `suggested_failure_category_id` string — Failure category ID suggested by automated analysis
      - `last_updated_by_id` string — The ID of the user who updated the categorization of this failure
      - `last_updated_time` integer — time the failure categorization was last updated
      - `failure_reason_assignment_source` 'manual' | 'auto' — How the failure reason was assigned to this test run. Server-managed; client-supplied values are ignored on write.
      - `failure_reason_assigned_by_id` string — The ID of the user or system that assigned the failure reason. Server-managed; client-supplied values are ignored on write.
      - `failure_reason_assigned_time` integer — Timestamp in epoch milliseconds when the failure reason was assigned. Server-managed; client-supplied values are ignored on write.
    - `test_cases` ExternalTestCase[] — User provided external test cases
      - `id` string — Id associated with this test case
    - `timing_summary` TimingSummary — Sumamry of various timing measures for this run
      - `find_time_ms` integer — Total time spent in finds for this run
      - `find_extra_wait_time_ms` integer — Extra wait time added by intelligent waiting in finds
    - `execution_source` 'mabl_cloud' | 'external' | 'mabl_local' | 'mabl_agent' — Where the test lives
    - `status` 'awaiting_precondition' | 'skipped' | 'rate_limited' | 'queued' | 'running' | 'completed' | 'failed' | 'terminating' | 'terminated' — The current status of this test run
    - `status_cause` string — Cause for setting given status, such as failure cause. Updated in pairs with Status.
    - `outcome` 'passed' | 'failed' | 'stopped'
    - `customer_log_uri` string — Customer facing output log (formerly output_log_uri)
    - `workspace_name` string — Workspace name
    - `application_id` string — Application ID
    - `application_name` string — Application name
    - `environment_id` string — Environment ID
    - `environment_name` string — Environment name
    - `initial_url` string — Starting URL for the test run
    - `browser` string — Browser in which this run was executed, if any
    - `browser_version` string — Browser version, if any
    - `execution_runner_type` 'unified' | 'legacy' | 'performance_testing' | 'unknown' — Execution runner used by this run
    - `scenario_name` string — Scenario name associated with this run, if any
    - `plan_id` string — Plan ID, if any
    - `plan_labels` string[] — Plan labels
    - `plan_name` string — Plan name, if any
    - `plan_run_id` string — Plan run ID, if any
    - `test_version` integer — Test version
    - `branch` string — Branch the test ran against, if any
    - `test_run_id` string — Test run ID
    - `test_run_app_url` string — URL for viewing the test run in the mabl app
    - `is_ad_hoc_run` boolean — True if the run is a manually-triggered ad hoc run
    - `start_time` integer — Time this test run started (epoch milliseconds)
    - `end_time` integer — Time this test run ended (epoch milliseconds)
    - `run_time` integer — The execution time of this test run (milliseconds)
    - `success` boolean — True if the test run completed successfully
    - `failure_category` string — Failure category, if any
    - `trigger_type` 'manual' | 'retry' | 'schedule' | 'customer_event' | 'insight' — The type of trigger scheduling this test run
    - `triggering_deployment_event_id` string — Deployment event ID triggering this run, if any
    - `emulation_mode` string — Desktop or mobile web emulation used by this run
    - `metrics` AdvancedMetrics — Advanced metrics
      - `cumulative_speed_index` number, double — Cumulative app load time in milliseconds across all the steps of a browser test
      - `cumulative_api_response_time` number, double — Cumulative API response time in milliseconds across all the requests of an API test
      - `accessibility_rule_violations` RuleViolations — The count of accessibility rule violations per severity level
        - `critical` integer — The count of critical rule violations by rule and page
        - `serious` integer — The count of serious rule violations by rule and page
        - `moderate` integer — The count of moderate rule violations by rule and page
        - `minor` integer — The count of minor rule violations by rule and page
    - `failure_analysis` FailureRootCauseAnalysis
      - `headline` string — The short summary of the run analysis; typically limited to one sentence
      - `summary` string — The summary of the analysis for the run failure
      - `failure_category_id` string — The suggested failure category if applicable
      - `evidence_details` string — Agent-generated detailed evidence supporting the analysis, if available
    - `load_start_time` integer — start time of load in Unix epoch milliseconds
    - `load_ramp_up_end_time` integer — start time of load in Unix epoch milliseconds
    - `load_end_time` integer — end time of load in Unix epoch milliseconds
    - `concurrency` integer — Concurrent users configured for the test run
    - `functional_test_run_count` integer — count of total functional test runs
    - `functional_failure_rate` number, double — performance tests only, percentage of functional test runs that failed [0-100]
  - `cursor` string — Cursor used for pagination. The next page of results can be retrieved by passing this cursor value from a result to the endpoint in a subsequent call.

## Other responses

- `400` — Invalid or missing parameter
- `401` — User not authenticated
- `403` — User not authorized
- `default` — Unknown error

---

[API](https://skmtc.net/mabl/apis/mabl-api.md) · [All operations](https://skmtc.net/mabl/apis/mabl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mabl/mabl-api/revisions/d0fc0114da66/schema)
