---
title: "Update translations for a news item."
method: PUT
path: "/api/v1/admin/news/{news_id}/translations"
---

# Update translations for a news item.

`PUT /api/v1/admin/news/{news_id}/translations`

## Request

- Base URL: `https://api.trends.earth/api/v1`
- URL: `https://api.trends.earth/api/v1/api/v1/admin/news/{news_id}/translations`
- Auth: none declared
- TypeScript: <https://skmtc.dev/trends/apis/trends-earth-api/docs/api/v1/admin/news/:news_id/translations/put.ts> (a function with typed inputs; its response is checked against the schema)

**Authentication**: JWT token required
**Access**: ADMIN and SUPERADMIN only

**Path Parameters**:
- `news_id`: UUID of the news item

**Request Body**:
```json
{
  "translations": {
    "es": {
      "title": "Título traducido",
      "message": "Mensaje traducido...",
      "link_text": "Leer más",
      "is_machine_translated": true
    },
    "fr": {
      "title": "Titre traduit",
      "message": "Message traduit...",
      "link_text": "En savoir plus",
      "is_machine_translated": true
    }
  }
}
```

**Notes**:
- Supported languages: ar, es, fa, fr, pt, ru, sw, zh
- To delete a translation, pass null or omit it from the request
- `is_machine_translated` defaults to true

**Response**: Updated translations object

**Error Responses**:
- `400 Bad Request`: Invalid data
- `401 Unauthorized`: JWT token required
- `403 Forbidden`: Not authorized
- `404 Not Found`: News item not found

## Path parameters

- `news_id` string, required

## Request body

- object

## Response `200`

Success

- object

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

---

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