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

# Batch Get Review Items

> Read before and after documents for 1–20 unique item IDs from one review, in request order. Uses the same comparison and secret scrubbing as GetReviewItem. Missing or foreign items fail the entire request; unsupported content is reported per item.

## Authentication and permissions

> **Token requirements:** **User-based token (OAuth)** or **Organization-scoped API key** or **Team-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`<br />**User: session review, User: promotion:** Unsupported |
| Team-scoped API key | **API key:** `reviews:read`<br />**User: session review, User: promotion:** Unsupported |
| User-based token (OAuth) | **API key:** Unsupported<br />**User: session review, User: promotion:** Supported, subject to permissions |

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

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

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

* **User: promotion:** Requires review permission on the target team, or both staging permission on the target team and author permission on the source team.


## OpenAPI

````yaml /sections/api-reference/openapi-spec-v2.yaml post /v2/reviews/{review_id}/items:batchGet
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: 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: Campaign API
  - name: Change Blackout API
  - name: Change Model API
  - name: Connected Channels API
  - name: Custom Field 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: Journey API
  - name: Knowledge API
  - name: Knowledge Base API
  - name: One-Time Window API
  - name: Report API
  - name: Review API
  - name: Roles API
  - name: SLA API
  - name: Schedule API
  - name: Tag API
  - name: Team API
  - name: Team Group API
  - name: Team SDLC Settings API
  - name: Team User API
  - name: Ticket 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
paths:
  /v2/reviews/{review_id}/items:batchGet:
    post:
      tags:
        - Review API
      summary: Batch Get Review Items
      description: >-
        Read before and after documents for 1–20 unique item IDs from one
        review, in request order. Uses the same comparison and secret scrubbing
        as GetReviewItem. Missing or foreign items fail the entire request;
        unsupported content is reported per item.
      operationId: svrelay.publicv2.PublicAPIServiceV2.BatchGetReviewItems
      parameters:
        - name: review_id
          in: path
          required: true
          schema:
            type: string
            title: review_id
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                itemIds:
                  type: array
                  items:
                    type: string
                  title: item_ids
                  description: Between 1 and 20 unique item IDs belonging to this review.
              title: BatchGetReviewItemsRequest
              additionalProperties: false
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/svmeta.publicapi.BatchGetReviewItemsResponse
      security:
        - BearerAuth: []
components:
  schemas:
    svmeta.publicapi.BatchGetReviewItemsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/svmeta.publicapi.ReviewItemDetail'
          title: data
          description: >-
            In request order. A missing or foreign item fails the entire
            request.
          x-stainless-terraform-configurability: optional
      title: BatchGetReviewItemsResponse
      additionalProperties: false
    svmeta.publicapi.ReviewItemDetail:
      type: object
      properties:
        item:
          $ref: '#/components/schemas/svmeta.publicapi.ReviewItem'
          title: item
          x-stainless-terraform-configurability: optional
        contentStatus:
          $ref: '#/components/schemas/svmeta.publicapi.ReviewItemContentStatus'
          title: content_status
          description: >-
            Missing content must not be interpreted as an empty resource or a
            successful review.
          x-stainless-terraform-configurability: optional
        before:
          $ref: '#/components/schemas/google.protobuf.Struct'
          title: before
          description: |-
            Portable review-resource documents, not public API mutation bodies.
             Uses the same comparison baseline as the review UI; pending changes may use live state.
          x-stainless-terraform-configurability: optional
        after:
          $ref: '#/components/schemas/google.protobuf.Struct'
          title: after
          x-stainless-terraform-configurability: optional
      title: ReviewItemDetail
      additionalProperties: false
    svmeta.publicapi.ReviewItem:
      type: object
      properties:
        id:
          type: string
          title: id
          x-stainless-terraform-configurability: optional
        resourceKind:
          type: string
          title: resource_kind
          description: Uses ResourceManager's canonical resource kind values.
          x-stainless-terraform-configurability: optional
        resourceId:
          type: string
          title: resource_id
          x-stainless-terraform-configurability: optional
        draftResourceId:
          type: string
          title: draft_resource_id
          x-stainless-terraform-configurability: optional
        operation:
          $ref: '#/components/schemas/svmeta.publicapi.ReviewItemOperation'
          title: operation
          x-stainless-terraform-configurability: optional
        applyResult:
          $ref: '#/components/schemas/svmeta.publicapi.ReviewItemApplyResult'
          title: apply_result
          x-stainless-terraform-configurability: optional
      title: ReviewItem
      additionalProperties: false
    svmeta.publicapi.ReviewItemContentStatus:
      type: string
      title: ReviewItemContentStatus
      enum:
        - REVIEW_ITEM_CONTENT_STATUS_UNSPECIFIED
        - REVIEW_ITEM_CONTENT_STATUS_AVAILABLE
        - REVIEW_ITEM_CONTENT_STATUS_MISSING_BASE
        - REVIEW_ITEM_CONTENT_STATUS_UNSUPPORTED
    google.protobuf.Struct:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/google.protobuf.Value'
      description: |-
        `Struct` represents a structured data value, consisting of fields
         which map to dynamically typed values. In some languages, `Struct`
         might be supported by a native representation. For example, in
         scripting languages like JS a struct is represented as an
         object. The details of that representation are described together
         with the proto support for the language.

         The JSON representation for `Struct` is JSON object.
    svmeta.publicapi.ReviewItemOperation:
      type: string
      title: ReviewItemOperation
      enum:
        - REVIEW_ITEM_OPERATION_UNSPECIFIED
        - REVIEW_ITEM_OPERATION_CREATE
        - REVIEW_ITEM_OPERATION_UPDATE
        - REVIEW_ITEM_OPERATION_DELETE
        - REVIEW_ITEM_OPERATION_UPSERT
    svmeta.publicapi.ReviewItemApplyResult:
      type: object
      oneOf:
        - $ref: '#/components/schemas/svmeta.publicapi.ReviewItemApplyResult.Applied'
        - $ref: '#/components/schemas/svmeta.publicapi.ReviewItemApplyResult.Failed'
        - $ref: '#/components/schemas/svmeta.publicapi.ReviewItemApplyResult.Pending'
      title: ReviewItemApplyResult
    google.protobuf.Value:
      oneOf:
        - type: 'null'
        - type: number
        - type: string
        - type: boolean
        - type: array
        - type: object
          additionalProperties: true
      description: |-
        `Value` represents a dynamically typed value which can be either
         null, a number, a string, a boolean, a recursive struct value, or a
         list of values. A producer of value is expected to set one of these
         variants. Absence of any variant indicates an error.

         The JSON representation for `Value` is JSON value.
    svmeta.publicapi.ReviewItemApplyResult.Applied:
      type: object
      title: Applied
      properties:
        applied:
          $ref: '#/components/schemas/google.protobuf.Empty'
          title: applied
          x-stainless-terraform-configurability: optional
      required:
        - applied
      additionalProperties: false
    svmeta.publicapi.ReviewItemApplyResult.Failed:
      type: object
      title: Failed
      properties:
        failed:
          $ref: '#/components/schemas/svmeta.publicapi.ReviewItemApplyFailure'
          title: failed
          x-stainless-terraform-configurability: optional
      required:
        - failed
      additionalProperties: false
    svmeta.publicapi.ReviewItemApplyResult.Pending:
      type: object
      title: Pending
      properties:
        pending:
          $ref: '#/components/schemas/google.protobuf.Empty'
          title: pending
          x-stainless-terraform-configurability: optional
      required:
        - pending
      additionalProperties: false
    google.protobuf.Empty:
      type: object
      description: |-
        A generic empty message that you can re-use to avoid defining duplicated
         empty messages in your APIs. A typical example is to use it as the request
         or the response type of an API method. For instance:

             service Foo {
               rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
             }
    svmeta.publicapi.ReviewItemApplyFailure:
      type: object
      properties:
        reason:
          type: string
          title: reason
          x-stainless-terraform-configurability: optional
      title: ReviewItemApplyFailure
      additionalProperties: false
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

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