---
title: "Update Pin"
method: PATCH
path: "/pins/{pin_id}"
tags: ["pins"]
---

# Update Pin

`PATCH /pins/{pin_id}`

Update a pin owned by the "operating user_account".
- By default, the "operation user_account" is the token user_account.

Optional: Business Access: Specify an <code>ad_account_id</code> (obtained via <a href='/docs/api/v5/#operation/ad_accounts/list'>List ad accounts</a>) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following <a href="https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts">Business Access</a> roles on the ad_account:

- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.
- For Pins on secret boards: Owner, Admin.

<strong>This endpoint is currently in beta and not available to all apps. <a href='/docs/new/about-beta-access/'>Learn more</a>.</strong>

## Path parameters

- `pin_id` string, required

## Query parameters

- `ad_account_id` string

## Request body

- PinUpdate, nullable — Pin fields for updates
  - `alt_text` string, nullable — Pin's alternative text.
  - `board_id` string, nullable — The id of the board to move the Pin onto.
  - `board_section_id` string, nullable — <a href="https://help.pinterest.com/en/article/create-a-board-section">Board section</a> ID.
  - `description` string, nullable — Pin description - 500 characters maximum.
  - `link` string, nullable — URL viewer is taken to when they click pin.
  - `title` string, nullable — The native pin title that creators explicitly prefer to display.
  - `carousel_slots` object[] — Carousel Pin slots data.
    - `title` string — Carousel Pin slot title.
    - `description` string — Carousel Pin slot description.
    - `link` string — Carousel Pin slot link.
  - `note` string, nullable — Private note for this Pin. <a href="https://help.pinterest.com/en/article/add-notes-to-your-pins">Learn more</a>.

## Response `200`

response

- Pin, nullable — Pin
  - `id` string
  - `created_at` string, date-time
  - `link` string, nullable
  - `title` string, nullable
  - `description` string, nullable
  - `dominant_color` string, nullable — Dominant pin color. Hex number, e.g. \"#6E7874\".
  - `alt_text` string, nullable
  - `creative_type` 'REGULAR' | 'VIDEO' | 'SHOPPING' | 'CAROUSEL' | 'MAX_VIDEO' | 'SHOP_THE_PIN' | 'COLLECTION' | 'IDEA' | 'SHOWCASE' | 'QUIZ' — Ad creative type enum. </p><strong>Note:</strong> SHOP_THE_PIN has been deprecated. Please use COLLECTION instead.
  - `board_id` string — The board to which this Pin belongs.
  - `board_section_id` string, nullable — The board section to which this Pin belongs.
  - `board_owner` BoardOwner
    - `username` string
  - `is_owner` boolean — Whether the "operation user_account" is the Pin owner.
  - `media` PinMedia — Pin media objects.
    - `media_type` string
  - `media_source` union — Pin media source.
    - PinMediaSourceImageBase64 — Base64-encoded image media source
      - `source_type` 'image_base64', required
      - `content_type` 'image/jpeg' | 'image/png', required
      - `data` string, required
      - `is_standard` boolean — Set the parameter to false to create the new simplified Pin instead of the standard pin. Currently the field is only available to a list of beta users.
    - PinMediaSourceImageURL — Image URL-based media source
      - `source_type` 'image_url', required
      - `url` string, required
      - `is_standard` boolean — Set the parameter to false to create the new simplified Pin instead of the standard pin. Currently the field is only available to a list of beta users.
    - PinMediaSourceVideoID — Video ID-based media source
      - `source_type` 'video_id', required
      - `cover_image_url` string — Cover image url.
      - `cover_image_content_type` 'image/jpeg' | 'image/png' — Content type for cover image Base64.
      - `cover_image_data` string — Cover image Base64.
      - `media_id` string, required
      - `is_standard` boolean — Set the parameter to false to create the new simplified Pin instead of the standard pin. Currently the field is only available to a list of beta users.
    - PinMediaSourceImagesBase64 — Multiple Base64-encoded images media source
      - `source_type` 'multiple_image_base64'
      - `items` object[], required — Array with image objects.
        - `title` string
        - `description` string
        - `link` string — Destination link for the image.
        - `content_type` 'image/jpeg' | 'image/png', required
        - `data` string, required — Image to upload as base64 string.
      - `index` integer
    - PinMediaSourceImagesURL — Multiple images urls-based media source
      - `source_type` 'multiple_image_urls'
      - `items` object[], required — Array with image objects.
        - `title` string
        - `description` string
        - `link` string — Destination link for the image.
        - `url` string, required — URL of image to upload.
      - `index` integer
    - PinMediaSourcePinURL — Pin URL-based media source for product pin creation. Currently the field is only available to a list of beta users.
      - `source_type` 'pin_url', required
      - `is_affiliate_link` boolean — This is an affiliate link or sponsored product. The FTC requires disclosure for paid partnerships and affiliate products.
  - `parent_pin_id` string, nullable — The source pin id if this pin was saved from another pin. <a href="https://help.pinterest.com/article/save-pins-on-pinterest">Learn more</a>.
  - `is_standard` boolean — Whether the Pin is standard or not. See documentation on <a href="https://developers.pinterest.com/docs/content/update/">Changes to Pin creation</a> for more information.
  - `has_been_promoted` boolean — Whether the Pin has been promoted or not.
  - `note` string, nullable — Private note for this Pin. <a href="https://help.pinterest.com/en/article/add-notes-to-your-pins">Learn more</a>.

## Other responses

- `403` — Not authorized to update Pin.
- `404` — Pin not found.
- `429` — This request exceeded a rate limit. This can happen if the client exceeds one of the published rate limits or if multiple write operations are applied to an object within a short time window.
- `default` — Unexpected error

## Changes

- **2023-08-17** (v5) `0ff12596bafd` — 1 info
  - added the optional property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #6: Pin URL]/is_affiliate_link` to the response with the `200` status
- **2023-07-14** (v5) `52586a274771` — 2 breaking, 10 info
  - the response property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #3: Video ID]/cover_image_url` became optional for the status `200`
  - added `#/components/schemas/PinMediaSourcePinURL` to the `media_source/allOf[subschema #1: Pin media source]/` response property `oneOf` list for the response status `200`
  - added the new optional request property `note`
  - added the optional property `has_been_promoted` to the response with the `200` status
  - …8 more
- **2023-05-12** (v5) `689b4b267639` — 6 info
  - added the new optional `query` request parameter `ad_account_id`
  - added the new optional request property `carousel_slots`
  - added the optional property `creative_type` to the response with the `200` status
  - added the optional property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #1: Image Base64]/is_standard` to the response with the `200` status
  - …2 more
- **2023-02-14** (v5) `be19b77aa78a` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/pinterest/apis/pinterest-rest-api/changes/pins/:pin_id/patch.md)

---

[API](https://skmtc.dev/pinterest/apis/pinterest-rest-api.md) · [All operations](https://skmtc.dev/pinterest/apis/pinterest-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/pinterest/pinterest-rest-api/revisions/0ff12596bafd/schema)
