---
title: "POST /experimental/agent-cases"
method: POST
path: "/experimental/agent-cases"
tags: ["Agent cases"]
---

# POST /experimental/agent-cases

`POST /experimental/agent-cases`

Start long-running work for a supported agent case kind.

## Headers

- `Authorization` string

## Request body

- object
  - `workspaceId` string, uuid, required
  - `kind` union, required
    - 'stitch-test'
    - 'eval-smoke'
    - 'skill-cost-optimization'
  - `creditBudget` number, required
  - `evalRunner` union, required
    - object
      - `mode` 'scripted', required
      - `script` object, required
        - `onUnmatched` union, required
          - 'fail'
          - 'default'
        - `defaultCreditsPerCell` number, required
        - `rules` object[], required
          - `match` object
            - `stage` string
            - `requestNumber` integer
            - `cells` integer
            - `scenarios` string[]
          - `quote` object
            - `credits` number, required
          - `respond` object, required
            - `after` union, required
              - …
            - `status` union, required
              - …
            - `cells` object[]
              - …
            - `creditsCharged` number
    - object
      - `mode` 'real', required
  - `models` string[] — The models eval arms may run on. The first is the default. Defaults to the agent case default model.
  - `plugin` object
    - `uploadKey` string, required — The key of an upload from POST /v1/uploads containing a .tar.gz plugin archive.
  - `context` object
    - `uploadKey` string, required — The key of an upload from POST /v1/uploads containing a .tar.gz source archive used to analyze the plugin.

## Response `201`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, required
    - `type` 'agent-case', required
    - `attributes` object, required
      - `workspaceId` string, required
      - `kind` string, required
      - `status` union, required
        - 'running'
        - 'waiting_for_eval'
        - 'waiting_for_person'
        - 'completed'
        - 'failed'
        - 'cancelled'
      - `currentStage` string, nullable, required
      - `waitingReason` string, nullable, required
      - `creditBudget` number, required
      - `temporalWorkflowId` string, required
      - `createdAt` string, date-time, required
      - `finishedAt` string, date-time, nullable, required

## Other responses

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

## Changes

- **2026-10-03** `4809028f6ca2` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/tessl/apis/tessl-api/changes/experimental/agent-cases/post.md)

---

[API](https://skmtc.dev/tessl/apis/tessl-api.md) · [All operations](https://skmtc.dev/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tessl/apis/tessl-api/revisions/ea9739cd90bc?raw)
