---
title: "Update a curated news article"
method: PUT
path: "/api/news/article/{id}"
tags: ["News"]
---

# Update a curated news article

`PUT /api/news/article/{id}`

## Request

- Base URL: `https://api.sponsorunited.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sponsorunited.com/api/news/article/{id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sponsorunited/apis/sponsorunited-api/docs/api/news/article/:id/put.ts> (a function with typed inputs; its response is checked against the schema)

Updates an existing curated news article. If a new URL is provided and differs from the current one, the article metadata is re-fetched from the URL. Requires edit news permission.

## Path parameters

- `id` integer, required

## Headers

- `X-Agent-Name` string

## Request body

- object
  - `url` string, url: New article URL (must be unique if changed)
  - `title` string: Article title
  - `description` string: Article description
  - `image` string: Image URL for the article. A URL already in the upload bucket is kept as it is; any other value must be a safe, publicly accessible http(s) URL and is copied to the bucket. An empty value clears the image.
  - `published_at` string, date-time: Publication date
  - `is_active` boolean: Whether the article is active
  - `companies` object[]: Array of company objects to sync
    - `id` integer
  - `agencies` object[]: Array of agency objects to sync
    - `id` integer
  - `teams` object[]: Array of team/property objects to sync
    - `id` integer
  - `tags` integer[]: Array of news tag IDs to sync

## Response `200`

Article updated successfully

- CuratedNews
  - `id` integer
  - `url` string
  - `is_active` integer
  - `reporter_id` integer
  - `title` string
  - `description` string
  - `image` string
  - `created_at` string, date-time
  - `content_markdown` string
  - `ingestion_request_id` string
  - `updated_at` string, date-time
  - `published_at` string, date-time

## Other responses

- `401`: Unauthenticated
- `403`: Forbidden — missing edit news permission
- `404`: Article not found
- `422`: Validation error (e.g. duplicate URL, or an image that is not a bucket URL nor a safe public http(s) URL)

---

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