> ## 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.

# List Review CI Runs

> List CI attempts for the review's current revision, newest first. Follow nextPageToken until empty. Check outcomes are recorded evidence; enforcementDisabled reflects current policy. Restart pagination if the review revision changes.

## Authentication and permissions

> **Token requirements:** **User-based token (OAuth)** or **Organization-scoped API key** or **Workspace-scoped API key**.
>
> Send a bearer access token for one of these identities. The permissions and resource restrictions below also apply.

| Credential | Access requirements |
| - | - |
| Organization-scoped API key | **API key:** `reviews:read` **User: session review, User: promotion, User: parent-to-branch pull:** Unsupported |
| Workspace-scoped API key | **API key:** `reviews:read` **User: session review, User: promotion, User: parent-to-branch pull:** Unsupported |
| User-based token (OAuth) | **API key:** Unsupported **User: session review, User: promotion, User: parent-to-branch pull:** Supported, subject to permissions |

Permissions joined by **+** are all required; **or** separates alternatives. Full-access keys still cannot call endpoints marked unsupported. Workspace keys must allow every workspace checked by the request. OAuth access depends on the user’s roles and resource access.

* **API key:** The key must allow the session's workspace, or either the source or target workspace of a promotion. The review's target workspace must belong to your organization.

* **User: session review:** Requires permission to view configuration sessions in the session's workspace.

* **User: promotion:** Requires review or apply permission on the target workspace, or both staging permission on the target workspace and author permission on the source workspace. Cross-organization access from the source workspace requires an active workspace link between organizations in the same Parent Organization.

* **User: parent-to-branch pull:** For a recorded parent-to-branch pull, staging permission on the target branch and branch permission on the source parent also authorize access.


## OpenAPI

````yaml /sections/api-reference/openapi-spec-v2.yaml get /v2/reviews/{review_id}/ci-runs
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 Membership API
  - 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: Alerts API
  - name: Analytics API
  - name: App Instance API
  - name: App Resource API
  - name: App Resource Role API
  - name: Approval Delegation API
  - name: Approval Procedure API
  - name: Approval Request API
  - name: Assignment Rules API
  - name: Audit Log API
  - name: Billing API
  - name: Browser API
  - name: Campaign API
  - name: Change Blackout API
  - name: Change Model API
  - name: Connected Channels API
  - name: Custom Field API
  - name: Custom Role API
  - name: Custom Service API
  - name: Dashboards API
  - name: Email Intake API
  - name: Entity API
  - name: Entity Field Mapping API
  - name: Entity Ingestion Config API
  - name: Entity Type API
  - name: Folder API
  - name: Forms API
  - name: Group API
  - name: Guidance API
  - name: Help Agent API
  - name: Improvement Request API
  - name: Journey API
  - name: Knowledge API
  - name: Knowledge Base API
  - name: One-Time Window API
  - name: Package API
  - name: Platform Migration API
  - name: Project API
  - name: Report API
  - name: Review API
  - name: Role Sync API
  - name: Roles API
  - name: SLA API
  - name: Schedule API
  - name: Skills API
  - name: Tag API
  - name: Ticket API
  - name: Ticket Import API
  - name: Ticket Type API
  - name: Topic API
  - name: User API
  - name: User Relationship API
  - name: Widgets API
  - name: Worker API
  - name: Workflow API
  - name: Workflow Approval Procedure API
  - name: Workflow Run API
  - name: Workspace API
  - name: Workspace Group API
  - name: Workspace SDLC Settings API
  - name: Workspace User API
