---
title: "Changes to Create Pin"
method: POST
path: "/pins"
---

# Changes to Create Pin

`POST /pins`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 18 of 29 revisions.

- **2026-06-04** (v5) `b698c180678a`: 2 breaking, 24 warning, 3 info
- **2025-10-16** (v5) `14c297539b64`: 9 warning
- **2025-08-14** (v5) `7d64d863909a`: 5 breaking, 5 warning, 12 info
- **2025-07-16** (v5) `43134ca41f18`: 4 info
- **2025-04-04** (v5) `10f9eba4ad97`: 1 breaking, 2 warning, 7 info
- **2024-02-08** (v5) `7529b464d5cb`: 2 info
- **2023-08-17** (v5) `0ff12596bafd`: 2 info
- **2023-07-14** (v5) `52586a274771`: 2 breaking, 15 info
- **2023-05-12** (v5) `689b4b267639`: 8 info
- **2023-02-14** (v5) `be19b77aa78a`: 6 breaking, 4 info
- **2022-11-14** (v5) `e041d7b0cef0`: 1 breaking, 4 warning, 3 info
- **2022-09-07** (v5) `bd20b6eb152f`: 2 info
- **2022-07-11** (v5) `0d5998752011`: 4 info
- **2022-04-12** (v5) `723c51158044`: 2 breaking, 3 warning, 3 info
- **2022-04-08** (v5) `33ec8e7421c7`: 2 warning, 2 info
- **2022-02-09** (v5) `46313d040316`: 2 warning, 2 info
- **2022-01-19** (v5) `76964e873a38`: 2 info
- **2021-11-05** (v5) `8583f6373a80`: 4 breaking, 3 info

## Changes

- **2026-06-04** (v5) `b698c180678a`: 2 breaking, 24 warning, 3 info
  - removed the required property `id` from the response with the `200` status
  - removed the required property `id` from the response with the `201` status
  - removed the optional property `board_id` from the response with the `200` status
  - removed the optional property `board_id` from the response with the `201` status
  - removed the optional property `board_owner` from the response with the `200` status
  - removed the optional property `board_owner` from the response with the `201` status
  - removed the optional property `board_section_id` from the response with the `200` status
  - removed the optional property `board_section_id` from the response with the `201` status
  - removed the optional property `created_at` from the response with the `200` status
  - removed the optional property `created_at` from the response with the `201` status
  - removed the optional property `creative_type` from the response with the `200` status
  - removed the optional property `creative_type` from the response with the `201` status
  - removed the optional property `dominant_color` from the response with the `200` status
  - removed the optional property `dominant_color` from the response with the `201` status
  - removed the optional property `has_been_promoted` from the response with the `200` status
  - removed the optional property `has_been_promoted` from the response with the `201` status
  - removed the optional property `is_owner` from the response with the `200` status
  - removed the optional property `is_owner` from the response with the `201` status
  - removed the optional property `is_standard` from the response with the `200` status
  - removed the optional property `is_standard` from the response with the `201` status
  - removed the optional property `media` from the response with the `200` status
  - removed the optional property `media` from the response with the `201` status
  - removed the optional property `parent_pin_id` from the response with the `200` status
  - removed the optional property `parent_pin_id` from the response with the `201` status
  - removed the optional property `pin_metrics` from the response with the `200` status
  - removed the optional property `pin_metrics` from the response with the `201` status
  - added the new optional request property `ai_disclosures`
  - added `#/components/schemas/PinBase` to the response body `allOf` list for the response status `200`
  - added `#/components/schemas/PinBase` to the response body `allOf` list for the response status `201`
