---
title: "Link brands, agencies, properties or tags to a news article without replacing the list"
method: POST
path: "/api/news/article/{id}/links"
tags: ["News"]
---

# Link brands, agencies, properties or tags to a news article without replacing the list

`POST /api/news/article/{id}/links`

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

Adds the given ids to one link list of the article. Ids already linked stay linked, and nothing already on the list is removed — unlike the article PUT, which replaces the whole list.

## Path parameters

- `id` integer, required

## Headers

- `X-Agent-Name` string

## Request body

- AttachNewsLinksRequest
  - `type` 'company' | 'agency' | 'property' | 'tag', required: Which link list to add to. `company` is a brand; `property` is a team/property.
  - `ids` integer[], required: Ids to link. Ids already linked are left as they are; nothing already linked is removed.

## Response `200`

The link list after the change.

- NewsLinksResource
  - `id` integer: Curated news article id
  - `type` 'company' | 'agency' | 'property' | 'tag'
  - `linked_ids` integer[]: Every id of this type linked to the article after the change, ascending.

## Other responses

- `401`: Unauthenticated
- `403`: Forbidden — missing edit news permission
- `404`: Article not found
- `422`: Bad link type, no ids, an id that names no existing row, or an X-Agent-Name longer than 100 characters

---

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