> ## Documentation Index
> Fetch the complete documentation index at: https://docs.testdino.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Explore test cases

> Aggregated test case metrics across runs.



## OpenAPI

````yaml api-reference/openapi.yml GET /{projectId}/test-case-explorer
openapi: 3.0.3
info:
  title: TestDino Public API
  version: 1.0.0
  description: >
    Public API for TestDino: read access to test analytics, manual tests, and
    project data, plus

    manual-testing write endpoints.


    **Read (GET) endpoints** cover analytics, runs, cases, and project data.
    **Write endpoints

    (POST/PATCH)** create and update manual-testing entities: suites, cases,
    releases, sessions, and

    manual runs (including per-case verdicts). Query parameters are
    **endpoint-specific**; see each

    operation for supported filters, enums, and defaults.


    Writes require a PAT whose owner holds a writer role (owner/admin/member) on
    the project's

    organization; a viewer-role token gets `403`.


    ## Authentication


    All endpoints require a Bearer token in the `Authorization` header:

    ```

    Authorization: Bearer td_pat_<token>

    ```


    Use a user PAT (`td_pat_` prefix) scoped to the organization/project.


    ## Rate Limiting


    - **Reads (per-token):** 100 requests/minute

    - **Writes (per-token):** 60 requests/minute

    - **Manual run creation (per-token):** 10 requests/minute

    - **Per-IP (pre-auth):** 200 requests/minute

    - **PDF generation:** 1 request/minute per token


    Standard headers: `RateLimit-Limit`, `RateLimit-Remaining`,
    `RateLimit-Reset`


    ## Response Format


    **Success:**

    ```json

    { "success": true, "data": { ... }, "pagination": { ... } }

    ```


    **Error:**

    ```json

    { "success": false, "error": { "code": "ERROR_CODE", "message":
    "Human-readable message" } }

    ```


    ## Time windows and date filters


    There is **no global date-filter convention**. Each endpoint documents its
    own parameters:


    | Endpoint family | Parameter | Allowed values |

    |-----------------|-----------|------------------|

    | Test runs list | `start_date`, `end_date` | RFC3339 timestamps (both
    required together) |

    | Explorer, specs, analytics | `days` | Integer snapped to **7, 30, or 90**
    (see each endpoint) |

    | Test runs list | — | No preset `period` / `dateRange` params |

    | Dashboard, filters | — | **No query params** (fixed snapshot) |


    ## Served by
  contact:
    name: TestDino Support
    url: https://docs.testdino.com
servers:
  - url: https://api.testdino.com/api/v1/public
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Token Info
    description: Token introspection and project metadata
  - name: Test Runs
    description: List, inspect, and drill into test runs
  - name: Test Cases
    description: Automated test case details and history
  - name: Specs
    description: Project-level spec file health
  - name: Manual Tests
    description: Manual test suites and cases (read-only)
  - name: Test Case Explorer
    description: Aggregated test case metrics explorer
  - name: Debug Bundle
    description: >-
      Debugging payload at 3 scopes (run, suite, test): error, steps, failure
      window, attempt history, artifacts, trace, deep links, and a copy-paste
      retry command. Designed for AI agents and CI scripts.
  - name: Dashboard
    description: Project health overview
  - name: Filters
    description: Available filter values (environments, branches, developers, tags)
  - name: Reports
    description: PDF report generation and download
  - name: Analytics
    description: Consolidated analytics summary and test case execution performance
  - name: Webhooks
    description: Outbound webhook subscriptions and delivery history
  - name: Usage
    description: Subscription usage and limits
paths:
  /{projectId}/test-case-explorer:
    get:
      tags:
        - Test Case Explorer
      summary: Explore test cases with aggregated metrics
      description: >
        Returns a paginated list of test cases with aggregated metrics across
        multiple runs,

        including pass rate, fail rate, flakiness rate, average duration, and
        last execution time.

        Useful for identifying consistently failing, slow, or flaky tests over a
        configurable

        lookback period. Filter by spec file, platform, environment, status, or
        tags.
      operationId: exploreTestCases
      parameters:
        - $ref: '#/components/parameters/projectId'
        - $ref: '#/components/parameters/page'
        - name: limit
          in: query
          schema:
            type: integer
            enum:
              - 10
              - 25
              - 50
            default: 25
          description: >-
            Page size. Must be one of `10`, `25`, or `50` (default `25`). Any
            other value returns `400 INVALID_LIMIT`.
        - name: status
          in: query
          schema:
            type: string
            enum:
              - flaky
              - chronic
              - stable
          description: Filter by behavioral status class. `stable` requires `days=90`.
        - name: specFilePath
          in: query
          schema:
            type: string
          description: Filter to test cases from a specific spec file path.
        - name: platform
          in: query
          schema:
            type: string
          description: Filter by test platform (e.g. `chromium`, `firefox`, `webkit`).
        - $ref: '#/components/parameters/environment'
        - name: tags
          in: query
          schema:
            type: string
          description: Single tag string. Not comma-separated multi-tag.
        - name: days
          in: query
          schema:
            type: integer
            enum:
              - 7
              - 30
              - 90
            default: 30
          description: >-
            Rolling window in days. Must be 7, 30, or 90 (default 30). Other
            values return 400.
        - name: search
          in: query
          schema:
            type: string
          description: Free-text search across test case names.
        - name: sortBy
          in: query
          schema:
            type: string
            enum:
              - suite_file_path
              - title
              - flaky_rate
              - failure_rate
              - reliability_score
              - total_runs
              - p95_duration_ms
              - duration_trend_slope
              - consecutive_failure_streak
              - last_seen_at
              - last_duration_ms
              - avg_duration_ms
            default: suite_file_path
          description: >-
            Sort field. Default `suite_file_path`. Sort-dependent default
            direction applies when `order` is omitted.
        - name: order
          in: query
          schema:
            type: string
            enum:
              - asc
              - desc
          description: >-
            Sort direction. Default depends on `sortBy`: text sorts default
            `asc`, metrics default `desc`.
      responses:
        '200':
          description: Aggregated test case data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessEnvelope'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    projectId:
      name: projectId
      in: path
      required: true
      schema:
        type: string
      description: >-
        The project identifier (e.g. `project_abc123`). Must match the project
        associated with your PAT.
    page:
      name: page
      in: query
      schema:
        type: integer
        minimum: 1
        default: 1
      description: Page number for paginated results. Starts at 1.
    environment:
      name: environment
      in: query
      schema:
        type: string
      description: >-
        Filter results by environment name (e.g. `production`, `staging`). Use
        the `/filters` endpoint to discover available environments.
  schemas:
    SuccessEnvelope:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          type: object
        pagination:
          $ref: '#/components/schemas/Pagination'
    Pagination:
      type: object
      properties:
        page:
          type: integer
        limit:
          type: integer
        total:
          type: integer
        hasNext:
          type: boolean
        hasPrev:
          type: boolean
    ErrorEnvelope:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
  responses:
    Unauthorized:
      description: Missing, invalid, expired, or revoked token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            success: false
            error:
              code: UNAUTHORIZED
              message: Invalid or unknown user PAT
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: User PAT (td_pat_) scoped to the target project

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.