---
title: "Update Chart Annotation"
method: PATCH
path: "/v2/applications/{application_id}/chart_annotations/{chart_annotation_id}"
tags: ["Chart Annotations"]
---

# Update Chart Annotation

`PATCH /v2/applications/{application_id}/chart_annotations/{chart_annotation_id}`

## Request

- Base URL: `https://api.superwall.com`
- URL: `https://api.superwall.com/v2/applications/{application_id}/chart_annotations/{chart_annotation_id}`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `accounts_superwall_token`
  - HTTP bearer

Changes the fields sent and keeps the rest. Send `end_at: null` to turn a range into a point. The result must still end after it starts. Requires charts:write scope.

## Path parameters

- `application_id` string, required
- `chart_annotation_id` string, required

## Request body

- object
  - `label` string: What happened, shown on the chart. 1-191 characters; leading and trailing whitespace is removed.
  - `description` string, nullable: Optional detail, up to 2000 characters.
  - `start_at` string, date-time
  - `end_at` string, date-time, nullable: A new end, after `start_at`. Send `null` to turn a range into a point. Omit to keep the current end.

## Response `200`

Success

- object
  - `object` 'chart_annotation', required
  - `id` string, required
  - `application_id` string, required
  - `label` string, required
  - `description` string, nullable, required
  - `start_at` string, required: The moment, or the start of the span. ISO 8601 UTC with milliseconds.
  - `end_at` string, nullable, required: The end of the span, or `null` for a point. ISO 8601 UTC with milliseconds.
  - `created_at` string, required: ISO 8601 timestamp
  - `updated_at` string, required: ISO 8601 timestamp

## Other responses

- `400`: The request did not match the expected schema | The request was invalid or malformed
- `401`: No API key was provided in the request | The API key does not have a valid format | The API key is invalid or has been revoked | An error occurred while validating the API key | The session cookie is invalid or expired
- `403`: The API key does not have permission to perform this action
- `404`: The requested resource was not found
- `429`: Too many requests have been made in a short period
- `500`: An unexpected error occurred on the server

## Changes

- **2026-10-29** `778a11cd2c15`: 5 warning, 2 info
  - added the new `credentials_missing` enum value to the `anyOf[subschema #2]/code` response property for the response status `400`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `403`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `404`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `429`
  - …3 more
- **2026-10-29** `7e65bcbd2cce`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/superwall/apis/superwall-api-v2/changes/v2/applications/:application_id/chart_annotations/:chart_annotation_id/patch.md)

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) - [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/superwall/apis/superwall-api-v2/revisions/523b4734dfab?raw)
