---
title: "Update an existing library post."
method: PUT
path: "/v2/scheduler/library/posts/{id}"
tags: ["Posts Api Service"]
---

# Update an existing library post.

`PUT /v2/scheduler/library/posts/{id}`

## Request

- Base URL: `https://app.metricool.com/api`
- URL: `https://app.metricool.com/api/v2/scheduler/library/posts/{id}`
- Auth: none declared

## Path parameters

- `id` integer, required

## Request body

- LibraryPostDto
  - `id` integer
  - `creationDate` DateTimeInfo
    - `dateTime` string, required: Local Date-time represented with a certain timezone
    - `timezone` string: Timezone applied to the datetime
  - `updatedDate` DateTimeInfo
    - `dateTime` string, required: Local Date-time represented with a certain timezone
    - `timezone` string: Timezone applied to the datetime
  - `shortener` boolean
  - `draft` boolean
  - `commonData` LibraryPostCommonConfigurationDto
    - `content` string, required
    - `firstCommentText` string
    - `publishMode` string
    - `smartlinkData` SmartlinkData
      - `targetUrl` string
      - `ids` integer[]
  - `media` LibraryPostMediaDto[]
    - `id` integer
    - `position` integer, required
    - `url` string
    - `altText` string
    - `videoCoverMilliseconds` integer
    - `videoThumbnailUrl` string
  - `saveExternalMediaFiles` boolean
  - `parentId` integer
  - `twitterData` TwitterConfigurationDto
    - `enabled` boolean
    - `tags` string[]
    - `replySettings` string
    - `type` string
    - `poll` ScheduledPostTwitterPoll
      - `options` ScheduledPostTwitterPollOption[]
        - `text` string
      - `settings` ScheduledPostTwitterPollSettings
        - `durationMinutes` integer
  - `facebookData` FacebookConfigurationDto
    - `enabled` boolean
    - `boostBudget` number
    - `boostPayer` string
    - `boostBeneficiary` string
    - `location` LibraryPostLocationDto
      - `name` string
      - `link` string
      - `id` string
      - `locationCoordinates` LibraryPostLocationCoordinates
        - `city` string
        - `country` string
        - `state` string
        - `street` string
        - `zip` string
        - `latitude` number, double
        - `longitude` number, double
    - `type` string
    - `reelTitle` string
  - `instagramData` InstagramConfigurationDto
    - `enabled` boolean
    - `carouselTags` object
    - `carouselProductTags` object
    - `type` string
    - `showReelOnFeed` boolean
    - `isAiGenerated` boolean: Whether the Instagram post is flagged as AI-generated content (sent as is_ai_generated on publish).
    - `boostBudget` number
    - `boostPayer` string
    - `boostBeneficiary` string
    - `location` LibraryPostLocationDto
      - `name` string
      - `link` string
      - `id` string
      - `locationCoordinates` LibraryPostLocationCoordinates
        - `city` string
        - `country` string
        - `state` string
        - `street` string
        - `zip` string
        - `latitude` number, double
        - `longitude` number, double
    - `reelAudioName` string
    - `collaborators` InstagramCollaboratorTag[]
      - `username` string
      - `deleted` boolean
    - `shareTrialAutomatically` boolean
    - `audioConfiguration` InstagramAudioConfigurationDto
      - `audioId` string, required: Unique identifier of the audio asset from the Instagram Audio API.
      - `audioType` 'music' | 'original_sound' | 'music' | 'original_sound': Audio type. Allowed values: 'music', 'original_sound'.
      - `title` string: Title of the audio track.
      - `displayArtist` string: Display artist name (populated for 'music' type).
      - `igUsername` string: Instagram username of the creator (populated for 'original_sound' type).
      - `coverArtworkUrl` string: URL of the cover artwork thumbnail.
      - `durationMs` integer: Duration of the audio in milliseconds.
      - `audioVolume` integer: Volume level for the audio asset, from 0 (muted) to 100 (full volume). Defaults to 100.
      - `videoVolume` integer: Volume level for the video's original audio, from 0 (muted) to 100 (full volume). Defaults to 100.
  - `threadsData` ThreadsConfigurationDto
    - `enabled` boolean: A boolean that represents if the Threads configuration is enabled for this library post
    - `allowedCountryCodes` string[]: A string list of valid ISO 3166-1 alpha-2 country codes that represents the countries where this media should be shown.
    - `replyControl` string: A string that represents who can reply to a Threads post, been EVERYONE by default. (EVERYONE, ACCOUNTS_YOU_FOLLOW,MENTIONED_ONLY,PARENT_POST_AUTHOR_ONLY,FOLLOWERS_ONLY)
    - `type` string: Post type (POST or GHOST)
    - `shareAsInstagramStory` boolean: A boolean that represents if the Threads post must be cross-shared as an Instagram Story. The Story is published on the Instagram account linked to the Threads account, which may not match the Instagram account connected to this brand.
    - `instagramStoryTheme` string: Theme used when the Threads post is cross-shared as an Instagram Story (LIGHT or DARK). Only allowed when shareAsInstagramStory is enabled; must be absent otherwise.
    - `isSpoiler` boolean: A boolean that represents if isSpoiler is activated or not
  - `linkedinData` LinkedinConfigurationDto
    - `enabled` boolean
    - `documentTitle` string
    - `publishImagesAsPDF` boolean, required
    - `previewIncluded` boolean, required
    - `type` string
    - `poll` LinkedinPollDto
      - `question` string
      - `options` LinkedinOptionDto[]
        - `text` string
      - `settings` LinkedinSettingsDto
        - `duration` string
  - `pinterestData` PinterestConfigurationDto
    - `enabled` boolean
    - `boardId` string
    - `pinTitle` string
    - `pinLink` string
    - `pinNewFormat` boolean
  - `tiktokData` TikTokConfigurationDto
    - `enabled` boolean
    - `disableComment` boolean
    - `disableDuet` boolean
    - `disableStitch` boolean
    - `privacyOption` string
    - `commercialContentThirdParty` boolean
    - `commercialContentOwnBrand` boolean
    - `title` string
    - `autoAddMusic` boolean
    - `photoCoverIndex` integer
    - `music` TikTokTrackDto
      - `musicId` string
      - `title` string
      - `author` string
      - `previewUrl` string
      - `thumbnailUrl` string
      - `soundVolume` integer
      - `originalVolume` integer
      - `startMillis` integer
      - `endMillis` integer
    - `isAigc` boolean
  - `youtubeData` YoutubeConfigurationDto
    - `enabled` boolean
    - `title` string
    - `type` string
    - `privacy` string
    - `tags` string[]
    - `category` string
    - `madeForKids` boolean
    - `playlistId` string
    - `isAiGeneratedContent` boolean
    - `notifySubscribers` boolean
  - `gbpData` GbpConfigurationDto
    - `enabled` boolean
    - `type` string
  - `blueskyData` BlueskyConfigurationDto
    - `enabled` boolean
    - `postLanguages` string[]
  - `descendants` LibraryPostDto[]
  - `notes` LibraryPostNoteDto[]
    - `id` integer, required
    - `libraryPostId` integer, required
    - `userId` integer
    - `agencyId` integer
    - `agencyUserId` integer
    - `userName` string, required
    - `created` DateTimeInfo, required
      - `dateTime` string, required: Local Date-time represented with a certain timezone
      - `timezone` string: Timezone applied to the datetime
    - `content` string, required
    - `updatedDate` DateTimeInfo
      - `dateTime` string, required: Local Date-time represented with a certain timezone
      - `timezone` string: Timezone applied to the datetime
    - `updated` boolean
    - `deleted` boolean
    - `profilePicture` string: Public URL of the author's 400x400 profile picture. Absent when they have none, in which case the frontend renders its initials fallback. Filled for agency-authored notes too.
    - `mentions` NoteMentionDto[]: Users mentioned in the content of the note, resolved when the note is read. Empty when the note mentions nobody.
      - `userId` integer: Regular user id of the mentioned user. Absent for an agency end client.
      - `agencyId` integer: Agency id of the mentioned user. Only for an agency end client.
      - `agencyUserId` integer: Agency user id of the mentioned user. Only for an agency end client.
      - `name` string: Current display name of the mentioned user. Absent when the account was deleted, in which case the frontend renders its own localized deleted-user label.
      - `deleted` boolean: True when the mentioned account no longer exists. A user that merely lost access to the brand is not deleted: their mention keeps rendering as it always did.
    - `mentionId` string: Identity of the note author, and the field to compare against your own to tell whether a note is yours. `12345` for a regular user, `a:<agencyId>:<agencyUserId>` for an agency end client. Prefer it over the raw id fields: an agency author has no `userId` at all, so comparing that one answers "not mine" on their own note. Same shape as the `mentionId` of the mention picker, so the author of a note and the entry that mentions them carry the same string. Absent only for a note whose author could not be resolved.
  - `hasNotReadNotes` boolean
  - `tags` string
  - `performanceDashboardIds` integer[]
  - `assignee` LibraryPostAssigneeDto: Team member assigned to a library post.
    - `label` 'CLIENT' | 'STAFF': Badge to show next to the user, relative to the requesting session: CLIENT (an agency end client, as seen by a Metricool session), STAFF (anyone who is not an agency end client, as seen by an agency end-client session), or absent for no badge.
    - `userId` integer: Regular user id of the assignee. Absent for an agency end client.
    - `agencyId` integer: Agency id of the assignee. Only for an agency end client.
    - `agencyUserId` integer: Agency user id of the assignee. Only for an agency end client.
    - `name` string: Display name of the assignee, or null when it cannot be resolved.
    - `deleted` boolean: True when the assignee account has been deleted (frontend shows 'deleted user').
    - `hasBrandAccess` boolean: False when the assignee no longer has access to this brand (frontend shows a warning).
    - `profilePicture` string: Absolute URL of the assignee's profile picture. Omitted when it has none; the UI then renders its initials. Filled for both assignee kinds (ES5MPTM3-7292).
  - `state` LibraryPostStateDto: A workflow state of a library post.
    - `id` integer: State id.
    - `name` string: Display name of the state.
    - `color` string: Color of the state.
    - `position` integer: Ordering position of the state within the brand's workflow (ascending).

