---
title: "Update a news article."
url: https://docs.gleap.ai/en/reference/rest-api/update-news-article
method: PUT
path: "/engagement/news/{newsId}"
api: "API Reference"
tag: "Engagement News"
operationId: "UpdateNewsArticle"
updatedAt: "2026-11-01T18:40:15.677Z"
language: en
---

# Update a news article.

`PUT https://api.gleap.io/v3/engagement/news/{newsId}`

Update an engagement news article. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its content); pause it first or the request fails with 409. Setting `status` to `live` starts delivery. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. `searchContent` is derived from `subject` (recomputed only when `subject` is sent) and ignored if supplied. News items always use a dynamic audience, so `frequencyType: "fixed"` and `csvContacts` are ignored unless the item already stores them.

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Path parameters

- `newsId` (string, required)

## Headers

- `project` (string, required)

## Request body (`application/json`, required)

## Example request

```bash
curl --request PUT \
  --url 'https://api.gleap.io/v3/engagement/news/{newsId}' \
  --header 'Authorization: Bearer <token>' \
  --header 'project: <project>' \
  --header 'Content-Type: application/json' \
  --data '{}'
```

## Responses

### 200 (`application/json`)

Ok