- **2025-10-16** (v5) `14c297539b64`: 9 warning
  - removed the request property `note`
  - removed the optional property `note` from the response with the `200` status
  - removed the optional property `note` from the response with the `201` status
  - added the new `COLLAGE` enum value to the `creative_type/allOf[subschema #1: CreativeType enum used ads]/` response property for the response status `200`
  - added the new `COLLAGE` enum value to the `creative_type/allOf[subschema #1: CreativeType enum used ads]/` response property for the response status `201`
  - added the new `MAX_WIDTH_REGULAR_COLLECTION` enum value to the `creative_type/allOf[subschema #1: CreativeType enum used ads]/` response property for the response status `200`
  - added the new `MAX_WIDTH_REGULAR_COLLECTION` enum value to the `creative_type/allOf[subschema #1: CreativeType enum used ads]/` response property for the response status `201`
  - added the new `MAX_WIDTH_VIDEO_COLLECTION` enum value to the `creative_type/allOf[subschema #1: CreativeType enum used ads]/` response property for the response status `200`
  - added the new `MAX_WIDTH_VIDEO_COLLECTION` enum value to the `creative_type/allOf[subschema #1: CreativeType enum used ads]/` response property for the response status `201`
- **2025-08-14** (v5) `7d64d863909a`: 5 breaking, 5 warning, 12 info
  - the request's body became not nullable
  - added `#/components/schemas/PinMediaWithImage, #/components/schemas/PinMediaWithVideo, #/components/schemas/PinMediaWithImages, #/components/schemas/PinMediaWithVideos, #/components/schemas/PinMediaWithImageAndVideo` to the `media/allOf[subschema #1: Pin media -> subschema #1: Pin media response object.]/` response property `oneOf` list for the response status `201`
  - the `board_owner` response's property type changed from `object` to no type for status `201`
  - the `creative_type` response's property type changed from `string` to no type for status `201`
  - the `media` response's property type changed from `object` to no type for status `201`
  - removed `#/components/schemas/PinMediaSource` from the `media_source` request property `allOf` list
  - removed the request property `is_removable`
  - removed the request property `product_tags`
  - removed the optional property `is_removable` from the response with the `201` status
  - removed the optional property `product_tags` from the response with the `201` status
  - the request optional property `media_source` became not write-only
  - added discriminator to `media_source` request property
  - added `#/components/schemas/PinMediaSourceImageBase64, #/components/schemas/PinMediaSourceImageURL, #/components/schemas/PinMediaSourceVideoID, #/components/schemas/PinMediaSourceImagesBase64, #/components/schemas/PinMediaSourceImagesURL, #/components/schemas/PinMediaSourcePinURL` to the `media_source` request property `oneOf` list
  - added the non-success response with the status `401`
  - the response optional property `id` became not read-only for the status `201`
  - the response optional property `is_standard` became read-only for the status `201`
  - the response optional property `pin_metrics` became read-only for the status `201`
  - removed the optional write-only property `media_source` from the response with the `201` status
  - removed `#/components/schemas/PinMediaBase, subschema #2` from the `media/allOf[subschema #1: Pin media -> subschema #1: Pin media response object.]/` response property `allOf` list for the response status `201`
  - the response property `id` became required for the status `201`
  - added discriminator to `media/allOf[subschema #1: Pin media -> subschema #1: Pin media response object.]/` response property for the response status `201`
  - added the success response with the status `200`
- **2025-07-16** (v5) `43134ca41f18`: 4 info
  - added the new optional request property `is_removable`
  - added the new optional request property `product_tags`
  - added the optional property `is_removable` to the response with the `201` status
  - added the optional property `product_tags` to the response with the `201` status
- **2025-04-04** (v5) `10f9eba4ad97`: 1 breaking, 2 warning, 7 info
  - added `#/components/schemas/PinMediaBase, subschema #2` to the `media/allOf[subschema #1: Pin media]/` request property `allOf` list
  - removed the request property `media/allOf[subschema #1: Pin media]/media_type`
  - removed the optional property `media/allOf[subschema #1: Pin media]/media_type` from the response with the `201` status
  - the endpoint scheme security `client_credentials` was added to the API
  - added the new optional request property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #3: Video ID]/cover_image_key_frame_time`
  - added the new optional request property `sponsor_id`
  - removed discriminator from `media/allOf[subschema #1: Pin media]/` request property
  - added the optional property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #3: Video ID]/cover_image_key_frame_time` to the response with the `201` status
  - added `#/components/schemas/PinMediaBase, subschema #2` to the `media/allOf[subschema #1: Pin media]/` response property `allOf` list for the response status `201`
  - removed discriminator from `media/allOf[subschema #1: Pin media]/` response property for the response status `201`
