Pinterest Save API
The Save API from Pinterest — 1 operation(s) for save.
The Save API from Pinterest — 1 operation(s) for save.
openapi: 3.0.3
info:
version: 5.13.0
title: Pinterest Save API
description: This is the description of your API.
contact:
name: Pinterest, Inc.
url: https://developers.pinterest.com/
license:
name: MIT
url: https://spdx.org/licenses/MIT
termsOfService: https://developers.pinterest.com/terms/
servers:
- url: https://api.pinterest.com/v5
tags:
- name: Save
paths:
/pins/{pin_id}/save:
post:
summary: Save Pin
description: 'Save a Pin on a board or board section owned by the "operation 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.
- Any Pin type can be saved: image Pin, video Pin, Idea Pin, product Pin, etc.
- Any public Pin can be saved given a pin ID.'
tags:
- Save
operationId: pins/save
security:
- pinterest_oauth2:
- boards:read
- boards:write
- pins:read
- pins:write
x-ratelimit-category: org_write
x-sandbox: enabled
x-codeSamples:
- lang: python
label: Python SDK
source: '# Follow this link for initial setup: https://github.com/pinterest/pinterest-python-sdk#getting-started
from pinterest.organic.pins import Pin
# Pin information can be fetched from profile page or from create/list pin method here:
# https://developers.pinterest.com/docs/api/v5/#operation/pins/list
PIN_ID="<Add your pin id here>"
# Board information can be fetched from profile page or from list board method here:
# https://developers.pinterest.com/docs/api/v5/#operation/boards/list
NEW_BOARD_ID="<Add your board id here>"
pin_save = Pin(pin_id=PIN_ID)
pin_save.save(board_id=NEW_BOARD_ID)
print("Pin Id: %s, Board Id:%s" %(pin_save.id, pin_save.board_id))
'
- lang: cURL
label: curl
source: "# Pin and Board information can be fetched from profile page or from create/list pin method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --request DELETE 'https://api.pinterest.com/v5/pins/<insert_pin_id>/save' \\\n--header 'Authorization: Bearer <Add your token here>' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"board_id\": <insert_new_board_id>\n}'\n"
- lang: cURL
label: curl (Sandbox)
source: "# Pin and Board information can be fetched from profile page or from create/list pin method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --request DELETE 'https://api-sandbox.pinterest.com/v5/pins/<insert_sandbox_pin_id>/save' \\\n--header 'Authorization: Bearer <Add your token here>' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"board_id\": <insert_new_sandbox_board_id>\n}'\n"
parameters:
- $ref: '#/components/parameters/path_pin_id'
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to save an existing pin
required: true
content:
application/json:
schema:
type: object
properties:
board_id:
description: Unique identifier of the board to which the pin will be saved.
type: string
pattern: ^\d+$
nullable: true
board_section_id:
description: Unique identifier of the board section to which the pin will be saved.
type: string
pattern: ^\d+$
nullable: true
responses:
'201':
description: Successfully saved pin.
content:
application/json:
schema:
$ref: '#/components/schemas/Pin'
'403':
description: Not authorized to access Board or Pin.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 29
message: You are not permitted to access that resource.
'404':
description: Board or Pin not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
BoardNotFound:
value:
code: 40
message: Board not found.
PinNotFound:
value:
code: 50
message: Pin not found.
BoardSectionNotFound:
value:
code: 2031
message: Sorry! We couldn't find this board section.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
CreativeType:
type: string
description: Ad creative type enum. For update, only draft ads may update creative type. </p><strong>Note:</strong> SHOP_THE_PIN has been deprecated. Please use COLLECTION instead.
enum:
- REGULAR
- VIDEO
- SHOPPING
- CAROUSEL
- MAX_VIDEO
- SHOP_THE_PIN
- COLLECTION
- IDEA
- SHOWCASE
- QUIZ
example: REGULAR
title: CreativeType
BoardOwner:
title: Board owner
type: object
properties:
username:
type: string
readOnly: true
PinMediaSourceVideoID:
title: Video ID
description: Video ID-based media source
type: object
properties:
source_type:
type: string
enum:
- video_id
cover_image_url:
type: string
description: Cover image url.
cover_image_content_type:
type: string
description: Content type for cover image Base64.
enum:
- image/jpeg
- image/png
cover_image_data:
type: string
description: Cover image Base64.
media_id:
type: string
pattern: ^\d+$
is_standard:
type: boolean
description: 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.
default: true
required:
- source_type
- media_id
PinMediaSourceImagesBase64:
title: Images Base64
description: Multiple Base64-encoded images media source
additionalProperties: false
properties:
source_type:
type: string
enum:
- multiple_image_base64
items:
items:
additionalProperties: false
properties:
title:
type: string
description:
type: string
link:
type: string
description: Destination link for the image.
content_type:
type: string
enum:
- image/jpeg
- image/png
data:
type: string
description: Image to upload as base64 string.
pattern: '[a-zA-Z0-9+\/=]+'
required:
- data
- content_type
type: object
minItems: 2
maxItems: 5
description: Array with image objects.
type: array
index:
type: integer
minimum: 0
required:
- items
type: object
Error:
title: Error
type: object
properties:
code:
type: integer
message:
type: string
required:
- code
- message
Pin:
title: Pin
description: Pin
type: object
nullable: true
properties:
id:
type: string
readOnly: true
example: '813744226420795884'
pattern: ^\d+$
created_at:
type: string
format: date-time
readOnly: true
example: '2020-01-01T20:10:40-00:00'
link:
type: string
nullable: true
example: https://www.pinterest.com/
maxLength: 2048
title:
type: string
nullable: true
description:
type: string
nullable: true
dominant_color:
type: string
nullable: true
description: Dominant pin color. Hex number, e.g. \"#6E7874\".
example: '#6E7874'
alt_text:
type: string
nullable: true
maxLength: 500
creative_type:
readOnly: true
nullable: true
type: string
allOf:
- $ref: '#/components/schemas/CreativeType'
board_id:
description: The board to which this Pin belongs.
type: string
pattern: ^\d+$
board_section_id:
description: The board section to which this Pin belongs.
type: string
pattern: ^\d+$
nullable: true
board_owner:
allOf:
- $ref: '#/components/schemas/BoardOwner'
type: object
readOnly: true
is_owner:
description: Whether the "operation user_account" is the Pin owner.
type: boolean
readOnly: true
media:
allOf:
- $ref: '#/components/schemas/PinMedia'
type: object
readOnly: true
media_source:
allOf:
- $ref: '#/components/schemas/PinMediaSource'
type: object
writeOnly: true
parent_pin_id:
description: 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>.
type: string
pattern: ^\d+$
nullable: true
is_standard:
description: 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.
type: boolean
has_been_promoted:
description: Whether the Pin has been promoted or not.
type: boolean
readOnly: true
note:
description: Private note for this Pin. <a href="https://help.pinterest.com/en/article/add-notes-to-your-pins">Learn more</a>.
type: string
nullable: true
pin_metrics:
description: Pin metrics with associated time intervals if any.
type: object
nullable: true
example:
pin_metrics:
- 90d:
pin_click: 7
impression: 2
clickthrough: 3
all_time:
pin_click: 7
impression: 2
clickthrough: 3
reaction: 10
comment: 2
- null
PinMedia:
title: Pin media
type: object
description: Pin media objects.
discriminator:
propertyName: media_type
mapping:
image: '#/components/schemas/PinMediaWithImage'
video: '#/components/schemas/PinMediaWithVideo'
multiple_images: '#/components/schemas/PinMediaWithImages'
multiple_videos: '#/components/schemas/PinMediaWithVideos'
multiple_mixed: '#/components/schemas/PinMediaWithImageAndVideo'
properties:
media_type:
type: string
PinMediaSourceImageBase64:
title: Image Base64
description: Base64-encoded image media source
type: object
properties:
source_type:
type: string
enum:
- image_base64
content_type:
type: string
enum:
- image/jpeg
- image/png
data:
type: string
pattern: '[a-zA-Z0-9+\/=]+'
is_standard:
type: boolean
description: 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.
default: true
required:
- source_type
- content_type
- data
PinMediaSourceImagesURL:
title: Images urls
description: Multiple images urls-based media source
additionalProperties: false
properties:
source_type:
type: string
enum:
- multiple_image_urls
items:
items:
additionalProperties: false
properties:
title:
type: string
description:
type: string
link:
type: string
description: Destination link for the image.
url:
description: URL of image to upload.
type: string
required:
- url
type: object
minItems: 2
maxItems: 5
description: Array with image objects.
type: array
index:
type: integer
minimum: 0
required:
- items
type: object
PinMediaSourceImageURL:
title: Image URL
description: Image URL-based media source
type: object
properties:
source_type:
type: string
enum:
- image_url
url:
type: string
is_standard:
type: boolean
description: 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.
default: true
required:
- source_type
- url
PinMediaSourcePinURL:
title: Pin URL
description: Pin URL-based media source for product pin creation. Currently the field is only available to a list of beta users.
type: object
properties:
source_type:
type: string
enum:
- pin_url
is_affiliate_link:
type: boolean
description: This is an affiliate link or sponsored product. The FTC requires disclosure for paid partnerships and affiliate products.
default: false
required:
- source_type
PinMediaSource:
title: Pin media source
description: Pin media source.
oneOf:
- $ref: '#/components/schemas/PinMediaSourceImageBase64'
- $ref: '#/components/schemas/PinMediaSourceImageURL'
- $ref: '#/components/schemas/PinMediaSourceVideoID'
- $ref: '#/components/schemas/PinMediaSourceImagesBase64'
- $ref: '#/components/schemas/PinMediaSourceImagesURL'
- $ref: '#/components/schemas/PinMediaSourcePinURL'
discriminator:
propertyName: source_type
mapping:
multiple_image_base64: '#/components/schemas/PinMediaSourceImagesBase64'
image_base64: '#/components/schemas/PinMediaSourceImageBase64'
multiple_image_urls: '#/components/schemas/PinMediaSourceImagesURL'
image_url: '#/components/schemas/PinMediaSourceImageURL'
video_id: '#/components/schemas/PinMediaSourceVideoID'
pin_url: '#/components/schemas/PinMediaSourcePinURL'
parameters:
path_pin_id:
name: pin_id
description: Unique identifier of a Pin.
in: path
required: true
schema:
type: string
query_ad_account_id:
name: ad_account_id
description: Unique identifier of an ad account.
in: query
schema:
type: string
pattern: ^\d+$
maxLength: 18
securitySchemes:
pinterest_oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://www.pinterest.com/oauth/
tokenUrl: https://api.pinterest.com/v5/oauth/token
scopes:
ads:read: See all of your advertising data, including ads, ad groups, campaigns etc.
ads:write: Create, update, or delete ads, ad groups, campaigns etc.
billing:read: See all of your billing data, billing profile, etc.
billing:write: Create, update, or delete billing data, billing profiles, etc.
biz_access:read: See business access data
biz_access:write: Create, update, or delete business access data
boards:read: See your public boards, including group boards you join
boards:read_secret: See your secret boards
boards:write: Create, update, or delete your public boards
boards:write_secret: Create, update, or delete your secret boards
catalogs:read: See all of your catalogs data
catalogs:write: Create, update, or delete your catalogs data
pins:read: See your public Pins
pins:read_secret: See your secret Pins
pins:write: Create, update, or delete your public Pins
pins:write_secret: Create, update, or delete your secret Pins
user_accounts:read: See your user accounts and followers
user_accounts:write: Update your user accounts and followers
conversion_token:
type: http
scheme: bearer
description: This security scheme only applies to the conversion events endpoint (POST /ad_accounts/{ad_account_id}/events). This endpoint requires a bearer token generated via Ads Manager (ads.pinterest.com).
basic:
type: http
scheme: basic
x-tagGroups:
- name: Pin and Boards
tags:
- pins
- boards
- media
- aggregated_comments
- aggregated_pin_data
- user_account
- name: Campaign Management
tags:
- ad_accounts
- campaigns
- ad_groups
- ads
- product_group_promotions
- bulk
- name: Targeting
tags:
- audiences
- customer_lists
- keywords
- targeting_template
- audience_insights
- audience_sharing
- name: Ad Formats
tags:
- lead_forms
- lead_ads
- leads_export
- name: Billing
tags:
- billing
- order_lines
- terms_of_service
- name: Business Access
tags:
- business_access_assets
- business_access_invite
- business_access_relationships
- name: Conversions
tags:
- conversion_events
- conversion_tags
- name: Others
tags:
- integrations
- oauth
- resources
- search
- terms
- name: Shopping
tags:
- catalogs
- name: Deprecated
tags:
- product_groups