---
title: "POST /experimental/review-runs"
method: POST
path: "/experimental/review-runs"
tags: ["Review Runs"]
---

# POST /experimental/review-runs

`POST /experimental/review-runs`

Creates a new review run and starts the review workflow.

## Headers

- `Authorization` string

## Request body

- object
  - `uploadKey` string, required
  - `metadata` object, required
    - `tier` 'authed_free', required
    - `pathLabel` string
    - `source` string
    - `subject` union
      - object
        - `type` 'tile_skill', required
        - `name` string, required
        - `path` string, required
        - `tileRef` string, required
        - `registryUrl` string, required
      - object
        - `type` 'skill', required
        - `name` string, required
        - `path` string
  - `config` object
    - `agent` string
    - `model` string
  - `workspaceId` string, uuid, required
  - `force` boolean
  - `pluginRef` string — Registry reference to a custom review plugin (workspace/plugin[@version]).
  - `pluginUploadKey` string — S3 upload key of a locally-packed review plugin tarball.

## Response `201`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'review-run', required
    - `attributes` object, required
      - `workflowId` string, nullable, required
      - `status` union, required
        - 'pending'
        - 'completed'
        - 'failed'
      - `metadata` object, required
        - `tier` union, required
          - 'anonymous'
          - 'authed_free'
        - `pathLabel` string
        - `source` string
        - `subject` union
          - object
            - `type` 'tile_skill', required
            - `name` string, required
            - `path` string, required
            - `tileRef` string, required
            - `registryUrl` string, required
          - object
            - `type` 'skill', required
            - `name` string, required
            - `path` string
        - `reusedFromReviewRunId` string, uuid
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `progress` object
        - `queue` union, required
          - 'preparing'
          - 'queued'
          - 'active'
          - 'finishing'
        - `recipes` object[], required
          - `name` string, required
          - `waiting` integer, required
          - `running` integer, required
          - `completed` integer, required
        - `summary` object
          - `label` string, required
          - `total` integer
          - `completed` integer, required
          - `failed` integer, required
        - `units` object[]
          - `name` string, required
          - `percent` integer, required
          - `waiting` boolean, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/tessl/apis/tessl-api.md) · [All operations](https://skmtc.net/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tessl/tessl-api/versions/fbb186825642/schema)