- **2024-02-08** (v5) `7529b464d5cb`: 2 info
  - the `description` request property's maxLength was increased from `500` to `800`
  - added the optional property `pin_metrics` to the response with the `201` status
- **2023-08-17** (v5) `0ff12596bafd`: 2 info
  - added the new optional request property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #6: Pin URL]/is_affiliate_link`
  - 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 `201` status
- **2023-07-14** (v5) `52586a274771`: 2 breaking, 15 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 `201`
  - added `#/components/schemas/PinMediaSourcePinURL` to the `media_source/allOf[subschema #1: Pin media source]/` response property `oneOf` list for the response status `201`
  - added the new optional request property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #3: Video ID]/cover_image_content_type`
  - added the new optional request property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #3: Video ID]/cover_image_data`
  - added the new optional request property `note`
  - the request property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #3: Video ID]/cover_image_url` became optional
  - added `pin_url` discriminator mapping keys to the `media_source/allOf[subschema #1: Pin media source]/` request property
  - added `#/components/schemas/PinMediaSourcePinURL` to the `media_source/allOf[subschema #1: Pin media source]/` request property `oneOf` list
  - added the optional property `has_been_promoted` to the response with the `201` status
  - added the optional property `is_owner` to the response with the `201` status
  - added the optional property `is_standard` to the response with the `201` status
  - added the optional property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #3: Video ID]/cover_image_content_type` to the response with the `201` status
  - added the optional property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #3: Video ID]/cover_image_data` to the response with the `201` status
  - added the optional property `note` to the response with the `201` status
  - added `#/components/schemas/CreativeType` to the `creative_type` response property `allOf` list for the response status `201`
  - removed `subschema #1: Creative Type` from the `creative_type` response property `allOf` list for the response status `201`
  - added `pin_url` discriminator mapping keys to the `media_source/allOf[subschema #1: Pin media source]/` response property for the response status `201`
- **2023-05-12** (v5) `689b4b267639`: 8 info
  - added the new optional `query` request parameter `ad_account_id`
  - added the new optional request property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #1: Image Base64]/is_standard`
  - added the new optional request property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #2: Image URL]/is_standard`
  - added the new optional request property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #3: Video ID]/is_standard`
  - added the optional property `creative_type` to the response with the `201` 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 `201` status
  - added the optional property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #2: Image URL]/is_standard` to the response with the `201` status
  - added the optional property `media_source/allOf[subschema #1: Pin media source]/oneOf[subschema #3: Video ID]/is_standard` to the response with the `201` status
- **2023-02-14** (v5) `be19b77aa78a`: 6 breaking, 4 info
  - added the pattern `^\d+$` to the request property `id`
  - the `media/allOf[subschema #1: Pin media]/` request property type changed from no type to `object`
  - the `description` response property's maxLength was unset from `500` for the response status `201`
  - the `title` response property's maxLength was unset from `100` for the response status `201`
  - added `#/components/schemas/PinMediaSourceImagesBase64, #/components/schemas/PinMediaSourceImagesURL` to the `media_source/allOf[subschema #1: Pin media source]/` response property `oneOf` list for the response status `201`
  - the `media/allOf[subschema #1: Pin media]/` response's property type changed from no type to `object` for status `201`
  - added `multiple_image_base64, multiple_image_urls` discriminator mapping keys to the `media_source/allOf[subschema #1: Pin media source]/` request property
  - added `#/components/schemas/PinMediaSourceImagesBase64, #/components/schemas/PinMediaSourceImagesURL` to the `media_source/allOf[subschema #1: Pin media source]/` request property `oneOf` list
  - added `multiple_image_base64, multiple_image_urls` discriminator mapping keys to the `media_source/allOf[subschema #1: Pin media source]/` response property for the response status `201`
  - the `id` response's property pattern `^\d+$` was added for the status `201`
