openapi: 3.0.3
info:
version: 5.18.0
title: Pinterest REST API
description: Pinterest's REST 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: ad_accounts
description: |-
View analytical information about advertising.
Note: If the current operation_user_account (defined by the access token)
has access to another user's Ad Accounts via
Pinterest Business Access,
you can modify your request to use the current operation_user_account's
permissions to those Ad Accounts by including the ad_account_id in the path
parameters for the request (e.g. .../?ad_account_id=12345&...).
- name: ad_groups
description: View, create or update ad groups.
- name: ads
description: View, create or update ads.
- name: advanced_auction
description: View, create, or update advanced auction item bid options.
- name: audience_insights
description: View audience insights.
- name: audience_sharing
description: |-
View, share, or revoke shared audiences.
Audience Sharing endpoints are not available to all apps,
if you are interested in using them, reach out to us on our help center page.
Learn more.
- name: audiences
description: View, create, or update audiences.
- name: billing
description: View, create, or update information related to billing.
- name: boards
description: View, create, update, or delete information about boards.
- name: bulk
description: Create, update, or download ads-related entities in bulk.
- name: campaigns
description: View, create or update campaigns.
- name: catalog_feeds
description: View and manage catalog feeds.
x-display-name: feeds
- name: catalog_items
description: View and manage catalog items directly without a feed.
x-display-name: items
- name: catalog_product_groups
description: View and manage catalog product groups using filters.
x-display-name: product_groups
- name: catalog_regions
description: View and manage catalog regions defined by sets of postal codes.
x-display-name: regions
- name: catalog_reports
description: View and manage reports about catalogs.
x-display-name: reports
- name: catalogs
description: Manage information about shopping product catalogs and items.
- name: conversion_events
description: Submit conversion events via the Pinterest API.
- name: conversion_tags
description: View, create, or update conversion tags.
- name: customer_lists
description: View, create, or update customer lists.
- name: integrations
description: View, create, or update commerce integrations.
- name: keywords
description: View, create or update keywords.
- name: lead_ads
description: View, create, or update lead ads.
- name: lead_forms
description: View lead forms.
- name: leads_export
description: Create and export leads information from lead ads.
- name: media
description: Register and manage media uploads.
- name: msot_events
description: Submit Measurement Source of Truth attributed conversion events via
the Pinterest API.
- name: oauth
description: Generate and refresh OAuth access tokens.
- name: order_lines
description: View order lines.
- name: pins
description: View, create, update, or delete information about Pins.
- name: product_group_promotions
description: View, create, update, or delete information about promoted product
groups.
- name: promotions
description: View, create, update, or delete promotions.
- name: resources
description: View metadata about available metrics and targeting options in the
Pinterest API.
- name: search
description: Search for Pins and boards owned by the current user.
- name: targeting_template
description: View, create or update targeting templates.
- name: terms
description: View related and suggested terms for ads targeting.
- name: terms_of_service
description: View Advertising Terms Of Service.
- name: user_account
description: View user accounts associated with a given access token.
x-tagGroups:
- name: Pin and Boards
tags:
- pins
- boards
- media
- aggregated_comments
- aggregated_pin_data
- user_account
- entity_history
- name: Campaign Management
tags:
- ad_accounts
- campaigns
- ad_groups
- ads
- product_group_promotions
- bulk
- labels
- name: Targeting
tags:
- audiences
- customer_lists
- keywords
- targeting_template
- audience_insights
- audience_sharing
- name: Ad Formats
tags:
- lead_forms
- lead_ads
- leads_export
- promotions
- 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
- msot_events
- name: Others
tags:
- advanced_auction
- integrations
- oauth
- resources
- search
- terms
- name: Shopping
tags:
- catalogs
- catalog_feeds
- catalog_product_groups
- catalog_reports
- catalog_items
- catalog_regions
paths:
/ad_accounts:
get:
summary: List ad accounts
description: |-
Get a list of the ad_accounts that the "operation user_account" has access to.
- This includes ad_accounts they own and ad_accounts that are owned by others who have granted them Business Access.
tags:
- ad_accounts
operationId: ad_accounts/list
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_include_shared_accounts'
responses:
'200':
description: response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Ad accounts
items:
$ref: '#/components/schemas/AdAccount'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
summary: Create ad account
description: |-
Create a new ad account. Different ad accounts can support different currencies, payment methods, etc.
An ad account is needed to create campaigns, ad groups, and ads; other accounts (your employees or partners) can be assigned business access and appropriate roles to access an ad account.
Microcurrency\ \ is used to track very small transactions, based on the currency set in the\ \ advertiser\u2019s profile.
\nA microcurrency unit is 10^(-6) of the\ \ standard unit of currency selected in the advertiser\u2019s profile.
\n\ \Equivalency equations, using dollars as an example currency:
\n\To convert between currency and microcurrency,\ \ using dollars as an example currency:
\nad_account_id, filtered by the specified options.
- 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, Analyst, Campaign Manager.
- If granularity is not HOUR, you can pull data from up to 90 days before the current date in UTC time, with a maximum time range of 90 days.
- If granularity is HOUR, you can pull data from up to 8 days before the current date in UTC time, with a maximum time range of 3 days.
operationId: ad_groups/analytics
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_ad_group_ids_required'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
- $ref: '#/components/parameters/aggregate_report_rows'
- $ref: '#/components/parameters/query_reporting_timezone'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupsAnalyticsResponse'
description: Success
'400':
description: Invalid ad account group analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account group analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_groups
/ad_accounts/{ad_account_id}/ad_groups/targeting_analytics:
get:
summary: Get targeting analytics for ad groups
description: |-
Get targeting analytics for one or more ad groups.
For the requested ad group(s) and metrics, the response will include the requested metric information
(e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. "age_bucket") for applicable values (e.g. "45-49").
- 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, Analyst, Campaign Manager.
- If granularity is not HOUR, you can pull data from up to 90 days before the current date in UTC time, with a maximum time range of 90 days.
- If granularity is HOUR, you can pull data from up to 8 days before the current date in UTC time, with a maximum time range of 3 days.
operationId: ad_groups_targeting_analytics/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_ad_group_ids_required'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_ad_group_targeting_types'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
- $ref: '#/components/parameters/query_attribution_types'
- $ref: '#/components/parameters/query_reporting_timezone'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
description: Success
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_groups
/ad_accounts/{ad_account_id}/ad_groups/audience_sizing:
post:
summary: Get audience sizing
description: "Get potential audience size for an ad group with given targeting\
\ criteria. \nPotential audience size estimates the number of people you may\
\ be able to reach per month with your campaign. \nIt is based on historical\
\ advertising data and the targeting criteria you select.\nIt does not guarantee\
\ results or take into account factors such as bid, budget, schedule, seasonality\
\ or product experiments."
operationId: ad_groups/audience_sizing
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupAudienceSizingRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupAudienceSizingResponse'
description: Success
'400':
description: Invalid ad group audience sizing parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad group audience sizing parameters.
'403':
description: No access to requested audience list or product group.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: You don't have access to the requested audience list or product
group.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- ad_groups
/ad_accounts/{ad_account_id}/ad_groups/{ad_group_id}:
get:
summary: Get ad group
description: Get a specific ad group given the ad group ID.
operationId: ad_groups/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_ad_group_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- ad_groups
/ad_accounts/{ad_account_id}/ad_previews:
post:
summary: Create ad preview with pin or image
description: |-
Create an ad preview given an ad account ID and either an existing organic pin ID or the URL for an image to be used to create the Pin and the ad.
If you are creating a preview from an existing Pin, that Pin must be promotable: that is, it must have a clickthrough link and meet other requirements. (See Ads Overview.)
You can view the returned preview URL on a webpage or iframe for 7 days, after which the URL expires. Collection ads are not currently supported ad preview.
Creating ad preview from catalog product group is currently in BETA and is not available to all users.
tags:
- ads
operationId: ad_previews/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Create ad preview with pin or image.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdPreviewRequest'
responses:
'200':
description: Successful ad preview creation.
content:
application/json:
schema:
$ref: '#/components/schemas/AdPreviewURLResponse'
'400':
description: Invalid Pin parameters response
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidPinUrl:
value:
code: 1
message: Whoops! It looks like you entered an invalid URL. Try
creating a Pin again with a valid URL.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ad_accounts/{ad_account_id}/ads:
get:
summary: List ads
description: |-
List ads that meet the filters provided:
- Listed campaign ids or ad group ids or ad ids
- Listed entity statuses
If no filter is provided, all ads in the ad account are returned.
Note:
Provide only campaign_id or ad_group_id or ad_id. Do not provide more than one type.
Review status is provided for each ad; if review_status is REJECTED, the rejected_reasons field will contain additional information.
For more, see Pinterest advertising standards.
operationId: ads/list
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_campaign_ids'
- $ref: '#/components/parameters/query_ad_group_ids'
- $ref: '#/components/parameters/query_ad_ids'
- $ref: '#/components/parameters/query_entity_statuses'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_order'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdResponse'
description: Success
'400':
description: Invalid ad account ads parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ads
post:
description: Create multiple new ads. Request must contain ad_group_id, creative_type,
and the source Pin pin_id.
operationId: ads/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
items:
$ref: '#/components/schemas/AdCreateRequest'
maxItems: 30
minItems: 1
type: array
description: List of ads to create, size limit [1, 30].
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdArrayResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Create ads
tags:
- ads
patch:
description: Update multiple existing ads
operationId: ads/update
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
items:
$ref: '#/components/schemas/AdUpdateRequest'
maxItems: 30
minItems: 1
type: array
description: List of ads to update, size limit [1, 30]
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdArrayResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Update ads
tags:
- ads
/ad_accounts/{ad_account_id}/ads/analytics:
get:
summary: Get ad analytics
description: |-
Get analytics for the specified ads in the specified ad_account_id, filtered by the specified options.
- 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, Analyst, Campaign Manager.
- The request must contain either ad_ids or both campaign_ids and pin_ids.
- If granularity is not HOUR, you can pull data from up to 90 days before the current date in UTC time, with a maximum time range of 90 days.
- If granularity is HOUR, you can pull data from up to 8 days before the current date in UTC time, with a maximum time range of 3 days.
operationId: ads/analytics
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_ad_ids'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
- name: pin_ids
description: List of Pin IDs.
in: query
required: false
schema:
type: array
items:
type: string
pattern: ^\d+$
minItems: 1
maxItems: 100
- $ref: '#/components/parameters/query_campaign_ids'
- $ref: '#/components/parameters/query_reporting_timezone'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsResponse'
description: Success
'400':
description: Invalid ad account ads analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ads
/ad_accounts/{ad_account_id}/ads_credit/discounts:
get:
summary: Get ads credit discounts
description: |-
Returns the list of discounts applied to the account.
This endpoint might not be available to all apps. Learn more.
operationId: ads_credits_discounts/get
security:
- pinterest_oauth2:
- ads:read
- billing:read
x-ratelimit-category: ads_read
x-sandbox: disabled
tags:
- billing
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdsCreditDiscountsResponse'
description: Success
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ad_accounts/{ad_account_id}/ads_credit/redeem:
post:
summary: Redeem ad credits
description: |-
Redeem ads credit on behalf of the ad account id and apply it towards billing.
This endpoint might not be available to all apps. Learn more.
tags:
- billing
operationId: ads_credit/redeem
security:
- pinterest_oauth2:
- ads:write
- billing:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Redeem ad credits request.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdsCreditRedeemRequest'
responses:
'200':
description: Successfully redeemed ad credits.
content:
application/json:
schema:
$ref: '#/components/schemas/AdsCreditRedeemResponse'
'400':
description: Error thrown when unable to redeem offer code.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ValidationError:
value:
code: 15
message: Unable to redeem offer code. Try again later.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ad_accounts/{ad_account_id}/ads/targeting_analytics:
get:
summary: Get targeting analytics for ads
description: |-
Get targeting analytics for one or more ads. For the requested ad(s) and metrics,
the response will include the requested metric information (e.g. SPEND_IN_DOLLAR) for the requested target type
(e.g. "age_bucket") for applicable values (e.g. "45-49").
- 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, Analyst, Campaign Manager.
- If granularity is not HOUR, you can pull data from up to 90 days before the current date in UTC time, with a maximum time range of 90 days.
- If granularity is HOUR, you can pull data from up to 8 days before the current date in UTC time, with a maximum time range of 3 days.
operationId: ad_targeting_analytics/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_ad_ids_required'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_ad_targeting_types'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
- $ref: '#/components/parameters/query_attribution_types'
- $ref: '#/components/parameters/query_reporting_timezone'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- ads
/ad_accounts/{ad_account_id}/ads/{ad_id}:
get:
summary: Get ad
description: |-
Get a specific ad given the ad ID. If your pin is rejected, rejected_reasons will
contain additional information from the Ad Review process.
For more information about our policies and rejection reasons see the Pinterest advertising standards.
operationId: ads/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_ad_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- ads
/ad_accounts/{ad_account_id}/analytics:
get:
summary: Get ad account analytics
description: |-
Get analytics for the specified ad_account_id, filtered by the specified options.
- 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, Analyst, Campaign Manager.
- If granularity is not HOUR, you can pull data from up to 90 days before the current date in UTC time, with a maximum time range of 90 days.
- If granularity is HOUR, you can pull data from up to 8 days before the current date in UTC time.
operationId: ad_account/analytics
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
- $ref: '#/components/parameters/query_reporting_timezone'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdAccountAnalyticsResponse'
description: Success
'400':
description: Invalid ad account analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
/ad_accounts/{ad_account_id}/audience_insights:
get:
summary: Get audience insights
description: |-
Get Audience Insights for an ad account. The response will return insights for 3 types of audiences: the
ad account's engaged audience on Pinterest, the ad account's total audience on Pinterest and Pinterest's
total audience.
Learn more about Audience Insights.
operationId: audience_insights/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_audience_insight_type'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceInsightsResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- audience_insights
/ad_accounts/{ad_account_id}/audiences:
get:
summary: List audiences
description: Get list of audiences for the ad account.
operationId: audiences/list
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_bookmark'
- description: "The order in which to sort the items returned: \u201CASCENDING\u201D\
\ or \u201CDESCENDING\u201D by ID.\nFor received audiences, it is sorted\
\ by sharing event time.\nNote that higher-value IDs are associated with\
\ more-recently added items."
in: query
name: order
required: false
schema:
type: string
example: ASCENDING
enum:
- ASCENDING
- DESCENDING
- $ref: '#/components/parameters/query_page_size'
- description: Filter audiences by ownership type.
in: query
name: ownership_type
required: false
example: OWNED
schema:
type: string
default: OWNED
enum:
- OWNED
- RECEIVED
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Audience'
description: Success
'400':
description: Invalid ad account audience parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account audience parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- audiences
post:
description: |-
Create an audience you can use in targeting for specific ad groups. Targeting combines customer information with
the ways users interact with Pinterest to help you reach specific groups of users; you can include or exclude
specific audience_ids when you create an ad group.
For more, see Audience targeting.
operationId: audiences/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceCreateRequest'
description: List of ads to create, size limit [1, 30]
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Create audience
tags:
- audiences
/ad_accounts/{ad_account_id}/audiences/{audience_id}:
get:
summary: Get audience
description: Get a specific audience given the audience ID.
operationId: audiences/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_audience_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
'404':
description: Audience not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- audiences
patch:
summary: Update audience
description: Update (edit or remove) an existing targeting audience.
operationId: audiences/update
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_audience_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceUpdateRequest'
description: The audience to be updated.
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- audiences
/ad_accounts/{ad_account_id}/audiences/custom:
post:
summary: Create custom audience
description: Create a custom audience and find the audiences you want your ads
to reach.
operationId: audiences/create_custom
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Custom audience to create.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceCreateCustomRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- audiences
/ad_accounts/{ad_account_id}/audiences/shared/accounts:
get:
summary: List accounts with access to an audience owned by an ad account
description: List all ad accounts and/or businesses that have access to a specific
audience. The audience must be owned by the requesting ad account.
operationId: ad_accounts_audiences_shared_accounts/list
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_audience_id'
- $ref: '#/components/parameters/query_account_type'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/SharedAudienceAccount'
'400':
description: Invalid ad account audiences shared accounts parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account audiences shared accounts parameters.
'404':
description: Shared accounts not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- audience_sharing
/ad_accounts/{ad_account_id}/audiences/ad_accounts/shared:
patch:
summary: Update audience sharing between ad accounts
description: From an ad account, share a specific audience with another ad account,
or revoke access to a previously shared audience. Only the audience owner
account can share the audience. The recipient ad account(s) must be in the
same Pinterest
Business Hierarchy as the business owner of the ad account.Microcurrency is used to track very small transactions, based on\ \ the currency set in the advertiser\u2019s profile.
\nA microcurrency\ \ unit is 10^(-6) of the standard unit of currency selected in the advertiser\u2019\ \ s profile.
\nEquivalency equations, using dollars\ \ as an example currency:
\nTo convert between\ \ currency and microcurrency, using dollars as an example currency:
\n\request_id
that can be used to obtain the status of the request.
operationId: bulk_upsert/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertRequest'
description: Parameters to get create/update ad entities in bulk
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Create/update ad entities in bulk
tags:
- bulk
/ad_accounts/{ad_account_id}/bulk/{bulk_request_id}:
get:
description: |-
Get the status of a bulk request by request_id, along with a download URL that will allow you to download the
new or updated entity data (campaigns, ad groups, product groups, ads, or keywords).
operationId: bulk_request/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_bulk_request_id'
- $ref: '#/components/parameters/include_details'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertStatusResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Download advertiser entities in bulk
tags:
- bulk
/ad_accounts/{ad_account_id}/campaigns:
get:
summary: List campaigns
description: |-
Get a list of the campaigns in the specified ad_account_id, filtered by the specified options.
- 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, Analyst, Campaign Manager.
operationId: campaigns/list
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_campaign_ids'
- $ref: '#/components/parameters/query_entity_statuses'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_order'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CampaignResponse'
description: Success
'400':
description: Invalid ad account campaign parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account campaign parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- campaigns
post:
summary: Create campaigns
description: "Create multiple new campaigns. Every campaign has its own campaign_id\
\ and houses one or more ad groups, which contain one or more ads.\nFor more,\
\ see Set up your campaign. \nNote:\n- The values for\
\ 'lifetime_spend_cap' and 'daily_spend_cap' are microcurrency amounts based\
\ on the currency field set in the advertiser's profile. (e.g. USD) \n\
Microcurrency is used to track very small transactions, based on the currency\ \ set in the advertiser\u2019s profile.
\nA microcurrency unit is 10^(-6)\ \ of the standard unit of currency selected in the advertiser\u2019s profile.
\n\ \Equivalency equations, using dollars as an example currency:
\n\To convert between currency and microcurrency,\ \ using dollars as an example currency:
\nThe values for 'lifetime_spend_cap' and 'daily_spend_cap' are microcurrency\ \ amounts based on the currency field set in the advertiser's profile. (e.g.\ \ USD)
\nMicrocurrency is used to track very small transactions, based\ \ on the currency set in the advertiser\u2019s profile.
\nA microcurrency\ \ unit is 10^(-6) of the standard unit of currency selected in the advertiser\u2019\ \ s profile.
\nEquivalency equations, using dollars\ \ as an example currency:
\nTo convert between\ \ currency and microcurrency, using dollars as an example currency:
\n\ad_account_id, filtered by the specified options.
- 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, Analyst, Campaign Manager.
- If granularity is not HOUR, you can pull data from up to 90 days before the current date in UTC time, with a maximum time range of 90 days.
- If granularity is HOUR, you can pull data from up to 8 days before the current date in UTC time, with a maximum time range of 3 days.
operationId: campaigns/analytics
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_campaign_ids_required'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
- $ref: '#/components/parameters/aggregate_report_rows'
- $ref: '#/components/parameters/query_reporting_timezone'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignsAnalyticsResponse'
description: Success
'400':
description: Invalid ad account campaign analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account campaign analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- campaigns
/ad_accounts/{ad_account_id}/campaigns/targeting_analytics:
get:
summary: Get targeting analytics for campaigns
description: |-
Get targeting analytics for one or more campaigns.
For the requested account and metrics, the response will include the requested metric information
(e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. "age_bucket") for applicable values (e.g. "45-49").
- 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, Analyst, Campaign Manager.
- If granularity is not HOUR, you can pull data from up to 90 days before the current date in UTC time, with a maximum time range of 90 days.
- If granularity is HOUR, you can pull data from up to 8 days before the current date in UTC time, with a maximum time range of 3 days.
operationId: campaign_targeting_analytics/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_campaign_ids_required'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_campaign_targeting_types'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
- $ref: '#/components/parameters/query_attribution_types'
- $ref: '#/components/parameters/query_reporting_timezone'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
description: Success
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- campaigns
/ad_accounts/{ad_account_id}/campaigns/{campaign_id}:
get:
summary: Get campaign
description: Get a specific campaign given the campaign ID.
operationId: campaigns/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_campaign_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- campaigns
/ad_accounts/{ad_account_id}/conversion_tags:
get:
summary: Get conversion tags
description: List conversion tags associated with an ad account.
operationId: conversion_tags/list
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_filter_deleted'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagListResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- conversion_tags
x-sandbox: disabled
post:
x-sandbox: disabled
summary: Create conversion tag
description: "Create a conversion tag, also known as Pinterest tag, with the option to enable enhanced\
\ match.\nThe Pinterest Tag tracks actions people take on the ad account\u2019\
\ s website after they view the ad account's ad on Pinterest. The advertiser\
\ needs to customize this tag to track conversions.\nFor more information,\
\ see:\nSet up the Pinterest tag\nPinterest Tag\nEnhanced\
\ match"
operationId: conversion_tags/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagCreate'
description: Conversion Tag to create
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- conversion_tags
/ad_accounts/{ad_account_id}/conversion_tags/ocpm_eligible:
get:
summary: Get Ocpm eligible conversion tags
description: Get Ocpm eligible conversion tag events for an ad account.
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
operationId: ocpm_eligible_conversion_tags/get
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
x-sandbox: disabled
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagsOcpmEligibleResponse'
default:
description: Unexpected errors
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- conversion_tags
/ad_accounts/{ad_account_id}/conversion_tags/page_visit:
get:
summary: Get page visit conversion tags
description: Get all page visit conversion tag events for an ad account.
operationId: page_visit_conversion_tags/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_order'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ConversionEventResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- conversion_tags
/ad_accounts/{ad_account_id}/conversion_tags/{conversion_tag_id}:
get:
x-sandbox: disabled
summary: Get conversion tag
description: Get information about an existing conversion tag.
operationId: conversion_tags/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_conversion_tag_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- conversion_tags
/ad_accounts/{ad_account_id}/customer_lists:
post:
description: "Create a customer list from your records(hashed or plain-text\ \ email addresses, or hashed MAIDs or IDFAs).
\nA customer list is one\ \ of the four types of Pinterest audiences: for more information, see Audience targeting\nor the Audiences section of the ads management guide.
\n\ \Please review our requirements for what type of information is allowed\ \ when uploading a customer list.
\nWhen you create a customer list,\ \ the system scans the list for existing Pinterest accounts;\nthe list must\ \ include at least 100 Pinterest accounts. Your original list will be deleted\ \ when the matching process\nis complete. The filtered list \u2013 containing\ \ only the Pinterest accounts that were included in your starting\nlist \u2013\ \ is what will be used to create the audience.
\nNote that once you\ \ have created your customer list, you must convert it into an audience (of\ \ the \u201C CUSTOMER_LIST\u201D type)\nusing the create audience endpoint before it can be used.
" operationId: customer_lists/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomerListRequest' description: Parameters to get Customer lists info required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomerList' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Create customer lists tags: - customer_lists get: description: |-Get a set of customer lists including id and name based on the filters provided.
(Customer lists are a type of audience.) For more information, see Audience targeting or the Audiences section of the ads management guide.
operationId: customer_lists/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/CustomerList' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Get customer lists tags: - customer_lists /ad_accounts/{ad_account_id}/customer_lists/{customer_list_id}: get: summary: Get customer list description: Gets a specific customer list given the customer list ID. operationId: customer_lists/get security: - pinterest_oauth2: - ads:read - client_credentials: - ads:read x-ratelimit-category: ads_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_customer_list_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomerList' description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - customer_lists patch: description: "Append or remove records to/from an existing customer list.\ \ (A customer list is one of the four types of Pinterest audiences.)
\n\When you add records to an existing customer list, the system scans the\ \ additions for existing Pinterest\naccounts; those are the records that will\ \ be added to your \u201CCUSTOMER_LIST\u201D audience. Your original list\ \ of records\n to add will be deleted when the matching process is complete.
\n\For more information, see Audience targeting\nor the Audiences\nsection of the ads management guide.
" operationId: customer_lists/update security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_customer_list_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomerListUpdateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomerList' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Update customer list tags: - customer_lists /ad_accounts/{ad_account_id}/events: post: summary: Send conversions description: |- The Pinterest API offers advertisers a way to send Pinterest their conversion information (including web conversions, in-app conversions, or even offline conversions) based on theirad_account_id. The request body should be a JSON object.
- This endpoint requires an access_token be generated through Ads Manager. Review the Conversions Guide for more details. (Note that the authorization header required is Authorization: Bearer <access_token>).
- 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, Analyst, Audience, Campaign. (Note that the token can be used across multiple ad accounts under an user ID.)
- This endpoint has a rate limit of 5,000 calls per minute per ad account.
- If the merchant is submitting this information using both Pinterest conversion tags and the Pinterest API, Pinterest will remove duplicate information before reporting. (Note that events that took place offline cannot be deduplicated.)
operationId: events/create
tags:
- conversion_events
security:
- pinterest_oauth2:
- ads:write
- conversion_token: []
x-ratelimit-category: ads_conversions
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- name: test
description: |-
Include query param ?test=true to mark the request as a test request. The events will not be recorded but the API will still return the same response messages. Use this mode to verify your requests are working and your events are constructed correctly.
Warning: If you use this query parameter, be certain that it is off (set to false or deleted) before sending a legitimate (non-testing) request.
in: query
required: false
schema:
type: boolean
requestBody:
description: Conversion events.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionEvents'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionApiResponse'
description: Success
'400':
description: The request was invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 4196
message: The request was invalid.
'401':
description: Not authorized to send conversion events
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/DetailedError'
description: Not all events were successfully processed.
'429':
description: |-
This request exceeded a rate limit. This can happen if the client exceeds one
of the published rate limits 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 within a short time window.
'503':
description: The endpoint has been ramped down and is currently not accepting
any traffic.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 4197
message: The endpoint has been ramped down and is currently not accepting
any traffic.
default:
description: Unexpected errors
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ad_accounts/{ad_account_id}/msot/events:
post:
summary: Send Measurement Source Of Truth (MSOT) attributed conversion events
description: |-
This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager.
Advertisers or their measurement partners can send attributed MSOT conversion events to Pinterest based on their ad_account_id. The request body should be a JSON object.
Get a list of keywords based on the filters provided. If no filter is provided, it will default to the ad_account_id filter, which means it will only return keywords that specifically have parent_id set to the ad_account_id. Note: Keywords can have ad_account_ids, campaign_ids, and ad_group_ids set as their parent_ids. Keywords created through Ads Manager will have their parent_id set to an ad_group_id, not ad_account_id.
For more information, see Keyword targeting.
Notes:
For more information on match types, see match type enums.
Returns:
A successful call returns an object containing an array of new keyword objects and an empty "errors" object array.
An unsuccessful call returns an empty keywords array, and, instead, inserts the entire object with nulled/negated properties into the "errors" object array:
{ "keywords": [], "errors": [ { "data": { "archived": null, "match_type": "EXACT", "parent_type": null, "value": "foobar", "parent_id": null, "type": "keyword", "id": null }, "error_messages": [ "Advertisers and Campaigns only accept excluded targeting attributes." ] } } Create keywords for following entity types(advertiser, campaign, ad group or ad).
For more information, see Keyword targeting.
Notes:
For more information on match types, see match type enums.
Returns:
A successful call returns an object containing an array of new keyword objects and an empty "errors" object array.
An unsuccessful call returns an empty keywords array, and, instead, inserts the entire object with nulled/negated properties into the "errors" object array:
{ "keywords": [], "errors": [ { "data": { "archived": null, "match_type": "EXACT", "parent_type": null, "value": "foobar", "parent_id": null, "type": "keyword", "id": null }, "error_messages": [ "Advertisers and Campaigns only accept excluded targeting attributes." ] } } Rate limit: WRITE.
operationId: keywords/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KeywordsRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeywordsResponse' description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - keywords patch: summary: Update keywords description:Update one or more keywords' bid and archived fields.
Archiving a keyword effectively deletes it - keywords no longer receive metrics and no longer visible within the parent entity's keywords list.
operationId: keywords/update security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/KeywordUpdateBody' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeywordsResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - keywords /ad_accounts/{ad_account_id}/keywords/metrics: get: summary: Get country's keyword metrics description: |- See keyword metrics for a specified country, aggregated across all of Pinterest. (Definitions are available from the "Get delivery metrics definitions" API endpoint). operationId: country_keywords_metrics/get security: - pinterest_oauth2: - ads:read - client_credentials: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_country_code' - $ref: '#/components/parameters/query_keywords' responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeywordsMetricsArrayResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - keywords /ad_accounts/{ad_account_id}/labels: post: summary: Create labels description: |-Closed beta This endpoint is not available to all users.
Apply one or more labels to a campaign. Currently, you can apply brand and custom labels. Future releases will provide more options. Note: You can only apply one brand label to a campaign. You can apply 30 custom labels to a campaign.
operationId: labels/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LabelCreateRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/LabelsResponse' description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - labels get: summary: List labels description: |-Closed beta This endpoint is not available to all users.
See a list of labels for assets that your account owns, and filter the list by different criteria.
operationId: labels/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_campaign_ids' - $ref: '#/components/parameters/query_label_ids' - $ref: '#/components/parameters/query_label_entity_statuses' - $ref: '#/components/parameters/query_label_types' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/LabelsResponse' description: Success '400': description: Invalid ad account ads parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account ads parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - labels patch: summary: Update labels description: |-Closed beta This endpoint is not available to all users.
Change the properties of one or more labels.
operationId: labels/update security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LabelUpdateRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/LabelsResponse' description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - labels /ad_accounts/{ad_account_id}/lead_forms: get: summary: List lead forms description: |- This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager. List lead forms associated with an ad account ID. For more, see Lead ads. operationId: lead_forms/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/LeadFormResponse' description: Success '400': description: Invalid ad account lead forms parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account lead forms parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_forms post: x-sandbox: disabled description: "This feature is currently in beta and not available to\ \ all apps, if you're interested in joining the beta, please reach out to\ \ your Pinterest account manager.\n\nCreate lead forms. Lead forms\ \ are used in lead ads and allow you to control what text appears on the lead\ \ form\u2019 s description, questions and confirmation sections.\n\nFor more,\ \ see Lead ads." summary: Create lead forms operationId: lead_forms/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: items: $ref: '#/components/schemas/LeadFormCreateRequest' maxItems: 30 minItems: 1 type: array description: List of lead forms to create, size limit [1, 30]. required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LeadFormArrayResponse' description: Success '400': description: Invalid ad account lead forms parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account lead forms parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_forms patch: x-sandbox: disabled description: |- This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager. Update lead forms. Lead ads help you reach people who are actively looking for, and interested in, your goods and services. The lead form can be associated with an ad to allow people to fill out the form. For more, see Lead ads. summary: Update lead forms operationId: lead_forms/update security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: items: $ref: '#/components/schemas/LeadFormUpdateRequest' maxItems: 30 minItems: 1 type: array description: List of lead forms to update, size limit [1, 30]. required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LeadFormArrayResponse' description: Success '400': description: Invalid ad account lead forms parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account lead forms parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_forms /ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}: get: summary: Get lead form by id description: |- This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager. Gets a lead form given it's ID. It must also be associated with the provided ad account ID. For more, see Lead ads. operationId: lead_form/get 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_lead_form_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/LeadFormResponse' description: Success '400': description: Invalid ad account lead forms parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 1 message: Invalid ad account lead forms parameters. '404': description: The lead form ID for the given ad account ID does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 4842 message: Lead form is not found. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_forms /ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}/test: post: summary: Create lead form test data description: |- Create lead form test data based on the list of answers provided as part of the body. - List of answers should follow the questions creation order. operationId: lead_form_test/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_lead_form_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/LeadFormTestRequest' description: Subscription to create. required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LeadFormTestResponse' description: Success '400': description: Invalid parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 1 message: Invalid parameters. '404': description: Lead not found. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 4842 message: Lead not found. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_forms /ad_accounts/{ad_account_id}/leads/subscriptions: get: operationId: ad_accounts_subscriptions/get_list summary: Get lead ads subscriptions description: Get the advertiser's list of lead ads subscriptions. Only requests for the OWNER or ADMIN of the ad_account will be allowed. parameters: - $ref: '#/components/parameters/Pinterest.Lib.AdAccountId' - $ref: '#/components/parameters/Pinterest.Lib.BookmarkParams.bookmark' - $ref: '#/components/parameters/Pinterest.Lib.BookmarkParams.page_size' responses: '200': description: The request has succeeded. content: application/json: schema: type: object required: - items properties: bookmark: type: string nullable: true items: type: array items: $ref: '#/components/schemas/LeadSubscription' '400': description: The request could not be understood by the server due to unexpected data. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '401': description: Authentication is required and has either failed or not been provided. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '403': description: The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '404': description: The requested resource could not be found on this server. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '429': description: The user has sent too many requests in a given amount of time and is being rate limited. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' tags: - lead_ads security: - pinterest_oauth2: - ads:read x-sandbox: disabled x-ratelimit-category: ads_read post: operationId: ad_accounts_subscriptions/post summary: Create lead ads subscription description: |- Create a lead ads webhook subscription. Subscriptions allow Pinterest to deliver lead data from Ads Manager directly to the subscriber. Subscriptions can exist for a specific lead form or at ad account level. - Only requests for the OWNER or ADMIN of the ad_account will be allowed. - Advertisers can set up multiple integrations using ad_account_id + lead_form_id but only one integration per unique records. - For data security, egress lead data is encrypted with AES-256-GCM. parameters: - $ref: '#/components/parameters/Pinterest.Lib.AdAccountId' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/LeadSubscription' '400': description: The request could not be understood by the server due to unexpected data. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '403': description: The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' tags: - lead_ads requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LeadSubscriptionPostParamsCreate' security: - pinterest_oauth2: - ads:write x-sandbox: enabled x-ratelimit-category: ads_write /ad_accounts/{ad_account_id}/leads/subscriptions/{subscription_id}: get: operationId: ad_accounts_subscriptions/get_by_id summary: Get lead ads subscription by ID description: |- Get an existing lead ads webhook subscription by ID. - Only requests for the OWNER or ADMIN of the ad_account will be allowed.' parameters: - $ref: '#/components/parameters/Pinterest.Lib.AdAccountId' - $ref: '#/components/parameters/SubscriptionIdPathParam' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/LeadSubscription' '400': description: The request could not be understood by the server due to unexpected data. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '401': description: Authentication is required and has either failed or not been provided. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '403': description: The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '404': description: The requested resource could not be found on this server. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '429': description: The user has sent too many requests in a given amount of time and is being rate limited. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' tags: - lead_ads security: - pinterest_oauth2: - ads:read - client_credentials: - ads:read x-sandbox: disabled x-ratelimit-category: ads_read delete: operationId: ad_accounts_subscriptions/del_by_id summary: Delete lead ads subscription description: |- Delete an existing lead ads webhook subscription by ID. - Only requests for the OWNER or ADMIN of the ad_account will be allowed.' parameters: - $ref: '#/components/parameters/Pinterest.Lib.AdAccountId' - $ref: '#/components/parameters/SubscriptionIdPathParam' responses: '204': description: Resource deleted successfully. '400': description: The request could not be understood by the server due to unexpected data. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '401': description: Authentication is required and has either failed or not been provided. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '403': description: The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '404': description: The requested resource could not be found on this server. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' '429': description: The user has sent too many requests in a given amount of time and is being rate limited. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Pinterest.Lib.Error' tags: - lead_ads security: - pinterest_oauth2: - ads:write x-sandbox: disabled x-ratelimit-category: ads_write /ad_accounts/{ad_account_id}/leads_export: post: x-sandbox: disabled description: |- This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager. Create an export of leads collected from a lead ad. This returns a lead_export_id token that you can use to download the export when it is ready. Note: Lead ad data will be available up to 30 days after the lead has been submitted. For more, see Lead ads. summary: Create a request to export leads collected from a lead ad operationId: leads_export/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/LeadsExportCreateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LeadsExportCreateResponse' description: Success '400': description: Invalid ad account parameter. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account parameter. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - leads_export /ad_accounts/{ad_account_id}/leads_export/{leads_export_id}: get: x-sandbox: disabled description: |- This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager. Get the export of leads collected from a lead ad. This returns a URL to a list of lead export given a lead_export_id token returned from the create a lead export call. You can use the URL to download the report. Note: Lead ad data will be available up to 30 days after the lead has been submitted. For more, see Lead ads. summary: Get the lead export from the lead export create call operationId: leads_export/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read parameters: - $ref: '#/components/parameters/path_ad_account_id' - name: leads_export_id in: path description: lead_export_id token returned from the create a lead export endpoint example: '123755885175' required: true schema: type: string pattern: ^\d+$ responses: '200': content: application/json: schema: $ref: '#/components/schemas/LeadsExportResponseData' description: Success '400': description: Invalid ad account parameter. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account parameter. '404': description: Invalid leads export id parameter. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 404 message: Invalid leads export id parameter. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - leads_export /ad_accounts/{ad_account_id}/mmm_reports: get: summary: Get advertiser Marketing Mix Modeling (MMM) report. description: |- Get an mmm report for an ad account. This returns a URL to an mmm metrics report given a token returned from the create mmm report endpoint. operationId: analytics/get_mmm_report security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_token_required' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetMMMReportResponse' description: Success '400': description: Invalid ad account ads analytics parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account ads analytics parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - ad_accounts post: summary: Create a request for a Marketing Mix Modeling (MMM) report description: |- This creates an asynchronous mmm report based on the given request. It returns a token that you can use to download the report when it is ready. NOTE: An additional limit of 5 queries per minute per advertiser applies to this endpoint while it's in beta release. operationId: analytics/create_mmm_report security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_analytics x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateMMMReportRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CreateMMMReportResponse' description: Success '400': description: Invalid ad account ads analytics mmm parameters content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account ads analytics mmm parameters default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - ad_accounts /ad_accounts/{ad_account_id}/order_lines: get: summary: Get order lines description: List existing order lines associated with an ad account. operationId: order_lines/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/OrderLine' description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - order_lines /ad_accounts/{ad_account_id}/order_lines/{order_line_id}: get: summary: Get order line description: Get a specific existing order line associated with an ad account. operationId: order_lines/get 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_order_line_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrderLine' description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - order_lines /ad_accounts/{ad_account_id}/pins/analytics: get: summary: Get pins analytics description: |- Get analytics for the pins given a campaign and pins in the specifiedad_account_id, filtered by the specified options.
- 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, Analyst, Campaign Manager.
- If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days.
- If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days. Data will not be provided for conversion metrics but will be available for non-conversion metrics.
operationId: ad_pins/analytics
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_campaign_id_required'
- $ref: '#/components/parameters/query_required_pin_ids'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdPinsAnalyticsResponse'
description: Success
'400':
description: Invalid ad account pins analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account pins analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- campaigns
/ad_accounts/{ad_account_id}/product_group_promotions:
post:
description: Add one or more product groups from your catalog to an existing
ad group. (Product groups added to an ad group are a 'product group promotion.')
operationId: product_group_promotions/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupPromotionCreateRequest'
description: List of Product Group Promotions to create, size limit [1, 30].
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupPromotionResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Create product group promotions
tags:
- product_group_promotions
patch:
description: Update multiple existing Product Group Promotions (by product_group_id)
operationId: product_group_promotions/update
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupPromotionUpdateRequest'
description: Parameters to update Product group promotions
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupPromotionResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Update product group promotions
tags:
- product_group_promotions
get:
description: |-
List existing product group promotions associated with an ad account.
Include either ad_group_id or product_group_promotion_ids in your request.
Note: ad_group_ids and product_group_promotion_ids are mutually exclusive parameters.
Only provide one. If multiple options are provided, product_group_promotion_ids takes precedence over ad_group_ids. If none are provided, the endpoint returns an error.
operationId: product_group_promotions/list
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_product_group_promotion_ids'
- $ref: '#/components/parameters/query_entity_statuses'
- $ref: '#/components/parameters/query_ad_group_id'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_order'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ProductGroupPromotion'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Get product group promotions
tags:
- product_group_promotions
/ad_accounts/{ad_account_id}/product_group_promotions/{product_group_promotion_id}:
get:
description: Get a product group promotion by id
operationId: product_group_promotions/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_product_group_promotion_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupPromotion'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Get a product group promotion by id
tags:
- product_group_promotions
/ad_accounts/{ad_account_id}/product_groups/analytics:
get:
summary: Get product group analytics
description: |-
Get analytics for the specified product groups in the specified ad_account_id, filtered by the specified options.
- 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, Analyst, Campaign Manager.
- If granularity is not HOUR, you can pull data from up to 90 days before the current date in UTC time, with a maximum time range of 90 days.
- If granularity is HOUR, you can pull data from up to 8 days before the current date in UTC time, with a maximum time range of 3 days.
operationId: product_groups/analytics
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_product_group_ids_required'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
- $ref: '#/components/parameters/query_reporting_timezone'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupAnalyticsResponse'
description: Success
'400':
description: Invalid ad account ads analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- product_group_promotions
/ad_accounts/{ad_account_id}/promotions:
get:
summary: Get promotions
description: Gets all promotions associated with an ad account ID that can be
applied to an ad group. Can be either internally-saved promotions or external
promotions imported from a commerce integration.
operationId: promotions/list
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_order'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- properties:
items:
type: array
items:
$ref: '#/components/schemas/PromotionResponse'
'400':
description: Invalid ad account promotions parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account promotions parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- promotions
post:
description: Create multiple new promotions.
operationId: promotions/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
type: array
description: List of promotions to create.
items:
$ref: '#/components/schemas/PromotionCreateRequest'
maxItems: 30
minItems: 1
description: List of promotions to create, size limit [1, 30].
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PromotionsResponse'
description: Success
'400':
description: Invalid create promotions request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Platform type not supported for promotions.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Create promotions
tags:
- promotions
patch:
description: Update multiple promotions.
operationId: promotions/update
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
type: array
description: List of promotion data updates keyed on promotion id.
items:
$ref: '#/components/schemas/PromotionUpdateRequest'
maxItems: 30
minItems: 1
description: List of promotions to create, size limit [1, 30].
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PromotionsResponse'
description: Success
'400':
description: Invalid create promotions request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Platform type not supported for promotions.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Update promotions
tags:
- promotions
/ad_accounts/{ad_account_id}/promotions/{promotion_id}:
get:
summary: Get promotion by id
description: Get a promotion by its Pinterest-specific id. It must be associated
with the provided ad account id.
operationId: promotions/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_promotion_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PromotionResponse'
'404':
description: The promotion ID for the given ad account ID was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 4997
message: Promotion for that ID was not found
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- promotions
delete:
summary: Delete promotion by id
description: Delete a promotion within Pinterest.
operationId: promotions/delete
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_promotion_id'
responses:
'204':
description: Promotion deleted successfully
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- promotions
/ad_accounts/{ad_account_id}/reports:
get:
summary: Get the account analytics report created by the async call
description: |-
This returns a URL to an analytics report given a token returned from the post request report creation call. You can use the URL to download the report. The link is valid for five minutes and the report is valid for one hour.
- 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, Analyst, Campaign Manager.
operationId: analytics/get_report
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_token_required'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsGetAsyncResponse'
description: Success
'400':
description: Invalid ad account ads analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
post:
summary: Create async request for an account analytics report
description: |-
This returns a token that you can use to download the report when it is ready. Note that this endpoint requires the parameters to be passed as JSON-formatted in the request body. This endpoint does not support URL query parameters.
- 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, Analyst, Campaign Manager.
- If granularity is not HOUR, you can pull data from up to 914 days before the current date in UTC time, with a maximum time range of 186 days.
- If granularity is HOUR, you can pull data from up to 8 days before the current date in UTC time, with a maximum time range of 3 days.
- If level is PRODUCT_ITEM, you can pull data from up to 92 days before the current date in UTC time, with a maximum time range of 31 days.
- If level is PRODUCT_ITEM, ad_ids and ad_statuses parameters are not allowed. Any columns related to pin promotion and ad is not allowed either.
operationId: analytics/create_report
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsCreateAsyncRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsCreateAsyncResponse'
description: Success
'400':
description: Invalid ad account ads analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
/ad_accounts/{ad_account_id}/reports/brand_category_sku:
get:
summary: Get advertiser brand, category, SKU report
description: |-
Restricted
Get a brand, category, SKU report for an ad account. This call returns the URL for the report that matches the token returned in the request to the Create brand, category, SKU report endpoint.
operationId: analytics/get_conversion_product_report
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_token_required'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsGetAsyncResponse'
description: Success
'400':
description: Invalid ad account ads analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
post:
summary: Create a request for a brand, category, SKU report
description: |-
Restricted
This creates an asynchronous brand, category, SKU report based on the given request. This request returns a token that you can use to download the report when it is ready.
operationId: analytics/create_conversion_product_report
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionProductReportRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsCreateAsyncResponse'
description: Success
'400':
description: Invalid ad account ads analytics brand, category, SKU parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads analytics brand, category, SKU parameters
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
/ad_accounts/{ad_account_id}/sandbox:
delete:
summary: Delete ads data for ad account in API Sandbox
description: |-
Delete an ad account and all the ads data associated with that account.
A string message is returned indicating the status of the delete operation.
Note: This endpoint is only allowed in the Pinterest API Sandbox (https://api-sandbox.pinterest.com/v5).
Go to /docs/developer-tools/sandbox/ for more information.
operationId: sandbox/delete
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
responses:
'200':
description: OK
content:
application/json:
schema:
type: string
example: Delete Success
'400':
description: Invalid ad account id.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account id
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
/ad_accounts/{ad_account_id}/ssio/accounts:
get:
summary: Get Salesforce account details including bill-to information.
description: |-
Get Salesforce account details including bill-to information to be used in insertion orders process for ad_account_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_accounts/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOAccountResponse'
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:
- billing
/ad_accounts/{ad_account_id}/ssio/insertion_orders:
post:
summary: Create insertion order through SSIO.
description: |-
Create insertion order through SSIO for ad_account_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_order/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOCreateInsertionOrderRequest'
description: Order line to create.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOCreateInsertionOrderResponse'
description: Success
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid request.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- billing
patch:
summary: Edit insertion order through SSIO.
description: |-
Edit insertion order through SSIO for ad_account_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_order/edit
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOEditInsertionOrderRequest'
description: Order line to create.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOEditInsertionOrderResponse'
description: Success
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid request.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- billing
/ad_accounts/{ad_account_id}/ssio/insertion_orders/status:
get:
summary: Get insertion order status by ad account id.
description: |-
Get insertion order status for account id ad_account_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_ad_account
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Insertion orders status by ad acount id
items:
$ref: '#/components/schemas/SSIOInsertionOrderStatus'
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:
- billing
/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:
- billing
/ad_accounts/{ad_account_id}/ssio/order_lines:
get:
summary: Get Salesforce order lines by ad account id.
description: |-
Get Salesforce order lines for account id ad_account_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_order_lines/get_by_ad_account
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_pin_order_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: SSIO order lines by ad acount id
items:
$ref: '#/components/schemas/SSIOOrderLine'
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:
- billing
/ad_accounts/{ad_account_id}/targeting_analytics:
get:
summary: Get targeting analytics for an ad account
description: |-
Get targeting analytics for an ad account.
For the requested account and metrics, the response will include the requested metric information
(e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. "age_bucket") for applicable values (e.g. "45-49").
- 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, Analyst, Campaign Manager.
- If granularity is not HOUR, you can pull data from up to 90 days before the current date in UTC time, with a maximum time range of 90 days.
- If granularity is HOUR, you can pull data from up to 8 days before the current date in UTC time, with a maximum time range of 3 days.
operationId: ad_account_targeting_analytics/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_targeting_types'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
- $ref: '#/components/parameters/query_attribution_types'
- $ref: '#/components/parameters/query_reporting_timezone'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
description: Success
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
/ad_accounts/{ad_account_id}/targeting_templates:
get:
summary: List targeting templates
description: Get a list of the targeting templates in the specified ad_account_id
operationId: targeting_template/list
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_order'
- in: query
description: Include audience sizing in result or not
name: include_sizing
required: false
schema:
type: boolean
default: false
- description: Search keyword for targeting templates
in: query
name: search_query
example: gaming
required: false
schema:
type: string
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/TargetingTemplateGetResponseData'
description: Success
'400':
description: Invalid ad account id.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account id
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- targeting_template
post:
summary: Create targeting templates
description: |-
Targeting templates allow advertisers to save a set of targeting details including audience lists, keywords & interest, demographics, and placements to use more than once during the campaign creation process.
Templates can be used to build out basic targeting criteria that you plan to use across campaigns and to reuse performance targeting from prior campaigns for new campaigns.
operationId: targeting_template/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: description: targeting template creation entity required: true content: application/json: schema: $ref: '#/components/schemas/TargetingTemplateCreate' responses: '200': content: application/json: schema: $ref: '#/components/schemas/TargetingTemplateGetResponseData' description: Success '400': description: Invalid ad account id. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account id default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - targeting_template patch: summary: Update targeting templates description:Update the targeting template given advertiser ID and targeting template ID
operationId: targeting_template/update security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: description: Operation type and targeting template ID required: true content: application/json: schema: $ref: '#/components/schemas/TargetingTemplateUpdateRequest' responses: '200': description: Success '400': description: Invalid ad account id. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account id default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - targeting_template /ad_accounts/{ad_account_id}/templates: get: summary: List templates description: Gets all Templates associated with an ad account ID. operationId: templates/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/TemplateResponse' description: Success '400': description: Invalid ad account template parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account template parameters default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - ad_accounts /ad_accounts/{ad_account_id}/templates/{template_id}/reports: post: summary: Create async request for an analytics report using a template description: |- This takes a template ID and an optional custom timeframe and constructs an asynchronous report based on the template. It returns a token that you can use to download the report when it is ready. operationId: analytics/create_template_report security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_analytics x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_template_id' - $ref: '#/components/parameters/query_start_date_async' - $ref: '#/components/parameters/query_end_date_async' - $ref: '#/components/parameters/query_granularity_async' responses: '200': content: application/json: schema: $ref: '#/components/schemas/AdsAnalyticsCreateAsyncResponse' description: Success '400': description: Invalid ad account ads analytics template parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account analytics template parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - ad_accounts /ad_accounts/{ad_account_id}/terms_of_service: get: description: Get the text of the terms of service and see whether the advertiser has accepted the terms of service. operationId: terms_of_service/get x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_include_html' - $ref: '#/components/parameters/query_tos_type' security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read responses: '200': content: application/json: schema: $ref: '#/components/schemas/TermsOfService' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Get terms of service tags: - terms_of_service /advanced_auction/items/get: post: summary: Get item bid options (POST) description: |- Get the bid options for a batch of retail catalog items. The catalog must be owned by the "operation user_account". See detailed documentation here. By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify anad_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: `Owner`, `Admin`.
This endpoint is not available to all users.
operationId: advanced_auction_items_get/post
x-ratelimit-category: advanced_auction_read
x-sandbox: enabled
security:
- pinterest_oauth2:
- ads:read
- catalogs:read
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to get bid options values for a batch of
retail catalog items
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdvancedAuctionItemsGetRequest'
responses:
'200':
description: Response containing the bid option values for the requested
retail catalog items. Items that don't exist or do not have bid options
set won't be present in the response.
content:
application/json:
schema:
$ref: '#/components/schemas/AdvancedAuctionItems'
'400':
description: Invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: {''catalog_id'': ''1234''} list of
retail catalog items not provided'
'401':
description: Not authenticated to get item bid options
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthenticatedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Not authorized to get item bid options
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- advanced_auction
/advanced_auction/items/submit:
post:
summary: Operate on item level bid options
description: |-
This endpoint supports multiple operations on a set of one or more bid options (bid price and bid adjustments for targeting categories) for retail catalog items. These advanced auction settings are applied in campaigns using objective_type `CATALOG_SALES` and ad groups using bid_strategy_type `MAX_BID`.
The catalog must be owned by the "operation user_account". See detailed documentation here. 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: `Owner`, `Admin`.
This endpoint is not available to all users.
operationId: advanced_auction_items_submit/post
x-ratelimit-category: advanced_auction_write
x-sandbox: enabled
security:
- pinterest_oauth2:
- ads:write
- catalogs:read
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to upsert or delete bid options for a batch
of retail catalog items
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdvancedAuctionItemsSubmitRequest'
responses:
'200':
description: Response containing the results of the item bid options operations
content:
application/json:
schema:
$ref: '#/components/schemas/AdvancedAuctionProcessedItems'
'206':
description: Response containing the results of the item bid options operations
(where some/all operation results have errors)
content:
application/json:
schema:
$ref: '#/components/schemas/AdvancedAuctionProcessedItems'
'400':
description: Invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: {''catalog_id'': ''1234''} list of
item bid option operations not provided'
'401':
description: Not authenticated to post item bid options
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthenticatedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Not authorized to post item bid options
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- advanced_auction
/boards:
get:
summary: List boards
description: |-
Get a list of the boards owned by the "operation user_account" + group boards where this account is a collaborator
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
Optional: Specify a privacy type (public, protected, or secret) to indicate which boards to return.
- If no privacy is specified, all boards that can be returned (based on the scopes of the token and ad_account role if applicable) will be returned.
tags:
- boards
operationId: boards/list
security:
- pinterest_oauth2:
- boards:read
- client_credentials:
- boards:read
x-ratelimit-category: org_read
x-sandbox: enabled
x-codeSamples:
- lang: cURL
label: curl
source: |
curl --location --request GET 'https://api.pinterest.com/v5/boards' \
--header 'Authorization: Bearer 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: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs/list
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Catalog'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: Parameter 'page_size' was not numeric (was 3e)"
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
post:
x-ratelimit-category: catalogs_write
summary: Create catalog
description: |-
Create a new catalog 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: Owner, Admin, Catalogs Manager.
Learn more
Note: Access to the Product and Creative Assets catalog type is restricted to a specific group of users.
If you require access, please reach out to your partner manager.
operationId: catalogs/create
security:
- pinterest_oauth2:
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to created a feed.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsCreateRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Catalog'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: ...'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/available_filter_values:
get:
x-ratelimit-category: catalogs_read
summary: List available filter values
description: |-
Get the available filter attributes and values associated with a given feed or catalog owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
- country, language, and feed_id are only used in retail catalogs.
- Note: It is not guaranteed that all available filter values will be returned. Instead this endpoint will return values from a sample of up to 1000 items.
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: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs/available_filter_values
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- description: Filter entities for a given catalog_id.
in: query
required: true
name: catalog_id
schema:
type: string
pattern: ^\d+$
- $ref: '#/components/parameters/query_catalogs_feed_id'
- name: country
in: query
description: Country for the Catalogs Items
example: US
required: false
schema:
$ref: '#/components/schemas/Country'
- name: language
in: query
description: Language for the Catalogs Items
example: en-US
required: false
schema:
$ref: '#/components/schemas/CatalogsLocale'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsAvailableFilterValues'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not authorized to access available filter
values.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
'409':
description: Can't access this feature without an existing catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/feeds:
get:
x-ratelimit-category: catalogs_read
summary: List feeds
description: |-
Fetch feeds 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: Owner, Admin, Catalogs Manager.
For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.
operationId: feeds/list
security:
- pinterest_oauth2:
- catalogs:read
- client_credentials:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_catalogs_catalog_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsFeed'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: Parameter 'page_size' was not numeric (was 3e)"
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_feeds
post:
x-ratelimit-category: catalogs_write
summary: Create feed
description: |-
Create a new feed owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Please, be aware that "default_country"
and "default_locale" are not required in the spec for forward compatibility
but for now the API will not accept requests without those fields.
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: Owner, Admin, Catalogs Manager.
For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.
Note: Access to the Creative Assets catalog type is restricted to a specific group of users.
If you require access, please reach out to your partner manager.
operationId: feeds/create
security:
- pinterest_oauth2:
- catalogs:read
- catalogs:write
- client_credentials:
- catalogs:read
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to created a feed.
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatalogsVerticalFeedsCreateRequest'
- $ref: '#/components/schemas/CatalogsFeedsCreateRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsFeed'
description: Success
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: ...'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Business account required.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
BusinessAccountRequired:
value:
code: 654
message: You must have a business account to operate as merchant.
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
'409':
description: User website required.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UserWebsiteRequired:
value:
code: 4168
message: User does not have a website.
UserWebsiteNotVerified:
value:
code: 4169
message: User does not have a verified website.
'422':
description: Unique feed name is required.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedDuplicatedName:
value:
code: 4170
message: The feed name already exists.
'501':
description: Not implemented (absent "default_country" or "default_locale").
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotImplemented:
value:
code: 4181
message: Not implemented at the moment. Please, see documentation
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_feeds
/catalogs/feeds/{feed_id}:
get:
x-ratelimit-category: catalogs_read
summary: Get feed
description: |-
Get a single feed 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: Owner, Admin, Catalogs Manager.
For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.
operationId: feeds/get
security:
- pinterest_oauth2:
- catalogs:read
- client_credentials:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsFeed'
description: Success
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_feeds
patch:
x-ratelimit-category: catalogs_write
summary: Update feed
description: |-
Update a feed 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: Owner, Admin, Catalogs Manager.
For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.
Note: Access to the Creative Assets catalog type is restricted to a specific group of users.
If you require access, please reach out to your partner manager.
operationId: feeds/update
security:
- pinterest_oauth2:
- catalogs:read
- catalogs:write
- client_credentials:
- catalogs:read
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to update a feed.
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatalogsVerticalFeedsUpdateRequest'
- $ref: '#/components/schemas/CatalogsFeedsUpdateRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsFeed'
description: Success
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: ...'
'403':
description: Forbidden. Account not approved for feed mutations yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_feeds
delete:
x-ratelimit-category: catalogs_write
summary: Delete feed
description: |-
Delete a feed 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: Owner, Admin, Catalogs Manager.
For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.
operationId: feeds/delete
security:
- pinterest_oauth2:
- catalogs:read
- catalogs:write
- client_credentials:
- catalogs:read
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'204':
description: Feed deleted successfully.
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
'403':
description: Forbidden. Account not approved for feed mutations yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
'409':
description: Conflict. Can't delete a feed with active promotions.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedHasActivePromotions:
value:
code: 4162
message: We can't disable a Product Group with active promotions.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_feeds
/catalogs/feeds/{feed_id}/ingest:
post:
x-ratelimit-category: catalogs_write
summary: Ingest feed items
description: |-
Ingest items for a given feed owned by the "operation 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: Owner, Admin, Catalogs Manager.
Learn more
Note: This endpoint is restricted to a specific group of users. If you require access, please reach out to your partner manager.
operationId: feeds/ingest
security:
- pinterest_oauth2:
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: The ingestion process was successfully started.
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsFeedIngestion'
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
'403':
description: Forbidden. Account not approved for feed mutations yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_feeds
/catalogs/feeds/{feed_id}/processing_results:
get:
x-ratelimit-category: catalogs_read
summary: List feed processing results
description: |-
Fetch a feed processing results owned by the "operation user_account". Please note that for now the bookmark parameter is not functional and only the first page will be available until it is implemented in some release in the near future.
- 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: Owner, Admin, Catalogs Manager.
Learn more
operationId: feed_processing_results/list
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsFeedProcessingResult'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: Parameter 'page_size' was not numeric (was 3e)"
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'404':
description: Feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_feeds
/catalogs/processing_results/{processing_result_id}/item_issues:
get:
x-ratelimit-category: catalogs_read
summary: List item issues
description: |-
List item validation issues for a given feed processing result owned by the "operation user_account". Up to 20 random samples of affected items are returned for each error and warning code. Please note that for now query parameters 'item_numbers' and 'item_validation_issue' cannot be used simultaneously until it is implemented in some release in the future.
- 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: Owner, Admin, Catalogs Manager.
Note: To get a list of all affected items instead of sampled issues, please refer to Build catalogs report and Get catalogs report endpoints. Moreover, they support multiple types of catalogs.
Learn more
operationId: items_issues/list
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/path_catalogs_processing_result_id'
- $ref: '#/components/parameters/query_catalogs_item_numbers'
- $ref: '#/components/parameters/query_catalogs_item_validation_issue'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsItemValidationIssues'
description: Success
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'404':
description: Processing Result not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ProcessingResultFound:
value:
code: 4184
message: Sorry! We could not find your processing result.
'501':
description: Not implemented.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotImplemented:
value:
code: 4181
message: Not implemented at the moment. Please, see documentation.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_feeds
/catalogs/items:
post:
summary: Get catalogs items (POST)
description: |-
Get the items of the catalog owned by the "operation user_account". See detailed documentation here.
- 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: Owner, Admin, Catalogs Manager.
Note: Access to the Creative Assets catalog type is restricted to a specific group of users.
If you require access, please reach out to your partner manager.
operationId: items/post
security:
- pinterest_oauth2:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to get catalogs items
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsItemsRequest'
responses:
'200':
description: Response containing the requested catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsItems'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: {''country'': ''US'', ''language'':
''EN'', ''filters'': {''catalog_type'': ''RETAIL'', ''item_ids'':
''test0''}} (''test0'' is not of type array)'
'401':
description: Not authorized to access catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Not authorized to access catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_items
/catalogs/items/batch:
post:
summary: Operate on item batch
description: |-
This endpoint supports multiple operations on a set of one or more catalog items owned by the "operation user_account". See detailed documentation here.
- 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: Owner, Admin, Catalogs Manager.
Note:
- Access to the Creative Assets catalog type is restricted to a specific group of users.
If you require access, please reach out to your partner manager.
- The item UPSERT operation is restricted to users without a feed data source. If you plan to migrate item ingestion from feeds to the API, please reach out to your partner manager or via the Help Center to get assistance.
operationId: items_batch/post
x-ratelimit-category: catalogs_write
x-sandbox: enabled
security:
- pinterest_oauth2:
- catalogs:read
- catalogs:write
- client_credentials:
- catalogs:read
- catalogs:write
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to create catalogs items in a batch
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatalogsVerticalBatchRequest'
- $ref: '#/components/schemas/CatalogsItemsBatchRequest'
responses:
'200':
description: Response containing the requested catalogs items batch
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsItemsBatch'
'400':
description: Invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: {''country'': ''US'', ''language'':
''EN'', ''operation'': ''CREATE'', ''items'': [{''item_id'':
''RAY_01_'', ''attributes'': {''image_link'': ''https://www.example.com/'',
''title'': ''My Product''}}]} (''https://www.example.com/''
is not of type array)'
'401':
description: Not authenticated to post catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthenticatedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Not authorized to post catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_items
/catalogs/items/batch/{batch_id}:
get:
summary: Get item batch status
description: |-
Get a single catalogs items batch owned by the "operating user_account". See detailed documentation here.
- 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: Owner, Admin, Catalogs Manager.
operationId: items_batch/get
security:
- pinterest_oauth2:
- catalogs:read
- client_credentials:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_items_batch_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: Response containing the requested catalogs items batch
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsItemsBatch'
'401':
description: Not authenticated to access catalogs items batch
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthenticatedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Not authorized to access catalogs items batch
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Catalogs items batch not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CannotFindBatch:
value:
code: 4331
message: Sorry! We could not find your batch ID.
'405':
description: Method Not Allowed.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MethodNotAllowed:
value:
status: failure
code: 5
data: '405 Method Not Allowed: The method is not allowed for the
requested URL.'
message: Method not allowed
endpoint_name: null
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_items
/catalogs/product_groups/multiple:
delete:
x-ratelimit-category: catalogs_write
summary: Delete product groups
description: |-
Delete product groups 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: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs_product_groups/delete_many
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_catalogs_product_group_ids_required'
- $ref: '#/components/parameters/query_ad_account_id'
security:
- pinterest_oauth2:
- catalogs:write
responses:
'204':
description: Catalogs Product Groups deleted successfully.
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
'409':
description: Conflict. Can't delete this catalogs product group.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupHasActivePromotions:
value:
code: 4176
message: We can't delete a Catalogs Product Group with active
promotions.
CannotAlterAutoGeneratedCatalogsProductGroup:
value:
code: 4177
message: You cannot alter an auto generated catalogs product group.
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_product_groups
post:
x-ratelimit-category: catalogs_write
summary: Create product groups
description: |-
Create product group to use in Catalogs 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: Owner, Admin, Catalogs Manager.
Learn more
Note: Access to the Creative Assets catalog type is restricted to a specific group of users.
If you require access, please reach out to your partner manager.
operationId: catalogs_product_groups/create_many
security:
- pinterest_oauth2:
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to create one or more catalogs product groups.
required: true
content:
application/json:
schema:
type: array
title: multiple product groups
items:
oneOf:
- $ref: '#/components/schemas/CatalogsProductGroupCreateRequest'
- $ref: '#/components/schemas/CatalogsVerticalProductGroupCreateRequest'
examples:
RetailFewFiltersUsingAllOf:
summary: A simple retail example that applies "all of the following
filters".
description: |
The use of "all_of" creates a Product Group where all of the individual filters
must be satisfied by a product to be included in the Product Group.
value:
- name: Few Filters using "all_of"
feed_id: '2680059592705'
filters:
all_of:
- MIN_PRICE:
values: 999.99
inclusion: true
- CURRENCY:
values: USD
- CUSTOM_LABEL_0:
values:
- Luxury Items
RetailManyFiltersUsingAnyOf:
summary: A more complete retail example that applies "any of the following
filters".
description: |
The use of "any_of" creates a Product Group where any of the individual filters
can add products to the Product Group independently.
value:
- name: Many Filters using "any_of"
feed_id: '2680059592705'
filters:
all_of:
- MIN_PRICE:
values: 111.55
inclusion: false
negated: false
- CURRENCY:
values: USD
negated: false
- AVAILABILITY:
values:
- IN_STOCK
- OUT_OF_STOCK
- PREORDER
negated: false
- BRAND:
values:
- avanti
- beautyrest
negated: true
- GOOGLE_PRODUCT_CATEGORY_0:
values:
- - furniture
- tables
- accent tables
- end tables
- - furniture
- chairs
- slipper chairs
- - home & garden
negated: false
- CONDITION:
values:
- NEW
- REFURBISHED
- USED
negated: false
- CUSTOM_LABEL_0:
values:
- 004 - home furn leisure
negated: false
- CUSTOM_LABEL_1:
values:
- clearance
- original price
negated: false
- CUSTOM_LABEL_2:
values:
- 789 - table linens
- 794 - living room accents
negated: false
- GENDER:
values:
- FEMALE
- MALE
- UNISEX
negated: false
- ITEM_ID:
values:
- does not exists
- this one neither
- nope
negated: true
- ITEM_GROUP_ID:
values:
- nonexistant group
- another one
- last one
negated: true
- PRODUCT_TYPE_0:
values:
- - accent chairs
- club chairs
- - accent chairs
- slipper chairs
- - accent tables
- end tables
- - air mattresses
- air mattresses
- - table linens
negated: false
CatalogBasedRetailFewFiltersUsingAllOf:
summary: A simple catalog based retail example that applies "all of
the following filters".
description: |
The use of "all_of" creates a Product Group where all of the individual filters
must be satisfied by a retail to be included in the Product Group.
value:
- catalog_type: RETAIL
name: Few Filters using "all_of"
catalog_id: '4866935934774'
country: US
locale: en-US
filters:
all_of:
- ITEM_ID:
values:
- item1
- item2
- CUSTOM_LABEL_1:
values:
- shoes
negated: false
HotelFewFiltersUsingAllOf:
summary: A simple hotel example that applies "all of the following
filters".
description: |
The use of "all_of" creates a Product Group where all of the individual filters
must be satisfied by a hotel to be included in the Product Group.
value:
- catalog_type: HOTEL
name: Few Filters using "all_of"
catalog_id: '4866935934774'
filters:
all_of:
- HOTEL_ID:
values:
- hotel1
- hotel2
- CUSTOM_LABEL_1:
values:
- big_hotels
negated: false
responses:
'201':
content:
application/json:
schema:
type: array
items:
description: ID of a created catalog product group.
example: '443727193917'
type: string
pattern: ^\d+$
description: Success
'400':
description: Invalid body.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
CatalogsProductGroupMissingCountryAndLocale:
value:
code: 6136
message: A catalog product group must have a country and locale
specified.
CatalogsIntlProductGroupCountryOrLocaleSpecified:
value:
code: 6137
message: An international product group cannot have a country
or locale specified.
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'409':
description: Conflict. Can't create this catalogs product group with this
value.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupFiltersAlreadyExist:
value:
code: 4178
message: A catalogs product group with these filters already exists
for this feed.
CatalogsProductGroupNameAlreadyExist:
value:
code: 4179
message: A catalogs product group with this name already exists
for this feed.
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
CatalogsProductGroupFiltersInvalid:
value:
code: 4183
message: Catalog product group filters failed validation, please
ensure all filters are set correctly.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_product_groups
/catalogs/product_groups:
get:
x-ratelimit-category: catalogs_read
summary: List product groups
description: |-
Get a list of product groups for a given Catalogs Feed Id 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: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs_product_groups/list
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_catalogs_product_group_ids'
- $ref: '#/components/parameters/query_catalogs_feed_id'
- $ref: '#/components/parameters/query_catalogs_catalog_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
description: Success
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
'409':
description: Conflict. Can't create this catalogs product group with this
value.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_product_groups
post:
x-ratelimit-category: catalogs_write
summary: Create product group
description: |-
Create product group to use in Catalogs 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: Owner, Admin, Catalogs Manager.
"Catalog-based product groups" can include items from all data sources (feeds and API) and are available to both non-retail catalogs with any data sources and retail catalogs with API-created items. If your catalog only contains retail items created via feeds, you should use the "retail feed-based" option.
Learn more
Note: Access to the Creative Assets catalog type is restricted to a specific group of users.
If you require access, please reach out to your partner manager.
operationId: catalogs_product_groups/create
security:
- pinterest_oauth2:
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to create a single catalogs product groups.
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatalogsProductGroupCreateRequest'
- $ref: '#/components/schemas/CatalogsVerticalProductGroupCreateRequest'
examples:
RetailFewFiltersUsingAllOf:
summary: A simple retail example that applies "all of the following
filters".
description: |
The use of "all_of" creates a Product Group where all of the individual filters
must be satisfied by a product to be included in the Product Group.
value:
name: Few Filters using "all_of"
feed_id: '2680059592705'
filters:
all_of:
- MIN_PRICE:
values: 999.99
inclusion: true
- CURRENCY:
values: USD
- CUSTOM_LABEL_0:
values:
- Luxury Items
RetailManyFiltersUsingAnyOf:
summary: A more complete retail example that applies "any of the following
filters".
description: |
The use of "any_of" creates a Product Group where any of the individual filters
can add products to the Product Group independently.
value:
name: Many Filters using "any_of"
feed_id: '2680059592705'
filters:
all_of:
- MIN_PRICE:
values: 111.55
inclusion: false
negated: false
- CURRENCY:
values: USD
negated: false
- AVAILABILITY:
values:
- IN_STOCK
- OUT_OF_STOCK
- PREORDER
negated: false
- BRAND:
values:
- avanti
- beautyrest
negated: true
- GOOGLE_PRODUCT_CATEGORY_0:
values:
- - furniture
- tables
- accent tables
- end tables
- - furniture
- chairs
- slipper chairs
- - home & garden
negated: false
- CONDITION:
values:
- NEW
- REFURBISHED
- USED
negated: false
- CUSTOM_LABEL_0:
values:
- 004 - home furn leisure
negated: false
- CUSTOM_LABEL_1:
values:
- clearance
- original price
negated: false
- CUSTOM_LABEL_2:
values:
- 789 - table linens
- 794 - living room accents
negated: false
- GENDER:
values:
- FEMALE
- MALE
- UNISEX
negated: false
- ITEM_ID:
values:
- does not exists
- this one neither
- nope
negated: true
- ITEM_GROUP_ID:
values:
- nonexistant group
- another one
- last one
negated: true
- PRODUCT_TYPE_0:
values:
- - accent chairs
- club chairs
- - accent chairs
- slipper chairs
- - accent tables
- end tables
- - air mattresses
- air mattresses
- - table linens
negated: false
HotelFewFiltersUsingAllOf:
summary: A simple hotel example that applies "all of the following
filters".
description: |
The use of "all_of" creates a Product Group where all of the individual filters
must be satisfied by a hotel to be included in the Product Group.
value:
catalog_type: HOTEL
name: Few Filters using "all_of"
catalog_id: '4866935934774'
filters:
all_of:
- HOTEL_ID:
values:
- hotel1
- hotel2
- CUSTOM_LABEL_1:
values:
- big_hotels
negated: false
CatalogBasedRetailFewFiltersUsingAllOf:
summary: A simple catalog based retail example that applies "all of
the following filters".
description: |
The use of "all_of" creates a Product Group where all of the individual filters
must be satisfied by a retail to be included in the Product Group.
value:
catalog_type: RETAIL
name: Few Filters using "all_of"
catalog_id: '4866935934774'
country: US
locale: en-US
filters:
all_of:
- ITEM_ID:
values:
- item1
- item2
- CUSTOM_LABEL_1:
values:
- shoes
negated: false
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
description: Success
'400':
description: Invalid body.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
CatalogsProductGroupMissingCountryAndLocale:
value:
code: 6136
message: A catalog product group must have a country and locale
specified.
CatalogsIntlProductGroupCountryOrLocaleSpecified:
value:
code: 6137
message: An international product group cannot have a country
or locale specified.
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'409':
description: Conflict. Can't create this catalogs product group with this
value.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupFiltersAlreadyExist:
value:
code: 4178
message: A catalogs product group with these filters already exists
for this feed.
CatalogsProductGroupNameAlreadyExist:
value:
code: 4179
message: A catalogs product group with this name already exists
for this feed.
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
CatalogsProductGroupFiltersInvalid:
value:
code: 4183
message: Catalog product group filters failed validation, please
ensure all filters are set correctly.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_product_groups
/catalogs/product_groups/{product_group_id}:
get:
x-ratelimit-category: catalogs_read
summary: Get product group
description: |-
Get a singe product group for a given Catalogs Product Group Id 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: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs_product_groups/get
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
security:
- pinterest_oauth2:
- catalogs:read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
description: Success
'400':
description: Invalid catalogs product group id parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''product_group_id'' value ''11851494501_'' must match
the pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
'409':
description: Conflict. Can't get a catalogs product group without an existing
catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't acccess this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_product_groups
delete:
x-ratelimit-category: catalogs_write
summary: Delete product group
description: |-
Delete a product group owned by the "operation user_account" from being in use in Catalogs.
- 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: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs_product_groups/delete
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
security:
- pinterest_oauth2:
- catalogs:write
responses:
'204':
description: Catalogs Product Group deleted successfully.
'400':
description: Invalid catalogs product group id parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''product_group_id'' value ''11851494501_'' must match
the pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
'409':
description: Conflict. Can't delete this catalogs product group.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupHasActivePromotions:
value:
code: 4176
message: We can't delete a Catalogs Product Group with active
promotions.
CannotAlterAutoGeneratedCatalogsProductGroup:
value:
code: 4177
message: You cannot alter an auto generated catalogs product group.
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_product_groups
patch:
x-ratelimit-category: catalogs_write
summary: Update single product group
description: |-
Update product group owned by the "operation user_account" to use in Catalogs.
- 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: Owner, Admin, Catalogs Manager.
"Catalog-based product groups" can include items from all data sources (feeds and API) and are available to both non-retail catalogs with any data sources and retail catalogs with API-created items. If your catalog only contains retail items created via feeds, you should use the "retail feed-based" option.
Learn more
Note: Access to the Creative Assets catalog type is restricted to a specific group of users.
If you require access, please reach out to your partner manager.
operationId: catalogs_product_groups/update
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
security:
- pinterest_oauth2:
- catalogs:write
requestBody:
description: Request object used to Update a catalogs product group.
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatalogsProductGroupUpdateRequest'
- $ref: '#/components/schemas/CatalogsVerticalProductGroupUpdateRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''product_group_id'' value ''11851494501_'' must match
the pattern: ^\d+$"}'
CatalogsIntlProductGroupCountryOrLocaleSpecified:
value:
code: 6137
message: An international product group cannot have a country
or locale specified.
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action as your account
has been disapproved. Please see business hub for more details.
https://www.pinterest.com/business/hub/
MerchantUnderReview:
value:
code: 2626
message: We are reviewing your account. Please see business hub
for more details. https://www.pinterest.com/business/hub/
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
'409':
description: Conflict. Can't update this catalogs product group to this
value.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CannotAlterAutoGeneratedCatalogsProductGroup:
value:
code: 4177
message: You cannot alter an auto generated catalogs product group.
CatalogsProductGroupFiltersAlreadyExist:
value:
code: 4178
message: A catalogs product group with these filters already exists
for this feed.
CatalogsProductGroupNameAlreadyExist:
value:
code: 4179
message: A catalogs product group with this name already exists
for this feed.
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
CatalogsProductGroupFiltersInvalid:
value:
code: 4183
message: Catalog product group filters failed validation, please
ensure all filters are set correctly.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_product_groups
/catalogs/product_groups/{product_group_id}/product_counts:
get:
x-ratelimit-category: catalogs_read
summary: Get product counts
description: |-
Get a product counts for a given Catalogs Product Group 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: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs_product_groups/product_counts_get
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsProductGroupProductCountsVertical'
description: Success
'404':
description: Product Group Not Found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
'409':
description: Can't access this feature without an existing catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_product_groups
/catalogs/product_groups/{product_group_id}/products:
get:
x-ratelimit-category: catalogs_read
summary: List products by product group
description: |-
Get a list of product pins for a given Catalogs Product Group Id 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: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs_product_group_pins/list
security:
- pinterest_oauth2:
- boards:read
- catalogs:read
- pins:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_pin_metrics'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Pins
items:
$ref: '#/components/schemas/CatalogsProduct'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''product_group_id'' value ''11851494501_'' must match
the pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_product_groups
/catalogs/products/get_by_product_group_filters:
post:
x-ratelimit-category: catalogs_read
summary: List products by filter
description: |-
List products Pins owned by the "operation user_account" that meet the criteria specified in the Catalogs Product Group Filter given in the request.
- This endpoint has been implemented in POST to allow for complex filters. This specific POST endpoint is designed to be idempotent.
- 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: Owner, Admin, Catalogs Manager.
Note: This endpoint only supports RETAIL catalog at the moment.
Learn more
operationId: products_by_product_group_filter/list
security:
- pinterest_oauth2:
- boards:read
- catalogs:read
- pins:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_pin_metrics'
requestBody:
description: Object holding a group of filters for a catalog product group
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsListProductsByFilterRequest'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Pins
items:
$ref: '#/components/schemas/CatalogsProduct'
description: Success
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'409':
description: Conflict. Can't get products.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't acccess this feature without an existing catalog.
CatalogsProductGroupFiltersInvalid:
value:
code: 4183
message: Catalog product group filters failed validation, please
ensure all filters are set correctly.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_product_groups
/catalogs/reports:
post:
summary: Build catalogs report
description: |-
Async request to create a report of the catalog owned by the "operation user_account". This endpoint generates a report upon receiving the first approved request of the day. Any following requests with identical parameters will yield the same report even if data has changed.
- 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: Owner, Admin, Catalogs Manager.
Note: Access to the All Items report type is restricted to a specific group of users.
If you require access, please reach out to your partner manager.
operationId: reports/create
security:
- pinterest_oauth2:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object to asynchronously create a report.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsReportParameters'
responses:
'200':
description: Response containing the report token
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsCreateReportResponse'
'404':
description: Entity (e.g., catalog, feed or processing_result) not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogNotFound:
value:
code: 678
message: Sorry! We couldn't find that catalog. Please ensure you
have access to a valid catalog id.
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
CatalogsProcessingResultNotFound:
value:
code: 4184
message: Sorry! We could not find your processing result
'409':
description: Can't access this feature without an existing catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_reports
get:
summary: Get catalogs report
description: |-
This returns a URL to a report given a token returned from Build catalogs report. You can use the URL to download the report.
- 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: Owner, Admin, Catalogs Manager.
operationId: reports/get
security:
- pinterest_oauth2:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_catalogs_report_token'
responses:
'200':
description: Response that contains a link to download the report
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsReport'
'400':
description: The token you provided is not valid or has expired.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidReportingToken:
value:
code: 1104
message: The token you provided is not valid or has expired.
'409':
description: Can't access this feature without an existing catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_reports
/catalogs/reports/stats:
get:
summary: List report stats
description: |-
List aggregated numbers of issues for a catalog 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: Owner, Admin, Catalogs Manager.
operationId: reports/stats
security:
- pinterest_oauth2:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_catalogs_report_stats_parameters'
responses:
'200':
description: Response containing the diagnostics aggregated counters
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsReportStats'
'401':
description: Not authorized to access catalogs
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 2
message: Authentication failed.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalog_reports
/integrations/commerce:
post:
summary: Create commerce integration
description: |-
Create commerce integration metadata to link an external business ID with a Pinterest merchant & ad account.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations_commerce/post
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationRequest'
description: Parameters to get create/update the Integration Metadata
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationMetadata'
description: Success
'404':
description: Integration not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
IntegrationNotFound:
value:
code: 4180
message: Sorry! We could not find your integration.
'409':
description: Can't access this integration metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotIntegrationOwner:
value:
code: 4182
message: Can't access this integration metadata.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
/integrations/commerce/{external_business_id}:
get:
summary: Get commerce integration
description: |-
Get commerce integration metadata associated with the given external business ID.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations_commerce/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_external_business_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationMetadata'
description: Success
'404':
description: Integration not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
IntegrationNotFound:
value:
code: 4180
message: Sorry! We could not find your integration.
'409':
description: Can't access this integration metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotIntegrationOwner:
value:
code: 4182
message: Can't access this integration metadata.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
patch:
summary: Update commerce integration
description: |-
Update commerce integration metadata for the given external business ID.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations_commerce/patch
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_external_business_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationRequestPatch'
description: Parameters to get create/update the Integration Metadata
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationMetadata'
description: Success
'404':
description: Integration not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
IntegrationNotFound:
value:
code: 4180
message: Sorry! We could not find your integration.
'409':
description: Can't access this integration metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotIntegrationOwner:
value:
code: 4182
message: Can't access this integration metadata.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
delete:
summary: Delete commerce integration
description: |-
Delete commerce integration metadata for the given external business ID.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations_commerce/del
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_external_business_id'
responses:
'204':
description: Commerce Integration deleted successfully
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
/integrations/logs:
post:
summary: Receives batched logs from integration applications.
description: |-
This endpoint receives batched logs from integration applications on partner platforms.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
tags:
- integrations
operationId: integrations_logs/post
x-ratelimit-category: ads_write
security:
- pinterest_oauth2:
- ads:write
x-sandbox: enabled
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationLogsRequest'
description: Ingest log information from external integration application.
required: true
responses:
'200':
description: Success.
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationLogsSuccessResponse'
'400':
description: Bad request.
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/Error'
- $ref: '#/components/schemas/DetailedError'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/integrations:
get:
summary: Get integration metadata list
description: |-
Get integration metadata list.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations/get_list
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/IntegrationRecord'
description: Success
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
/integrations/{id}:
get:
summary: Get integration metadata
description: |-
Get integration metadata by ID.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations/get_by_id
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- name: id
description: Integration ID.
in: path
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationRecord'
description: Success
'404':
description: Integration not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
IntegrationNotFound:
value:
code: 4517
message: Sorry! We could not find your integration.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
/media:
get:
summary: List media uploads
description: |-
List media uploads filtered by given parameters.
Learn more about video Pin creation.
tags:
- media
operationId: media/list
security:
- pinterest_oauth2:
- pins:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
description: response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Media
items:
$ref: '#/components/schemas/MediaUploadDetails'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
summary: Register media upload
description: |-
Register your intent to upload media
The response includes all of the information needed to upload the media
to Pinterest.
To upload the media, make an HTTP POST request (using curl, for
example) to upload_url using the Content-Type header
value. Send the media file's contents as the request's file
parameter and also include all of the parameters from
upload_parameters.
Learn more about video Pin creation.
tags:
- media
operationId: media/create
security:
- pinterest_oauth2:
- pins:read
- pins:write
x-ratelimit-category: org_write
x-sandbox: enabled
requestBody:
description: Create a media upload request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUploadRequest'
responses:
'201':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUpload'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/media/{media_id}:
get:
summary: Get media upload details
description: |-
Get details for a registered media upload, including its current status.
Learn more about video Pin creation.
tags:
- media
operationId: media/get
security:
- pinterest_oauth2:
- pins:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_media_id'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUploadDetails'
'404':
description: Media upload not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Media upload not found
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/notifications:
post:
summary: Receive notifications from external partners.
description: Used by third-party partners to send notifications to Pinterest.
These notifications could be specific for your use-case or generic notification
that are accepted by Pinterests' systems. This API is gated and you need to
request access to this feature.
operationId: notification/post
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: ads_read
x-sandbox: enabled
requestBody:
description: notification event.
required: true
content:
application/json:
schema:
oneOf:
- type: array
minItems: 1
maxItems: 100
items:
type: object
additionalProperties: true
description: Any valid JSON object
- type: object
additionalProperties: true
description: Any valid JSON object
responses:
'200':
content:
application/json:
schema:
title: NotificationResponse
type: object
properties:
success:
description: Returns true if the notification accepted.
type: boolean
example: false
received_at:
description: Received time. Unix timestamp in seconds.
example: 1677003860
type: integer
error_msg:
type: string
description: error message when success is false
description: Successfully received notification
'400':
description: Invalid request parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 6126
message: Invalid request parameter.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- notification
/oauth/token:
post:
summary: Generate OAuth access token
description: |-
Generate an OAuth access token by using an authorization code or a refresh token.
IMPORTANT: You need to start the OAuth flow via www.pinterest.com/oauth before calling this endpoint (or have an existing refresh token).
See Authentication for more.
Parameter refresh_on and its corresponding response type everlasting_refresh are now available to all apps! Later this year, continuous refresh will become the default behavior (ie you will no longer need to send this parameter). Learn more.
Use Token Debugger to validate and inspect your access token.
tags:
- oauth
operationId: oauth/token
security:
- basic: []
x-ratelimit-category: org_read
x-sandbox: enabled
requestBody:
description: Generate an OAuth access token.
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OauthAccessTokenRequest'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/OauthAccessTokenResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/oauth/token/revoke:
post:
summary: Revoke a token
description: Revokes an access or refresh token. Only tokens issued for system
users are currently supported. Revoked tokens become immediately invalid and
unusable.
tags:
- oauth
operationId: token/revoke
security:
- basic: []
x-ratelimit-category: org_write
x-sandbox: enabled
requestBody:
description: Body containing the token to revoke.
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenRevocationRequest'
responses:
'200':
description: Successful token revocation. No content is returned.
'401':
description: Client authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 2
message: Authentication failed.
'403':
description: Client is not allowed to revoke token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 29
message: You are not permitted to access that resource.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/pins:
post:
operationId: pins/create
summary: Create Pin
description: |2-
Create a Pin on a board or board section owned by the "operation user_account".
Note: If the current "operation user_account" (defined by the access token) has access to another user's Ad Accounts via Pinterest Business Access, you can modify your request to make use of the current operation_user_account's permissions to those Ad Accounts by including the ad_account_id in the path parameters for the request (e.g. .../?ad_account_id=12345&...).
- This function is intended solely for publishing new content created by the user. If you are interested in saving content created by others to your Pinterest boards, sometimes called 'curated content', please use our [Save button](/docs/web-features/add-ons-overview/) instead. For more tips on creating fresh content for Pinterest, review our [Content App Solutions Guide](/docs/api-features/content-overview/).
**[Learn more](/docs/api-features/creating-boards-and-pins/#creating-video-pins)** about video Pin creation.
**[Learn more](/docs/api-features/creating-boards-and-pins/#creating-image-pins)** about image Pin creation.
parameters:
- $ref: '#/components/parameters/QueryParams.query_ad_account_id'
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Pin'
'201':
description: Resource create operation completed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Pin'
'400':
description: The request could not be understood by the server due to unexpected
data.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'401':
description: Authentication is required and has either failed or not been
provided.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'403':
description: The request was valid, but the server is refusing action. The
user might not have the necessary permissions for a resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'404':
description: The requested resource could not be found on this server.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'429':
description: The user has sent too many requests in a given amount of time
and is being rate limited.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
tags:
- pins
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PinCreate'
security:
- pinterest_oauth2:
- boards:read
- boards:write
- pins:read
- pins:write
- client_credentials:
- boards:read
- boards:write
- pins:read
- pins:write
x-sandbox: enabled
x-ratelimit-category: org_write
get:
operationId: pins/list
summary: List Pins
description: |2-
Get a list of the Pins owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
- All Pins owned by the "operation user_account" are included, regardless of who owns the board they are on.
Optional: Business Access: Specify an `ad_account_id` to use the owner of that ad_account as the "operation user_account".
Disclaimer: There are known performance issues when filtering by field `creative_type` and including protected pins.
If your request is timing out in this scenario, we encourage you to use [GET List Pins on Board](/docs/api/v5/#operation/boards/list_pins).
parameters:
- $ref: '#/components/parameters/QueryParams.query_pin_filter'
- $ref: '#/components/parameters/QueryParams.query_pin_metrics'
- $ref: '#/components/parameters/QueryParams.query_include_protected_pins'
- $ref: '#/components/parameters/QueryParams.query_pin_type'
- $ref: '#/components/parameters/QueryParams.query_creative_types'
- $ref: '#/components/parameters/QueryParams.query_ad_account_id'
- $ref: '#/components/parameters/Pinterest.Lib.BookmarkParams.bookmark'
- $ref: '#/components/parameters/Pinterest.Lib.BookmarkParams.page_size'
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
type: object
required:
- items
properties:
bookmark:
type: string
nullable: true
items:
type: array
items:
$ref: '#/components/schemas/Pin'
'400':
description: The request could not be understood by the server due to unexpected
data.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'401':
description: Authentication is required and has either failed or not been
provided.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'403':
description: The request was valid, but the server is refusing action. The
user might not have the necessary permissions for a resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'404':
description: The requested resource could not be found on this server.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'429':
description: The user has sent too many requests in a given amount of time
and is being rate limited.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
tags:
- pins
security:
- pinterest_oauth2:
- boards:read
- pins:read
- client_credentials:
- boards:read
- pins:read
x-sandbox: enabled
x-ratelimit-category: org_read
/pins/{pin_id}:
get:
operationId: pins/get
summary: Get Pin
description: |2-
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](/docs/api/v5/#operation/ad_accounts/list)) 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](https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts) roles on the ad_account:
- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.
- For Pins on secret boards: Owner, Admin.
parameters:
- $ref: '#/components/parameters/PinKey'
- $ref: '#/components/parameters/QueryParams.query_ad_account_id'
- $ref: '#/components/parameters/QueryParams.query_pin_metrics'
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Pin'
'400':
description: The request could not be understood by the server due to unexpected
data.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'401':
description: Authentication is required and has either failed or not been
provided.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'403':
description: The request was valid, but the server is refusing action. The
user might not have the necessary permissions for a resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'404':
description: The requested resource could not be found on this server.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'429':
description: The user has sent too many requests in a given amount of time
and is being rate limited.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
tags:
- pins
security:
- pinterest_oauth2:
- boards:read
- pins:read
- client_credentials:
- boards:read
- pins:read
x-sandbox: enabled
x-ratelimit-category: org_read
patch:
operationId: pins/update
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](/docs/api/v5/#operation/ad_accounts/list)) 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](https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts) 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](/docs/getting-started/using-beta-and-restricted-features/).**
parameters:
- $ref: '#/components/parameters/PinKey'
- $ref: '#/components/parameters/QueryParams.query_ad_account_id'
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Pin'
'400':
description: The request could not be understood by the server due to unexpected
data.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'401':
description: Authentication is required and has either failed or not been
provided.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'403':
description: The request was valid, but the server is refusing action. The
user might not have the necessary permissions for a resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'404':
description: The requested resource could not be found on this server.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'429':
description: The user has sent too many requests in a given amount of time
and is being rate limited.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
tags:
- pins
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PinUpdate'
security:
- pinterest_oauth2:
- boards:read
- boards:write
- pins:read
- pins:write
- client_credentials:
- boards:read
- boards:write
- pins:read
- pins:write
x-sandbox: enabled
x-ratelimit-category: org_write
delete:
operationId: pins/delete
summary: Delete Pin
description: |2-
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](/docs/api/v5/#operation/ad_accounts/list)) 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](https://help.pinterest.com/en/business/article/share-and-manage-access-to-your-ad-accounts) roles on the ad_account:
- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.
- For Pins on secret boards: Owner, Admin.
parameters:
- $ref: '#/components/parameters/PinKey'
- $ref: '#/components/parameters/QueryParams.query_ad_account_id'
responses:
'204':
description: Resource deleted successfully.
'400':
description: The request could not be understood by the server due to unexpected
data.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'401':
description: Authentication is required and has either failed or not been
provided.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'403':
description: The request was valid, but the server is refusing action. The
user might not have the necessary permissions for a resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'404':
description: The requested resource could not be found on this server.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
'429':
description: The user has sent too many requests in a given amount of time
and is being rate limited.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/Pinterest.Lib.Error'
tags:
- pins
security:
- pinterest_oauth2:
- boards:read
- boards:write
- pins:read
- pins:write
- client_credentials:
- boards:read
- boards:write
- pins:read
- pins:write
x-sandbox: enabled
x-ratelimit-category: org_write
/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:
- pins
operationId: pins/analytics
security:
- pinterest_oauth2:
- boards:read
- pins:read
- client_credentials:
- 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/analytics:
get:
summary: Get multiple Pin analytics
description: |-
This endpoint is currently in beta and not available to all apps. Learn more.
Get analytics for multiple pins owned by the "operation user_account" - or on a group board that has been shared with this account.
- The maximum number of pins supported in a single request is 100.
- 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:
- pins
operationId: multi_pins/analytics
security:
- pinterest_oauth2:
- boards:read
- pins:read
- client_credentials:
- boards:read
- pins:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_required_pin_ids'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_app_types'
- description: Pin metric types to get data for.
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
- USER_FOLLOW
- PROFILE_VISIT
- 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
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/BulkPinAnalyticsResponse'
'400':
description: Invalid pins analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 1
message: Invalid multi_pins analytics parameters.
'401':
description: Not authorized to access board or Pin.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 7
message: Not authorized to access board or 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}/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:
- pins
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:
# /docs/api/v5/#operation/pins/list
PIN_ID="Get details of a specific interest given interest ID.
Click here for a spreadsheet listing interests and their IDs.
operationId: interest_targeting_options/get security: - pinterest_oauth2: - ads:read - client_credentials: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_interest_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/SingleInterestTargetingOptionResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - resources /resources/targeting/{targeting_type}: get: summary: Get targeting options description: |-You can use targeting values in ads placement to define your intended audience.
Targeting metrics are organized around targeting specifications.
For more information on ads targeting, see Audience targeting.
Sample return:
[{"36313": "Australia: Moreton Bay - North", "124735": "Canada: North Battleford", "36109": "Australia: Murray", "36108": "Australia: Mid North Coast", "36101": "Australia: Capital Region", "811": "U.S.: Reno", "36103": "Australia: Central West", "36102": "Australia: Central Coast", "36105": "Australia: Far West and Orana", "36104": "Australia: Coffs Harbour - Grafton", "36107": "Australia: Illawarra", "36106": "Australia: Hunter Valley Exc Newcastle", "554017": "New Zealand: Wanganui", "554016": "New Zealand: Marlborough", "554015": "New Zealand: Gisborne", "554014": "New Zealand: Tararua", "554013": "New Zealand: Invercargill", "GR": "Greece", "554011": "New Zealand: Whangarei", "554010": "New Zealand: Far North", "717": "U.S.: Quincy-Hannibal-Keokuk", "716": "U.S.: Baton Rouge",...}]
operationId: targeting_options/get
security:
- pinterest_oauth2:
- ads:read
- client_credentials:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_targeting_type'
- $ref: '#/components/parameters/query_client_id'
- $ref: '#/components/parameters/query_oauth_signature'
- $ref: '#/components/parameters/query_timestamp'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TargetingOptionResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- resources
/search/boards:
get:
summary: Search user's boards
description: |-
Search for boards for the "operation user_account". This includes boards of all board types.
- By default, the "operation user_account" is the token user_account.
If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information.
operationId: search_user_boards/get
security:
- pinterest_oauth2:
- boards:read
- boards:read_secret
- client_credentials:
- boards:read
- boards:read_secret
x-ratelimit-category: org_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_query'
responses:
'200':
description: response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: items
items:
$ref: '#/components/schemas/Board'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- search
/search/pins:
get:
description: |-
Search for pins for the "operation user_account".
- By default, the "operation user_account" is the token user_account.
If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information.
operationId: search_user_pins/list
security:
- pinterest_oauth2:
- boards:read
- boards:read_secret
- pins:read
- pins:read_secret
x-ratelimit-category: org_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_required_search_query'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Pin'
description: Success
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UserNotFound:
value:
code: 30
message: User not found.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Search user's Pins
tags:
- search
/search/partner/pins:
get:
summary: Search pins by a given search term
description: |-
This endpoint is currently in beta and not available to all apps. Learn more.
Get the top 10 Pins by a given search term.
operationId: search_partner_pins
security:
- pinterest_oauth2:
- boards:read
- pins:read
x-ratelimit-category: org_read
x-sandbox: disabled
x-codeSamples:
- lang: cURL
label: curl
source: |
curl --location --request GET 'https://api.pinterest.com/v5/search/partner/pins' \
--header 'Authorization: Bearer Get the top trending search keywords among the Pinterest user audience.
Trending keywords can be used to inform ad targeting, budget strategy, and creative decisions about which products and Pins will resonate with your audience.
Geographic, demographic and interest-based filters are available to narrow down to the top trends among a specific audience. Multiple trend types are supported that can be used to identify newly-popular, evergreen or seasonal keywords.
For an interactive way to explore this data, please visit trends.pinterest.com.
operationId: trending_keywords/list
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: trends_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_trend_region'
- $ref: '#/components/parameters/path_trend_type'
- $ref: '#/components/parameters/query_interest_list'
- $ref: '#/components/parameters/query_gender_list'
- $ref: '#/components/parameters/query_age_bucket_list'
- name: include_keywords
description: |-
If set, filters the results to top trends which include at least one of the specified keywords.
If unset, no keyword filtering logic is applied.
example:
- recipes
- dessert
in: query
required: false
schema:
$ref: '#/components/schemas/KeywordList'
- $ref: '#/components/parameters/query_normalize_against_group'
- $ref: '#/components/parameters/query_trending_keyword_limit'
- name: include_prediction
description: |-
Closed beta
Including predicted weekly search volume data for the next 90 days.
By default (`false`), the response will not include predicted data.
in: query
required: false
schema:
type: boolean
example: true
default: false
- name: include_demographics
description: |-
Closed beta
Including the age and gender distribution for each keyword.
By default (`false`), the response will not include demographics data.
in: query
required: false
schema:
type: boolean
example: true
default: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TrendingKeywordsResponse'
description: Success
'400':
description: Invalid trending keywords request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid trending keywords request parameters
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- keywords
/user_account:
get:
summary: Get user account
description: |-
Get account information for the "operation user_account"
- By default, the "operation user_account" is the token user_account.
If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information.
tags:
- user_account
operationId: user_account/get
security:
- pinterest_oauth2:
- user_accounts:read
- client_credentials:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'403':
description: Not authorized to access the user account.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/analytics:
get:
summary: Get user account analytics
description: |-
Get analytics for the "operation user_account"
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
tags:
- user_account
operationId: user_account/analytics
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_from_claimed_content'
- $ref: '#/components/parameters/query_pin_format'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_content_type'
- $ref: '#/components/parameters/query_source'
- $ref: '#/components/parameters/query_metric_types'
- $ref: '#/components/parameters/query_split_field_user_account'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AnalyticsResponse'
description: Success
'400':
description: Invalid user accounts analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid user accounts analytics parameters.
'403':
description: Not authorized to access the user account analytics.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account analytics.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/analytics/top_pins:
get:
summary: Get user account top pins analytics
description: |-
Gets analytics data about a user's top pins (limited to the top 50).
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
tags:
- user_account
operationId: user_account/analytics/top_pins
security:
- pinterest_oauth2:
- pins:read
- user_accounts:read
- client_credentials:
- pins:read
- user_accounts:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_sort_by'
- $ref: '#/components/parameters/query_from_claimed_content'
- $ref: '#/components/parameters/query_pin_format'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_content_type'
- $ref: '#/components/parameters/query_source'
- $ref: '#/components/parameters/query_metric_types'
- $ref: '#/components/parameters/query_num_of_pins'
- $ref: '#/components/parameters/query_created_in_last_n_days'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopPinsAnalyticsResponse'
description: Success
'403':
description: Not authorized to access the user account analytics.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account analytics.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/analytics/top_video_pins:
get:
summary: Get user account top video pins analytics
description: |-
Gets analytics data about a user's top video pins (limited to the top 50).
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
tags:
- user_account
operationId: user_account/analytics/top_video_pins
security:
- pinterest_oauth2:
- pins:read
- user_accounts:read
- client_credentials:
- pins:read
- user_accounts:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_video_pin_sort_by'
- $ref: '#/components/parameters/query_from_claimed_content'
- $ref: '#/components/parameters/query_pin_format'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_content_type'
- $ref: '#/components/parameters/query_source'
- $ref: '#/components/parameters/query_video_pin_metric_types'
- $ref: '#/components/parameters/query_num_of_pins'
- $ref: '#/components/parameters/query_created_in_last_n_days'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopVideoPinsAnalyticsResponse'
description: Success
'403':
description: Not authorized to access the user account analytics.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account analytics.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/businesses:
get:
summary: List linked businesses
description: Get a list of your linked business accounts.
operationId: linked_business_accounts/get
security:
- pinterest_oauth2:
- user_accounts:read
- client_credentials:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: enabled
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LinkedBusiness'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- user_account
/user_account/followers:
get:
summary: List followers
description: Get a list of your followers.
operationId: followers/list
security:
- pinterest_oauth2:
- user_accounts:read
- client_credentials:
- user_accounts:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/UserSummary'
description: Success
'400':
description: Invalid user id
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid user id
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- user_account
/user_account/following:
get:
summary: List following
description: Get a list of who a certain user follows.
operationId: user_following/get
security:
- pinterest_oauth2:
- user_accounts:read
- client_credentials:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_user_following_feed_type'
- $ref: '#/components/parameters/query_explicit_following'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Users
items:
$ref: '#/components/schemas/UserSummary'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- user_account
/user_account/following/boards:
get:
summary: List following boards
description: Get a list of the boards a user follows. The request returns a
board summary object array.
operationId: boards_user_follows/list
security:
- pinterest_oauth2:
- user_accounts:read
- client_credentials:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_explicit_following'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Board'
description: Success
'400':
description: Invalid user id
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid user id
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- user_account
/user_account/following/{username}:
post:
summary: Follow user
description: |-
This endpoint is currently in beta and not available to all apps. Learn more.
Use this request, as a signed-in user, to follow another user.
tags:
- user_account
operationId: follow_user/update
security:
- pinterest_oauth2:
- user_accounts:write
x-ratelimit-category: org_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_username'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FollowUserRequest'
description: Follow a user.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserSummary'
description: Success
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UserNotFound:
value:
code: 30
message: User not found.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
/user_account/websites:
post:
summary: Verify website
description: Verify a website as a signed-in user.
tags:
- user_account
operationId: verify_website/update
security:
- pinterest_oauth2:
- user_accounts:write
x-ratelimit-category: org_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Verify a website.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteVerifyRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteSummary'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
get:
summary: Get user websites
description: Get user websites, claimed or not
tags:
- user_account
operationId: user_websites/get
security:
- pinterest_oauth2:
- user_accounts:read
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/UserWebsiteSummary'
'403':
description: Not authorized to access the user website list.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user website list.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-ratelimit-category: org_read
x-sandbox: disabled
delete:
summary: Unverify website
description: Unverifu a website verified by the signed-in user.
tags:
- user_account
operationId: unverify_website/delete
security:
- pinterest_oauth2:
- user_accounts:write
x-ratelimit-category: org_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_website'
responses:
'204':
description: Successfully unverified website
'404':
description: Website not in user list.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Website not in user list.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/websites/verification:
get:
summary: Get user verification code for website claiming
description: Get verification code for user to install on the website to claim
it.
tags:
- user_account
operationId: website_verification/get
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
security:
- pinterest_oauth2:
- user_accounts:read
- client_credentials:
- user_accounts:read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteVerificationCode'
description: Success
'403':
description: Not authorized to access the user verification code for website
claiming.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user verification code for website
claiming.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
x-ratelimit-category: org_read
x-sandbox: disabled
/users/{username}/interests/follow:
get:
summary: List following interests
description: Get a list of a user's following interests in one place.
tags:
- user_account
operationId: user_account/followed_interests
security:
- pinterest_oauth2:
- user_accounts:read
- client_credentials:
- user_accounts:read
x-ratelimit-category: org_read
parameters:
- $ref: '#/components/parameters/path_username'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Interest'
'400':
description: Invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-sandbox: enabled
components:
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
msot:write: Create measurement source of truth events
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
client_credentials:
flows:
clientCredentials:
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
msot:write: Create measurement source of truth events
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
tokenUrl: https://api.pinterest.com/v3/oauth/access_token/
type: oauth2
schemas:
Account:
type: object
readOnly: true
properties:
account_type:
description: Type of account
type: string
enum:
- PINNER
- BUSINESS
id:
description: User account ID.
type: string
pattern: ^\d+$
example: '2783136121146311751'
profile_image:
type: string
website_url:
type: string
username:
type: string
about:
description: Profile about description.
type: string
business_name:
type: string
nullable: true
board_count:
type: integer
readOnly: true
nullable: true
example: 14
description: 'User account board count.
**Note**: Board count on user
account level may differ from counts found elsewhere due to attribution
of collaborative Boards.'
pin_count:
type: integer
readOnly: true
nullable: true
example: 339
description: User account pin count. This includes both created and saved
pins.
follower_count:
type: integer
readOnly: true
nullable: true
example: 10
description: User account follower count.
following_count:
type: integer
readOnly: true
nullable: true
example: 347
description: User account following count.
monthly_views:
type: integer
readOnly: true
nullable: true
example: 163
description: User account monthly views.
ActionType:
type: string
description: Ad group billable event type. For update, only draft ad groups
may update billable event.
example: CLICKTHROUGH
enum:
- CLICKTHROUGH
- IMPRESSION
- VIDEO_V_50_MRC
AdAccount:
type: object
readOnly: true
properties:
id:
type: string
name:
type: string
owner:
title: Ad account owner
type: object
properties:
username:
type: string
description: Public username for the user account
id:
type: string
description: The owning account's user ID.
country:
$ref: '#/components/schemas/Country'
currency:
$ref: '#/components/schemas/Currency'
permissions:
title: permissions
type: array
items:
$ref: '#/components/schemas/BusinessAccessRole'
nullable: true
created_time:
description: Creation time. Unix timestamp in seconds.
example: 1451431341
nullable: true
title: created_time
type: integer
updated_time:
description: Last update time. Unix timestamp in seconds.
example: 1451431341
nullable: true
title: updated_time
type: integer
AdAccountAnalyticsResponse:
type: array
items:
type: object
properties:
AD_ACCOUNT_ID:
description: The ID of the advertiser that this metrics belongs to.
type: string
pattern: ^\d+$
DATE:
description: Current metrics date. Only returned when granularity is a
time-based value (`DAY`, `HOUR`, `WEEK`, `MONTH`)
type: string
format: date
required:
- AD_ACCOUNT_ID
additionalProperties: true
example:
DATE: '2021-04-01'
AD_ACCOUNT_ID: '547602124502'
SPEND_IN_DOLLAR: 30
TOTAL_CLICKTHROUGH: 216
AdAccountCreateRequest:
title: AdAccountCreate
type: object
example:
country: US
currency: USD
owner_user_id: '383791336903426391'
name: ACME Tools
properties:
country:
$ref: '#/components/schemas/Country'
currency:
$ref: '#/components/schemas/Currency'
name:
description: Ad Account name.
example: ACME Tools
maxLength: 256
title: name
type: string
owner_user_id:
description: Advertiser's owning user ID.
example: '383791336903426391'
pattern: ^\d+$
title: owner_user_id
type: string
AdAccountCreateSubscriptionRequest:
title: AdAccountCreateSubscriptionRequest
type: object
example:
webhook_url: https://webhook.example.com/xyz
lead_form_id: '383791336903426390'
properties:
webhook_url:
description: Standard HTTPS webhook URL.
example: https://webhook.example.com/xyz
title: webhook_url
type: string
lead_form_id:
description: Lead form ID.
example: '383791336903426390'
title: Lead form ID
type: string
pattern: ^\d+$
partner_access_token:
description: Partner access token. Only for clients that requires authentication.
We recommend to avoid this param.
type: string
partner_refresh_token:
description: Partner refresh token. Only for clients that requires authentication.
We recommend to avoid this param.
type: string
partner_metadata:
description: Partner metadata. Only for clients that requires special handling.
We recommend to avoid this param.
type: object
properties:
subscriber_key:
description: Text field value that uniquely identifies a subscriber.
type: string
required:
- webhook_url
AdAccountCreateSubscriptionResponse:
title: AdAccountCreateSubscriptionResponse
type: object
properties:
id:
description: Subscription ID.
example: '8078432025948590686'
type: string
pattern: ^\d+$
cryptographic_key:
description: Base64 encoded key for client to decrypt lead data.
example: ucvxbV2Tdss0vNeYsdh4Qfa/1Khm2b0PqXvXeTTZh54
type: string
nullable: true
cryptographic_algorithm:
description: Lead data encryption algorithm.
example: AES-256-GCM
type: string
nullable: true
created_time:
description: Subscription creation time. Unix timestamp in milliseconds.
example: 1699209842000
type: integer
user_account_id:
description: User account used to subscribe lead data.
example: '549755885175'
type: string
pattern: ^\d+$
ad_account_id:
description: The Ad Account ID that this lead form belongs to.
example: '549755885176'
type: string
pattern: ^\d+$
api_version:
description: API version.
example: v5
type: string
lead_form_id:
description: Lead form ID.
example: '383791336903426390'
type: string
pattern: ^\d+$
nullable: true
webhook_url:
description: Standard HTTPS webhook URL.
example: https://webhook.example.com/xyz
type: string
AdAccountGetSubscriptionResponse:
title: AdAccountGetSubscriptionsResponse
type: object
allOf:
- type: object
description: Lead ads subscription response common fields.
properties:
lead_form_id:
description: Lead form ID.
example: '383791336903426390'
type: string
pattern: ^\d+$
nullable: true
webhook_url:
description: Standard HTTPS webhook URL.
example: https://webhook.example.com/xyz
type: string
- type: object
properties:
id:
description: Subscription ID.
example: '8078432025948590686'
type: string
pattern: ^\d+$
user_account_id:
description: User account used to subscribe lead data.
example: '549755885175'
type: string
pattern: ^\d+$
ad_account_id:
description: The Ad Account ID that this lead form belongs to.
example: '549755885176'
type: string
pattern: ^\d+$
api_version:
description: API version.
example: v5
type: string
cryptographic_key:
description: Base64 encoded key for client to decrypt lead data.
example: ucvxbV2Tdss0vNeYsdh4Qfa/1Khm2b0PqXvXeTTZh54
type: string
nullable: true
cryptographic_algorithm:
description: Lead data encryption algorithm.
example: AES-256-GCM
type: string
nullable: true
created_time:
description: Lead subscription creation time. Unix timestamp in milliseconds.
example: 1699209842000
type: integer
AdAccountsCountryResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdAccountsCountryResponseData'
AdAccountsCountryResponseData:
type: object
properties:
code:
$ref: '#/components/schemas/AdCountry'
type: string
currency:
description: Country currency.
example: Dollars
type: string
index:
type: number
description: Country index
example: 1
name:
type: string
description: Country name
example: United States of America
AdArrayResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdArrayResponseElement'
title: AdArrayResponse
AdArrayResponseElement:
type: object
properties:
data:
$ref: '#/components/schemas/AdResponse'
exceptions:
$ref: '#/components/schemas/Exception'
AdCommon:
type: object
description: Creation fields
properties:
ad_group_id:
description: ID of the ad group that contains the ad.
example: '2680059592705'
type: string
pattern: ^(AG)?\d+$
android_deep_link:
description: Deep link URL for Android devices.
nullable: true
type: string
carousel_android_deep_links:
description: Comma-separated deep links for the carousel pin on Android.
type: array
nullable: true
items:
type: string
carousel_destination_urls:
description: Comma-separated destination URLs for the carousel pin to promote.
type: array
nullable: true
items:
type: string
carousel_ios_deep_links:
description: Comma-separated deep links for the carousel pin on iOS.
type: array
nullable: true
items:
type: string
click_tracking_url:
description: Tracking url for the ad clicks.
type: string
nullable: true
creative_type:
$ref: '#/components/schemas/CreativeType'
destination_url:
description: Destination URL.
type: string
nullable: true
ios_deep_link:
description: Deep link URL for iOS devices.
type: string
nullable: true
is_pin_deleted:
description: Is original pin deleted?
example: false
type: boolean
is_removable:
description: Is pin repinnable?
example: false
type: boolean
name:
description: Name of the ad - 255 chars max.
type: string
nullable: true
status:
$ref: '#/components/schemas/EntityStatus'
tracking_urls:
type: object
allOf:
- $ref: '#/components/schemas/TrackingUrls'
nullable: true
view_tracking_url:
description: Tracking URL for ad impressions.
type: string
nullable: true
lead_form_id:
description: Lead form ID for lead ad generation.
type: string
pattern: ^(AG)?\d+$
nullable: true
grid_click_type:
$ref: '#/components/schemas/GridClickType'
customizable_cta_type:
type: string
description: Select a call to action (CTA) to display below your ad. Available
only for ads with direct links enabled. CTA options for consideration
and conversion campaigns are LEARN_MORE, SHOP_NOW, BOOK_NOW, SIGN_UP,
VISIT_SITE, BUY_NOW, GET_OFFER, ORDER_NOW, ADD_TO_CART (for conversion
campaigns with add to cart conversion events only)
example: LEARN_MORE
nullable: true
enum:
- GET_OFFER
- LEARN_MORE
- ORDER_NOW
- SHOP_NOW
- SIGN_UP
- SUBSCRIBE
- BUY_NOW
- CONTACT_US
- GET_QUOTE
- VISIT_SITE
- APPLY_NOW
- BOOK_NOW
- REQUEST_DEMO
- REGISTER_NOW
- FIND_A_DEALER
- ADD_TO_CART
- WATCH_NOW
- READ_MORE
- BUY_TICKETS
- DONATE_NOW
- DOWNLOAD
- EXPLORE_MORE
- FIND_A_LOCATION
- GET_DEAL
- GET_RECIPE
- GET_SHOWTIMES
- ON_SALE
- PLAY_GAME
- TRY_IT
- null
quiz_pin_data:
type: object
allOf:
- $ref: '#/components/schemas/QuizPinData'
description: Before creating a quiz ad, you must create an organic Pin using
POST/Create Pin for each result in the quiz. Quiz ads cannot be saved
by a Pinner. Quiz ad results can be saved.
nullable: true
AdCountry:
type: string
description: Country ID from ISO 3166-1 alpha-2.
example: US
enum:
- AD
- AE
- AF
- AG
- AI
- AL
- AM
- AO
- AQ
- AR
- AS
- AT
- AU
- AW
- AX
- AZ
- BA
- BB
- BD
- BE
- BF
- BG
- BH
- BI
- BJ
- BL
- BM
- BN
- BO
- BQ
- BR
- BS
- BT
- BV
- BW
- BY
- BZ
- CA
- CC
- CD
- CF
- CG
- CH
- CI
- CK
- CL
- CM
- CN
- CO
- CR
- CU
- CV
- CW
- CX
- CY
- CZ
- DE
- DJ
- DK
- DM
- DO
- DZ
- EC
- EE
- EG
- EH
- ER
- ES
- ET
- FI
- FJ
- FK
- FM
- FO
- FR
- GA
- GB
- GD
- GE
- GF
- GG
- GH
- GI
- GL
- GM
- GN
- GP
- GQ
- GR
- GS
- GT
- GU
- GW
- GY
- HK
- HM
- HN
- HR
- HT
- HU
- ID
- IE
- IL
- IM
- IN
- IO
- IQ
- IR
- IS
- IT
- JE
- JM
- JO
- JP
- KE
- KG
- KH
- KI
- KM
- KN
- KR
- KW
- KY
- KZ
- LA
- LB
- LC
- LI
- LK
- LR
- LS
- LT
- LU
- LV
- LY
- MA
- MC
- MD
- ME
- MF
- MG
- MH
- MK
- ML
- MM
- MN
- MO
- MP
- MQ
- MR
- MS
- MT
- MU
- MV
- MW
- MX
- MY
- MZ
- NA
- NC
- NE
- NF
- NG
- NI
- NL
- 'NO'
- NP
- NR
- NU
- NZ
- OM
- PA
- PE
- PF
- PG
- PH
- PK
- PL
- PM
- PN
- PR
- PS
- PT
- PW
- PY
- QA
- RE
- RO
- RS
- RU
- RW
- SA
- SB
- SC
- SD
- SE
- SG
- SH
- SI
- SJ
- SK
- SL
- SM
- SN
- SO
- SR
- SS
- ST
- SV
- SX
- SY
- SZ
- TC
- TD
- TF
- TG
- TH
- TJ
- TK
- TL
- TM
- TN
- TO
- TR
- TT
- TV
- TW
- TZ
- UA
- UG
- UM
- US
- UY
- UZ
- VA
- VC
- VE
- VG
- VI
- VN
- VU
- WF
- WS
- YE
- YT
- ZA
- ZM
- ZW
AdCreateRequest:
type: object
allOf:
- $ref: '#/components/schemas/AdCommon'
- $ref: '#/components/schemas/AdPinId'
- type: object
title: Request schema for creating ads
required:
- ad_group_id
- pin_id
- creative_type
AdPinAnalytics:
type: object
properties:
PIN_ID:
description: The ID of the pin that the metric belongs to.
type: string
pattern: ^\d+$
DATE:
description: Current metrics date. Only returned when granularity is a time-based
value (`DAY`, `HOUR`, `WEEK`, `MONTH`)
type: string
format: date
required:
- PIN_ID
additionalProperties: true
example:
DATE: '2021-04-01'
PIN_ID: '217861700718936379'
SPEND_IN_DOLLAR: 30
TOTAL_CLICKTHROUGH: 216
AdPinsAnalyticsResponse:
type: array
items:
$ref: '#/components/schemas/AdPinAnalytics'
AdvancedAuctionItemsGetRequest:
type: object
description: Request object used to get bid options values for a batch of retail
catalog items
additionalProperties: false
properties:
catalog_id:
description: Catalog id pertaining to the retail item
example: '2680059592705'
type: string
pattern: ^\d+$
items:
type: array
minItems: 1
maxItems: 10000
description: A list of retail catalog items to fetch bid options for
items:
$ref: '#/components/schemas/AdvancedAuctionItemsGetRecord'
required:
- catalog_id
- items
AdvancedAuctionItemsGetRecord:
description: Object uniquely identifying a retail catalog item
allOf:
- $ref: '#/components/schemas/AdvancedAuctionKey'
AdvancedAuctionItems:
type: object
description: Response object containing item bid options
properties:
catalog_id:
description: Response object of item bid options
example: '2680059592705'
type: string
pattern: ^\d+$
items:
type: array
description: Array with item bid options
items:
$ref: '#/components/schemas/AdvancedAuctionItem'
AdvancedAuctionItemsSubmitRequest:
type: object
description: Request containing operations to perform on bid prices and bid
multipliers for a batch of retail catalog items
additionalProperties: false
properties:
catalog_id:
description: Catalog id pertaining to all items
example: '2680059592705'
type: string
pattern: ^\d+$
items:
type: array
minItems: 1
maxItems: 10000
description: Array of item bid option operations
items:
$ref: '#/components/schemas/AdvancedAuctionItemsSubmitRecord'
required:
- catalog_id
- items
AdvancedAuctionItemsSubmitRecord:
type: object
description: Object describing an item bid option operation
oneOf:
- $ref: '#/components/schemas/AdvancedAuctionItemsSubmitUpsertRecord'
- $ref: '#/components/schemas/AdvancedAuctionItemsSubmitDeleteRecord'
discriminator:
propertyName: operation
mapping:
UPSERT: '#/components/schemas/AdvancedAuctionItemsSubmitUpsertRecord'
DELETE: '#/components/schemas/AdvancedAuctionItemsSubmitDeleteRecord'
properties:
operation:
$ref: '#/components/schemas/AdvancedAuctionOperation'
required:
- operation
AdvancedAuctionItemsSubmitUpsertRecord:
description: Object describing an item bid option upsert operation
example:
item_id: DS0294-M
country: US
language: EN
operation: UPSERT
bid_options:
bid_in_micro_currency: 5000000
app_type_multipliers:
android_mobile: 1.1
android_tablet: 1.1
ipad: 1.2
iphone: 1.2
web: 0.9
web_mobile: 0.8
update_mask:
- BID
- APP_TYPE_BID_MULTIPLIER_SET
allOf:
- $ref: '#/components/schemas/AdvancedAuctionItem'
- type: object
properties:
update_mask:
type: array
description: The list of item bid option fields to be set or updated.
Fields specified in the updated mask without a value specified in the
`bid_options` object in the body will be set to `null`. If an item bid
option record is being created, fields not specified in the update mask
will be initialized to `null`.
example:
- BID
- APP_TYPE_BID_MULTIPLIER_SET
nullable: true
items:
$ref: '#/components/schemas/UpdateMaskBidOptionField'
required:
- update_mask
AdvancedAuctionItemsSubmitDeleteRecord:
description: Object describing an item bid option deletion operation
example:
item_id: DS0294-M
country: US
language: EN
operation: DELETE
allOf:
- $ref: '#/components/schemas/AdvancedAuctionKey'
AdvancedAuctionProcessedItems:
type: object
description: Response object containing the results of an operation on an item
bid option
properties:
catalog_id:
description: Catalog id pertaining to all items
example: '2680059592705'
type: string
pattern: ^\d+$
items:
type: array
description: Array of advanced auction processed items
items:
$ref: '#/components/schemas/AdvancedAuctionProcessedItem'
AdvancedAuctionProcessedItem:
description: Object describing the result of an operation on an item bid option
type: object
allOf:
- $ref: '#/components/schemas/AdvancedAuctionItemsSubmitRecord'
- type: object
properties:
errors:
type: array
description: |-
Array with validation errors for the supplied item bid option modification operation.
A non empty errors list means this single item operation was not applied.
items:
$ref: '#/components/schemas/AdvancedAuctionOperationError'
AdvancedAuctionItem:
title: Advanced Auction Item
allOf:
- $ref: '#/components/schemas/AdvancedAuctionKey'
- type: object
properties:
bid_options:
$ref: '#/components/schemas/AdvancedAuctionBidOptions'
required:
- bid_options
AdvancedAuctionKey:
type: object
description: Object uniquely identifying a retail catalog item
properties:
item_id:
description: The catalog retail item id in the merchant namespace
example: DS0294-M
type: string
country:
$ref: '#/components/schemas/Country'
language:
$ref: '#/components/schemas/Language'
required:
- item_id
- country
- language
AdvancedAuctionOperation:
type: string
enum:
- UPSERT
- DELETE
AdvancedAuctionBidOptions:
type: object
description: Object describing a retail catalog item's bid options (bid price
and bid multipliers).
properties:
bid_in_micro_currency:
$ref: '#/components/schemas/BidInMicroCurrency'
app_type_multipliers:
$ref: '#/components/schemas/AppTypeMultipliers'
placement_multipliers:
$ref: '#/components/schemas/PlacementMultipliers'
AdvancedAuctionOperationError:
description: Error which occurred when applying a bid options operation to a
specific item.
type: object
properties:
code:
description: The error code for the item bid option operation validation
error
type: integer
example: 6
message:
description: Message describing the item bid option operation validation
error
type: string
example: Bid in micro currency should be non-negative
BidInMicroCurrency:
type: integer
format: int64
description: Bid price in micro currency. A value of 0 will stop distribution
for this item in `MAX_BID` ad groups in `CATALOG_SALES` campaigns. A value
of `null` will fallback to the ad group's `bid_in_micro_currency`.
example: 5000000
nullable: true
AppTypeMultipliers:
type: object
description: |-
This represents a mapping from app type targeting criteria to a bid price adjustment.
Multiplier values must be between 0 and 10. A value of 10 represents a 900% increase in bid price (from $1 to $10 for example). A value of 0 will stop distribution for this item on the specified app type in `MAX_BID` ad groups in `CATALOG_SALES` campaigns. All app type multipliers must be set at the same time. If a multiplier is not provided it is assumed to be 1 (no bid adjustment).
example:
android_mobile: 1.1
android_tablet: 1.1
ipad: 1.2
iphone: 1.2
web: 0.9
web_mobile: 0.8
properties:
APP_TYPE:
$ref: '#/components/schemas/TargetingSpecAppType'
additionalProperties:
type: number
format: double
nullable: true
TargetingSpecAppType:
type: string
enum:
- android_mobile
- android_tablet
- ipad
- iphone
- web
- web_mobile
PlacementMultipliers:
type: object
description: |-
This represents a mapping from placement to a bid price adjustment.
Multiplier values must be between 0 and 10. A value of 10 represents a 900% increase in bid price (from $1 to $10 for example). A value of 0 will stop distribution for this item on the specified placement in `MAX_BID` ad groups in `CATALOG_SALES` campaigns. All placement multipliers must be set at the same time. If a multiplier is not provided it is assumed to be 1 (no bid adjustment).
example:
browse: 0.9
search: 1.2
related_pins: 1.1
properties:
PLACEMENT:
type: string
enum:
- SEARCH
- BROWSE
- RELATED_PINS
additionalProperties:
type: number
format: double
nullable: true
UpdateMaskBidOptionField:
type: string
description: bid option field to apply operation updates to
example: BID
enum:
- BID
- APP_TYPE_BID_MULTIPLIER_SET
- PLACEMENT_BID_MULTIPLIER_SET
AdGroupArrayResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdGroupArrayResponseElement'
AdGroupArrayResponseElement:
type: object
properties:
data:
$ref: '#/components/schemas/AdGroupResponse'
exceptions:
type: array
items:
$ref: '#/components/schemas/Exception'
AdGroupCommon:
type: object
properties:
name:
description: Ad group name.
type: string
example: 'Ad Group For Pin: 687195905986'
status:
type: string
allOf:
- $ref: '#/components/schemas/EntityStatus'
description: Ad group/entity status.
budget_in_micro_currency:
description: Budget in micro currency. This field is **REQUIRED** for non-CBO
(campaign budget optimization) campaigns. A CBO campaign automatically
generates ad group budgets from its campaign budget to maximize campaign
outcome. A CBO campaign is limited to 70 or less ad groups.
type: integer
example: 5000000
nullable: true
bid_in_micro_currency:
description: 'Bid price in micro currency. This field is **REQUIRED** for
the following campaign objective_type/billable_event combinations: AWARENESS/IMPRESSION,
CONSIDERATION/CLICKTHROUGH, CATALOG_SALES/CLICKTHROUGH.'
type: integer
example: 5000000
nullable: true
optimization_goal_metadata:
type: object
allOf:
- $ref: '#/components/schemas/OptimizationGoalMetadata'
description: Optimization goals for objective-based performance campaigns.
**REQUIRED** when campaign's `objective_type` is set to `"WEB_CONVERSION"`.
nullable: true
budget_type:
type: string
allOf:
- $ref: '#/components/schemas/BudgetType'
start_time:
description: |-
Timestamp in Unix format for scheduling when ads in the ad group start to appear. If not specified, ads appear during parent campaign's `start_time`. Cannot precede `start_time` for parent campaign (if specified). Learn about scheduling ads.
For certain organizations (Closed beta): Supported for campaigns with Campaign Budget Optimization (CBO).
For all organizations: Supported for campaigns without CBO.
type: integer
example: 5686848000
nullable: true
end_time:
description: |-
Timestamp in Unix format for scheduling when ads in the ad group stop appearing. If not specified, ads run indefinitely unless you update the ad group by changing their status to `paused`. Cannot occur after `end_time` for parent campaign (if specified). Learn about scheduling ads.
For certain organizations (Closed beta): Supported for campaigns with Campaign Budget Optimization (CBO).
For all organizations: Supported for campaigns without CBO.
type: integer
example: 5705424000
nullable: true
targeting_spec:
$ref: '#/components/schemas/TargetingSpec'
lifetime_frequency_cap:
description: Set a limit to the number of times a promoted pin from this
campaign can be impressed by a pinner within the past rolling 30 days.
Only available for CPM (cost per mille (1000 impressions)) ad groups.
A CPM ad group has an IMPRESSION billable_event
value. This field **REQUIRES** the `end_time` field.
type: integer
example: 100
tracking_urls:
type: object
allOf:
- $ref: '#/components/schemas/TrackingUrls'
description: 'Third-party tracking URLs.
JSON object with the format:
{"Tracking event enum":[URL
string array],...}
For example: {"impression": ["URL1", "URL2"], "click":
["URL1", "URL2", "URL3"]}.
Up to three tracking URLs are supported
for each event type. Tracking URLs set at the ad group or ad level can
override those set at the campaign level. May be null. Pass in an empty
object - {} - to remove tracking URLs.
For more information, see
Third-party and dynamic tracking.'
nullable: true
auto_targeting_enabled:
type: boolean
description: Enable auto-targeting for ad group. Default value is True.
Also known as "Pinterest Performance+ targeting".
example: true
nullable: true
placement_group:
type: string
allOf:
- $ref: '#/components/schemas/PlacementGroupType'
description: Placement group.
pacing_delivery_type:
type: string
allOf:
- $ref: '#/components/schemas/PacingDeliveryType'
campaign_id:
description: Campaign ID of the ad group.
type: string
pattern: ^[C]?\d+$
example: '626736533506'
billable_event:
$ref: '#/components/schemas/ActionType'
bid_strategy_type:
nullable: true
description: Bid strategy type. For Campaigns with Video Completion objectives,
the only supported bid strategy type is AUTOMATIC_BID, also known as "Pinterest
Performance+ bidding".
enum:
- AUTOMATIC_BID
- MAX_BID
- TARGET_AVG
- null
example: MAX_BID
title: BidStrategyType
type: string
targeting_template_ids:
type: array
description: 'Targeting template IDs applied to the ad group. We currently
only support 1 targeting template per ad group. To use targeting templates,
do not set any other targeting fields: targeting_spec, tracking_urls,
auto_targeting_enabled, placement_group. To clear all targeting template
IDs, set this field to [''0''].'
items:
description: Targeting template ID.
type: string
pattern: ^\d+$
example: '643'
maxItems: 1
nullable: true
is_creative_optimization:
type: boolean
description: Enable creative optimization for the ad group, default value
is FALSE. When enabled, you allow Pinterest to automatically turn your
product Pins into ads in different formats (collections and shopping)
and deliver those ads to users at scale.
example: true
nullable: true
promotion_id:
type: string
description: Promotion ID. To clear this field, set to null.
pattern: ^\d+$
example: '7834020347906'
nullable: true
default: '0'
promotion_application_level:
type: string
description: Specify if the promotion is applied at ad group or item level
nullable: true
example: ITEM
enum:
- NONE
- ITEM
- AD_GROUP
- null
AdGroupCreateRequest:
type: object
allOf:
- $ref: '#/components/schemas/AdGroupCommon'
- type: object
properties:
pacing_delivery_type:
type: string
allOf:
- $ref: '#/components/schemas/PacingDeliveryType'
default: STANDARD
auto_targeting_enabled:
type: boolean
allOf:
- type: boolean
description: Enable auto-targeting for ad group. Default value is True.
Also known as "Pinterest Performance+ targeting".
example: true
budget_type:
type: string
allOf:
- $ref: '#/components/schemas/BudgetType'
default: DAILY
bid_multiplier:
description: |-
Pinterest Performance+ campaigns.
type: number
example: 1
minimum: 0
maximum: 10
required:
- billable_event
- campaign_id
- name
AdGroupResponse:
type: object
allOf:
- $ref: '#/components/schemas/AdGroupCommon'
- type: object
properties:
id:
description: Ad group ID.
type: string
pattern: ^\d+$
example: '2680060704746'
ad_account_id:
description: Advertiser ID.
type: string
pattern: ^\d+$
example: '549755885175'
created_time:
description: Ad group creation time. Unix timestamp in seconds.
type: integer
example: 1476477189
updated_time:
description: Ad group last update time. Unix timestamp in seconds.
type: integer
example: 1476477189
type:
description: Always "adgroup".
type: string
default: adgroup
conversion_learning_mode_type:
type: string
description: oCPM learn mode
example: ACTIVE
nullable: true
enum:
- NOT_ACTIVE
- ACTIVE
- null
summary_status:
type: string
allOf:
- $ref: '#/components/schemas/AdGroupSummaryStatus'
description: Ad group summary status.
feed_profile_id:
description: Feed Profile ID associated to the adgroup.
type: string
example: '626736533506'
dca_assets:
description: '[DCA] The Dynamic creative assets to use for DCA. Dynamic
Creative Assembly (DCA) accepts basic creative assets of an ad (image,
video, title, call to action, logo etc). Then it automatically generates
optimized ad combinations based on these assets.'
bid_multiplier:
description: |-
Pinterest Performance+ campaigns.
type: number
example: 1
minimum: 0
maximum: 10
nullable: true
AdGroupSummaryStatus:
type: string
description: Summary status for ad group
example: RUNNING
enum:
- RUNNING
- PAUSED
- NOT_STARTED
- COMPLETED
- ADVERTISER_DISABLED
- ARCHIVED
- DRAFT
- DELETED_DRAFT
AdGroupUpdateRequest:
type: object
allOf:
- $ref: '#/components/schemas/AdGroupCommon'
- type: object
properties:
id:
description: Ad group ID.
type: string
pattern: ^\d+$
example: '2680060704746'
bid_multiplier:
description: |-
Pinterest Performance+ campaigns.
type: number
example: 1
minimum: 0
maximum: 10
required:
- id
AdGroupsAnalyticsResponse:
type: array
items:
type: object
properties:
AD_GROUP_ID:
description: The ID of the ad group that this metrics belongs to. Returned
as long as aggregate_report_rows is not true.
type: string
pattern: ^\d+$
DATE:
description: Current metrics date. Only returned when granularity is a
time-based value (`DAY`, `HOUR`, `WEEK`, `MONTH`)
type: string
format: date
additionalProperties: true
example:
DATE: '2021-04-01'
AD_GROUP_ID: '547602124502'
SPEND_IN_DOLLAR: 30
TOTAL_CLICKTHROUGH: 216
AdGroupAudienceSizingRequest:
type: object
properties:
auto_targeting_enabled:
type: boolean
description: Enable auto-targeting for ad group. Default value is True.
Also known as "Pinterest Performance+ targeting".
example: true
default: true
placement_group:
type: string
allOf:
- $ref: '#/components/schemas/PlacementGroupType'
default: ALL
description: Placement group.
creative_types:
description: Pin creative types filter.
review_status
is "REJECTED".
type: array
items:
type: string
description: ad disapproval reasons
enum:
- HASHTAGS
- PROMOTIONS_AND_PRICES
- TARGETING
- LANDING_PAGE
- CAPS_AND_SYMBOLS
- SHOCKING
- WEIGHT_LOSS
- PROHIBITED_PRODUCT
- AUTHENTICITY
- NUDITY
- CONFUSING_DESIGN
- URGENCY
- RATINGS
- APP
- ALCOHOL
- CONTESTS
- POLITICAL
- OTHER
- IMAGE
- NAR
- INCONSISTENT
- CLICKBAIT
- NO_DESCRIPTION
- LOW_QUALITY
- EXAGGERATED_CLAIMS
- PINTEREST_BRAND
- ALCOHOL_NO_SALE
- LANDING_PAGE_SPEED
- LANDING_PAGE_HARDWALL
- LANDING_PAGE_BROKEN
- LANDING_PAGE_QUALITY
- OUT_OF_STOCK
- IMAGE_LOW_QUALITY
- IMAGE_BUSY
- IMAGE_POORLY_EDITED
- IMAGE_BEFORE_AFTER
- UGC
- FAKE_BUTTONS
- WEAPONS
- SENSITIVE
- UNACCEPTABLE_BUSINESS
- SUSPICIOUS_CLAIMS
- PHARMA
- SUSPICIOUS_SUPPLEMENTS
- ILLEGAL_RECREATIONAL_DRUG
- LOW_QUALITY_LANDING_PAGE
- RESTRICTED_HEALTHCARE
- INCONSISTENT_LANG_FR
rejection_labels:
description: Text reason why the pin was rejected. Returned if review_status
is "REJECTED".
type: array
items:
type: string
review_status:
type: string
description: Ad review status
example: PENDING
enum:
- OTHER
- PENDING
- REJECTED
- APPROVED
type:
description: Always "ad".
example: pinpromotion
type: string
updated_time:
description: Last update time. Unix timestamp in seconds.
example: 1451431341
type: integer
summary_status:
type: string
allOf:
- $ref: '#/components/schemas/PinPromotionSummaryStatus'
description: Ad summary status
AdUpdateRequest:
type: object
allOf:
- $ref: '#/components/schemas/AdCommon'
- type: object
title: AdUpdateRequest
properties:
id:
type: string
example: '687195134316'
pattern: ^\d+$
description: The ID of this ad.
title: id
pin_id:
type: string
description: Pin ID. This field may only be updated for draft ads.
example: '394205773611545468'
pattern: ^\d+$
nullable: true
required:
- id
AdsAnalyticsAdGroupTargetingType:
type: string
description: Reporting targeting type for ad groups
example: APPTYPE
enum:
- KEYWORD
- APPTYPE
- GENDER
- LOCATION
- PLACEMENT
- COUNTRY
- TARGETED_INTEREST
- PINNER_INTEREST
- AUDIENCE_INCLUDE
- GEO
- AGE_BUCKET
- REGION
- AGE_BUCKET_AND_GENDER
- CREATIVE_ENHANCEMENTS
AdsAnalyticsAdTargetingType:
type: string
description: Reporting targeting type for ads
example: APPTYPE
enum:
- KEYWORD
- APPTYPE
- GENDER
- LOCATION
- PLACEMENT
- COUNTRY
- TARGETED_INTEREST
- PINNER_INTEREST
- AUDIENCE_INCLUDE
- GEO
- AGE_BUCKET
- REGION
- QUIZ_RESULT
- AGE_BUCKET_AND_GENDER
AdsAnalyticsCampaignTargetingType:
type: string
description: Reporting targeting type for campaigns
example: APPTYPE
enum:
- KEYWORD
- APPTYPE
- GENDER
- LOCATION
- PLACEMENT
- COUNTRY
- TARGETED_INTEREST
- PINNER_INTEREST
- AUDIENCE_INCLUDE
- GEO
- AGE_BUCKET
- REGION
- CREATIVE_TYPE
- AGE_BUCKET_AND_GENDER
- AUDIENCE_MULTIPLIER
AdsAnalyticsCreateAsyncRequest:
type: object
allOf:
- type: object
properties:
start_date:
description: 'Metric report start date (UTC). Format: YYYY-MM-DD'
type: string
pattern: ^(\d{4})-(\d{2})-(\d{2})$
example: '2020-12-20'
end_date:
description: 'Metric report end date (UTC). Format: YYYY-MM-DD'
type: string
pattern: ^(\d{4})-(\d{2})-(\d{2})$
example: '2020-12-20'
granularity:
description: TOTAL - metrics are aggregated over the specified date range.<= 2000 characters
The link to the main hotel image. Image should be at least 75x75 pixels to avoid errors. Use the additional_image_link field to add more images of your hotel. The URL of your main_image.link must be accessible by the Pinterest user-agent, and send the accurate image. Please make sure there is no template or placeholder image at the link. Must start with http:// or https://.
tag: type: array nullable: true description: Tag appended to the image that identifies image category or details. There can be multiple tags associated with an image items: type: string additional_image_link: type: array nullable: true items: type: string description: |-<= 2000 characters
The links to additional images for your hotel. Up to ten additional images can be used to show a hotel from different angles. Must begin with http:// or https://.
example: - https://scene.example.com/image/image_v2.jpg - https://scene.example.com/image/image_v3.jpg - $ref: '#/components/schemas/CatalogsUpdatableHotelAttributes' CatalogsRetailFeedsCreateRequest: type: object title: feeds_retail_create_request description: Request object for creating a retail feed. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' default_locale: description: The locale used within a feed for product descriptions. example: en-US anyOf: - description: The locale used within a feed for product descriptions. $ref: '#/components/schemas/CatalogsLocale' - description: The locale used within a feed for product descriptions. This free text string version is deprecated in favor of official list of supported locales defined by CatalogsLocale. type: string deprecated: true credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. pattern: ^(http|https|ftp|sftp):// type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' catalog_type: $ref: '#/components/schemas/CatalogsType' catalog_id: description: Catalog id pertaining to the feed. If not provided, feed will use a default catalog based on type. Currently, this field has no effect. type: string pattern: ^\d+$ default_country: $ref: '#/components/schemas/Country' default_availability: $ref: '#/components/schemas/ProductAvailabilityType' status: type: string allOf: - $ref: '#/components/schemas/CatalogsStatus' - default: ACTIVE required: - format - location - name - catalog_type - default_country - default_locale CatalogsRetailItemsFilter: type: object properties: catalog_type: type: string enum: - RETAIL item_ids: type: array minItems: 1 maxItems: 100 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the retail item. If not provided, default to oldest retail catalog required: - catalog_type - item_ids CatalogsRetailItemsPostFilter: type: object properties: catalog_type: type: string enum: - RETAIL item_ids: type: array minItems: 1 maxItems: 1000 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the retail item. If not provided, default to oldest retail catalog required: - catalog_type - item_ids CatalogsHotelFeedsCreateRequest: type: object title: feeds_hotel_create_request description: Request object for creating a feed. Please, be aware that "default_country" and "default_locale" are not required in the spec for forward compatibility but for now the API will not accept requests without those fields. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' default_locale: description: The locale used within a feed for product descriptions. example: en-US anyOf: - description: The locale used within a feed for product descriptions. $ref: '#/components/schemas/CatalogsLocale' - description: The locale used within a feed for product descriptions. This free text string version is deprecated in favor of official list of supported locales defined by CatalogsLocale. type: string deprecated: true credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. pattern: ^(http|https|ftp|sftp):// type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' catalog_type: $ref: '#/components/schemas/CatalogsType' catalog_id: description: Catalog id pertaining to the feed. If not provided, feed will use a default catalog based on type. At the moment a catalog can not have multiple hotel feeds but this will change in the future. type: string pattern: ^\d+$ status: type: string allOf: - $ref: '#/components/schemas/CatalogsStatus' - default: ACTIVE required: - format - location - name - catalog_type - default_locale CatalogsHotelItemsFilter: type: object properties: catalog_type: type: string enum: - HOTEL hotel_ids: type: array minItems: 1 maxItems: 100 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the hotel item. If not provided, default to oldest hotel catalog required: - catalog_type - hotel_ids CatalogsHotelItemsPostFilter: type: object properties: catalog_type: type: string enum: - HOTEL hotel_ids: type: array minItems: 1 maxItems: 1000 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the hotel item. If not provided, default to oldest hotel catalog required: - catalog_type - hotel_ids CatalogsCreativeAssetsItemsFilter: type: object properties: catalog_type: type: string enum: - CREATIVE_ASSETS creative_assets_ids: type: array minItems: 1 maxItems: 100 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the creative assets item. If not provided, default to oldest creative assets catalog required: - catalog_type - creative_assets_ids CatalogsCreativeAssetsItemsPostFilter: type: object properties: catalog_type: type: string enum: - CREATIVE_ASSETS creative_assets_ids: type: array minItems: 1 maxItems: 1000 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the creative assets item. If not provided, default to oldest creative assets catalog required: - catalog_type - creative_assets_ids CatalogsCreativeAssetsFeedsCreateRequest: type: object title: feeds_creative_assets_create_request description: Request object for creating a feed. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' default_locale: description: The locale used within a feed for product descriptions. example: en-US anyOf: - description: The locale used within a feed for product descriptions. $ref: '#/components/schemas/CatalogsLocale' - description: The locale used within a feed for product descriptions. This free text string version is deprecated in favor of official list of supported locales defined by CatalogsLocale. type: string deprecated: true default_country: $ref: '#/components/schemas/Country' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. pattern: ^(http|https|ftp|sftp):// type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' catalog_type: $ref: '#/components/schemas/CatalogsType' catalog_id: description: Catalog id pertaining to the feed. If not provided, feed will use a default catalog based on type. At the moment a catalog can not have multiple creative assets feeds but this will change in the future. type: string pattern: ^\d+$ status: type: string allOf: - $ref: '#/components/schemas/CatalogsStatus' - default: ACTIVE required: - format - location - name - catalog_type - default_country - default_locale CatalogsVerticalFeedsCreateRequest: type: object title: feeds_create_request description: Request object for creating a feed. oneOf: - $ref: '#/components/schemas/CatalogsRetailFeedsCreateRequest' - $ref: '#/components/schemas/CatalogsHotelFeedsCreateRequest' - $ref: '#/components/schemas/CatalogsCreativeAssetsFeedsCreateRequest' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailFeedsCreateRequest' HOTEL: '#/components/schemas/CatalogsHotelFeedsCreateRequest' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsFeedsCreateRequest' CatalogsCreativeAssetsFeedsUpdateRequest: type: object title: catalogs_feeds_update_request description: Request object for updating a feed. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: type: string pattern: ^(http|https|ftp|sftp):// description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type CatalogsRetailFeedsUpdateRequest: type: object title: catalogs_feeds_update_request description: Request object for updating a feed. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: type: string pattern: ^(http|https|ftp|sftp):// description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' default_availability: $ref: '#/components/schemas/ProductAvailabilityType' required: - catalog_type CatalogsHotelFeedsUpdateRequest: type: object title: catalogs_feeds_update_request description: Request object for updating a feed. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: type: string pattern: ^(http|https|ftp|sftp):// description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type CatalogsVerticalFeedsUpdateRequest: type: object title: feeds_update_request description: Request object for updating a feed. oneOf: - $ref: '#/components/schemas/CatalogsRetailFeedsUpdateRequest' - $ref: '#/components/schemas/CatalogsHotelFeedsUpdateRequest' - $ref: '#/components/schemas/CatalogsCreativeAssetsFeedsUpdateRequest' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailFeedsUpdateRequest' HOTEL: '#/components/schemas/CatalogsHotelFeedsUpdateRequest' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsFeedsUpdateRequest' CatalogsFeedsUpdateRequest: type: object title: legacy_retail_only description: Request object for updating a feed. additionalProperties: false properties: default_availability: $ref: '#/components/schemas/ProductAvailabilityType' default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: type: string pattern: ^(http|https|ftp|sftp):// description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' CatalogsFormat: description: The file format of a feed. type: string enum: - TSV - CSV - XML CatalogsItemValidationDetails: type: object properties: attribute_name: $ref: '#/components/schemas/NullableCatalogsItemFieldType' description: Attribute that has a validation issue. provided_value: type: string nullable: true description: Provided value that caused the validation issue. required: - attribute_name - provided_value CatalogsItemValidationErrors: type: object properties: ADULT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an invalid adult value. ADWORDS_FORMAT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Adword link contains too many characters. AVAILABILITY_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing availability value in its product metadata, this item will not be published. BLOCKLISTED_IMAGE_SIGNATURE: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item will not be published because it doesn't meet Pinterest's Merchant Guidelines. DESCRIPTION_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing description in its product metadata, this item will not be published. DUPLICATE_PRODUCTS: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: This product is duplicated. The duplicate entry will not be published. IMAGE_LINK_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Image link is invalid. IMAGE_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has image_link URL that contains too many characters, so the item will not be published. IMAGE_LINK_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing an image link URL in its product metadata, this item will not be published. INVALID_DOMAIN: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Product link value doesn't match the verified domain associated with this account. ITEMID_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing item id in its product metadata, this item will not be published. ITEM_MAIN_IMAGE_DOWNLOAD_FAILURE: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Main image can't be found. LINK_FORMAT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Link is invalid. LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Product link contains too many characters, this item will not be published. LIST_PRICE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a list price formatting error, this item will not be published. MAX_ITEMS_PER_ITEM_GROUP_EXCEEDED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item exceed the maximum number of items per item group, this item will not be published. PARSE_LINE_ERROR: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item contains formating errors. PINJOIN_CONTENT_UNSAFE: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item will not be published because it doesn't meet Pinterest's Merchant Guidelines. PRICE_CANNOT_BE_DETERMINED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item price cannot be determined because the price, list price, and sale price are all different. PRICE_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Product is missing a price, this item will not be published. PRODUCT_LINK_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing a link URL in its product metadata, this item will not be published. PRODUCT_PRICE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a price formatting error in its product metadata, this item will not be published. TITLE_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing title in its product metadata, this item will not be published. CatalogsItemValidationIssue: type: string enum: - AD_IMAGE_0_LINK_LENGTH_TOO_LONG - AD_IMAGE_1_LINK_LENGTH_TOO_LONG - AD_IMAGE_2_LINK_LENGTH_TOO_LONG - AD_IMAGE_3_LINK_LENGTH_TOO_LONG - AD_IMAGE_4_LINK_LENGTH_TOO_LONG - AD_IMAGE_5_LINK_LENGTH_TOO_LONG - AD_IMAGE_6_LINK_LENGTH_TOO_LONG - AD_IMAGE_7_LINK_LENGTH_TOO_LONG - AD_IMAGE_8_LINK_LENGTH_TOO_LONG - AD_IMAGE_9_LINK_LENGTH_TOO_LONG - AD_IMAGE_10_LINK_LENGTH_TOO_LONG - AD_IMAGE_11_LINK_LENGTH_TOO_LONG - AD_IMAGE_12_LINK_LENGTH_TOO_LONG - AD_IMAGE_13_LINK_LENGTH_TOO_LONG - AD_IMAGE_14_LINK_LENGTH_TOO_LONG - AD_IMAGE_15_LINK_LENGTH_TOO_LONG - AD_IMAGE_16_LINK_LENGTH_TOO_LONG - AD_IMAGE_17_LINK_LENGTH_TOO_LONG - AD_IMAGE_18_LINK_LENGTH_TOO_LONG - AD_IMAGE_19_LINK_LENGTH_TOO_LONG - AD_IMAGE_0_LINK_WARNING - AD_IMAGE_1_LINK_WARNING - AD_IMAGE_2_LINK_WARNING - AD_IMAGE_3_LINK_WARNING - AD_IMAGE_4_LINK_WARNING - AD_IMAGE_5_LINK_WARNING - AD_IMAGE_6_LINK_WARNING - AD_IMAGE_7_LINK_WARNING - AD_IMAGE_8_LINK_WARNING - AD_IMAGE_9_LINK_WARNING - AD_IMAGE_10_LINK_WARNING - AD_IMAGE_11_LINK_WARNING - AD_IMAGE_12_LINK_WARNING - AD_IMAGE_13_LINK_WARNING - AD_IMAGE_14_LINK_WARNING - AD_IMAGE_15_LINK_WARNING - AD_IMAGE_16_LINK_WARNING - AD_IMAGE_17_LINK_WARNING - AD_IMAGE_18_LINK_WARNING - AD_IMAGE_19_LINK_WARNING - AD_IMAGE_0_LINK_REQUIRED - AD_IMAGE_1_LINK_REQUIRED - AD_IMAGE_2_LINK_REQUIRED - AD_IMAGE_3_LINK_REQUIRED - AD_IMAGE_4_LINK_REQUIRED - AD_IMAGE_5_LINK_REQUIRED - AD_IMAGE_6_LINK_REQUIRED - AD_IMAGE_7_LINK_REQUIRED - AD_IMAGE_8_LINK_REQUIRED - AD_IMAGE_9_LINK_REQUIRED - AD_IMAGE_10_LINK_REQUIRED - AD_IMAGE_11_LINK_REQUIRED - AD_IMAGE_12_LINK_REQUIRED - AD_IMAGE_13_LINK_REQUIRED - AD_IMAGE_14_LINK_REQUIRED - AD_IMAGE_15_LINK_REQUIRED - AD_IMAGE_16_LINK_REQUIRED - AD_IMAGE_17_LINK_REQUIRED - AD_IMAGE_18_LINK_REQUIRED - AD_IMAGE_19_LINK_REQUIRED - AD_IMAGE_0_TAG_LENGTH_TOO_LONG - AD_IMAGE_1_TAG_LENGTH_TOO_LONG - AD_IMAGE_2_TAG_LENGTH_TOO_LONG - AD_IMAGE_3_TAG_LENGTH_TOO_LONG - AD_IMAGE_4_TAG_LENGTH_TOO_LONG - AD_IMAGE_5_TAG_LENGTH_TOO_LONG - AD_IMAGE_6_TAG_LENGTH_TOO_LONG - AD_IMAGE_7_TAG_LENGTH_TOO_LONG - AD_IMAGE_8_TAG_LENGTH_TOO_LONG - AD_IMAGE_9_TAG_LENGTH_TOO_LONG - AD_IMAGE_10_TAG_LENGTH_TOO_LONG - AD_IMAGE_11_TAG_LENGTH_TOO_LONG - AD_IMAGE_12_TAG_LENGTH_TOO_LONG - AD_IMAGE_13_TAG_LENGTH_TOO_LONG - AD_IMAGE_14_TAG_LENGTH_TOO_LONG - AD_IMAGE_15_TAG_LENGTH_TOO_LONG - AD_IMAGE_16_TAG_LENGTH_TOO_LONG - AD_IMAGE_17_TAG_LENGTH_TOO_LONG - AD_IMAGE_18_TAG_LENGTH_TOO_LONG - AD_IMAGE_19_TAG_LENGTH_TOO_LONG - AD_IMAGE_0_TAG_REQUIRED - AD_IMAGE_1_TAG_REQUIRED - AD_IMAGE_2_TAG_REQUIRED - AD_IMAGE_3_TAG_REQUIRED - AD_IMAGE_4_TAG_REQUIRED - AD_IMAGE_5_TAG_REQUIRED - AD_IMAGE_6_TAG_REQUIRED - AD_IMAGE_7_TAG_REQUIRED - AD_IMAGE_8_TAG_REQUIRED - AD_IMAGE_9_TAG_REQUIRED - AD_IMAGE_10_TAG_REQUIRED - AD_IMAGE_11_TAG_REQUIRED - AD_IMAGE_12_TAG_REQUIRED - AD_IMAGE_13_TAG_REQUIRED - AD_IMAGE_14_TAG_REQUIRED - AD_IMAGE_15_TAG_REQUIRED - AD_IMAGE_16_TAG_REQUIRED - AD_IMAGE_17_TAG_REQUIRED - AD_IMAGE_18_TAG_REQUIRED - AD_IMAGE_19_TAG_REQUIRED - AD_IMAGE_0_LINK_DUPLICATED - AD_IMAGE_1_LINK_DUPLICATED - AD_IMAGE_2_LINK_DUPLICATED - AD_IMAGE_3_LINK_DUPLICATED - AD_IMAGE_4_LINK_DUPLICATED - AD_IMAGE_5_LINK_DUPLICATED - AD_IMAGE_6_LINK_DUPLICATED - AD_IMAGE_7_LINK_DUPLICATED - AD_IMAGE_8_LINK_DUPLICATED - AD_IMAGE_9_LINK_DUPLICATED - AD_IMAGE_10_LINK_DUPLICATED - AD_IMAGE_11_LINK_DUPLICATED - AD_IMAGE_12_LINK_DUPLICATED - AD_IMAGE_13_LINK_DUPLICATED - AD_IMAGE_14_LINK_DUPLICATED - AD_IMAGE_15_LINK_DUPLICATED - AD_IMAGE_16_LINK_DUPLICATED - AD_IMAGE_17_LINK_DUPLICATED - AD_IMAGE_18_LINK_DUPLICATED - AD_IMAGE_19_LINK_DUPLICATED - AD_IMAGE_0_TAG_DUPLICATED - AD_IMAGE_1_TAG_DUPLICATED - AD_IMAGE_2_TAG_DUPLICATED - AD_IMAGE_3_TAG_DUPLICATED - AD_IMAGE_4_TAG_DUPLICATED - AD_IMAGE_5_TAG_DUPLICATED - AD_IMAGE_6_TAG_DUPLICATED - AD_IMAGE_7_TAG_DUPLICATED - AD_IMAGE_8_TAG_DUPLICATED - AD_IMAGE_9_TAG_DUPLICATED - AD_IMAGE_10_TAG_DUPLICATED - AD_IMAGE_11_TAG_DUPLICATED - AD_IMAGE_12_TAG_DUPLICATED - AD_IMAGE_13_TAG_DUPLICATED - AD_IMAGE_14_TAG_DUPLICATED - AD_IMAGE_15_TAG_DUPLICATED - AD_IMAGE_16_TAG_DUPLICATED - AD_IMAGE_17_TAG_DUPLICATED - AD_IMAGE_18_TAG_DUPLICATED - AD_IMAGE_19_TAG_DUPLICATED - AD_VIDEO_0_LINK_LENGTH_TOO_LONG - AD_VIDEO_1_LINK_LENGTH_TOO_LONG - AD_VIDEO_2_LINK_LENGTH_TOO_LONG - AD_VIDEO_0_LINK_WARNING - AD_VIDEO_1_LINK_WARNING - AD_VIDEO_2_LINK_WARNING - AD_VIDEO_0_LINK_REQUIRED - AD_VIDEO_1_LINK_REQUIRED - AD_VIDEO_2_LINK_REQUIRED - AD_VIDEO_0_LINK_DUPLICATED - AD_VIDEO_1_LINK_DUPLICATED - AD_VIDEO_2_LINK_DUPLICATED - AD_VIDEO_0_TAG_LENGTH_TOO_LONG - AD_VIDEO_1_TAG_LENGTH_TOO_LONG - AD_VIDEO_2_TAG_LENGTH_TOO_LONG - AD_VIDEO_0_TAG_REQUIRED - AD_VIDEO_1_TAG_REQUIRED - AD_VIDEO_2_TAG_REQUIRED - AD_VIDEO_0_TAG_DUPLICATED - AD_VIDEO_1_TAG_DUPLICATED - AD_VIDEO_2_TAG_DUPLICATED - VIDEO_REQUIRED_WHEN_AD_VIDEO_PROVIDED - AD_LINK_FORMAT_WARNING - AD_LINK_SAME_AS_LINK - ADDITIONAL_IMAGE_LINK_LENGTH_TOO_LONG - ADDITIONAL_IMAGE_LINK_WARNING - ADULT_INVALID - ADWORDS_FORMAT_INVALID - ADWORDS_FORMAT_WARNING - ADWORDS_SAME_AS_LINK - AGE_GROUP_INVALID - ANDROID_DEEP_LINK_INVALID - AVAILABILITY_DATE_INVALID - AVAILABILITY_INVALID - BLOCKLISTED_IMAGE_SIGNATURE - COUNTRY_DOES_NOT_MAP_TO_CURRENCY - CUSTOM_LABEL_LENGTH_TOO_LONG - DESCRIPTION_LENGTH_TOO_LONG - DESCRIPTION_MISSING - DUPLICATE_PRODUCTS - EXPIRATION_DATE_INVALID - GENDER_INVALID - GTIN_INVALID - IMAGE_LINK_INVALID - IMAGE_LINK_LENGTH_TOO_LONG - IMAGE_LINK_MISSING - IMAGE_LINK_WARNING - INVALID_DOMAIN - IOS_DEEP_LINK_INVALID - IS_BUNDLE_INVALID - ITEM_ADDITIONAL_IMAGE_DOWNLOAD_FAILURE - ITEM_MAIN_IMAGE_DOWNLOAD_FAILURE - ITEMID_MISSING - LINK_FORMAT_INVALID - LINK_FORMAT_WARNING - LINK_LENGTH_TOO_LONG - LIST_PRICE_INVALID - MAX_ITEMS_PER_ITEM_GROUP_EXCEEDED - MIN_AD_PRICE_INVALID - MPN_INVALID - MULTIPACK_INVALID - OPTIONAL_CONDITION_INVALID - OPTIONAL_CONDITION_MISSING - OPTIONAL_PRODUCT_CATEGORY_INVALID - OPTIONAL_PRODUCT_CATEGORY_MISSING - PARSE_LINE_ERROR - PINJOIN_CONTENT_UNSAFE - PRICE_CANNOT_BE_DETERMINED - PRICE_MISSING - PRODUCT_CATEGORY_DEPTH_WARNING - PRODUCT_LINK_MISSING - PRODUCT_PRICE_INVALID - PRODUCT_TYPE_LENGTH_TOO_LONG - SALE_DATE_INVALID - SALES_PRICE_INVALID - SALES_PRICE_TOO_HIGH - SALES_PRICE_TOO_LOW - SHIPPING_INVALID - SHIPPING_HEIGHT_INVALID - SHIPPING_WEIGHT_INVALID - SHIPPING_WIDTH_INVALID - SIZE_SYSTEM_INVALID - SIZE_TYPE_INVALID - TAX_INVALID - TITLE_LENGTH_TOO_LONG - TITLE_MISSING - TOO_MANY_ADDITIONAL_IMAGE_LINKS - UTM_SOURCE_AUTO_CORRECTED - WEIGHT_UNIT_INVALID CatalogsItemValidationIssues: type: object properties: item_number: description: Item number based on order of appearance in the Catalogs Feed. For example, '0' refers to first item found in a feed that was downloaded from a 'location' specified during feed creation. example: 0 type: integer item_id: description: The merchant-created unique ID that represents the product. example: DS0294-L type: string nullable: true errors: $ref: '#/components/schemas/CatalogsItemValidationErrors' warnings: $ref: '#/components/schemas/CatalogsItemValidationWarnings' required: - item_number - item_id - errors - warnings CatalogsItemValidationWarnings: type: object properties: AD_IMAGE_0_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 0 length is too long. The maximum length is 2047 characters. AD_IMAGE_1_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 1 length is too long. The maximum length is 2047 characters. AD_IMAGE_2_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 2 length is too long. The maximum length is 2047 characters. AD_IMAGE_3_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 3 length is too long. The maximum length is 2047 characters. AD_IMAGE_4_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 4 length is too long. The maximum length is 2047 characters. AD_IMAGE_5_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 5 length is too long. The maximum length is 2047 characters. AD_IMAGE_6_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 6 length is too long. The maximum length is 2047 characters. AD_IMAGE_7_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 7 length is too long. The maximum length is 2047 characters. AD_IMAGE_8_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 8 length is too long. The maximum length is 2047 characters. AD_IMAGE_9_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 9 length is too long. The maximum length is 2047 characters. AD_IMAGE_10_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 10 length is too long. The maximum length is 2047 characters. AD_IMAGE_11_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 11 length is too long. The maximum length is 2047 characters. AD_IMAGE_12_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 12 length is too long. The maximum length is 2047 characters. AD_IMAGE_13_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 13 length is too long. The maximum length is 2047 characters. AD_IMAGE_14_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 14 length is too long. The maximum length is 2047 characters. AD_IMAGE_15_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 15 length is too long. The maximum length is 2047 characters. AD_IMAGE_16_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 16 length is too long. The maximum length is 2047 characters. AD_IMAGE_17_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 17 length is too long. The maximum length is 2047 characters. AD_IMAGE_18_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 18 length is too long. The maximum length is 2047 characters. AD_IMAGE_19_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 19 length is too long. The maximum length is 2047 characters. AD_IMAGE_0_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 0 format is unsupported. AD_IMAGE_1_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 1 format is unsupported. AD_IMAGE_2_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 2 format is unsupported. AD_IMAGE_3_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 3 format is unsupported. AD_IMAGE_4_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 4 format is unsupported. AD_IMAGE_5_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 5 format is unsupported. AD_IMAGE_6_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 6 format is unsupported. AD_IMAGE_7_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 7 format is unsupported. AD_IMAGE_8_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 8 format is unsupported. AD_IMAGE_9_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 9 format is unsupported. AD_IMAGE_10_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 10 format is unsupported. AD_IMAGE_11_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 11 format is unsupported. AD_IMAGE_12_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 12 format is unsupported. AD_IMAGE_13_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 13 format is unsupported. AD_IMAGE_14_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 14 format is unsupported. AD_IMAGE_15_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 15 format is unsupported. AD_IMAGE_16_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 16 format is unsupported. AD_IMAGE_17_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 17 format is unsupported. AD_IMAGE_18_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 18 format is unsupported. AD_IMAGE_19_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 19 format is unsupported. AD_IMAGE_0_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 0 is required because an image tag was provided. AD_IMAGE_1_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 1 is required because an image tag was provided. AD_IMAGE_2_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 2 is required because an image tag was provided. AD_IMAGE_3_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 3 is required because an image tag was provided. AD_IMAGE_4_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 4 is required because an image tag was provided. AD_IMAGE_5_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 5 is required because an image tag was provided. AD_IMAGE_6_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 6 is required because an image tag was provided. AD_IMAGE_7_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 7 is required because an image tag was provided. AD_IMAGE_8_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 8 is required because an image tag was provided. AD_IMAGE_9_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 9 is required because an image tag was provided. AD_IMAGE_10_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 10 is required because an image tag was provided. AD_IMAGE_11_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 11 is required because an image tag was provided. AD_IMAGE_12_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 12 is required because an image tag was provided. AD_IMAGE_13_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 13 is required because an image tag was provided. AD_IMAGE_14_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 14 is required because an image tag was provided. AD_IMAGE_15_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 15 is required because an image tag was provided. AD_IMAGE_16_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 16 is required because an image tag was provided. AD_IMAGE_17_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 17 is required because an image tag was provided. AD_IMAGE_18_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 18 is required because an image tag was provided. AD_IMAGE_19_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image link 19 is required because an image tag was provided. AD_IMAGE_0_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 0 length is too long. The maximum length is 511 characters. AD_IMAGE_1_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 1 length is too long. The maximum length is 511 characters. AD_IMAGE_2_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 2 length is too long. The maximum length is 511 characters. AD_IMAGE_3_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 3 length is too long. The maximum length is 511 characters. AD_IMAGE_4_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 4 length is too long. The maximum length is 511 characters. AD_IMAGE_5_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 5 length is too long. The maximum length is 511 characters. AD_IMAGE_6_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 6 length is too long. The maximum length is 511 characters. AD_IMAGE_7_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 7 length is too long. The maximum length is 511 characters. AD_IMAGE_8_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 8 length is too long. The maximum length is 511 characters. AD_IMAGE_9_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 9 length is too long. The maximum length is 511 characters. AD_IMAGE_10_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 10 length is too long. The maximum length is 511 characters. AD_IMAGE_11_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 11 length is too long. The maximum length is 511 characters. AD_IMAGE_12_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 12 length is too long. The maximum length is 511 characters. AD_IMAGE_13_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 13 length is too long. The maximum length is 511 characters. AD_IMAGE_14_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 14 length is too long. The maximum length is 511 characters. AD_IMAGE_15_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 15 length is too long. The maximum length is 511 characters. AD_IMAGE_16_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 16 length is too long. The maximum length is 511 characters. AD_IMAGE_17_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 17 length is too long. The maximum length is 511 characters. AD_IMAGE_18_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 18 length is too long. The maximum length is 511 characters. AD_IMAGE_19_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 19 length is too long. The maximum length is 511 characters. AD_IMAGE_0_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 0 is required because an image link was provided. AD_IMAGE_1_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 1 is required because an image link was provided. AD_IMAGE_2_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 2 is required because an image link was provided. AD_IMAGE_3_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 3 is required because an image link was provided. AD_IMAGE_4_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 4 is required because an image link was provided. AD_IMAGE_5_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 5 is required because an image link was provided. AD_IMAGE_6_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 6 is required because an image link was provided. AD_IMAGE_7_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 7 is required because an image link was provided. AD_IMAGE_8_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 8 is required because an image link was provided. AD_IMAGE_9_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 9 is required because an image link was provided. AD_IMAGE_10_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 10 is required because an image link was provided. AD_IMAGE_11_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 11 is required because an image link was provided. AD_IMAGE_12_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 12 is required because an image link was provided. AD_IMAGE_13_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 13 is required because an image link was provided. AD_IMAGE_14_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 14 is required because an image link was provided. AD_IMAGE_15_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 15 is required because an image link was provided. AD_IMAGE_16_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 16 is required because an image link was provided. AD_IMAGE_17_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 17 is required because an image link was provided. AD_IMAGE_18_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 18 is required because an image link was provided. AD_IMAGE_19_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Ad image tag 19 is required because an image link was provided. AD_IMAGE_0_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_0_link is duplicated with another ad image link. AD_IMAGE_1_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_1_link is duplicated with another ad image link. AD_IMAGE_2_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_2_link is duplicated with another ad image link. AD_IMAGE_3_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_3_link is duplicated with another ad image link. AD_IMAGE_4_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_4_link is duplicated with another ad image link. AD_IMAGE_5_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_5_link is duplicated with another ad image link. AD_IMAGE_6_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_6_link is duplicated with another ad image link. AD_IMAGE_7_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_7_link is duplicated with another ad image link. AD_IMAGE_8_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_8_link is duplicated with another ad image link. AD_IMAGE_9_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_9_link is duplicated with another ad image link. AD_IMAGE_10_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_10_link is duplicated with another ad image link. AD_IMAGE_11_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_11_link is duplicated with another ad image link. AD_IMAGE_12_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_12_link is duplicated with another ad image link. AD_IMAGE_13_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_13_link is duplicated with another ad image link. AD_IMAGE_14_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_14_link is duplicated with another ad image link. AD_IMAGE_15_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_15_link is duplicated with another ad image link. AD_IMAGE_16_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_16_link is duplicated with another ad image link. AD_IMAGE_17_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_17_link is duplicated with another ad image link. AD_IMAGE_18_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_18_link is duplicated with another ad image link. AD_IMAGE_19_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_19_link is duplicated with another ad image link. AD_IMAGE_0_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_0_tag is duplicated with another ad image tag. AD_IMAGE_1_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_1_tag is duplicated with another ad image tag. AD_IMAGE_2_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_2_tag is duplicated with another ad image tag. AD_IMAGE_3_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_3_tag is duplicated with another ad image tag. AD_IMAGE_4_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_4_tag is duplicated with another ad image tag. AD_IMAGE_5_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_5_tag is duplicated with another ad image tag. AD_IMAGE_6_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_6_tag is duplicated with another ad image tag. AD_IMAGE_7_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_7_tag is duplicated with another ad image tag. AD_IMAGE_8_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_8_tag is duplicated with another ad image tag. AD_IMAGE_9_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_9_tag is duplicated with another ad image tag. AD_IMAGE_10_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_10_tag is duplicated with another ad image tag. AD_IMAGE_11_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_11_tag is duplicated with another ad image tag. AD_IMAGE_12_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_12_tag is duplicated with another ad image tag. AD_IMAGE_13_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_13_tag is duplicated with another ad image tag. AD_IMAGE_14_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_14_tag is duplicated with another ad image tag. AD_IMAGE_15_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_15_tag is duplicated with another ad image tag. AD_IMAGE_16_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_16_tag is duplicated with another ad image tag. AD_IMAGE_17_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_17_tag is duplicated with another ad image tag. AD_IMAGE_18_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_18_tag is duplicated with another ad image tag. AD_IMAGE_19_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_image_19_tag is duplicated with another ad image tag. AD_VIDEO_0_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_0_link length is too long. The maximum length is 511 characters. AD_VIDEO_1_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_1_link length is too long. The maximum length is 511 characters. AD_VIDEO_2_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_2_link length is too long. The maximum length is 511 characters. AD_VIDEO_0_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_0_link is formatted incorrectly and will not be published with your items. AD_VIDEO_1_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_1_link is formatted incorrectly and will not be published with your items. AD_VIDEO_2_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_2_link is formatted incorrectly and will not be published with your items. AD_VIDEO_0_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_0_link is required for this item because ad_video_0_tag was provided. AD_VIDEO_1_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_1_link is required for this item because ad_video_1_tag was provided. AD_VIDEO_2_LINK_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_2_link is required for this item because ad_video_2_tag was provided. AD_VIDEO_0_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_0_link is duplicated with another ad video link. AD_VIDEO_1_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_1_link is duplicated with another ad video link. AD_VIDEO_2_LINK_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_2_link is duplicated with another ad video link. AD_VIDEO_0_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_0_tag length is too long. The maximum length is 511 characters. AD_VIDEO_1_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_1_tag length is too long. The maximum length is 511 characters. AD_VIDEO_2_TAG_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_2_tag length is too long. The maximum length is 511 characters. AD_VIDEO_0_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_0_tag is required because ad_video_0_link was provided. AD_VIDEO_1_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_1_tag is required because ad_video_1_link was provided. AD_VIDEO_2_TAG_REQUIRED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_2_tag is required because ad_video_2_link was provided. AD_VIDEO_0_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_0_tag is duplicated with another ad video tag. AD_VIDEO_1_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_1_tag is duplicated with another ad video tag. AD_VIDEO_2_TAG_DUPLICATED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: ad_video_2_tag is duplicated with another ad video tag. VIDEO_REQUIRED_WHEN_AD_VIDEO_PROVIDED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: A video is required in the item when ad_video fields are provided. AD_LINK_FORMAT_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an ad link that is formatted incorrectly. AD_LINK_SAME_AS_LINK: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an ad link URL that is duplicate of the link URL. ADDITIONAL_IMAGE_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an additional_image_link URL that contains too many characters, so the item will not be published. ADDITIONAL_IMAGE_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has additional_image_link URLs that are formatted incorrectly and will not be published with your items. ADWORDS_FORMAT_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an adwords_redirect link that is formatted incorrectly. ADWORDS_SAME_AS_LINK: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an adwords_redirect URL that is duplicate of the link URL. AGE_GROUP_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an age group value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences. SIZE_SYSTEM_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Some items have size system values which are not one of the supported size systems. ANDROID_DEEP_LINK_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes an invalid android_deep_link. AVAILABILITY_DATE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an availability_date value that is formatted incorrectly, this item will be published without an availability date. COUNTRY_DOES_NOT_MAP_TO_CURRENCY: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes a currency that doesn't match the usual currency for the location where the product is sold or shipped. CUSTOM_LABEL_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a custom_label value that is too long, this item will be published without that custom label. DESCRIPTION_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: The description for this item was truncated because it contains too many characters. EXPIRATION_DATE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an expiration_date value that is formatted incorrectly, this item will be published without an expiration date. GENDER_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a gender value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences. GTIN_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a GTIN value that is formatted incorrectly. IMAGE_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an image_link URL that is formatted incorrectly and will not be published. IOS_DEEP_LINK_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes an invalid ios_deep_link value. IS_BUNDLE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an is_bundle value that is formatted incorrectly, this item will be published without being bundled with other products. ITEM_ADDITIONAL_IMAGE_DOWNLOAD_FAILURE: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes additional_image_links that can't be found. LINK_FORMAT_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an invalid product link which contains invalid UTM tracking paramaters. MIN_AD_PRICE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes a min_ad_price value that is formatted incorrectly. MPN_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a MPN value that is formatted incorrectly. MULTIPACK_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an invalid multipack value. OPTIONAL_CONDITION_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes a condition value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences. OPTIONAL_CONDITION_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing condition value, which may limit visibility in recommendations, search results and shopping experiences. OPTIONAL_PRODUCT_CATEGORY_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes a google_product_category value that is not formatted correctly according to the GPC taxonomy. OPTIONAL_PRODUCT_CATEGORY_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing google_product_category. PRODUCT_CATEGORY_DEPTH_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item only has 1 or 2 levels of google_product_category value, which may limit visibility in recommendations, search results and shopping experiences. PRODUCT_TYPE_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a product_type value that is too long, this item will be published without that product type. SALES_PRICE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an incorrectly formatted sales price. SALES_PRICE_TOO_LOW: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a sale price value that is discounted very low compared to the price. SALES_PRICE_TOO_HIGH: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a sale price value that is higher than the original price of the item. SALE_DATE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a sale_price_effective_date value that is formatted incorrectly, this item will be published without a sale date. SHIPPING_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a shipping value that is formatted incorrectly. SHIPPING_HEIGHT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an incorrectly formatted shipping_height value. The value must first contain a numeric value then a valid dimension unit type. SHIPPING_WEIGHT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an invalid shipping_weight value. SHIPPING_WIDTH_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an incorrectly formatted shipping_width value. The value must first contain a numeric value then a valid dimension unit type. SIZE_TYPE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a size type value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences. TAX_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a tax value that is formatted incorrectly. TITLE_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: The title for the item was truncated because it contains too many characters. TOO_MANY_ADDITIONAL_IMAGE_LINKS: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a additional_image_link value that exceed the limit for additional images, this item will be published without some of your images. UTM_SOURCE_AUTO_CORRECTED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes an utm_source value that is formatted incorrectly and has been automatically corrected. WEIGHT_UNIT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a weight_unit value that is formatted incorrectly, this item will be published without a weight unit. CatalogsItems: type: object description: Response object of catalogs items properties: items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemResponse' CatalogsItemsBatch: type: object description: Object describing the catalogs items batch properties: catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type oneOf: - $ref: '#/components/schemas/CatalogsRetailItemsBatch' - $ref: '#/components/schemas/CatalogsHotelItemsBatch' - $ref: '#/components/schemas/CatalogsCreativeAssetsItemsBatch' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailItemsBatch' HOTEL: '#/components/schemas/CatalogsHotelItemsBatch' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsItemsBatch' CatalogsItemsFilters: type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type oneOf: - $ref: '#/components/schemas/CatalogsRetailItemsFilter' - $ref: '#/components/schemas/CatalogsHotelItemsFilter' - $ref: '#/components/schemas/CatalogsCreativeAssetsItemsFilter' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailItemsFilter' HOTEL: '#/components/schemas/CatalogsHotelItemsFilter' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsItemsFilter' CatalogsItemsPostFilters: type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type oneOf: - $ref: '#/components/schemas/CatalogsRetailItemsPostFilter' - $ref: '#/components/schemas/CatalogsHotelItemsPostFilter' - $ref: '#/components/schemas/CatalogsCreativeAssetsItemsPostFilter' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailItemsPostFilter' HOTEL: '#/components/schemas/CatalogsHotelItemsPostFilter' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsItemsPostFilter' CatalogsCreativeAssetsItemsBatch: type: object description: Object describing the catalogs creative assets items batch properties: batch_id: description: Id of the catalogs items batch example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e type: string created_time: description: 'Date and time (UTC) of the batch creation: YYYY-MM-DD''T''hh:mm:ss' example: '2024-01-01T20:10:40' type: string format: date-time readOnly: true completed_time: description: 'Date and time (UTC) of the batch completion: YYYY-MM-DD''T''hh:mm:ss' example: '2024-01-01T20:20:00' type: string format: date-time readOnly: true nullable: true status: $ref: '#/components/schemas/BatchOperationStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' items: description: Array with the catalogs items processing records part of the catalogs items batch items: $ref: '#/components/schemas/CreativeAssetsProcessingRecord' type: array required: - catalog_type CatalogsHotelItemsBatch: type: object description: Object describing the catalogs hotel items batch properties: batch_id: description: Id of the catalogs items batch example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e type: string created_time: description: 'Date and time (UTC) of the batch creation: YYYY-MM-DD''T''hh:mm:ss' example: '2024-01-01T20:10:40' type: string format: date-time readOnly: true completed_time: description: 'Date and time (UTC) of the batch completion: YYYY-MM-DD''T''hh:mm:ss' example: '2024-01-01T20:20:00' type: string format: date-time readOnly: true nullable: true status: $ref: '#/components/schemas/BatchOperationStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' items: description: Array with the catalogs items processing records part of the catalogs items batch items: $ref: '#/components/schemas/HotelProcessingRecord' type: array required: - catalog_type CatalogsRetailItemsBatch: type: object description: Object describing the catalogs retail items batch properties: batch_id: description: Id of the catalogs items batch example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e type: string created_time: description: 'Date and time (UTC) of the batch creation: YYYY-MM-DD''T''hh:mm:ss' example: '2024-01-01T20:10:40' type: string format: date-time readOnly: true completed_time: description: 'Date and time (UTC) of the batch completion: YYYY-MM-DD''T''hh:mm:ss' example: '2024-01-01T20:20:00' type: string format: date-time readOnly: true nullable: true status: $ref: '#/components/schemas/BatchOperationStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' items: description: Array with the catalogs items processing records part of the catalogs items batch items: $ref: '#/components/schemas/ItemProcessingRecord' type: array required: - catalog_type CatalogsItemsRequest: type: object additionalProperties: false description: Request object of catalogs items properties: country: $ref: '#/components/schemas/Country' language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' filters: $ref: '#/components/schemas/CatalogsItemsPostFilters' required: - country - language - filters CatalogsItemsBatchRequest: type: object title: legacy_retail_only description: Request object of catalogs items batch oneOf: - $ref: '#/components/schemas/CatalogsItemsUpdateBatchRequest' - $ref: '#/components/schemas/CatalogsItemsUpsertBatchRequest' - $ref: '#/components/schemas/CatalogsItemsCreateBatchRequest' - $ref: '#/components/schemas/CatalogsItemsDeleteDiscontinuedBatchRequest' - $ref: '#/components/schemas/CatalogsItemsDeleteBatchRequest' discriminator: propertyName: operation mapping: UPDATE: '#/components/schemas/CatalogsItemsUpdateBatchRequest' UPSERT: '#/components/schemas/CatalogsItemsUpsertBatchRequest' CREATE: '#/components/schemas/CatalogsItemsCreateBatchRequest' DELETE_DISCONTINUED: '#/components/schemas/CatalogsItemsDeleteDiscontinuedBatchRequest' DELETE: '#/components/schemas/CatalogsItemsDeleteBatchRequest' CatalogsItemsCreateBatchRequest: description: Request object to create catalogs items type: object additionalProperties: false properties: country: $ref: '#/components/schemas/Country' language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemCreateBatchRecord' minItems: 1 maxItems: 1000 required: - country - language - operation - items CatalogsItemsDeleteBatchRequest: description: Request object to delete catalogs items type: object additionalProperties: false properties: country: $ref: '#/components/schemas/Country' language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemDeleteBatchRecord' required: - country - language - operation - items CatalogsItemsDeleteDiscontinuedBatchRequest: description: Request object to discontinue catalogs items type: object additionalProperties: false properties: country: $ref: '#/components/schemas/Country' language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemDeleteDiscontinuedBatchRecord' required: - country - language - operation - items CatalogsItemsUpdateBatchRequest: description: Request object to update catalogs items type: object additionalProperties: false properties: country: $ref: '#/components/schemas/Country' language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemUpdateBatchRecord' minItems: 1 maxItems: 1000 required: - country - language - operation - items CatalogsItemsUpsertBatchRequest: description: Request object to upsert catalogs items type: object properties: country: $ref: '#/components/schemas/Country' language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemUpsertBatchRecord' minItems: 1 maxItems: 1000 required: - country - language - operation - items CatalogsListProductsByFilterRequest: description: Request object to list products for a given product group filter. type: object oneOf: - $ref: '#/components/schemas/CatalogsListProductsByFeedBasedFilter' - $ref: '#/components/schemas/CatalogsVerticalsListProductsByCatalogBasedFilterRequest' CatalogsListProductsByFeedBasedFilter: title: feed based product group description: Request object to list products for a given feed_id and product group filter. type: object additionalProperties: false properties: feed_id: description: Catalog Feed id pertaining to the catalog product group filter. example: '2680059592705' type: string pattern: ^\d+$ filters: $ref: '#/components/schemas/CatalogsProductGroupFilters' required: - feed_id - filters CatalogsVerticalsListProductsByCatalogBasedFilterRequest: type: object title: catalog based product group description: Request object to list products for a given catalog_id and product group filter. oneOf: - $ref: '#/components/schemas/CatalogsRetailListProductsByCatalogBasedFilterRequest' - $ref: '#/components/schemas/CatalogsHotelListProductsByCatalogBasedFilterRequest' - $ref: '#/components/schemas/CatalogsCreativeAssetsListProductsByCatalogBasedFilterRequest' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailListProductsByCatalogBasedFilterRequest' HOTEL: '#/components/schemas/CatalogsHotelListProductsByCatalogBasedFilterRequest' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsListProductsByCatalogBasedFilterRequest' CatalogsRetailListProductsByCatalogBasedFilterRequest: type: object title: retail_list_products_by_catalog_based_filter_request additionalProperties: false description: Request object to list products for a given retail catalog_id and product group filter. properties: catalog_type: type: string enum: - RETAIL description: Retail catalog based product group is available only for selected partners at the moment. If you are not eligible, please use feed based one. catalog_id: description: Catalog id pertaining to the retail product group. example: '2680059592705' type: string pattern: ^\d+$ filters: $ref: '#/components/schemas/CatalogsProductGroupFilters' country: $ref: '#/components/schemas/Country' locale: $ref: '#/components/schemas/CatalogsLocale' required: - catalog_type - catalog_id - filters - country - locale CatalogsHotelListProductsByCatalogBasedFilterRequest: type: object title: hotel_list_products_by_catalog_based_filter_request additionalProperties: false description: Request object to list products for a given hotel catalog_id and product group filter. properties: catalog_type: type: string enum: - HOTEL catalog_id: description: Catalog id pertaining to the hotel product group. example: '2680059592705' type: string pattern: ^\d+$ filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' required: - catalog_type - catalog_id - filters CatalogsCreativeAssetsListProductsByCatalogBasedFilterRequest: type: object title: creative_assets_list_products_by_catalog_based_filter_request additionalProperties: false description: Request object to list products for a given creative assets catalog_id and product group filter. properties: catalog_type: type: string enum: - CREATIVE_ASSETS catalog_id: description: Catalog id pertaining to the creative assets product group. example: '2680059592705' type: string pattern: ^\d+$ filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' required: - catalog_type - catalog_id - filters CatalogsLocale: type: string enum: - af-ZA - ar-SA - bg-BG - bn-IN - cs-CZ - da-DK - de - el-GR - en-AU - en-CA - en-GB - en-IN - en-US - es-419 - es-AR - es-ES - es-MX - fi-FI - fr - fr-CA - he-IL - hi-IN - hr-HR - hu-HU - id-ID - it - ja - ko-KR - ms-MY - nb-NO - nl - pl-PL - pt-BR - pt-PT - ro-RO - ru-RU - sk-SK - sv-SE - te-IN - th-TH - tl-PH - tr - uk-UA - vi-VN - zh-CN - zh-TW CatalogsProduct: type: object description: Catalogs product for all verticals properties: catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type oneOf: - $ref: '#/components/schemas/CatalogsRetailProduct' - $ref: '#/components/schemas/CatalogsHotelProduct' - $ref: '#/components/schemas/CatalogsCreativeAssetsProduct' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailProduct' HOTEL: '#/components/schemas/CatalogsHotelProduct' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProduct' CatalogsVerticalProductGroup: type: object title: product_group oneOf: - $ref: '#/components/schemas/CatalogsRetailProductGroup' - $ref: '#/components/schemas/CatalogsHotelProductGroup' - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroup' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailProductGroup' HOTEL: '#/components/schemas/CatalogsHotelProductGroup' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProductGroup' CatalogsCreativeAssetsProductGroup: type: object title: creative_assets_product_group properties: catalog_type: type: string enum: - CREATIVE_ASSETS id: description: ID of the creative assets product group. example: '443727193917' type: string pattern: ^\d+$ name: description: Name of creative assets product group example: Most Popular type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' created_at: description: Unix timestamp in seconds of when catalog product group was created. example: 1621350033000 type: integer updated_at: description: Unix timestamp in seconds of last time catalog product group was updated. example: 1622742155000 type: integer catalog_id: description: Catalog id pertaining to the creative assets product group. type: string pattern: ^\d+$ required: - id - filters - catalog_type - catalog_id CatalogsCreativeAssetsProductGroupFilters: description: Object holding a group of filters for a creative assets product group title: catalogs_product_group_filters type: object anyOf: - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFiltersAnyOf' - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFiltersAllOf' CatalogsCreativeAssetsProductGroupFiltersAllOf: type: object title: all_of additionalProperties: false properties: all_of: type: array items: type: object $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilterKeys' required: - all_of CatalogsCreativeAssetsProductGroupFiltersAnyOf: type: object title: any_of additionalProperties: false properties: any_of: type: array items: type: object $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilterKeys' required: - any_of CatalogsCreativeAssetsProductGroupFilterKeys: title: catalogs_product_group_keys anyOf: - $ref: '#/components/schemas/CreativeAssetsIdFilter' - $ref: '#/components/schemas/CustomLabel0Filter' - $ref: '#/components/schemas/CustomLabel1Filter' - $ref: '#/components/schemas/CustomLabel2Filter' - $ref: '#/components/schemas/CustomLabel3Filter' - $ref: '#/components/schemas/CustomLabel4Filter' - $ref: '#/components/schemas/GoogleProductCategory6Filter' - $ref: '#/components/schemas/GoogleProductCategory5Filter' - $ref: '#/components/schemas/GoogleProductCategory4Filter' - $ref: '#/components/schemas/GoogleProductCategory3Filter' - $ref: '#/components/schemas/GoogleProductCategory2Filter' - $ref: '#/components/schemas/GoogleProductCategory1Filter' - $ref: '#/components/schemas/GoogleProductCategory0Filter' - $ref: '#/components/schemas/MediaTypeFilter' - $ref: '#/components/schemas/TitleKeywordsFilter' CatalogsCreativeAssetsProductGroupCreateRequest: type: object title: creative_assets_product_groups_create_request additionalProperties: false description: Request object for creating a creative assets product group. properties: catalog_type: type: string enum: - CREATIVE_ASSETS name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' catalog_id: description: Catalog id pertaining to the creative assets product group. example: '2680059592705' type: string pattern: ^\d+$ required: - name - filters - catalog_id - catalog_type CatalogsCreativeAssetsProductGroupUpdateRequest: type: object title: creative_assets_product_groups_update_request additionalProperties: false description: Request object for updating a creative assets product group. properties: catalog_type: type: string enum: - CREATIVE_ASSETS name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' CatalogsHotelProductGroup: type: object title: hotel_product_group properties: catalog_type: type: string enum: - HOTEL id: description: ID of the hotel product group. example: '443727193917' type: string pattern: ^\d+$ name: description: Name of hotel product group example: Most Popular type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' type: $ref: '#/components/schemas/CatalogsHotelProductGroupType' created_at: description: Unix timestamp in seconds of when catalog product group was created. example: 1621350033000 type: integer updated_at: description: Unix timestamp in seconds of last time catalog product group was updated. example: 1622742155000 type: integer catalog_id: description: Catalog id pertaining to the hotel product group. type: string pattern: ^\d+$ required: - id - filters - catalog_type - catalog_id - type CatalogsHotelProductGroupFilterKeys: title: catalogs_product_group_keys anyOf: - $ref: '#/components/schemas/PriceFilter' - $ref: '#/components/schemas/HotelIdFilter' - $ref: '#/components/schemas/BrandFilter' - $ref: '#/components/schemas/CustomLabel0Filter' - $ref: '#/components/schemas/CustomLabel1Filter' - $ref: '#/components/schemas/CustomLabel2Filter' - $ref: '#/components/schemas/CustomLabel3Filter' - $ref: '#/components/schemas/CustomLabel4Filter' - $ref: '#/components/schemas/CountryFilter' - $ref: '#/components/schemas/TitleKeywordsFilter' CatalogsHotelProductGroupFilters: description: Object holding a group of filters for a hotel product group title: catalogs_product_group_filters type: object anyOf: - $ref: '#/components/schemas/CatalogsHotelProductGroupFiltersAnyOf' - $ref: '#/components/schemas/CatalogsHotelProductGroupFiltersAllOf' CatalogsHotelProductGroupFiltersAllOf: type: object title: all_of additionalProperties: false properties: all_of: type: array items: type: object $ref: '#/components/schemas/CatalogsHotelProductGroupFilterKeys' required: - all_of CatalogsHotelProductGroupFiltersAnyOf: type: object title: any_of additionalProperties: false properties: any_of: type: array items: type: object $ref: '#/components/schemas/CatalogsHotelProductGroupFilterKeys' required: - any_of CatalogsRetailProductGroup: type: object title: retail_product_group properties: catalog_type: type: string enum: - RETAIL id: description: ID of the catalog product group. example: '443727193917' type: string pattern: ^\d+$ name: description: Name of catalog product group example: Most Popular type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsProductGroupFilters' is_featured: deprecated: true description: boolean indicator of whether the product group is being featured or not type: boolean type: $ref: '#/components/schemas/CatalogsProductGroupType' status: $ref: '#/components/schemas/CatalogsProductGroupStatus' created_at: description: Unix timestamp in seconds of when catalog product group was created. example: 1621350033000 type: integer updated_at: description: Unix timestamp in seconds of last time catalog product group was updated. example: 1622742155000 type: integer catalog_id: description: Catalog id pertaining to the retail product group. type: string pattern: ^\d+$ feed_id: description: id of the catalogs feed belonging to this catalog product group example: '2680059592705' type: string pattern: ^\d+$ nullable: true country: type: string nullable: true locale: type: string nullable: true required: - filters - id - catalog_id - feed_id - catalog_type - type CatalogsHotelProductGroupCreateRequest: type: object title: hotel_product_groups_create_request additionalProperties: false description: Request object for creating a hotel product group. properties: catalog_type: type: string enum: - HOTEL name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' catalog_id: description: Catalog id pertaining to the hotel product group. example: '2680059592705' type: string pattern: ^\d+$ required: - name - filters - catalog_id - catalog_type CatalogsRetailProductGroupCreateRequest: type: object title: retail_product_groups_create_request additionalProperties: false description: Request object for creating a product group. properties: catalog_type: type: string enum: - RETAIL description: Retail catalog based product group is available only for selected partners at the moment. If you are not eligible, please use feed based one. name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsProductGroupFiltersRequest' catalog_id: description: Catalog id pertaining to the retail product group. example: '2680059592705' type: string pattern: ^\d+$ country: $ref: '#/components/schemas/Country' locale: $ref: '#/components/schemas/CatalogsLocale' required: - name - filters - catalog_id - catalog_type CatalogsHotelProductGroupUpdateRequest: type: object title: hotel_product_groups_update_request additionalProperties: false description: Request object for updating a hotel product group. properties: catalog_type: type: string enum: - HOTEL name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' CatalogsRetailProductGroupUpdateRequest: type: object title: retail_product_groups_update_request additionalProperties: false description: Request object for updating a retail product group. properties: catalog_type: type: string enum: - RETAIL description: Retail catalog based product group is available only for selected partners at the moment. If you are not eligible, please use feed based one. name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsProductGroupFiltersRequest' country: $ref: '#/components/schemas/Country' locale: $ref: '#/components/schemas/CatalogsLocale' CatalogsProductGroupCreateRequest: type: object title: retail feed based description: Request object for creating a product group. properties: name: type: string description: type: string nullable: true is_featured: deprecated: true description: boolean indicator of whether the product group is being featured or not type: boolean default: false filters: $ref: '#/components/schemas/CatalogsProductGroupFiltersRequest' feed_id: description: Catalog Feed id pertaining to the catalog product group. example: '2680059592705' type: string pattern: ^\d+$ required: - name - filters - feed_id CatalogsProductGroupCurrencyCriteria: title: catalogs_product_group_currency_criteria type: object description: A currency filter. This filter cannot be negated additionalProperties: false properties: values: $ref: '#/components/schemas/NonNullableCatalogsCurrency' negated: type: boolean default: false enum: - false required: - values CatalogsProductGroupFilterKeys: title: catalogs_product_group_keys anyOf: - $ref: '#/components/schemas/MinPriceFilter' - $ref: '#/components/schemas/MaxPriceFilter' - $ref: '#/components/schemas/CurrencyFilter' - $ref: '#/components/schemas/ItemIdFilter' - $ref: '#/components/schemas/AvailabilityFilter' - $ref: '#/components/schemas/BrandFilter' - $ref: '#/components/schemas/ConditionFilter' - $ref: '#/components/schemas/CustomLabel0Filter' - $ref: '#/components/schemas/CustomLabel1Filter' - $ref: '#/components/schemas/CustomLabel2Filter' - $ref: '#/components/schemas/CustomLabel3Filter' - $ref: '#/components/schemas/CustomLabel4Filter' - $ref: '#/components/schemas/ItemGroupIdFilter' - $ref: '#/components/schemas/GenderFilter' - $ref: '#/components/schemas/MediaTypeFilter' - $ref: '#/components/schemas/ProductType4Filter' - $ref: '#/components/schemas/ProductType3Filter' - $ref: '#/components/schemas/ProductType2Filter' - $ref: '#/components/schemas/ProductType1Filter' - $ref: '#/components/schemas/ProductType0Filter' - $ref: '#/components/schemas/GoogleProductCategory6Filter' - $ref: '#/components/schemas/GoogleProductCategory5Filter' - $ref: '#/components/schemas/GoogleProductCategory4Filter' - $ref: '#/components/schemas/GoogleProductCategory3Filter' - $ref: '#/components/schemas/GoogleProductCategory2Filter' - $ref: '#/components/schemas/GoogleProductCategory1Filter' - $ref: '#/components/schemas/GoogleProductCategory0Filter' - $ref: '#/components/schemas/ProductGroupReferenceFilter' - $ref: '#/components/schemas/CustomNumber0Filter' - $ref: '#/components/schemas/CustomNumber1Filter' - $ref: '#/components/schemas/CustomNumber2Filter' - $ref: '#/components/schemas/CustomNumber3Filter' - $ref: '#/components/schemas/CustomNumber4Filter' - $ref: '#/components/schemas/TitleKeywordsFilter' CatalogsProductGroupFilters: description: Object holding a group of filters for a catalog product group title: catalogs_product_group_filters type: object anyOf: - $ref: '#/components/schemas/CatalogsProductGroupFiltersAnyOf' - $ref: '#/components/schemas/CatalogsProductGroupFiltersAllOf' CatalogsProductGroupFiltersAllOf: type: object title: all_of additionalProperties: false properties: all_of: type: array items: type: object $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' required: - all_of CatalogsProductGroupFiltersRequest: description: Object holding a group of filters for request on catalog product group. This is a distinct schema It is not possible to create or update a Product Group with empty filters. But some automatically generated Product Groups might have empty filters. title: catalogs_product_group_filters type: object anyOf: - type: object title: any_of additionalProperties: false properties: any_of: type: array items: type: object $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' minItems: 1 required: - any_of - type: object title: all_of additionalProperties: false properties: all_of: type: array items: type: object $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' minItems: 1 required: - all_of CatalogsProductGroupFiltersAnyOf: type: object title: any_of additionalProperties: false properties: any_of: type: array items: type: object $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' required: - any_of CatalogsProductGroupMultipleCountriesCriteria: title: catalogs_product_group_multiple_country_criteria type: object additionalProperties: false properties: values: type: array items: $ref: '#/components/schemas/Country' negated: type: boolean default: false required: - values CatalogsProductGroupMultipleGenderCriteria: title: catalogs_product_group_multiple_gender_criteria type: object additionalProperties: false properties: values: type: array items: $ref: '#/components/schemas/Gender' negated: type: boolean default: false required: - values CatalogsProductGroupMultipleMediaTypesCriteria: title: catalogs_product_group_multiple_media_type_criteria type: object additionalProperties: false properties: values: type: array items: $ref: '#/components/schemas/MediaType' negated: type: boolean default: false required: - values CatalogsProductGroupMultipleStringCriteria: title: catalogs_product_group_multiple_string_criteria type: object additionalProperties: false properties: values: type: array items: type: string negated: type: boolean default: false required: - values CatalogsProductGroupFilterOperatorTypeCriteria: title: catalogs_product_group_filter_operator_type_criteria type: object additionalProperties: false properties: values: type: array items: type: string negated: type: boolean default: false filter_operator_type: default: IS type: string enum: - IS - CONTAINS required: - values CatalogsProductGroupMultipleStringListCriteria: title: catalogs_product_group_multiple_string_list_criteria type: object additionalProperties: false properties: values: type: array items: type: array items: type: string negated: type: boolean default: false required: - values CatalogsProductGroupPricingCriteria: title: catalogs_product_group_pricing_criteria type: object additionalProperties: false properties: inclusion: type: boolean default: true values: type: number minimum: 0 negated: type: boolean default: false required: - values CatalogsProductGroupUint32Criteria: title: catalogs_product_group_uint32_criteria type: object additionalProperties: false properties: operator: type: string enum: - GREATER_THAN - GREATER_THAN_OR_EQUALS - LESS_THAN - LESS_THAN_OR_EQUALS value: type: integer minimum: 0 maximum: 4294967295 negated: type: boolean default: false required: - operator - value CatalogsProductGroupProductCountsVertical: type: object description: Product counts for a CatalogsProductGroup properties: catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type oneOf: - $ref: '#/components/schemas/CatalogsRetailProductGroupProductCounts' - $ref: '#/components/schemas/CatalogsHotelProductGroupProductCounts' - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupProductCounts' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailProductGroupProductCounts' HOTEL: '#/components/schemas/CatalogsHotelProductGroupProductCounts' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProductGroupProductCounts' CatalogsHotelProductGroupProductCounts: title: catalogs_hotel_product_group_product_counts description: Product counts for a Hotel CatalogsProductGroup type: object properties: catalog_type: type: string enum: - HOTEL total: type: number minimum: 0 required: - catalog_type - total CatalogsCreativeAssetsProductGroupProductCounts: title: catalogs_creative_assets_product_group_product_counts description: Product counts for a Creative Assets CatalogsProductGroup type: object properties: catalog_type: type: string enum: - CREATIVE_ASSETS total: type: number minimum: 0 videos: type: number minimum: 0 required: - catalog_type - total - videos CatalogsRetailProductGroupProductCounts: title: catalogs_retail_product_group_product_counts description: Product counts for a Retail CatalogsProductGroup type: object properties: catalog_type: type: string enum: - RETAIL in_stock: type: number minimum: 0 out_of_stock: type: number minimum: 0 preorder: type: number minimum: 0 total: type: number minimum: 0 videos: type: number minimum: 0 required: - catalog_type - in_stock - out_of_stock - preorder - total CatalogsProductGroupStatus: type: string enum: - ACTIVE - INACTIVE CatalogsProductGroupType: type: string title: product_group_type description: |-Catalog product group type
MERCHANT_CREATED: Product groups created by merchants.
ALL_PRODUCTS: Consists of every product in your latest successful feed upload.
BEST_DEALS: Consists of products with the deepest drop in price.
PINNER_FAVORITES: Consists of products that are resonating most with people on Pinterest, based on engagement.
TOP_SELLERS: Consists of products with the highest conversion rate, if you have the conversion tag installed.
BACK_IN_STOCK: Consists of products that were previously out of stock and are now in stock.
NEW_ARRIVALS: Consists of products that are new to your Catalog.
SHOPIFY_COLLECTION: Product groups created based on Shopify Product Collections.
I2PC: Product groups created based on predicted product category.
Catalog hotel product group type
MERCHANT_CREATED: Product groups created by merchants.
ALL_LISTINGS: Includes every hotel item in your catalog.
enum:
- MERCHANT_CREATED
- ALL_LISTINGS
example: MERCHANT_CREATED
CatalogsProductGroupUpdateRequest:
type: object
title: retail feed based
additionalProperties: false
description: Request object for updating a product group.
properties:
name:
type: string
description:
type: string
nullable: true
is_featured:
deprecated: true
description: boolean indicator of whether the product group is being featured
or not
type: boolean
filters:
$ref: '#/components/schemas/CatalogsProductGroupFiltersRequest'
CatalogsRetailProduct:
type: object
properties:
catalog_type:
type: string
enum:
- RETAIL
metadata:
$ref: '#/components/schemas/CatalogsRetailProductMetadata'
pin:
$ref: '#/components/schemas/Pin'
required:
- catalog_type
- metadata
- pin
CatalogsRetailProductMetadata:
type: object
description: Retail product metadata entity
properties:
item_id:
description: The user-created unique ID that represents the product.
example: DS0294-L
type: string
item_group_id:
description: The parent ID of the product.
example: DS0294
type: string
nullable: true
availability:
$ref: '#/components/schemas/NonNullableProductAvailabilityType'
price:
description: The price of the product.
example: 24.99
type: number
sale_price:
description: The discounted price of the product.
example: 14.99
type: number
nullable: true
currency:
$ref: '#/components/schemas/NonNullableCatalogsCurrency'
required:
- item_id
- item_group_id
- availability
- price
- sale_price
- currency
CatalogsStatus:
type: string
description: Status for catalogs entities. Present in catalogs_feed values.
When a feed is deleted, the response will inform DELETED as status.
enum:
- ACTIVE
- INACTIVE
CatalogsType:
description: Type of the catalog entity.
type: string
enum:
- RETAIL
- HOTEL
- CREATIVE_ASSETS
CatalogsVerticalBatchRequest:
type: object
title: operate on item batch
description: A request object that can have multiple operations on a single
batch
oneOf:
- $ref: '#/components/schemas/CatalogsRetailBatchRequest'
- $ref: '#/components/schemas/CatalogsHotelBatchRequest'
- $ref: '#/components/schemas/CatalogsCreativeAssetsBatchRequest'
discriminator:
propertyName: catalog_type
mapping:
RETAIL: '#/components/schemas/CatalogsRetailBatchRequest'
HOTEL: '#/components/schemas/CatalogsHotelBatchRequest'
CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsBatchRequest'
CatalogsHotelGuestRatings:
type: object
description: If specified, you must provide all properties
properties:
score:
description: Your hotel's rating.
type: number
number_of_reviewers:
description: Total number of people who have rated this hotel.
type: integer
max_score:
description: Max value for the hotel rating score.
type: number
rating_system:
description: System you use for guest reviews.
type: string
CatalogsHotelItemErrorResponse:
type: object
description: Object describing a hotel item error
properties:
catalog_type:
$ref: '#/components/schemas/CatalogsType'
hotel_id:
description: The catalog hotel id in the merchant namespace
example: DS0294-M
type: string
errors:
description: Array with the errors for the item id requested
items:
$ref: '#/components/schemas/ItemValidationEvent'
type: array
required:
- catalog_type
CatalogsHotelItemResponse:
type: object
description: Object describing a hotel record
properties:
catalog_type:
$ref: '#/components/schemas/CatalogsType'
hotel_id:
description: The catalog hotel id in the merchant namespace
example: DS0294-M
type: string
pins:
description: The pins mapped to the item
type: array
nullable: true
items:
$ref: '#/components/schemas/Pin'
maxItems: 11
attributes:
$ref: '#/components/schemas/CatalogsHotelAttributes'
required:
- catalog_type
CatalogsCreativeAssetsItemErrorResponse:
type: object
description: Object describing a creative assets item error
properties:
catalog_type:
$ref: '#/components/schemas/CatalogsType'
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
example: DS0294-M
type: string
errors:
description: Array with the errors for the item id requested
items:
$ref: '#/components/schemas/ItemValidationEvent'
type: array
required:
- catalog_type
CatalogsCreativeAssetsItemResponse:
type: object
description: Object describing a hotel record
properties:
catalog_type:
$ref: '#/components/schemas/CatalogsType'
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
example: DS0294-M
type: string
pins:
description: The pins mapped to the item
type: array
nullable: true
items:
$ref: '#/components/schemas/Pin'
maxItems: 11
attributes:
$ref: '#/components/schemas/CatalogsCreativeAssetsAttributes'
required:
- catalog_type
CreativeAssetsProcessingRecord:
type: object
description: Object describing an item processing record
properties:
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
example: DS0294-M
type: string
errors:
description: |-
Array with the validation errors for the item processing record.
A non empty errors list causes the item processing to fail.
items:
$ref: '#/components/schemas/ItemValidationEvent'
type: array
warnings:
description: Array with the validation warnings for the item processing
record
items:
$ref: '#/components/schemas/ItemValidationEvent'
type: array
status:
$ref: '#/components/schemas/ItemProcessingStatus'
CatalogsRetailBatchRequest:
type: object
description: A request object that can have multiple operations on a single
retail batch
additionalProperties: false
properties:
catalog_type:
type: string
enum:
- RETAIL
country:
$ref: '#/components/schemas/Country'
language:
description: We recommend using the CatalogsLocale values.
anyOf:
- $ref: '#/components/schemas/CatalogsLocale'
- $ref: '#/components/schemas/Language'
items:
minItems: 1
maxItems: 1000
type: array
description: Array with catalogs item operations
items:
anyOf:
- $ref: '#/components/schemas/CatalogsCreateRetailItem'
- $ref: '#/components/schemas/CatalogsUpdateRetailItem'
- $ref: '#/components/schemas/CatalogsUpsertRetailItem'
- $ref: '#/components/schemas/CatalogsDeleteRetailItem'
discriminator:
propertyName: operation
mapping:
CREATE: '#/components/schemas/CatalogsCreateRetailItem'
UPDATE: '#/components/schemas/CatalogsUpdateRetailItem'
UPSERT: '#/components/schemas/CatalogsUpsertRetailItem'
DELETE: '#/components/schemas/CatalogsDeleteRetailItem'
catalog_id:
description: Catalog id pertaining to the retail item. If not provided,
default to oldest retail catalog
example: '2680059592705'
type: string
pattern: ^\d+$
required:
- catalog_type
- country
- language
- items
CatalogsRetailItemErrorResponse:
type: object
description: Object describing a retail item error
properties:
catalog_type:
$ref: '#/components/schemas/CatalogsType'
item_id:
description: The catalog item id in the merchant namespace
example: DS0294-M
type: string
errors:
description: Array with the errors for the item id requested
items:
$ref: '#/components/schemas/ItemValidationEvent'
type: array
required:
- catalog_type
CatalogsRetailItemResponse:
type: object
description: Object describing a retail item record
properties:
catalog_type:
$ref: '#/components/schemas/CatalogsType'
item_id:
description: The catalog retail item id in the merchant namespace
example: DS0294-M
type: string
pins:
description: The pins mapped to the item
type: array
nullable: true
items:
$ref: '#/components/schemas/Pin'
maxItems: 11
attributes:
$ref: '#/components/schemas/ItemAttributes'
required:
- catalog_type
CatalogsCreateRetailItem:
type: object
description: An item to be created
properties:
item_id:
description: The catalog item id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- CREATE
attributes:
$ref: '#/components/schemas/ItemAttributesRequest'
required:
- item_id
- operation
- attributes
CatalogsUpdateRetailItem:
type: object
description: An item to be updated
properties:
item_id:
description: The catalog item id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- UPDATE
attributes:
$ref: '#/components/schemas/UpdatableItemAttributes'
update_mask:
description: The list of product attributes to be updated. Attributes specified
in the update mask without a value specified in the body will be deleted
from the product item.
example:
- ad_link
- adult
- age_group
- availability
- average_review_rating
- brand
- checkout_enabled
- color
- condition
- custom_label_0
- custom_label_1
- custom_label_2
- custom_label_3
- custom_label_4
- description
- free_shipping_label
- free_shipping_limit
- gender
- google_product_category
- gtin
- item_group_id
- last_updated_time
- link
- material
- min_ad_price
- mpn
- number_of_ratings
- number_of_reviews
- pattern
- price
- product_type
- sale_price
- shipping
- shipping_height
- shipping_weight
- shipping_width
- size
- size_system
- size_type
- tax
- title
- variant_names
- variant_values
type: array
nullable: true
items:
$ref: '#/components/schemas/UpdateMaskFieldType'
required:
- item_id
- operation
- attributes
CatalogsUpsertRetailItem:
type: object
description: An item to be upserted
properties:
item_id:
description: The catalog item id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- UPSERT
attributes:
$ref: '#/components/schemas/ItemAttributesRequest'
required:
- item_id
- operation
- attributes
CatalogsDeleteRetailItem:
type: object
description: An item to be deleted
properties:
item_id:
description: The catalog item id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- DELETE
required:
- item_id
- operation
CatalogsHotelBatchRequest:
description: Request object to update catalogs hotel items
type: object
additionalProperties: false
properties:
catalog_type:
type: string
enum:
- HOTEL
country:
$ref: '#/components/schemas/Country'
language:
description: We recommend using the CatalogsLocale values.
anyOf:
- $ref: '#/components/schemas/CatalogsLocale'
- $ref: '#/components/schemas/Language'
items:
minItems: 1
maxItems: 1000
type: array
description: Array with catalogs item operations
items:
$ref: '#/components/schemas/CatalogsHotelBatchItem'
catalog_id:
description: Catalog id pertaining to the hotel item. If not provided, default
to oldest hotel catalog
example: '2680059592705'
type: string
pattern: ^\d+$
required:
- catalog_type
- country
- language
- items
CatalogsDeleteHotelItem:
type: object
description: A hotel item to be deleted
properties:
hotel_id:
description: The catalog hotel id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- DELETE
required:
- hotel_id
- operation
CatalogsCreateHotelItem:
type: object
description: A hotel item to be created.
properties:
hotel_id:
description: The catalog hotel id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- CREATE
attributes:
$ref: '#/components/schemas/CatalogsHotelAttributes'
required:
- hotel_id
- operation
- attributes
CatalogsUpdateHotelItem:
type: object
description: Object describing an hotel item batch record
properties:
hotel_id:
description: The catalog hotel item id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- UPDATE
attributes:
$ref: '#/components/schemas/CatalogsUpdatableHotelAttributes'
required:
- hotel_id
- operation
- attributes
CatalogsUpsertHotelItem:
type: object
description: A hotel item to be upserted.
properties:
hotel_id:
description: The catalog hotel id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- UPSERT
attributes:
$ref: '#/components/schemas/CatalogsHotelAttributes'
required:
- hotel_id
- operation
- attributes
CatalogsHotelAddress:
type: object
properties:
addr1:
description: Primary street address of hotel.
type: string
city:
description: City where the hotel is located.
type: string
region:
description: State, county, province, where the hotel is located.
type: string
country:
description: Country where the hotel is located.
type: string
postal_code:
description: Required for countries with a postal code system. Postal or
zip code of the hotel.
type: string
CatalogsHotelProduct:
type: object
properties:
catalog_type:
type: string
enum:
- HOTEL
metadata:
$ref: '#/components/schemas/CatalogsHotelProductMetadata'
pin:
$ref: '#/components/schemas/Pin'
required:
- catalog_type
- metadata
- pin
CatalogsHotelProductMetadata:
type: object
description: Hotel product metadata entity
properties:
hotel_id:
description: The user-created unique ID that represents the hotel item.
example: 123abc
type: string
required:
- hotel_id
CatalogsUpdatableHotelAttributes:
type: object
properties:
name:
description: The hotel's name.
type: string
nullable: true
link:
description: Link to the product page
type: string
nullable: true
description:
description: Brief description of the hotel.
type: string
nullable: true
brand:
description: The brand to which this hotel belongs to.
type: string
nullable: true
latitude:
description: Latitude of the hotel.
type: number
longitude:
description: Longitude of the hotel.
type: number
nullable: true
neighborhood:
description: A list of neighborhoods where the hotel is located
type: array
nullable: true
items:
type: string
address:
description: Hotel address
$ref: '#/components/schemas/CatalogsHotelAddress'
custom_label_0:
description: Custom grouping of hotels
type: string
nullable: true
custom_label_1:
description: Custom grouping of hotels
type: string
nullable: true
custom_label_2:
description: Custom grouping of hotels
type: string
nullable: true
custom_label_3:
description: Custom grouping of hotels
type: string
nullable: true
custom_label_4:
description: Custom grouping of hotels
type: string
nullable: true
category:
description: The type of property. The category can be any type of internal
description desired.
type: string
nullable: true
base_price:
description: Base price of the hotel room per night followed by the ISO
currency code
type: string
nullable: true
example: 100 USD
sale_price:
description: Sale price of a hotel room per night. Used to advertise discounts
off the regular price of the hotel.
type: string
nullable: true
example: 90 USD
guest_ratings:
description: If specified, you must provide all properties
$ref: '#/components/schemas/CatalogsHotelGuestRatings'
CatalogsCreativeAssetsProductMetadata:
type: object
description: Creative assets product metadata entity
properties:
creative_assets_id:
description: The user-created unique ID that represents the creative assets
item.
example: 123abc
type: string
visibility:
$ref: '#/components/schemas/CreativeAssetsVisibilityType'
required:
- creative_assets_id
- visibility
CatalogsCreativeAssetsProduct:
type: object
properties:
catalog_type:
type: string
enum:
- CREATIVE_ASSETS
metadata:
$ref: '#/components/schemas/CatalogsCreativeAssetsProductMetadata'
pin:
$ref: '#/components/schemas/Pin'
required:
- catalog_type
- metadata
- pin
CreativeAssetsVisibilityType:
description: Creative assets visibility.
nullable: false
type: string
enum:
- VISIBLE
- HIDDEN
CatalogsCreativeAssetsBatchRequest:
description: Request object to update catalogs creative assets items
type: object
additionalProperties: false
properties:
catalog_type:
type: string
enum:
- CREATIVE_ASSETS
country:
$ref: '#/components/schemas/Country'
language:
description: We recommend using the CatalogsLocale values.
anyOf:
- $ref: '#/components/schemas/CatalogsLocale'
- $ref: '#/components/schemas/Language'
items:
minItems: 1
maxItems: 1000
type: array
description: Array with creative assets item operations
items:
$ref: '#/components/schemas/CatalogsCreativeAssetsBatchItem'
catalog_id:
description: Catalog id pertaining to the creative assets item. If not provided,
default to oldest creative assets catalog
example: '2680059592705'
type: string
pattern: ^\d+$
required:
- catalog_type
- country
- language
- items
CatalogsCreativeAssetsBatchItem:
description: Creative assets batch item
type: object
anyOf:
- $ref: '#/components/schemas/CatalogsCreateCreativeAssetsItem'
- $ref: '#/components/schemas/CatalogsUpsertCreativeAssetsItem'
- $ref: '#/components/schemas/CatalogsUpdateCreativeAssetsItem'
- $ref: '#/components/schemas/CatalogsDeleteCreativeAssetsItem'
discriminator:
propertyName: operation
mapping:
CREATE: '#/components/schemas/CatalogsCreateCreativeAssetsItem'
UPSERT: '#/components/schemas/CatalogsUpsertCreativeAssetsItem'
UPDATE: '#/components/schemas/CatalogsUpdateCreativeAssetsItem'
DELETE: '#/components/schemas/CatalogsDeleteCreativeAssetsItem'
CatalogsCreateCreativeAssetsItem:
type: object
description: A creative assets item to be created.
properties:
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- CREATE
attributes:
$ref: '#/components/schemas/CatalogsCreativeAssetsAttributes'
required:
- creative_assets_id
- operation
- attributes
CatalogsUpdateCreativeAssetsItem:
type: object
description: A creative assets item to be updated.
properties:
creative_assets_id:
description: The catalog creative assets item id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- UPDATE
attributes:
$ref: '#/components/schemas/CatalogsUpdatableCreativeAssetsAttributes'
required:
- creative_assets_id
- operation
- attributes
CatalogsUpsertCreativeAssetsItem:
type: object
description: A creative assets item to be upserted.
properties:
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- UPSERT
attributes:
$ref: '#/components/schemas/CatalogsCreativeAssetsAttributes'
required:
- creative_assets_id
- operation
- attributes
CatalogsDeleteCreativeAssetsItem:
type: object
description: A creative assets item to be deleted
properties:
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
example: DS0294-M
type: string
operation:
type: string
enum:
- DELETE
required:
- creative_assets_id
- operation
CatalogsUpdatableCreativeAssetsAttributes:
type: object
properties:
title:
description: The name of the creative assets.
type: string
description:
description: Brief description of the creative assets.
type: string
link:
description: Link to the creative assets page.
type: string
ios_deep_link:
description: IOS deep link to the creative assets page.
type: string
nullable: true
android_deep_link:
description: Link to the creative assets page.
type: string
nullable: true
google_product_category:
description: The categorization of the product based on the standardized
Google Product Taxonomy. This is a set taxonomy. Both the text values
and numeric codes are accepted.
type: string
nullable: true
custom_label_0:
description: Custom grouping of creative assets.
type: string
nullable: true
custom_label_1:
description: Custom grouping of creative assets.
type: string
nullable: true
custom_label_2:
description: Custom grouping of creative assets.
type: string
nullable: true
custom_label_3:
description: Custom grouping of creative assets.
type: string
nullable: true
custom_label_4:
description: Custom grouping of creative assets.
type: string
nullable: true
visibility:
description: "Visibility of the creative assets. Must be one of the following\
\ values (upper or lowercase): \u2018visible\u2019, \u2018hidden\u2019\
."
type: string
nullable: true
CatalogsCreativeAssetsAttributes:
type: object
allOf:
- type: object
properties:
image_link:
type: string
description: The creative assets image.
example: https://scene.example.com/image/image_v2.jpg
video_link:
type: string
description: The creative assets video.
example: https://scene.example.com/image/image_v2.mp4
- $ref: '#/components/schemas/CatalogsUpdatableCreativeAssetsAttributes'
CatalogsVerticalProductGroupCreateRequest:
type: object
title: catalog based
description: Request object for creating a catalog based product group.
oneOf:
- $ref: '#/components/schemas/CatalogsRetailProductGroupCreateRequest'
- $ref: '#/components/schemas/CatalogsHotelProductGroupCreateRequest'
- $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupCreateRequest'
discriminator:
propertyName: catalog_type
mapping:
RETAIL: '#/components/schemas/CatalogsRetailProductGroupCreateRequest'
HOTEL: '#/components/schemas/CatalogsHotelProductGroupCreateRequest'
CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProductGroupCreateRequest'
CatalogsVerticalProductGroupUpdateRequest:
type: object
title: catalog based
description: Request object for updating a catalog based product group.
oneOf:
- $ref: '#/components/schemas/CatalogsRetailProductGroupUpdateRequest'
- $ref: '#/components/schemas/CatalogsHotelProductGroupUpdateRequest'
- $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupUpdateRequest'
discriminator:
propertyName: catalog_type
mapping:
RETAIL: '#/components/schemas/CatalogsRetailProductGroupUpdateRequest'
HOTEL: '#/components/schemas/CatalogsHotelProductGroupUpdateRequest'
CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProductGroupUpdateRequest'
CatalogsAvailableFilterValues:
description: Object holding available filter values for each filter key
title: catalogs_available_filter_values
type: object
oneOf:
- $ref: '#/components/schemas/CatalogsRetailAvailableFilterValues'
- $ref: '#/components/schemas/CatalogsHotelAvailableFilterValues'
- $ref: '#/components/schemas/CatalogsCreativeAssetsAvailableFilterValues'
discriminator:
propertyName: catalog_type
mapping:
RETAIL: '#/components/schemas/CatalogsRetailAvailableFilterValues'
HOTEL: '#/components/schemas/CatalogsHotelAvailableFilterValues'
CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsAvailableFilterValues'
CatalogsRetailAvailableFilterValues:
title: catalogs_retail_available_filter_values
type: object
properties:
catalog_type:
type: string
enum:
- RETAIL
filter_values:
type: object
title: catalogs_retail_filter_values_map
description: A map of filter attributes to their available values.
properties:
ad_image_tags:
type: array
items:
type: string
ad_video_tags:
type: array
items:
type: string
brand:
type: array
items:
type: string
custom_label_0:
type: array
items:
type: string
custom_label_1:
type: array
items:
type: string
custom_label_2:
type: array
items:
type: string
custom_label_3:
type: array
items:
type: string
custom_label_4:
type: array
items:
type: string
google_product_category_0:
type: array
items:
type: string
google_product_category_1:
type: array
items:
type: string
google_product_category_2:
type: array
items:
type: string
google_product_category_3:
type: array
items:
type: string
google_product_category_4:
type: array
items:
type: string
google_product_category_5:
type: array
items:
type: string
google_product_category_6:
type: array
items:
type: string
product_type_0:
type: array
items:
type: string
product_type_1:
type: array
items:
type: string
product_type_2:
type: array
items:
type: string
product_type_3:
type: array
items:
type: string
product_type_4:
type: array
items:
type: string
gender:
type: array
items:
type: string
enum:
- FEMALE
- MALE
- UNISEX
availability:
type: array
items:
type: string
enum:
- IN_STOCK
- OUT_OF_STOCK
- PREORDER
- UNAVAILABLE
media_type:
type: array
items:
type: string
enum:
- IMAGE
- VIDEO
condition:
type: array
items:
type: string
enum:
- NEW
- USED
- REFURBISHED
required:
- catalog_type
- filter_values
CatalogsHotelAvailableFilterValues:
title: catalogs_hotel_available_filter_values
type: object
properties:
catalog_type:
type: string
enum:
- HOTEL
filter_values:
type: object
title: catalogs_hotel_filter_values_map
description: A map of filter attributes to their available values.
properties:
brand:
type: array
items:
type: string
custom_label_0:
type: array
items:
type: string
custom_label_1:
type: array
items:
type: string
custom_label_2:
type: array
items:
type: string
custom_label_3:
type: array
items:
type: string
custom_label_4:
type: array
items:
type: string
required:
- catalog_type
- filter_values
CatalogsCreativeAssetsAvailableFilterValues:
title: catalogs_creative_assets_available_filter_values
type: object
properties:
catalog_type:
type: string
enum:
- CREATIVE_ASSETS
filter_values:
type: object
title: catalogs_creative_assets_filter_values_map
description: A map of filter attributes to their available values.
properties:
custom_label_0:
type: array
items:
type: string
custom_label_1:
type: array
items:
type: string
custom_label_2:
type: array
items:
type: string
custom_label_3:
type: array
items:
type: string
custom_label_4:
type: array
items:
type: string
google_product_category_0:
type: array
items:
type: string
google_product_category_1:
type: array
items:
type: string
google_product_category_2:
type: array
items:
type: string
google_product_category_3:
type: array
items:
type: string
google_product_category_4:
type: array
items:
type: string
google_product_category_5:
type: array
items:
type: string
google_product_category_6:
type: array
items:
type: string
media_type:
type: array
items:
type: string
enum:
- IMAGE
- VIDEO
required:
- catalog_type
- filter_values
ConditionFilter:
type: object
title: CONDITION
additionalProperties: false
properties:
CONDITION:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringCriteria'
required:
- CONDITION
ContentType:
type: string
enum:
- image/jpeg
- image/png
ConversionApiResponse:
description: Schema describing the object in the response, which contains information
about the events that were received and processed.
type: object
properties:
num_events_received:
description: Total number of events received in the request.
type: integer
num_events_processed:
description: Number of events that were successfully processed from the
events.
type: integer
events:
description: Specific messages for each event received. The order will match
the order in which the events were received in the request.
type: array
items:
type: object
properties:
status:
description: Whether the event was processed successfully.
type: string
example: processed
enum:
- failed
- processed
error_message:
description: Error message containing more information about why the
event failed to be processed.
type: string
nullable: true
warning_message:
description: Warning messages about any fields in the event which
are not standard. These are not critical to event processing.
type: string
nullable: true
required:
- status
required:
- num_events_received
- num_events_processed
- events
ConversionAttributionWindowDays:
type: integer
enum:
- 0
- 1
- 7
- 14
- 30
- 60
ConversionEventResponse:
title: ConversionEventResponse
type: object
properties:
conversion_event:
type: string
$ref: '#/components/schemas/ConversionTagType'
conversion_tag_id:
title: conversion_tag_id
description: Id of the tag.
type: string
pattern: ^\d+$
example: '2614324385652'
ad_account_id:
title: ad_account_id
description: Id of the ad account.
type: string
pattern: ^\d+$
example: '549757463328'
created_time:
title: created_time
description: Creation date in epoch format.
type: integer
example: 1564768710
ConversionEvents:
description: A list of events (one or more) encapsulated by a data object.
type: object
additionalProperties: false
properties:
data:
type: array
minItems: 1
maxItems: 1000
items:
type: object
additionalProperties: false
properties:
event_name:
description: |
The type of the user event. Please use the right event_name; otherwise the event will not be accepted and show up correctly in reports.
add_payment_infoadd_to_cartadd_to_wishlistcheckoutcustominitiate_checkoutleadpage_visitsearchsignupsubscribeview_categoryview_contentwatch_videoThe source indicating where the conversion event occurred.
app_androidapp_ioswebofflineevent_name
is 'add_to_cart' or 'checkout'.
type: number
format: double
example: 123.45
currency:
allOf:
- $ref: '#/components/schemas/Currency'
- type: string
description: Currency code for the value field, required if value
is present. Currency Codes should be in ISO 4217 standard.
campaign_id:
description: The ID of the campaign that was attributed to the conversion
event.
type: string
pattern: ^\d+$
example: '626736533506'
action_timestamps:
description: Timestamp(s) when the ad action(s) happened. Unix timestamp
in seconds.
type: array
items:
type: integer
format: int64
example:
- 1451410040
attribution_model:
description: The attribution model used to attribute the conversion event.
type: string
enum:
- first_touch
- last_touch
- multi_touch
example: multi_touch
attribution_score:
description: Credit given to the attributed ad actions. Allowed values are
> 0 and <= 1.
type: number
format: double
minimum: 0
exclusiveMinimum: true
maximum: 1
example: 0.5
total_events:
description: |-
Total number of conversion events that are reported in one API call.
If you are sending one API request for one attributed conversion event then this value should be 1.
If you are sending multiple attributed conversion events in one API request then this value should be the total number of attributed conversion events in the request.
type: integer minimum: 1 example: 2 total_event_touchpoints: description: Total number of ad events including other non-Pinterest ad platforms. type: integer minimum: 1 example: 2 required: - event_id - event_name - event_timestamp - ad_group_id - attribution_scope ConversionProductReportRequest: type: object description: Request for a brand, category, SKU report properties: report_name: description: Name of the conversion product report. type: string start_date: description: 'Metric report start date (UTC). Format: YYYY-MM-DD.