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

# Update a Live Activity

> Send new content to a running Live Activity

Sends new content state to every running copy of a contact's activity: one per device of that contact that reported an update token for `activityId`, whether you started it with [start](./start-live-activity) or the app started it. Requires the `transactional:send` scope.

Activities are always addressed per contact. Any app install can report a token under any `activityId`, so Sequenzy only sends to the tokens linked to the contact you name.

Each request carries a fixed timestamp. iOS ignores a push that is not newer than the last one it applied, so a retried or late delivery never replaces newer content. When no running copy of the contact's activity has reported a token yet, the request returns `202` with `tokenCount: 0`.

## Request

**activityId** `string` *required*

The activity to update.

**contentState** `object` *required*

The new `ContentState` as JSON.

**alert** `object`

Optional `title`, `body` and `sound`. Lights the screen and shows the
expanded view.

**priority** `string` (default: high)

`high` delivers immediately and counts against Apple's Live Activity update
budget. `low` does not count against it and may be delayed. Updates with an
alert always go at high priority.

**email** `string`

Contact whose activity it is. Provide `email` or `subscriberId`.

**subscriberId** `string`

Subscriber whose activity it is.

**staleDate** `integer | string`

Unix seconds or an ISO 8601 date.

**relevanceScore** `number`

Orders a person's concurrent activities.

```bash theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/push/live-activities/update" \
  --header "Authorization: Bearer $SEQUENZY_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"email":"jane@example.com","activityId":"order-1234","contentState":{"status":"out_for_delivery","minutesAway":8},"priority":"low"}'
```

## Responses

A body with a missing or mistyped field is rejected with `422` before any other check; invalid ids, dates and the missing contact return `400`.

```json 202 theme={null}
{
  "success": true,
  "event": "update",
  "activityId": "order-1234",
  "tokenCount": 1,
  "jobIds": ["liveact-91ab-0"],
  "message": "Update queued for 1 device."
}
```

```json 400 theme={null}
{
  "error": "activityId: Use 1-128 letters, digits, dots, colons, dashes or underscores, starting with a letter or digit"
}
```

```json 401 theme={null}
{
  "error": "Invalid API key"
}
```

```json 422 theme={null}
{ "success": false, "error": "Expected property 'contentState' to be object" }
```

```json 403 theme={null}
{
  "error": "API key is missing required scope: transactional:send"
}
```

```json 404 theme={null}
{
  "error": "Subscriber not found."
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.