paths:
  /v2/reviews/{review_id}/ci-runs:
    get:
      tags:
        - Review API
      summary: List Review CI Runs
      description: >-
        List CI attempts for the review's current revision, newest first. Follow
        nextPageToken until empty. Check outcomes are recorded evidence;
        enforcementDisabled reflects current policy. Restart pagination if the
        review revision changes.
      operationId: svrelay.publicv2.PublicAPIServiceV2.ListReviewCiRuns
      parameters:
        - name: review_id
          in: path
          required: true
          schema:
            type: string
            title: review_id
        - name: pageSize
          in: query
          schema:
            type: integer
            title: page_size
            format: int32
        - name: pageToken
          in: query
          schema:
            type: string
            title: page_token
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/svmeta.publicapi.ListReviewCIRunsResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    svmeta.publicapi.ListReviewCIRunsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/svmeta.publicapi.ReviewCIAttempt'
          title: data
          x-stainless-terraform-configurability: optional
        nextPageToken:
          type: string
          title: next_page_token
          x-stainless-terraform-configurability: optional
      title: ListReviewCIRunsResponse
      additionalProperties: false
    svmeta.publicapi.ReviewCIAttempt:
      type: object
      properties:
        id:
          type: string
          title: id
          x-stainless-terraform-configurability: optional
        revisionId:
          type: string
          title: revision_id
          x-stainless-terraform-configurability: optional
        runNumber:
          type: integer
          title: run_number
          format: int32
          x-stainless-terraform-configurability: optional
        requestedByUserId:
          type: string
          title: requested_by_user_id
          x-stainless-terraform-configurability: optional
        startedAt:
          $ref: '#/components/schemas/google.protobuf.Timestamp'
          title: started_at
          x-stainless-terraform-configurability: optional
        checks:
          type: array
          items:
            $ref: '#/components/schemas/svmeta.publicapi.ReviewCICheckResult'
          title: checks
          x-stainless-terraform-configurability: optional
        status:
          $ref: '#/components/schemas/svmeta.publicapi.ReviewCIAttemptStatus'
          title: status
          x-stainless-terraform-configurability: optional
        sourceTeamId:
          type: string
          title: source_team_id
          x-stainless-terraform-configurability: optional
        targetTeamId:
          type: string
          title: target_team_id
          x-stainless-terraform-configurability: optional
      title: ReviewCIAttempt
      additionalProperties: false
    google.protobuf.Timestamp:
      type: string
      examples:
        - '2025-01-15T01:30:15.000Z'
        - '2025-06-01T00:00:00.000Z'
      format: date-time
      description: A timestamp in RFC 3339 format (e.g., "2025-01-15T01:30:15Z").
    svmeta.publicapi.ReviewCICheckResult:
      type: object
      properties:
        id:
          type: string
          title: id
          x-stainless-terraform-configurability: optional
        name:
          type: string
          title: name
          x-stainless-terraform-configurability: optional
        status:
          $ref: '#/components/schemas/serval.reviewci.v1.CICheckStatus'
          title: status
          x-stainless-terraform-configurability: optional
        error:
          type: string
          title: error
          x-stainless-terraform-configurability: optional
        policyTeamId:
          type: string
          title: policy_team_id
          x-stainless-terraform-configurability: optional
        workflowId:
          type: string
          title: workflow_id
          x-stainless-terraform-configurability: optional
        workflowRunId:
          type:
            - string
            - 'null'
          title: workflow_run_id
          x-stainless-terraform-configurability: optional
        simulationSuiteId:
          type: string
          title: simulation_suite_id
          x-stainless-terraform-configurability: optional
        simulationSuiteRunId:
          type:
            - string
            - 'null'
          title: simulation_suite_run_id
          x-stainless-terraform-configurability: optional
        enforcementDisabled:
          type: boolean
          title: enforcement_disabled
          description: >-
            Effective under the current receiving policy, including on older
            attempts.
          x-stainless-terraform-configurability: computed_optional
        minimumPassPercentage:
          type:
            - integer
            - 'null'
          title: minimum_pass_percentage
          format: int32
          x-stainless-terraform-configurability: optional
        passedEvaluationCount:
          type:
            - integer
            - 'null'
          title: passed_evaluation_count
          format: int32
          x-stainless-terraform-configurability: optional
        totalEvaluationCount:
          type:
            - integer
            - 'null'
          title: total_evaluation_count
          format: int32
          x-stainless-terraform-configurability: optional
      title: ReviewCICheckResult
      additionalProperties: false
    svmeta.publicapi.ReviewCIAttemptStatus:
      type: string
      title: ReviewCIAttemptStatus
      enum:
        - REVIEW_CI_ATTEMPT_STATUS_UNSPECIFIED
        - REVIEW_CI_ATTEMPT_STATUS_PENDING
        - REVIEW_CI_ATTEMPT_STATUS_PASSED
        - REVIEW_CI_ATTEMPT_STATUS_FAILED
    serval.reviewci.v1.CICheckStatus:
      type: string
      title: CICheckStatus
      enum:
        - CI_CHECK_STATUS_UNSPECIFIED
        - CI_CHECK_STATUS_PENDING
        - CI_CHECK_STATUS_RUNNING
        - CI_CHECK_STATUS_PASSED
        - CI_CHECK_STATUS_FAILED
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

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