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

# Start a test of a browser game on your PC

> Patch Desktop on your PC takes it on, plays the release as players get it in two short runs and records them. Then look at the footage and send your review. Starting a test cancels any open one of the release.



## OpenAPI

````yaml /api-reference/openapi.json post /projects/{owner}/{slug}/releases/{version}/tests
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:
  /projects/{owner}/{slug}/releases/{version}/tests:
    post:
      tags:
        - Review
      summary: Start a test of a browser game on your PC
      description: >-
        Patch Desktop on your PC takes it on, plays the release as players get
        it in two short runs and records them. Then look at the footage and send
        your review. Starting a test cancels any open one of the release.
      parameters:
        - schema:
            type: string
            example: patch
          required: true
          name: owner
          in: path
        - schema:
            type: string
            example: demo-mod
          required: true
          name: slug
          in: path
        - schema:
            type: string
            example: 0.1.0
          required: true
          name: version
          in: path
      responses:
        '201':
          description: The test, waiting
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Test'
        '308':
          description: Renamed; follow the Location header
        '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.