---
title: "Create Run"
method: POST
path: "/projects/{project_id}/runs"
tags: ["runs"]
---

# Create Run

`POST /projects/{project_id}/runs`

Create a new run in the given project.

Validates that no run with the same name exists, that the run's task type
is compatible with the project type, and that all existing runs share the
same task type before delegating to the async run-creation service.

## Path parameters

- `project_id` string, uuid4, required

## Request body

- RunCreate
  - `name` string, required
  - `project_id` string, uuid4, nullable
  - `created_by` string, uuid4, nullable
  - `num_samples` integer, nullable
  - `winner` boolean, nullable
  - `dataset_hash` string, nullable
  - `dataset_version_id` string, uuid4, nullable
  - `prompt_template_version_id` string, uuid4, nullable
  - `task_type` integer, required
  - `run_tags` RunTagCreateRequest[]
    - `key` string, required
    - `value` string, required
    - `tag_type` string, required

## Response `200`

Successful Response

- CreateRunResponse
  - `name` string, nullable
  - `project_id` string, uuid4, nullable
  - `created_by` string, uuid4, required
  - `num_samples` integer, required
  - `winner` boolean, required
  - `dataset_hash` string, nullable
  - `dataset_version_id` string, uuid4, nullable
  - `prompt_template_version_id` string, uuid4, nullable
  - `id` string, uuid4, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `task_type` 13 | 15 | 16 | 17 | 18 — Valid task types for modeling. We store these as ints instead of strings because we will be looking this up in the database frequently.
  - `last_updated_by` string, uuid4, required
  - `run_tags` RunTagDB[]
    - `key` string, required
    - `value` string, required
    - `tag_type` string, required
    - `project_id` string, uuid4, required
    - `run_id` string, uuid4, required
    - `created_by` string, uuid4, required
    - `id` string, uuid4, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-06** `933e8c8e6366` — 3 info
  - removed the `12.00` enum value from the `task_type/anyOf[subschema #1: TaskType]/` response property for the response status `200`
  - removed the `7.00` enum value from the `task_type/anyOf[subschema #1: TaskType]/` response property for the response status `200`
  - removed the `9.00` enum value from the `task_type/anyOf[subschema #1: TaskType]/` response property for the response status `200`
- **2026-07-26** `05003e7835a2` — 3 info
  - the endpoint scheme security `ClassicAPIKeyHeader` was added to the API
  - added the new optional request property `prompt_template_version_id`
  - added the optional property `prompt_template_version_id` to the response with the `200` status

[Change history](https://skmtc.dev/galileo/apis/galileo-api-server/changes/projects/:project_id/runs/post.md)

---

[API](https://skmtc.dev/galileo/apis/galileo-api-server.md) · [All operations](https://skmtc.dev/galileo/apis/galileo-api-server/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/galileo/galileo-api-server/revisions/8b1d1a4a933e/schema)
