> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfycontrol.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Runner

> Update an existing runner configuration

## Overview

Update the configuration of an existing runner. You can modify the name, endpoint URL, headers, tags, or status.

## Path Parameters

<ParamField path="id" type="string" required>
  The unique identifier (UUID) of the runner to update.
</ParamField>

## Request Body

<ParamField body="name" type="string">
  A descriptive name for your runner (1-100 characters).
</ParamField>

<ParamField body="endpoint" type="string">
  The URL where your ComfyUI instance is accessible. Must be a valid HTTP or HTTPS URL.

  Example: `https://my-comfy.example.com` or `http://192.168.1.100:8188`
</ParamField>

<ParamField body="headers" type="object">
  Custom HTTP headers to include when communicating with your runner.

  Example: `{"Authorization": "Bearer token123", "X-Custom-Header": "value"}`
</ParamField>

<ParamField body="tags" type="string[]">
  Array of tags for organizing and selecting runners (maximum 10 tags).

  Example: `["production", "gpu-a100", "image-generation"]`
</ParamField>

<ParamField body="status" type="string">
  Status of the runner. Values: `active`, `disabled`

  Use `disabled` to temporarily prevent workflows from using this runner.
</ParamField>

## Response

<ResponseField name="id" type="string" required>
  Unique identifier (UUID) for the runner.
</ResponseField>

<ResponseField name="user_id" type="string" required>
  UUID of the user who owns this runner.
</ResponseField>

<ResponseField name="name" type="string" required>
  The runner's name.
</ResponseField>

<ResponseField name="status" type="string" required>
  Current status of the runner. Values: `active`, `disabled`
</ResponseField>

<ResponseField name="endpoint" type="string" required>
  The URL where the runner is accessible.
</ResponseField>

<ResponseField name="tags" type="string[]" required>
  Array of tags associated with the runner.
</ResponseField>

<ResponseField name="headers" type="object" required>
  The custom headers configured for this runner.
</ResponseField>

<ResponseField name="created_at" type="string" required>
  ISO 8601 timestamp when the runner was created.
</ResponseField>

<ResponseField name="updated_at" type="string" required>
  ISO 8601 timestamp when the runner was last updated.
</ResponseField>

## Example Response

```json theme={null}
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "user_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "name": "Production GPU Runner - Updated",
  "status": "active",
  "endpoint": "https://new-endpoint.example.com",
  "tags": ["production", "gpu-a100", "video-generation"],
  "headers": {
    "Authorization": "Bearer new_token"
  },
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-16T14:20:00Z"
}
```

## Error Responses

<ResponseField name="400" type="error">
  Bad request - validation error in the request body.

  Common causes:

  * Name is empty or too long
  * Invalid endpoint URL format
  * Too many tags (max 10)
  * Invalid headers format
  * Invalid status value
</ResponseField>

<ResponseField name="401" type="error">
  Unauthorized - invalid or missing authentication token.
</ResponseField>

<ResponseField name="404" type="error">
  Not Found - runner with the specified ID does not exist or does not belong to your account.
</ResponseField>

## Notes

* All fields in the request body are optional - only include fields you want to update
* Omitted fields will retain their current values
* Setting status to `disabled` prevents workflows from using this runner
* Tags are completely replaced, not merged - send all tags you want to keep