- **2022-11-14** (v5) `e041d7b0cef0`: 1 breaking, 4 warning, 3 info
  - the response's body became nullable
  - the `alt_text` request property's maxLength was set to `500`
  - the `description` request property's maxLength was set to `500`
  - the `link` request property's maxLength was set to `2048`
  - the `title` request property's maxLength was set to `100`
  - the request's body became nullable
  - added `multiple_images, multiple_videos, multiple_mixed` discriminator mapping keys to the `media/allOf[subschema #1: Pin media]/` request property
  - added `multiple_images, multiple_videos, multiple_mixed` discriminator mapping keys to the `media/allOf[subschema #1: Pin media]/` response property for the response status `201`
- **2022-09-07** (v5) `bd20b6eb152f`: 2 info
  - added the new optional request property `parent_pin_id`
  - added the optional property `parent_pin_id` to the response with the `201` status
- **2022-07-11** (v5) `0d5998752011`: 4 info
  - added the new optional request property `dominant_color`
  - added `video` discriminator mapping keys to the `media/allOf[subschema #1: Pin media]/` request property
  - added the optional property `dominant_color` to the response with the `201` status
  - added `video` discriminator mapping keys to the `media/allOf[subschema #1: Pin media]/` response property for the response status `201`
- **2022-04-12** (v5) `723c51158044`: 2 breaking, 3 warning, 3 info
  - added `#/components/schemas/PinMediaSourceImageBase64, #/components/schemas/PinMediaSourceImageURL, #/components/schemas/PinMediaSourceVideoID` to the `media_source/allOf[subschema #1: Pin media source]/` response property `oneOf` list for the response status `201`
  - removed the required property `media_source/allOf[subschema #1: Pin media source]/source_type` from the response with the `201` status
  - changed the pattern of the request property `board_id` from `\d+` to `^\d+$`
  - changed the pattern of the request property `board_section_id` from `\d+` to `^\d+$`
  - removed the request property `media_source/allOf[subschema #1: Pin media source]/source_type`
  - added `#/components/schemas/PinMediaSourceImageBase64, #/components/schemas/PinMediaSourceImageURL, #/components/schemas/PinMediaSourceVideoID` to the `media_source/allOf[subschema #1: Pin media source]/` request property `oneOf` list
  - the `board_id` response's property pattern was changed from `\d+` to `^\d+$` for the status `201`
  - the `board_section_id` response's property pattern was changed from `\d+` to `^\d+$` for the status `201`
- **2022-04-08** (v5) `33ec8e7421c7`: 2 warning, 2 info
  - changed the pattern of the request property `board_id` from `^\d+$` to `\d+`
  - changed the pattern of the request property `board_section_id` from `^\d+$` to `\d+`
  - the `board_id` response's property pattern was changed from `^\d+$` to `\d+` for the status `201`
  - the `board_section_id` response's property pattern was changed from `^\d+$` to `\d+` for the status `201`
- **2022-02-09** (v5) `46313d040316`: 2 warning, 2 info
  - changed the pattern of the request property `board_id` from `\d+` to `^\d+$`
  - changed the pattern of the request property `board_section_id` from `\d+` to `^\d+$`
  - the `board_id` response's property pattern was changed from `\d+` to `^\d+$` for the status `201`
  - the `board_section_id` response's property pattern was changed from `\d+` to `^\d+$` for the status `201`
- **2022-01-19** (v5) `76964e873a38`: 2 info
  - added `video_id` discriminator mapping keys to the `media_source/allOf[subschema #1: Pin media source]/` request property
  - added `video_id` discriminator mapping keys to the `media_source/allOf[subschema #1: Pin media source]/` response property for the response status `201`
- **2021-11-05** (v5) `8583f6373a80`: 4 breaking, 3 info
  - the `media_source` request property type changed from no type to `object`
  - the `board_owner` response's property type changed from no type to `object` for status `201`
  - the `media` response's property type changed from no type to `object` for status `201`
  - the `media_source` response's property type changed from no type to `object` for status `201`
  - added the non-success response with the status `400`
  - added the non-success response with the status `403`
  - added the non-success response with the status `404`

---

[Operation](https://skmtc.dev/pinterest/apis/pinterest-rest-api/docs/pins/post.md) - [API](https://skmtc.dev/pinterest/apis/pinterest-rest-api.md) - [Page](https://skmtc.dev/pinterest/apis/pinterest-rest-api/changes/pins/post)
