---
title: "Create/Update a job annotation"
method: PATCH
path: "/projects/{project_id}/jobs/{job_id}/annotations/{id}"
tags: ["Job Annotations"]
---

# Create/Update a job annotation

`PATCH /projects/{project_id}/jobs/{job_id}/annotations/{id}`

Create or update an annotation for a job. If the annotation already exists, it will be updated; otherwise, a new annotation will be created.

## Path parameters

- `project_id` string, required
- `job_id` string, required
- `id` string, required

## Headers

- `X-PhraseApp-OTP` string

## Request body

- object
  - `value` string — Annotation value
  - `branch` string — Branch name of the job

## Response `200`

OK

- JobAnnotation
  - `name` string, required
  - `value` string, required
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `400` — Bad request. The request could not be parsed or a parameter failed validation. Verify the request body, the content type, and the parameter types, then retry.
- `404` — Not found. The requested resource does not exist or is not visible to the authenticated user. Verify the identifiers in the request path and that the token has access to them, then retry.
- `429` — Too many requests. The rate limit has been exceeded. Wait until the time indicated by the `X-Rate-Limit-Reset` response header before retrying.

---

[API](https://skmtc.dev/phrase/apis/control-hub-service.md) · [All operations](https://skmtc.dev/phrase/apis/control-hub-service/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/phrase/control-hub-service/revisions/98ecac7ba2bf/schema)