## Response `200`

OK

- JsonOkResponseLibraryPostDto
  - `metadata` object
  - `page` JsonPaging
    - `next` string
  - `data` LibraryPostDto
    - `id` integer
    - `creationDate` DateTimeInfo
      - `dateTime` string, required: Local Date-time represented with a certain timezone
      - `timezone` string: Timezone applied to the datetime
    - `updatedDate` DateTimeInfo
      - `dateTime` string, required: Local Date-time represented with a certain timezone
      - `timezone` string: Timezone applied to the datetime
    - `shortener` boolean
    - `draft` boolean
    - `commonData` LibraryPostCommonConfigurationDto
      - `content` string, required
      - `firstCommentText` string
      - `publishMode` string
      - `smartlinkData` SmartlinkData
        - `targetUrl` string
        - `ids` integer[]
    - `media` LibraryPostMediaDto[]
      - `id` integer
      - `position` integer, required
      - `url` string
      - `altText` string
      - `videoCoverMilliseconds` integer
      - `videoThumbnailUrl` string
    - `saveExternalMediaFiles` boolean
    - `parentId` integer
    - `twitterData` TwitterConfigurationDto
      - `enabled` boolean
      - `tags` string[]
      - `replySettings` string
      - `type` string
      - `poll` ScheduledPostTwitterPoll
        - `options` ScheduledPostTwitterPollOption[]
          - `text` string
        - `settings` ScheduledPostTwitterPollSettings
          - `durationMinutes` integer
    - `facebookData` FacebookConfigurationDto
      - `enabled` boolean
      - `boostBudget` number
      - `boostPayer` string
      - `boostBeneficiary` string
      - `location` LibraryPostLocationDto
        - `name` string
        - `link` string
        - `id` string
        - `locationCoordinates` LibraryPostLocationCoordinates
          - `city` string
          - `country` string
          - `state` string
          - `street` string
          - `zip` string
          - `latitude` number, double
          - `longitude` number, double
      - `type` string
      - `reelTitle` string
    - `instagramData` InstagramConfigurationDto
      - `enabled` boolean
      - `carouselTags` object
      - `carouselProductTags` object
      - `type` string
      - `showReelOnFeed` boolean
      - `isAiGenerated` boolean: Whether the Instagram post is flagged as AI-generated content (sent as is_ai_generated on publish).
      - `boostBudget` number
      - `boostPayer` string
      - `boostBeneficiary` string
      - `location` LibraryPostLocationDto
        - `name` string
        - `link` string
        - `id` string
        - `locationCoordinates` LibraryPostLocationCoordinates
          - `city` string
          - `country` string
          - `state` string
          - `street` string
          - `zip` string
          - `latitude` number, double
          - `longitude` number, double
      - `reelAudioName` string
      - `collaborators` InstagramCollaboratorTag[]
        - `username` string
        - `deleted` boolean
      - `shareTrialAutomatically` boolean
      - `audioConfiguration` InstagramAudioConfigurationDto
        - `audioId` string, required: Unique identifier of the audio asset from the Instagram Audio API.
        - `audioType` 'music' | 'original_sound' | 'music' | 'original_sound': Audio type. Allowed values: 'music', 'original_sound'.
        - `title` string: Title of the audio track.
        - `displayArtist` string: Display artist name (populated for 'music' type).
        - `igUsername` string: Instagram username of the creator (populated for 'original_sound' type).
        - `coverArtworkUrl` string: URL of the cover artwork thumbnail.
        - `durationMs` integer: Duration of the audio in milliseconds.
        - `audioVolume` integer: Volume level for the audio asset, from 0 (muted) to 100 (full volume). Defaults to 100.
        - `videoVolume` integer: Volume level for the video's original audio, from 0 (muted) to 100 (full volume). Defaults to 100.
    - `threadsData` ThreadsConfigurationDto
      - `enabled` boolean: A boolean that represents if the Threads configuration is enabled for this library post
      - `allowedCountryCodes` string[]: A string list of valid ISO 3166-1 alpha-2 country codes that represents the countries where this media should be shown.
      - `replyControl` string: A string that represents who can reply to a Threads post, been EVERYONE by default. (EVERYONE, ACCOUNTS_YOU_FOLLOW,MENTIONED_ONLY,PARENT_POST_AUTHOR_ONLY,FOLLOWERS_ONLY)
      - `type` string: Post type (POST or GHOST)
      - `shareAsInstagramStory` boolean: A boolean that represents if the Threads post must be cross-shared as an Instagram Story. The Story is published on the Instagram account linked to the Threads account, which may not match the Instagram account connected to this brand.
      - `instagramStoryTheme` string: Theme used when the Threads post is cross-shared as an Instagram Story (LIGHT or DARK). Only allowed when shareAsInstagramStory is enabled; must be absent otherwise.
      - `isSpoiler` boolean: A boolean that represents if isSpoiler is activated or not
    - `linkedinData` LinkedinConfigurationDto
      - `enabled` boolean
      - `documentTitle` string
      - `publishImagesAsPDF` boolean, required
      - `previewIncluded` boolean, required
      - `type` string
      - `poll` LinkedinPollDto
        - `question` string
        - `options` LinkedinOptionDto[]
          - `text` string
        - `settings` LinkedinSettingsDto
          - `duration` string
    - `pinterestData` PinterestConfigurationDto
      - `enabled` boolean
      - `boardId` string
      - `pinTitle` string
      - `pinLink` string
      - `pinNewFormat` boolean
    - `tiktokData` TikTokConfigurationDto
      - `enabled` boolean
      - `disableComment` boolean
      - `disableDuet` boolean
      - `disableStitch` boolean
      - `privacyOption` string
      - `commercialContentThirdParty` boolean
      - `commercialContentOwnBrand` boolean
      - `title` string
      - `autoAddMusic` boolean
      - `photoCoverIndex` integer
      - `music` TikTokTrackDto
        - `musicId` string
        - `title` string
        - `author` string
        - `previewUrl` string
        - `thumbnailUrl` string
        - `soundVolume` integer
        - `originalVolume` integer
        - `startMillis` integer
        - `endMillis` integer
      - `isAigc` boolean
    - `youtubeData` YoutubeConfigurationDto
      - `enabled` boolean
      - `title` string
      - `type` string
      - `privacy` string
      - `tags` string[]
      - `category` string
      - `madeForKids` boolean
      - `playlistId` string
      - `isAiGeneratedContent` boolean
      - `notifySubscribers` boolean
    - `gbpData` GbpConfigurationDto
      - `enabled` boolean
      - `type` string
    - `blueskyData` BlueskyConfigurationDto
      - `enabled` boolean
      - `postLanguages` string[]
    - `descendants` LibraryPostDto[]
    - `notes` LibraryPostNoteDto[]
      - `id` integer, required
      - `libraryPostId` integer, required
      - `userId` integer
      - `agencyId` integer
      - `agencyUserId` integer
      - `userName` string, required
      - `created` DateTimeInfo, required
        - `dateTime` string, required: Local Date-time represented with a certain timezone
        - `timezone` string: Timezone applied to the datetime
      - `content` string, required
      - `updatedDate` DateTimeInfo
        - `dateTime` string, required: Local Date-time represented with a certain timezone
        - `timezone` string: Timezone applied to the datetime
      - `updated` boolean
      - `deleted` boolean
      - `profilePicture` string: Public URL of the author's 400x400 profile picture. Absent when they have none, in which case the frontend renders its initials fallback. Filled for agency-authored notes too.
      - `mentions` NoteMentionDto[]: Users mentioned in the content of the note, resolved when the note is read. Empty when the note mentions nobody.
        - `userId` integer: Regular user id of the mentioned user. Absent for an agency end client.
        - `agencyId` integer: Agency id of the mentioned user. Only for an agency end client.
        - `agencyUserId` integer: Agency user id of the mentioned user. Only for an agency end client.
        - `name` string: Current display name of the mentioned user. Absent when the account was deleted, in which case the frontend renders its own localized deleted-user label.
        - `deleted` boolean: True when the mentioned account no longer exists. A user that merely lost access to the brand is not deleted: their mention keeps rendering as it always did.
      - `mentionId` string: Identity of the note author, and the field to compare against your own to tell whether a note is yours. `12345` for a regular user, `a:<agencyId>:<agencyUserId>` for an agency end client. Prefer it over the raw id fields: an agency author has no `userId` at all, so comparing that one answers "not mine" on their own note. Same shape as the `mentionId` of the mention picker, so the author of a note and the entry that mentions them carry the same string. Absent only for a note whose author could not be resolved.
    - `hasNotReadNotes` boolean
    - `tags` string
    - `performanceDashboardIds` integer[]
    - `assignee` LibraryPostAssigneeDto: Team member assigned to a library post.
      - `label` 'CLIENT' | 'STAFF': Badge to show next to the user, relative to the requesting session: CLIENT (an agency end client, as seen by a Metricool session), STAFF (anyone who is not an agency end client, as seen by an agency end-client session), or absent for no badge.
      - `userId` integer: Regular user id of the assignee. Absent for an agency end client.
      - `agencyId` integer: Agency id of the assignee. Only for an agency end client.
      - `agencyUserId` integer: Agency user id of the assignee. Only for an agency end client.
      - `name` string: Display name of the assignee, or null when it cannot be resolved.
      - `deleted` boolean: True when the assignee account has been deleted (frontend shows 'deleted user').
      - `hasBrandAccess` boolean: False when the assignee no longer has access to this brand (frontend shows a warning).
      - `profilePicture` string: Absolute URL of the assignee's profile picture. Omitted when it has none; the UI then renders its initials. Filled for both assignee kinds (ES5MPTM3-7292).
    - `state` LibraryPostStateDto: A workflow state of a library post.
      - `id` integer: State id.
      - `name` string: Display name of the state.
      - `color` string: Color of the state.
      - `position` integer: Ordering position of the state within the brand's workflow (ascending).

---

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