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

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Update annotation

> Updates one or more mutable annotation fields.

`axiom.updateAnnotation` updates one or more mutable annotation fields. Provide at least one field in addition to `annotationId`; returns the complete annotation.

```ts automations/axiom-update-annotation.automation.ts theme={null}
import { automation, onHttpRequest } from "automate.ax"
import { axiom } from "automate.ax/axiom"

export default automation("Update annotation", () => {
  onHttpRequest({ scope: "automation" })
  axiom.updateAnnotation({
    annotationId: "annotation-id",
    title: "Rollout complete",
  })
})
```

## Inputs

`annotationId` is required. Provide at least one of `datasets`, `type`, `time`, `endTime`, `title`, `description`, or `url`. `datasets` must contain at least one dataset; `type` accepts lowercase letters, digits, and hyphens; title, description, and URL lengths use the same limits as creation.

## Output

Returns the complete updated annotation rather than only the changed fields.

## Permission and failures

The API token needs the organization-level `annotations|update` capability. Axiom rejects missing annotations, inaccessible datasets, invalid times, and values outside the annotation limits. This mutation is not retried automatically after an ambiguous provider response.
