---
title: "Update a news asset row (pick a different item_id, flip to confirmed)"
method: PATCH
path: "/api/news/article/{id}/assets/{assetId}"
tags: ["News"]
---

# Update a news asset row (pick a different item_id, flip to confirmed)

`PATCH /api/news/article/{id}/assets/{assetId}`

## 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}/assets/{assetId}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sponsorunited/apis/sponsorunited-api/docs/api/news/article/:id/assets/:assetId/patch.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `id` integer, required
- `assetId` integer, required

## Request body

- UpdateNewsAssetRequest
  - `item_id` integer, nullable: FK to items; must reference an existing catalog row.
  - `match_status` 'confirmed' | 'dismissed' | 'needs_review': Reviewer-driven state transitions (needs_review = unconfirm).
  - `context` string, nullable: Editable free-text note. Send null or an empty string to clear it; omit to leave it unchanged.

## Response `200`

Asset row updated

- NewsAssetResource
  - `id` integer: Serialises a {@see NewsAsset} row for the Article Analysis view's assets table. Hydrates the `item` payload (canonical catalog row, incl. platform/subplatform ids) when set and always emits `match_candidates` (as `[]` when no top-K available).
  - `curated_news_id` integer
  - `suggested_name` string
  - `confidence` number, float
  - `match_status` 'pending' | 'auto_match' | 'needs_review' | 'no_match' | 'confirmed' | 'dismissed'
  - `source` 'extracted' | 'manual'
  - `context` string, nullable
  - `match_candidates` object[]
  - `item` object, nullable
    - `id` integer
    - `name` string, nullable
    - `description` string, nullable
    - `item_platform_id` integer
    - `item_subplatform_id` integer
  - `created_by` object, nullable
    - `id` integer
    - `name` string
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `401`: Unauthenticated
- `403`: Forbidden — missing edit news permission
- `404`: Article or asset not found
- `422`: Validation error

---

[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)
