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

# Count Workflow Runs

> Count workflow runs matching the same filters as Search Workflow Runs (workflow ID, status, user IDs, time range, linked ticket, parent run, include_child_runs, include_runs_with_linked_ticket). Use this instead of paging the full result set when only the total is needed — e.g. dashboard tiles or sizing a backfill before running it. The count walks the full filtered set, so latency scales with how many rows match; on teams with millions of runs, narrow the count with created_after/created_before (very broad counts may hit the server's query timeout).



## OpenAPI

````yaml /sections/api-reference/openapi-spec-v2.yaml post /v2/workflow-runs/count
openapi: 3.1.0
info:
  title: Serval Public API
  description: Serval Public API
  contact:
    name: Serval
    url: https://serval.com
    email: support@serval.com
  license:
    name: Serval License
    url: https://serval.com/license
  version: 2.0.0
servers:
  - url: https://public.api.serval.com
security:
  - BearerAuth: []
tags:
  - name: Access Policy API
  - name: Access Policy Approval Procedure API
  - name: Access Profile API
  - name: Access Relationship API
  - name: Access Request API
  - name: Agent API
  - name: App Instance API
  - name: App Resource API
  - name: App Resource Role API
  - name: Approval Delegation API
  - name: Approval Request API
  - name: Audit Log API
  - name: Change Blackout API
  - name: Change Model API
  - name: Custom Field API
  - name: Custom Service API
  - name: Entity API
  - name: Entity Field Mapping API
  - name: Entity Ingestion Config API
  - name: Entity Type API
  - name: Folder API
  - name: Group API
  - name: Guidance API
  - name: Help Agent API
  - name: Journey API
  - name: Knowledge API
  - name: Knowledge Base API
  - name: Report API
  - name: SLA API
  - name: Schedule API
  - name: Tag API
  - name: Team API
  - name: Team Group API
  - name: Team User API
  - name: Ticket API
  - name: Topic API
  - name: User API
  - name: User Relationship API
  - name: Workflow API
  - name: Workflow Approval Procedure API
  - name: Workflow Run API
paths:
  /v2/workflow-runs/count:
    post:
      tags:
        - Workflow Run API
      summary: Count Workflow Runs
      description: >-
        Count workflow runs matching the same filters as Search Workflow Runs
        (workflow ID, status, user IDs, time range, linked ticket, parent run,
        include_child_runs, include_runs_with_linked_ticket). Use this instead
        of paging the full result set when only the total is needed — e.g.
        dashboard tiles or sizing a backfill before running it. The count walks
        the full filtered set, so latency scales with how many rows match; on
        teams with millions of runs, narrow the count with
        created_after/created_before (very broad counts may hit the server's
        query timeout).
      operationId: svrelay.publicv2.PublicAPIServiceV2.CountWorkflowRuns
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/svflow.publicapi.CountWorkflowRunsRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/svflow.publicapi.CountWorkflowRunsResponse
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
      security:
        - BearerAuth: []
components:
  schemas:
    svflow.publicapi.CountWorkflowRunsRequest:
      type: object
      properties:
        teamId:
          type: string
          title: team_id
          description: The ID of the team. Required.
          x-stainless-terraform-configurability: optional
        workflowId:
          type: string
          title: workflow_id
          description: Filter by workflow ID.
          nullable: true
          x-stainless-terraform-configurability: optional
        statuses:
          type: array
          items:
            $ref: '#/components/schemas/svflow.common.models.WorkflowRunStatus'
          title: statuses
          description: Filter by statuses (multiple allowed).
          x-stainless-terraform-configurability: optional
        targetUserId:
          type: string
          title: target_user_id
          description: Filter by the target user for the workflow run.
          nullable: true
          x-stainless-terraform-configurability: optional
        initiatedByUserId:
          type: string
          title: initiated_by_user_id
          description: Filter by the user who initiated the workflow run.
          nullable: true
          x-stainless-terraform-configurability: optional
        createdAfter:
          type: string
          title: created_after
          description: Filter by runs created after this timestamp (RFC3339 format).
          nullable: true
          x-stainless-terraform-configurability: optional
        createdBefore:
          type: string
          title: created_before
          description: Filter by runs created before this timestamp (RFC3339 format).
          nullable: true
          x-stainless-terraform-configurability: optional
        linkedTicketId:
          type: string
          title: linked_ticket_id
          description: Filter by linked ticket ID.
          nullable: true
          x-stainless-terraform-configurability: optional
        parentWorkflowRunId:
          type: string
          title: parent_workflow_run_id
          description: Count only the direct child runs (sub-workflows) of this parent run.
          nullable: true
          x-stainless-terraform-configurability: optional
        includeChildRuns:
          type: boolean
          title: include_child_runs
          description: |-
            Whether to include child runs (sub-workflows) in the count. Unset
             means true (matches include_output's unset-means-true convention). Set
             explicitly to false to count only top-level runs.
             include_child_runs=false is mutually exclusive with
             parent_workflow_run_id; combining them is a 400.
          nullable: true
          x-stainless-terraform-configurability: computed_optional
        includeRunsWithLinkedTicket:
          type: boolean
          title: include_runs_with_linked_ticket
          description: |-
            When true, count only runs that are linked to a ticket
             (linked_ticket_id set). Unset and explicit false are equivalent — no
             filter is applied.
          nullable: true
          x-stainless-terraform-configurability: computed_optional
      title: CountWorkflowRunsRequest
      additionalProperties: false
      description: |-
        Same filter set as SearchWorkflowRunsRequest, minus pagination and
         include_output — the two requests must stay filter-compatible so a caller
         can count a result set and then page exactly that set.
    svflow.publicapi.CountWorkflowRunsResponse:
      type: object
      properties:
        count:
          type:
            - integer
            - string
          title: count
          format: int64
          description: The number of workflow runs matching the filters.
          x-stainless-terraform-configurability: optional
      title: CountWorkflowRunsResponse
      additionalProperties: false
    connect.error:
      type: object
      properties:
        code:
          type: string
          examples:
            - not_found
          enum:
            - canceled
            - unknown
            - invalid_argument
            - deadline_exceeded
            - not_found
            - already_exists
            - permission_denied
            - resource_exhausted
            - failed_precondition
            - aborted
            - out_of_range
            - unimplemented
            - internal
            - unavailable
            - data_loss
            - unauthenticated
          description: >-
            The status code, which should be an enum value of
            [google.rpc.Code][google.rpc.Code].
          x-stainless-terraform-configurability: optional
        message:
          type: string
          description: >-
            A developer-facing error message, which should be in English. Any
            user-facing error message should be localized and sent in the
            [google.rpc.Status.details][google.rpc.Status.details] field, or
            localized by the client.
          x-stainless-terraform-configurability: optional
        detail:
          $ref: '#/components/schemas/google.protobuf.Any'
          x-stainless-terraform-configurability: optional
      title: Connect Error
      additionalProperties: true
      description: >-
        Error type returned by Connect:
        https://connectrpc.com/docs/go/errors/#http-representation
    svflow.common.models.WorkflowRunStatus:
      type: string
      title: WorkflowRunStatus
      enum:
        - WORKFLOW_RUN_STATUS_UNSPECIFIED
        - WORKFLOW_RUN_STATUS_PENDING
        - WORKFLOW_RUN_STATUS_RUNNING
        - WORKFLOW_RUN_STATUS_COMPLETED
        - WORKFLOW_RUN_STATUS_FAILED
        - WORKFLOW_RUN_STATUS_DENIED
        - WORKFLOW_RUN_STATUS_CANCELED
    google.protobuf.Any:
      type: object
      properties:
        type:
          type: string
          x-stainless-terraform-configurability: optional
        value:
          type: string
          format: binary
          x-stainless-terraform-configurability: optional
        debug:
          type: object
          additionalProperties: true
          x-stainless-terraform-configurability: optional
      additionalProperties: true
      description: >-
        Contains an arbitrary serialized message along with a @type that
        describes the type of the serialized message.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````