---
title: "Update Content"
method: PUT
path: "/v1/portal-content/{contentId}"
tags: ["Portal Content"]
---

# Update Content

`PUT /v1/portal-content/{contentId}`

Updates a content item.

## Path parameters

- `contentId` string, required

## Headers

- `x-publisher-token` string, required

## Request body

- UpdateContentRequest
  - `title` string — Content title.
  - `subTitle` string — Content description.
  - `bodyText` string — Content body text.
  - `headerImage` string — Content header image URL.
  - `thumbnailImage` string — Content thumbnail image URL.
  - `labels` string[] — List of labels associated with the content.
  - `state` 'visible' | 'hidden' | 'scheduled' — Current state of the content.
  - `contentType` 'article' | 'news' — Type: article or news.
  - `publishDate` string, date-time — Content publish date. Use for scheduling content.
  - `pages` string[] — List of pages where this content appears.
  - `slug` string — Content slug. If not provided, this value is auto-generated.
  - `visibility` 'public' | 'private' — Content visibility level.
  - `tag` string — Internal tag for organizing your content. Not visible to players.
  - `translations` TranslationRequest[] — List of translations for the content item. Each object represents a locale and its translations. **Note:** You must first [add the locale in the Publisher Dashboard](/../../guides/translations/add-and-manage-languages) before adding its translations.
    - `dynamicTranslations` DynamicTranslation[], required — A list of translations for dynamic entities you define such as offer and product names.
      - `type` string — Entity type. Values include: 'offer', 'offer_design', 'product', 'section', 'builder', 'ribbon'
      - `externalId` string — The ID as defined in the Publisher Dashboard.
      - `field` string — The entity field the translation applies to. Values include: 'display_name', 'description', 'title', 'text', 'prefix', 'suffix'
      - `locale` string — The locale code. Both ISO-639 language code and ISO-3166 country code formats are supported.
      - `value` string — The translation text for the specified field and locale.
    - `staticTranslations` StaticTranslation[], required — A list of translations for static UI elements such as button labels and headers.
      - `key` string — The key identifier for the static translation.
      - `locale` string — The locale code. Both ISO-639 language code and ISO-3166 country code formats are supported.
      - `value` string — The translation value associated with the key and locale.

## Response `200`

Content updated successfully.

- ContentItem
  - `id` string — Content ID.
  - `title` string — Content title.
  - `subTitle` string — Content description.
  - `bodyText` string — Content body text.
  - `headerImage` string — Content header image URL.
  - `thumbnailImage` string — Content thumbnail image URL.
  - `labels` string[] — List of labels associated with the content.
  - `state` 'visible' | 'hidden' | 'scheduled' — Current state of the content.
  - `contentType` 'article' | 'news' — Content type.
  - `publishDate` string, date-time — Content publish date. Use for scheduling content.
  - `slug` string — Content slug. If not provided, this value is auto-generated.
  - `visibility` 'public' | 'private' — Content visibility level.
  - `tag` string — Internal tag for organizing your content. Not visible to players.
  - `createdAt` string, date-time — Created date.
  - `updatedAt` string, date-time — Updated date.
  - `translations` TranslationResponse[] — List of translations for the content item. Each object represents a locale and its translations.
    - `dynamicTranslations` DynamicTranslation[] — A list of translations for dynamic entities you define such as offer and product names.
      - `type` string — Entity type. Values include: 'offer', 'offer_design', 'product', 'section', 'builder', 'ribbon'
      - `externalId` string — The ID as defined in the Publisher Dashboard.
      - `field` string — The entity field the translation applies to. Values include: 'display_name', 'description', 'title', 'text', 'prefix', 'suffix'
      - `locale` string — The locale code. Both ISO-639 language code and ISO-3166 country code formats are supported.
      - `value` string — The translation text for the specified field and locale.
    - `staticTranslations` StaticTranslation[] — A list of translations for static UI elements such as button labels and headers.
      - `key` string — The key identifier for the static translation.
      - `locale` string — The locale code. Both ISO-639 language code and ISO-3166 country code formats are supported.
      - `value` string — The translation value associated with the key and locale.
  - `pages` Page[] — List of pages where this content appears.
    - `id` string — Page ID.
    - `pageName` string — Page name.

## Other responses

- `400` — Invalid request body or validation error.
- `401` — Invalid or missing publisher token.
- `404` — Content not found.
- `409` — Slug already exists.
- `500` — Server error.

---

[API](https://skmtc.net/appcharge/apis/grant-award.md) · [All operations](https://skmtc.net/appcharge/apis/grant-award/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/appcharge/grant-award/revisions/b4f6759240d5/schema)
