---
title: "POST /experimental/eval-scenarios/generate"
method: POST
path: "/experimental/eval-scenarios/generate"
tags: ["Evals", "Generation"]
---

# POST /experimental/eval-scenarios/generate

`POST /experimental/eval-scenarios/generate`

Starts an LLM-driven eval scenario generation run for a repo commit or tile upload.

## Headers

- `Authorization` string

## Request body

- object
  - `workspaceName` string
  - `workspaceId` string, uuid
  - `source` union, required
    - object
      - `type` 'commit', required
      - `orgName` string, required
      - `repoName` string, required
      - `commit` string
      - `pullRequestNumber` integer
      - `contextPatterns` string[]
      - `repoArchiveUpload` object
        - `archiveUploadKey` string, required — S3 uploads key for repo archive at HEAD of default branch
        - `commitDetails` string, required — JSON string of pre-extracted commit details
        - `repoCloneUrl` string, required — Clone URL for fixture metadata
        - `defaultBranch` string, required
        - `parentCommitHash` string, required — Parent commit hash used as the fixture ref
    - object
      - `type` 'tile-upload', required
      - `uploadsS3Key` string, required
      - `scenarioCount` integer

## Response `201`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `meta` object, required
    - `generationId` string, uuid, required
    - `workflowId` string, nullable, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'eval-generation', required
    - `attributes` object, required
      - `workflowId` string, nullable, required
      - `source` union, required
        - object
          - `type` 'commit', required
          - `orgName` string, required
          - `repoName` string, required
          - `commit` string
          - `pullRequestNumber` integer
          - `contextPatterns` string[]
          - `repoArchiveUpload` object
            - `archiveUploadKey` string, required — S3 uploads key for repo archive at HEAD of default branch
            - `commitDetails` string, required — JSON string of pre-extracted commit details
            - `repoCloneUrl` string, required — Clone URL for fixture metadata
            - `defaultBranch` string, required
            - `parentCommitHash` string, required — Parent commit hash used as the fixture ref
        - object
          - `type` 'tile-upload', required
          - `uploadsS3Key` string, required
          - `scenarioCount` integer
      - `metadata` object, required
      - `createdBy` string, uuid, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, 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/revisions/2fe02c07eb49/schema)
