---
title: PATCH /api/v1/tickets/{guid}
description: Transition Ticket
locale: en
version: 0.2.0
canonical: https://enterium-developer-docs.pages.dev/developers/api/tickets/patch-tickets-guid/
---

> Documentation index: https://enterium-developer-docs.pages.dev/developers/llms.txt — every page of this portal has a Markdown twin at <route>.md; the frozen API contract is at https://enterium-developer-docs.pages.dev/developers/api/openapi.json.

:::note
Generated from the OpenAPI contract — do not edit by hand. Interactive explorer with full schemas: [https://entherium.duckdns.org:8443/reference](https://entherium.duckdns.org:8443/reference); frozen spec for this build: [openapi.json](/developers/api/openapi.json). Group: [tickets](../).
:::

Transition Ticket

Resolve / dismiss / promote a ticket, state-machine-guarded.

Owner-only. An illegal transition (e.g. closing an already-closed ticket) → 409.

**Auth:** `Authorization: Bearer <token>` required

## Request

```sh
curl -sS -X PATCH "https://entherium.duckdns.org:8443/api/v1/tickets/<guid>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"action":"resolve","resolution":"fixed in build 0.3.1; verified on the live URL"}'
```

## Response `200`

The contract carries no example for this response; schema: `TicketRead`. Field-level shape: [interactive explorer](https://entherium.duckdns.org:8443/reference).

## Returns

`TicketRead` — Successful Response

| Field | Type | Description |
| --- | --- | --- |
| `area` | `string \| null` (opt.) |  |
| `closed_at` | `string \| null` (opt.) |  |
| `component` | `string \| null` (opt.) |  |
| `contract_guid` | `integer \| null` (opt.) |  |
| `createtime` | `string` |  |
| `description` | `string \| null` (opt.) |  |
| `duplicate_of` | `integer \| null` (opt.) |  |
| `evidence` | `object` (opt.) |  |
| `fingerprint` | `string` |  |
| `first_seen` | `string \| null` (opt.) |  |
| `guid` | `integer` |  |
| `kind` | `string` |  |
| `last_seen` | `string \| null` (opt.) |  |
| `occurrence_count` | `integer` |  |
| `promoted_to` | `string \| null` (opt.) |  |
| `reporter` | `string \| null` (opt.) |  |
| `repro` | `object` (opt.) |  |
| `resolution` | `string \| null` (opt.) |  |
| `severity` | `string \| null` (opt.) |  |
| `spec_ref` | `string \| null` (opt.) |  |
| `status` | `string` |  |
| `title` | `string` |  |
| `vote_count` | `integer` |  |

## Parameters

| Parameter | In | Required | Type | Default | Constraints | Description |
| --- | --- | --- | --- | --- | --- | --- |
| `guid` | path | yes | `integer` | — | — |  |
| `Idempotency-Key` | header | no | `string` | — | uuid | Optional. |

## Request body

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `action` | `"resolve" \| "dismiss" \| "promote" \| "target" \| "reopen" \| "edit"` | yes |  |
| `description` | `string \| null` | no |  |
| `promoted_to` | `string \| null` | no |  |
| `resolution` | `string \| null` | no |  |
| `severity` | `"sev1" \| "sev2" \| "sev3" \| "sev4" \| null` | no |  |
| `spec_ref` | `string \| null` | no |  |
| `title` | `string \| null` | no |  |

_Example:_

```json
{
  "action": "resolve",
  "resolution": "fixed in build 0.3.1; verified on the live URL"
}
```

## Errors

| Code | Meaning | Body |
| --- | --- | --- |
| `401` | Missing or invalid authentication credentials | `ErrorResponse` |
| `422` | Validation Error | `HTTPValidationError` |

Every error body is `{detail, code?, request_id, doc_url}` — `request_id` is the value to quote, `doc_url` points at the [Errors reference](../../../reference/errors/).
