openapi: 3.0.3
info:
version: 5.13.0
title: Pinterest Pin 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: Pin
paths:
/ad_accounts/{ad_account_id}/ssio/insertion_orders/{pin_order_id}/status:
get:
summary: Get insertion order status by pin order id.
description: 'Get insertion order status for pin order id pin_order_id.
- The token''s user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Finance, Campaign.'
operationId: ssio_insertion_orders_status/get_by_pin_order_id
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_pin_order_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOInsertionOrderStatusResponse'
description: Success
'400':
description: Invalid request parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid request parameter.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Pin
/pins/{pin_id}:
get:
summary: Get Pin
description: 'Get a Pin owned by the "operation user_account" - or on a group board that has been shared with this account.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) 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 Business Access roles on the ad_account:
- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.
- For Pins on secret boards: Owner, Admin.'
tags:
- Pin
operationId: pins/get
security:
- pinterest_oauth2:
- boards:read
- pins:read
x-ratelimit-category: org_read
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 list pin method here:
# https://developers.pinterest.com/docs/api/v5/#operation/pins/list
PIN_ID=""
pin_get = Pin(pin_id=PIN_ID)
print("Pin Id: %s, Pin Title:%s" %(pin_get.id, pin_get.title))
'
- lang: cURL
label: curl
source: '# Pin information can be fetched from profile page or from list pin method here:
# https://developers.pinterest.com/docs/api/v5/#operation/pins/list
curl --location --request GET ''https://api.pinterest.com/v5/pins/'' \
--header ''Authorization: Bearer '' \
--header ''Content-Type: application/json''
'
- lang: cURL
label: curl (Sandbox)
source: '# Pin information can be fetched from profile page or from list pin method here:
# https://developers.pinterest.com/docs/api/v5/#operation/pins/list
curl --location --request GET ''https://api-sandbox.pinterest.com/v5/pins/'' \
--header ''Authorization: Bearer '' \
--header ''Content-Type: application/json''
'
parameters:
- $ref: '#/components/parameters/path_pin_id'
- $ref: '#/components/parameters/query_pin_metrics'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
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: Pin not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 50
message: Pin not found.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
summary: Delete Pin
description: 'Delete a Pins owned by the "operation user_account" - or on a group board that has been shared with this account.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) 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 Business Access roles on the ad_account:
- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.
- For Pins on secret boards: Owner, Admin.'
tags:
- Pin
operationId: pins/delete
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=""
pin_delete=Pin.delete(pin_id=PIN_ID)
print("Pin was deleted? %s" % (pin_delete))
'
- lang: cURL
label: curl
source: '# 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
curl --request DELETE ''https://api.pinterest.com/v5/pins/'' \
--header ''Authorization: Bearer '' \
--header ''Content-Type: application/json''
'
- lang: cURL
label: curl (Sandbox)
source: '# 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
curl --request DELETE ''https://api-sandbox.pinterest.com/v5/pins/'' \
--header ''Authorization: Bearer '' \
--header ''Content-Type: application/json''
'
parameters:
- $ref: '#/components/parameters/path_pin_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'204':
description: Successfully deleted Pin
'403':
description: Not authorized to access board or Pin.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access board or Pin.
'404':
description: Pin not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Pin not found.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
patch:
summary: Update Pin
description: '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 ad_account_id (obtained via List ad accounts) 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 Business Access roles on the ad_account:
- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.
- For Pins on secret boards: Owner, Admin.
This endpoint is currently in beta and not available to all apps. Learn more.'
tags:
- Pin
operationId: pins/update
security:
- pinterest_oauth2:
- boards:read
- boards:write
- pins:read
- pins:write
x-ratelimit-category: org_write
x-sandbox: enabled
x-codeSamples:
- lang: cURL
label: curl
source: "# Pin 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\ncurl --location --request PATCH 'https://api.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"My updated Pin title\"\n}'\n"
- lang: cURL
label: curl (Sandbox)
source: "# Pin 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\ncurl --location --request GET 'https://api-sandbox.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"My updated Pin title\"\n}'\n"
parameters:
- $ref: '#/components/parameters/path_pin_id'
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PinUpdate'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/Pin'
'403':
description: Not authorized to update Pin.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 29
message: Not authorized to update Pin.
'404':
description: Pin not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 50
message: Pin not found.
'429':
description: '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.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 8
message: '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:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/pins/{pin_id}/analytics:
get:
summary: Get Pin analytics
description: 'Get analytics for a Pin owned by the "operation user_account" - or on a group board that has been shared with this account.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) 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 Business Access roles on the ad_account:
- For Pins on public or protected boards: Admin, Analyst.
- For Pins on secret boards: Admin.
If Pin was created before 2023-03-20 lifetime metrics will only be available for Video and Idea Pin formats. Lifetime metrics are available for all Pin formats since then.'
tags:
- Pin
operationId: pins/analytics
security:
- pinterest_oauth2:
- boards:read
- pins:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_pin_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_pin_analytics_metric_types'
- $ref: '#/components/parameters/query_split_field_pins'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/PinAnalyticsResponse'
'400':
description: Invalid pins analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid pins analytics parameters.
'403':
description: Not authorized to access board or Pin.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access board or Pin.
'404':
description: Pin not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Pin not found.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/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 ad_account_id (obtained via List ad accounts) 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 Business Access 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:
- Pin
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=""
# 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=""
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//save' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"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//save' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"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:
PinAnalyticsMetricsResponse:
type: object
properties:
lifetime_metrics:
description: The lifetime metric name and value.
type: object
additionalProperties:
type: integer
example:
TOTAL_COMMENTS: 10
TOTAL_REACTIONS: 12
daily_metrics:
description: Array with the requested daily metric records
items:
type: object
properties:
data_status:
$ref: '#/components/schemas/DataStatus'
date:
description: 'Metrics date (UTC): YYYY-MM-DD.'
example: '2019-12-01'
type: string
metrics:
description: The metric name and daily value for each requested metric
type: object
additionalProperties:
type: number
example:
IMPRESSION: 240
OUTBOUND_CLICK: 20
PIN_CLICK: 37
QUARTILE_95_PERCENT_VIEW: 8
SAVE: 20
SAVE_RATE: 0.18
VIDEO_10S_VIEW: 2
VIDEO_AVG_WATCH_TIME: 2507.75
VIDEO_MRC_VIEW: 20
VIDEO_START: 29
VIDEO_V50_WATCH_TIME: 10031
type: array
summary_metrics:
description: The metric name and value over the requested period for each requested metric
type: object
additionalProperties:
type: number
example:
IMPRESSION: 240
OUTBOUND_CLICK: 20
PIN_CLICK: 37
QUARTILE_95_PERCENT_VIEW: 8
SAVE: 20
SAVE_RATE: 0.18
VIDEO_10S_VIEW: 2
VIDEO_AVG_WATCH_TIME: 2507.75
VIDEO_MRC_VIEW: 20
VIDEO_START: 29
VIDEO_V50_WATCH_TIME: 10031
Error:
title: Error
type: object
properties:
code:
type: integer
message:
type: string
required:
- code
- message
SSIOInsertionOrderStatus:
type: object
properties:
pin_order_id:
description: Salesforce order id
example: 0Q01N0000015hekSAB
type: string
status:
description: Salesforce insertion order status
example: Approved
type: string
creation_time:
description: Salesforce insertion order creation time
example: '2017-06-21T23:11:11.000Z'
type: string
nullable: true
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
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
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
CreativeType:
type: string
description: Ad creative type enum. For update, only draft ads may update creative type.
Note: 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
SSIOInsertionOrderStatusResponse:
allOf:
- $ref: '#/components/schemas/SSIOInsertionOrderStatus'
- type: object
PinAnalyticsResponse:
type: object
additionalProperties:
$ref: '#/components/schemas/PinAnalyticsMetricsResponse'
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
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. Learn more.
type: string
pattern: ^\d+$
nullable: true
is_standard:
description: Whether the Pin is standard or not. See documentation on Changes to Pin creation 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. Learn more.
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
PinUpdate:
title: PinUpdate
description: Pin fields for updates
type: object
nullable: true
properties:
alt_text:
type: string
nullable: true
description: Pin's alternative text.
maxLength: 500
board_id:
type: string
nullable: true
description: The id of the board to move the Pin onto.
pattern: ^\d+$
board_section_id:
type: string
nullable: true
description: Board section ID.
pattern: ^\d+$
description:
type: string
nullable: true
description: Pin description - 800 characters maximum.
maxLength: 800
link:
type: string
nullable: true
description: URL viewer is taken to when they click pin.
example: https://www.pinterest.com/
maxLength: 2048
title:
type: string
nullable: true
description: The native pin title that creators explicitly prefer to display.
maxLength: 100
carousel_slots:
type: array
description: Carousel Pin slots data.
items:
type: object
properties:
title:
type: string
description: Carousel Pin slot title.
description:
type: string
description: Carousel Pin slot description.
link:
type: string
description: Carousel Pin slot link.
note:
description: Private note for this Pin. Learn more.
type: string
nullable: true
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
DataStatus:
description: Metrics availablity, e.g., "READY".
example: READY
type: string
enum:
- PROCESSING
- READY
- ESTIMATE
- BEFORE_BUSINESS_CREATED
- BEFORE_DATA_RETENTION_PERIOD
- BEFORE_PIN_DATA_RETENTION_PERIOD
- BEFORE_METRIC_START_DATE
- BEFORE_CORE_METRIC_START_DATE
- BEFORE_PIN_FORMAT_METRIC_START_DATE
- BEFORE_AUDIENCE_METRIC_START_DATE
- BEFORE_AUDIENCE_MONTHLY_METRIC_START_DATE
- BEFORE_VIDEO_METRIC_START_DATE
- BEFORE_CONVERSION_METRIC_START_DATE
- PURCHASERS_METRIC_SMALLER_THAN_THRESHOLD
- IN_BAD_TAG_DATE
- BEFORE_PUBLISHED_METRIC_START_DATE
- BEFORE_ASSIST_METRIC_START_DATE
- BEFORE_PIN_CREATED
- BEFORE_ACCOUNT_CLAIMED
- BEFORE_DEMOGRAPHIC_FILTERS_START_DATE
- AUDIENCE_SEGMENT_SMALLER_THAN_THRESHOLD
- AUDIENCE_TOTAL_SMALLER_THAN_THRESHOLD
- BEFORE_PRODUCT_GROUP_FILTER_START_DATE
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
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_ad_account_id:
name: ad_account_id
description: Unique identifier of an ad account.
in: path
required: true
schema:
type: string
pattern: ^\d+$
maxLength: 18
query_end_date:
description: 'Metric report end date (UTC). Format: YYYY-MM-DD. Cannot be more than 90 days past start_date.'
in: query
name: end_date
required: true
schema:
type: string
format: date
path_pin_order_id:
description: The pin order id associated with the ssio insertion order
in: path
name: pin_order_id
required: true
schema:
type: string
example: 0Q01N0000015hekSVDFDC
query_ad_account_id:
name: ad_account_id
description: Unique identifier of an ad account.
in: query
schema:
type: string
pattern: ^\d+$
maxLength: 18
query_app_types:
description: Apps or devices to get data for, default is all.
in: query
name: app_types
required: false
schema:
default: ALL
enum:
- ALL
- MOBILE
- TABLET
- WEB
type: string
query_pin_analytics_metric_types:
description: Pin metric types to get data for. Keep in mind this cannot have ALL if split_field is set to any value other than NO_SPLIT.
explode: false
in: query
name: metric_types
required: true
schema:
type: array
items:
oneOf:
- description: Standard Pin metric types
type: string
enum:
- IMPRESSION
- OUTBOUND_CLICK
- PIN_CLICK
- SAVE
- SAVE_RATE
- TOTAL_COMMENTS
- TOTAL_REACTIONS
- description: Video Pin metric types
type: string
enum:
- IMPRESSION
- OUTBOUND_CLICK
- PIN_CLICK
- SAVE
- SAVE_RATE
- VIDEO_MRC_VIEW
- VIDEO_10S_VIEW
- QUARTILE_95_PERCENT_VIEW
- VIDEO_V50_WATCH_TIME
- VIDEO_START
- VIDEO_AVG_WATCH_TIME
- TOTAL_COMMENTS
- TOTAL_REACTIONS
style: form
query_pin_metrics:
name: pin_metrics
description: Specify whether to return 90d and lifetime Pin metrics. Total comments and total reactions are only available with lifetime Pin metrics. If Pin was created before 2023-03-20 lifetime metrics will only be available for Video and Idea Pin formats. Lifetime metrics are available for all Pin formats since then.
in: query
required: false
schema:
type: boolean
default: false
query_start_date:
description: 'Metric report start date (UTC). Format: YYYY-MM-DD. Cannot be more than 90 days back from today.'
in: query
name: start_date
required: true
schema:
type: string
format: date
query_split_field_pins:
description: How to split the data into groups. Not including this param means data won't be split.
required: false
in: query
explode: false
name: split_field
schema:
default: NO_SPLIT
enum:
- NO_SPLIT
- APP_TYPE
type: string
path_pin_id:
name: pin_id
description: Unique identifier of a Pin.
in: path
required: true
schema:
type: string
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