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

# Send your review of a test's footage

> Look at every sheet first. Say whether it starts and can be played, whether it does anything harmful, and cite at least two moments you saw (every run at least once), each by its run and the time on a frame. A review that doesn't is refused with review_refused. A passing review moves the release on to the cloud review.



## OpenAPI

````yaml /api-reference/openapi.json post /tests/{id}/review
openapi: 3.1.0
info:
  title: Patch API
  version: 1.0.0
  description: >-
    The public API behind patch.gg, the desktop app and pch. Changes within v1
    are additive only. Errors are { error: { code, message, details } }; branch
    on code.
servers:
  - url: https://patch.gg/api/v1
security: []
paths:
  /tests/{id}/review:
    post:
      tags:
        - Review
      summary: Send your review of a test's footage
      description: >-
        Look at every sheet first. Say whether it starts and can be played,
        whether it does anything harmful, and cite at least two moments you saw
        (every run at least once), each by its run and the time on a frame. A
        review that doesn't is refused with review_refused. A passing review
        moves the release on to the cloud review.
      parameters:
        - schema:
            type: string
            format: uuid
          required: true
          name: id
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                verdict:
                  type: string
                  enum:
                    - pass
                    - fail
                plays:
                  type: boolean
                  description: It starts and can be played
                harmful:
                  type: boolean
                  description: >-
                    It sends players' data elsewhere, mines, phishes or collects
                    credentials, misleads players, or shows content Patch
                    doesn't allow
                summary:
                  type: string
                  minLength: 1
                  maxLength: 2000
                  description: What you saw, in a few lines
                moments:
                  type: array
                  items:
                    type: object
                    properties:
                      run:
                        type: integer
                        minimum: 1
                      at:
                        type: string
                        description: The run time as the sheets label frames, mm:ss
                        example: '00:14'
                      saw:
                        type: string
                        minLength: 1
                        maxLength: 500
                        description: What happened there
                    required:
                      - run
                      - at
                      - saw
                  maxItems: 50
              required:
                - verdict
                - plays
                - harmful
                - summary
                - moments
      responses:
        '200':
          description: The decided test
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Test'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Not signed in
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearer: []
components:
  schemas:
    Test:
      type:
        - object
        - 'null'
      properties:
        id:
          type: string
          format: uuid
        project:
          type: string
        version:
          type: string
        state:
          type: string
          enum:
            - waiting
            - running
            - recorded
            - passed
            - failed
            - couldnt_run
            - cancelled
          description: >-
            waiting for Patch Desktop on your PC, running, recorded (waiting for
            your agent's review of the footage), passed, failed, couldnt_run
            (start another) or cancelled
        runs:
          type: integer
        minutes:
          type: integer
        pc_name:
          type:
            - string
            - 'null'
        progress:
          type:
            - object
            - 'null'
          properties:
            phase:
              type: string
            run:
              type: integer
          required:
            - phase
            - run
        outcome:
          type:
            - object
            - 'null'
          properties:
            code:
              type: string
            reason:
              type: string
          required:
            - code
            - reason
        results:
          type: array
          items:
            type: object
            properties:
              run:
                type: integer
              seconds:
                type: integer
              checks:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      enum:
                        - scanned
                        - loaded
                        - no_errors
                        - picture
                        - responding
                        - no_outside_requests
                        - ran_to_end
                        - self_checks
                    result:
                      type: string
                      enum:
                        - pass
                        - fail
                        - cant_check
                    detail:
                      type: string
                      maxLength: 1000
                    name:
                      type: string
                  required:
                    - id
                    - result
                    - name
              self_checks:
                type:
                  - object
                  - 'null'
                additionalProperties: {}
              frames:
                type: integer
              sheets:
                type: integer
              footage_error:
                type:
                  - string
                  - 'null'
            required:
              - run
              - seconds
              - checks
              - self_checks
              - frames
              - sheets
              - footage_error
        review:
          type:
            - object
            - 'null'
          properties:
            verdict:
              type: string
              enum:
                - pass
                - fail
            plays:
              type: boolean
            harmful:
              type: boolean
            summary:
              type: string
            moments:
              type: array
              items:
                type: object
                properties:
                  run:
                    type: integer
                    minimum: 1
                  at:
                    type: string
                    description: The run time as the sheets label frames, mm:ss
                    example: '00:14'
                  saw:
                    type: string
                    minLength: 1
                    maxLength: 500
                    description: What happened there
                required:
                  - run
                  - at
                  - saw
            created_at:
              type: string
          required:
            - verdict
            - plays
            - harmful
            - summary
            - moments
            - created_at
        created_at:
          type: string
        claimed_at:
          type:
            - string
            - 'null'
        finished_at:
          type:
            - string
            - 'null'
      required:
        - id
        - project
        - version
        - state
        - runs
        - minutes
        - pc_name
        - progress
        - outcome
        - results
        - review
        - created_at
        - claimed_at
        - finished_at
      description: The newest test, for browser games
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: version_exists
            message:
              type: string
            details: {}
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: An API key (pch_...) or the token from pch login.

````

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