---
title: "Name an Execution Run"
method: PATCH
path: "/v1/clusters/{cluster_id}/executions/{run_id}/name"
tags: ["Cluster Executions"]
---

# Name an Execution Run

`PATCH /v1/clusters/{cluster_id}/executions/{run_id}/name`

Set (or clear) a human-friendly name on a single execution run — no
    re-run required.

    A non-empty value sets/replaces the run's `run_name`; an empty string
    clears it, restoring the unnamed (run_id-only) state. Names are trimmed
    and capped at 120 characters. The name is persisted on the execution
    record and returned by execution GET/LIST responses (`run_name`,
    omitted entirely while unnamed), so run selectors and execution-history
    views can show 'July tuning baseline' instead of `run_a8e2709532...`.

    Sibling of PATCH `.../executions/{run_id}/labels`: each display field
    gets its own strict single-purpose PATCH rather than a general
    execution PATCH, because execution results themselves are immutable.

    Example body: `{"run_name": "July tuning baseline"}` (or
    `{"run_name": ""}` to clear).

## Path parameters

- `cluster_id` string, required — Cluster ID
- `run_id` string, required — Run ID to name

## Request body

- PatchExecutionRunNameRequest — Body for PATCH /v1/clusters/{cluster_id}/executions/{run_id}/name. Names (or renames) a single execution run without re-running clustering. The value is trimmed; an empty string (after trimming) CLEARS the name, restoring the unnamed state (run_id-only display). Strict single-field model — the run name is the only mutable display field here, mirroring the field-scoped ``.../labels`` PATCH.
  - `run_name` string, required — Human-friendly name for the run (e.g. 'July tuning baseline'). Trimmed; a non-empty value sets/replaces the name, an empty string clears it. Capped at 120 characters.

## Response `200`

Successful Response

- PatchExecutionRunNameResponse — Response for PATCH .../executions/{run_id}/name: the persisted name.
  - `cluster_id` string, required — Cluster the execution belongs to
  - `run_id` string, required — Execution whose name was patched
  - `run_name` string, nullable — The run's name AFTER applying this patch. None when the name was just cleared (empty-string request).

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

## Changes

- **2026-08-09** `5d4c905106b4` — 1 info
  - the endpoint scheme security `BearerAuth AND NamespaceHeader` was added to the API

[Change history](https://skmtc.dev/mixpeek/apis/mixpeek-api/changes/v1/clusters/:cluster_id/executions/:run_id/name/patch.md)

---

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