openapi: 3.0.3 info: version: 5.20.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' paths: /ad_accounts: get: operationId: ad_accounts/list 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. 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' security: - pinterest_oauth2: - 'ads:read' - client_credentials: - 'ads:read' tags: - ad_accounts x-ratelimit-category: ads_read x-sandbox: enabled post: operationId: ad_accounts/create 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.
You can set up up to 50 ad accounts per user. (The user must have a business account to create an ad account.) For more, see Create an advertiser account. requestBody: description: Ad account to create. required: true content: application/json: schema: $ref: '#/components/schemas/AdAccountCreateRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AdAccount' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:write' tags: - ad_accounts x-ratelimit-category: ads_write x-sandbox: enabled '/ad_accounts/{ad_account_id}': get: operationId: ad_accounts/get summary: Get ad account description: Get an ad account parameters: - $ref: '#/components/parameters/path_ad_account_id' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/AdAccount' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:read' - client_credentials: - 'ads:read' tags: - ad_accounts x-ratelimit-category: ads_read x-sandbox: enabled '/ad_accounts/{ad_account_id}/ad_groups': get: operationId: ad_groups/list summary: List ad groups description: |- List ad groups based on provided campaign IDs or ad group IDs.(campaign_ids or ad_group_ids). Note: Provide only campaign_id or ad_group_id. Do not provide both. 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_entity_statuses' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' - $ref: '#/components/parameters/query_translate_interests_to_names' responses: '200': description: Success content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/AdGroupResponse' '400': description: Invalid ad account group parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account group parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:read' - client_credentials: - 'ads:read' tags: - ad_groups x-ratelimit-category: ads_read x-sandbox: enabled post: operationId: ad_groups/create summary: Create ad groups description: |- Create multiple new ad groups. All ads in a given ad group will have the same budget, bid, run dates, targeting, and placement (search, browse, other). For more information, click here. Notes: - `bid_in_micro_currency` and `budget_in_micro_currency` should be expressed in microcurrency amounts based on the currency field set in the advertiser's profile.Microcurrency is used to track very small transactions, based on the currency set in the advertiser’s profile.
A microcurrency unit is 10^(-6) of the standard unit of currency selected in the advertiser’s profile.
Equivalency equations, using dollars as an example currency:
To convert between currency and microcurrency, using dollars as an example currency:
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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupsAnalyticsResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- ad_groups
x-ratelimit-category: ads_analytics
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ad_groups/targeting_analytics':
get:
operationId: 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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- ad_groups
x-ratelimit-category: ads_analytics
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ad_groups/audience_sizing':
post:
operationId: ad_groups/audience_sizing
summary: Get audience sizing
description: |-
Get potential audience size for an ad group with given targeting criteria.
Potential audience size estimates the number of people you may be able to reach per month with your campaign.
It is based on historical advertising data and the targeting criteria you select.
It does not guarantee results or take into account factors such as bid, budget, schedule, seasonality or product experiments.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupAudienceSizingRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupAudienceSizingResponse'
'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:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- ad_groups
x-ratelimit-category: ads_read
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ad_groups/{ad_group_id}':
get:
operationId: ad_groups/get
summary: Get ad group
description: Get a specific ad group given the ad group ID.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_ad_group_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- ad_groups
x-ratelimit-category: ads_read
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ad_previews':
post:
operationId: ad_previews/create
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.
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'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- ads
x-ratelimit-category: ads_write
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ads':
get:
operationId: ads/list
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.
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':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- ads
x-ratelimit-category: ads_read
x-sandbox: enabled
post:
operationId: ads/create
summary: Create ads
description: 'Create multiple new ads. Request must contain ad_group_id, creative_type, and the source Pin pin_id.'
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: 'List of ads to create, size limit [1, 30].'
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AdCreateRequest'
maxItems: 30
minItems: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdArrayResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- ads
x-ratelimit-category: ads_write
x-sandbox: enabled
patch:
operationId: ads/update
summary: Update ads
description: Update multiple existing ads
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: 'List of ads to update, size limit [1, 30]'
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AdUpdateRequest'
maxItems: 30
minItems: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdArrayResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- ads
x-ratelimit-category: ads_write
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ads/analytics':
get:
operationId: ads/analytics
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.
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
in: query
description: List of Pin IDs.
required: false
schema:
type: array
items:
type: string
pattern: ^\d+$
maxItems: 100
minItems: 1
- $ref: '#/components/parameters/query_campaign_ids'
- $ref: '#/components/parameters/query_reporting_timezone'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- ads
x-ratelimit-category: ads_analytics
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ads_credit/discounts':
get:
operationId: ads_credits_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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $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/AdsCreditDiscountsResponse'
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- 'billing:read'
tags:
- billing
x-ratelimit-category: ads_read
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/ads_credit/redeem':
post:
operationId: ads_credit/redeem
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.
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'
security:
- pinterest_oauth2:
- 'ads:write'
- 'billing:write'
tags:
- billing
x-ratelimit-category: ads_write
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/ads/targeting_analytics':
get:
operationId: ad_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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- ads
x-ratelimit-category: ads_analytics
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ads/{ad_id}':
get:
operationId: ads/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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_ad_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- ads
x-ratelimit-category: ads_read
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/advertiser_defined_events':
get:
operationId: advertiser_defined_events/get
summary: Get advertiser defined events
description: Get advertiser defined events for the given ad account.
parameters: - $ref: '#/components/parameters/path_ad_account_id' responses: '200': description: Success content: application/json: schema: type: object properties: items: type: array items: type: object title: AdvertiserDefinedEvent properties: name: description: 'raw string name of the event, usually logged as raw_event_name in our dataset' type: string example: download_picture mapped_conversion_type: description: standard type mapped to ADE for optimization anyOf: - type: string description: conversion tag type example: PAGE_LOAD enum: - PAGE_LOAD - UNKNOWN - INITIALIZED - PAGE_VISIT - SIGNUP - CHECKOUT - CUSTOM - VIEW_CATEGORY - SEARCH - ADD_TO_CART - WATCH_VIDEO - LEAD - APP_INSTALL - WEB_SESSION - EXTERNAL_MEASUREMENT - ADD_PAYMENT_INFO - ADD_TO_WISHLIST - INITIATE_CHECKOUT - SUBSCRIBE - VIEW_CONTENT - ADVERTISER_DEFINED_EVENT - type: string nullable: true enum: - null nullable: true title: AdvertiserDefinedEventsResponse default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:read' - client_credentials: - 'ads:read' tags: - conversions x-ratelimit-category: ads_read x-sandbox: disabled '/ad_accounts/{ad_account_id}/analytics': get: operationId: ad_account/analytics summary: Get ad account analytics description: |- Get analytics for 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, 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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdAccountAnalyticsResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- ad_accounts
x-ratelimit-category: ads_analytics
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/audience_insights':
get:
operationId: 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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_audience_insight_type'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceInsightsResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- audience_insights
x-ratelimit-category: ads_read
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/audiences':
get:
operationId: audiences/list
summary: List audiences
description: Get list of audiences for the ad account.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_bookmark'
- name: order
in: query
description: |-
The order in which to sort the items returned: “ASCENDING” or “DESCENDING” by ID.
For received audiences, it is sorted by sharing event time.
Note that higher-value IDs are associated with more-recently added items.
required: false
schema:
type: string
example: ASCENDING
enum:
- ASCENDING
- DESCENDING
- $ref: '#/components/parameters/query_page_size'
- name: ownership_type
in: query
description: Filter audiences by ownership type.
required: false
schema:
type: string
default: OWNED
enum:
- OWNED
- RECEIVED
example: OWNED
responses:
'200':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Audience'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- audiences
x-ratelimit-category: ads_read
x-sandbox: disabled
post:
operationId: audiences/create
summary: Create audience
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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: 'List of ads to create, size limit [1, 30]'
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceCreateRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- audiences
x-ratelimit-category: ads_write
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/audiences/{audience_id}':
get:
operationId: audiences/get
summary: Get audience
description: Get a specific audience given the audience ID.
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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- audiences
x-ratelimit-category: ads_read
x-sandbox: disabled
patch:
operationId: audiences/update
summary: Update audience
description: Update (edit or remove) an existing targeting audience.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_audience_id'
requestBody:
description: The audience to be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceUpdateRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- audiences
x-ratelimit-category: ads_write
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/audiences/shared/accounts':
get:
operationId: ad_accounts_audiences_shared_accounts/list
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.
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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- audience_sharing
x-ratelimit-category: ads_read
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/audiences/ad_accounts/shared':
patch:
operationId: update_ad_account_to_ad_account_shared_audience
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’s profile.
A microcurrency unit is 10^(-6) of the standard unit of currency selected in the advertiser’s profile.
Equivalency equations, using dollars as an example currency:
To convert between currency and microcurrency, using dollars as an example currency:
request_id
that can be used to obtain the status of the request.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Parameters to get create/update ad entities in bulk
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- bulk
x-ratelimit-category: ads_write
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/bulk/{bulk_request_id}':
get:
operationId: bulk_request/get
summary: Download advertiser entities in bulk
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).
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_bulk_request_id'
- $ref: '#/components/parameters/include_details'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertStatusResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- bulk
x-ratelimit-category: ads_read
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/campaigns':
get:
operationId: campaigns/list
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.
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':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CampaignResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- campaigns
x-ratelimit-category: ads_read
x-sandbox: enabled
post:
operationId: campaigns/create
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.
For more, see Set up your campaign.
Note:
- 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)
Microcurrency is used to track very small transactions, based on the currency set in the advertiser’s profile.
A microcurrency unit is 10^(-6) of the standard unit of currency selected in the advertiser’s profile.
Equivalency equations, using dollars as an example currency:
To convert between currency and microcurrency, using dollars as an example currency:
Update multiple ad campaigns based on campaign_ids.
Note:
-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)
Microcurrency is used to track very small transactions, based on the currency set in the advertiser's profile.
A microcurrency unit is 10^(-6) of the standard unit of currency selected in the advertiser's profile.
Equivalency equations, using dollars as an example currency:
To convert between currency and microcurrency, using dollars as an example currency:
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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignsAnalyticsResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- campaigns
x-ratelimit-category: ads_analytics
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/campaigns/targeting_analytics':
get:
operationId: campaign_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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- campaigns
x-ratelimit-category: ads_analytics
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/campaigns/{campaign_id}':
get:
operationId: campaigns/get
summary: Get campaign
description: Get a specific campaign given the campaign ID.
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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- campaigns
x-ratelimit-category: ads_read
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/conversion_tags':
get:
operationId: conversion_tags/list
summary: Get conversion tags
description: List conversion tags associated with an ad account.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_filter_deleted'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagListResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- conversion_tags
x-ratelimit-category: ads_read
x-sandbox: disabled
post:
operationId: conversion_tags/create
summary: Create conversion tag
description: |-
Create a conversion tag, also known as Pinterest tag, with the option to enable enhanced match.
The Pinterest Tag tracks actions people take on the ad account’s website after they view the ad account's ad on Pinterest. The advertiser needs to customize this tag to track conversions.
For more information, see:
Set up the Pinterest tag
Pinterest Tag
Enhanced match
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Conversion Tag to create
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagCreate'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- conversion_tags
x-ratelimit-category: ads_write
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/conversion_tags/ocpm_eligible':
get:
operationId: ocpm_eligible_conversion_tags/get
summary: Get Ocpm eligible conversion tags
description: Get Ocpm eligible conversion tag events for an ad account.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagsOcpmEligibleResponse'
default:
description: Unexpected errors
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- conversion_tags
x-ratelimit-category: ads_read
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/conversion_tags/page_visit':
get:
operationId: page_visit_conversion_tags/get
summary: Get page visit conversion tags
description: Get all page visit conversion tag events for an ad account.
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'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ConversionEventResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- conversion_tags
x-ratelimit-category: ads_read
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/conversion_tags/{conversion_tag_id}':
get:
operationId: conversion_tags/get
summary: Get conversion tag
description: Get information about an existing conversion tag.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_conversion_tag_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- conversion_tags
x-ratelimit-category: ads_read
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/customer_lists':
post:
operationId: customer_lists/create
summary: Create customer lists
description: |-
Create a customer list from your records(hashed or plain-text email addresses, or hashed MAIDs or IDFAs).
A customer list is one of the four types of Pinterest audiences: for more information, see Audience targeting or the Audiences section of the ads management guide.
Please review our requirements for what type of information is allowed when uploading a customer list.
When you create a customer list, the system scans the list for existing Pinterest accounts; the list must include at least 100 Pinterest accounts. Your original list will be deleted when the matching process is complete. The filtered list – containing only the Pinterest accounts that were included in your starting list – is what will be used to create the audience.
Note that once you have created your customer list, you must convert it into an audience (of the “CUSTOMER_LIST” type) using the create audience endpoint before it can be used.
parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: description: Parameters to get Customer lists info required: true content: application/json: schema: $ref: '#/components/schemas/CustomerListRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/CustomerList' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:write' tags: - customer_lists x-ratelimit-category: ads_write x-sandbox: disabled get: operationId: customer_lists/list summary: Get customer lists 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.
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' - type: object properties: items: type: array items: $ref: '#/components/schemas/CustomerList' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:read' tags: - customer_lists x-ratelimit-category: ads_read x-sandbox: disabled '/ad_accounts/{ad_account_id}/customer_lists/{customer_list_id}': get: operationId: customer_lists/get summary: Get customer list description: Gets a specific customer list given the customer list ID. parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_customer_list_id' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/CustomerList' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:read' - client_credentials: - 'ads:read' tags: - customer_lists x-ratelimit-category: ads_read x-sandbox: disabled patch: operationId: customer_lists/update summary: Update customer list description: |-Append or remove records to/from an existing customer list. (A customer list is one of the four types of Pinterest audiences.)
When you add records to an existing customer list, the system scans the additions for existing Pinterest accounts; those are the records that will be added to your “CUSTOMER_LIST” audience. Your original list of records to add will be deleted when the matching process is complete.
For more information, see Audience targeting or the Audiences section of the ads management guide.
parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_customer_list_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomerListUpdateRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/CustomerList' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:write' tags: - customer_lists x-ratelimit-category: ads_write x-sandbox: disabled '/ad_accounts/{ad_account_id}/events': post: operationId: events/create 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.)
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- name: test
in: query
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.
required: false
schema:
type: boolean
requestBody:
description: Conversion events.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionEvents'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionApiResponse'
'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':
description: Not all events were successfully processed.
content:
application/json:
schema:
$ref: '#/components/schemas/DetailedError'
'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'
security:
- pinterest_oauth2:
- 'ads:write'
- conversion_token: []
tags:
- conversion_events
x-ratelimit-category: ads_conversions
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/msot/events':
post:
operationId: msot_events/create
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.
parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KeywordsRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/KeywordsResponse' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:write' tags: - keywords x-ratelimit-category: ads_write x-sandbox: enabled patch: operationId: keywords/update 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.
parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KeywordUpdateBody' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/KeywordsResponse' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:write' tags: - keywords x-ratelimit-category: ads_write x-sandbox: enabled '/ad_accounts/{ad_account_id}/keywords/metrics': get: operationId: country_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). parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_country_code' - $ref: '#/components/parameters/query_keywords' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/KeywordsMetricsArrayResponse' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:read' - client_credentials: - 'ads:read' tags: - keywords x-ratelimit-category: ads_read x-sandbox: enabled '/ad_accounts/{ad_account_id}/labels': post: operationId: labels/create 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.
parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LabelCreateRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/LabelsResponse' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:write' tags: - labels x-ratelimit-category: ads_write x-sandbox: enabled get: operationId: labels/list 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.
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': description: Success content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/LabelsResponse' '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' security: - pinterest_oauth2: - 'ads:read' tags: - labels x-ratelimit-category: ads_read x-sandbox: enabled patch: operationId: labels/update summary: Update labels description: |-Closed beta This endpoint is not available to all users.
Change the properties of one or more labels.
parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LabelUpdateRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/LabelsResponse' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:write' tags: - labels x-ratelimit-category: ads_write x-sandbox: enabled '/ad_accounts/{ad_account_id}/lead_forms': get: operationId: lead_forms/list 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. 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' - type: object properties: items: type: array items: $ref: '#/components/schemas/LeadFormResponse' '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' security: - pinterest_oauth2: - 'ads:read' tags: - lead_forms x-ratelimit-category: ads_read x-sandbox: enabled post: operationId: lead_forms/create summary: Create 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. Create lead forms. Lead forms are used in lead ads and allow you to control what text appears on the lead form’s description, questions and confirmation sections. For more, see Lead ads. parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: description: 'List of lead forms to create, size limit [1, 30].' required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/LeadFormCreateRequest' maxItems: 30 minItems: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/LeadFormArrayResponse' '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' security: - pinterest_oauth2: - 'ads:write' tags: - lead_forms x-ratelimit-category: ads_write x-sandbox: disabled patch: operationId: lead_forms/update summary: Update 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. 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. parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: description: 'List of lead forms to update, size limit [1, 30].' required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/LeadFormUpdateRequest' maxItems: 30 minItems: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/LeadFormArrayResponse' '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' security: - pinterest_oauth2: - 'ads:write' tags: - lead_forms x-ratelimit-category: ads_write x-sandbox: disabled '/ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}': get: operationId: lead_form/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. parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_lead_form_id' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/LeadFormResponse' '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' security: - pinterest_oauth2: - 'ads:read' tags: - lead_forms x-ratelimit-category: ads_read x-sandbox: enabled '/ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}/test': post: operationId: lead_form_test/create 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. parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_lead_form_id' requestBody: description: Subscription to create. required: true content: application/json: schema: $ref: '#/components/schemas/LeadFormTestRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/LeadFormTestResponse' '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' security: - pinterest_oauth2: - 'ads:write' tags: - lead_forms x-ratelimit-category: ads_write x-sandbox: disabled '/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 properties: bookmark: type: string nullable: true items: type: array items: $ref: '#/components/schemas/LeadSubscription' required: - items '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' security: - pinterest_oauth2: - 'ads:read' tags: - lead_ads x-ratelimit-category: ads_read x-sandbox: disabled 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' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LeadSubscriptionPostParamsCreate' 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' security: - pinterest_oauth2: - 'ads:write' tags: - lead_ads x-ratelimit-category: ads_write x-sandbox: enabled '/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' security: - pinterest_oauth2: - 'ads:read' - client_credentials: - 'ads:read' tags: - lead_ads x-ratelimit-category: ads_read x-sandbox: disabled 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' security: - pinterest_oauth2: - 'ads:write' tags: - lead_ads x-ratelimit-category: ads_write x-sandbox: disabled '/ad_accounts/{ad_account_id}/leads_export': post: operationId: leads_export/create summary: Create a request to export leads collected from a lead ad 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. parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LeadsExportCreateRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/LeadsExportCreateResponse' '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' security: - pinterest_oauth2: - 'ads:write' tags: - leads_export x-ratelimit-category: ads_write x-sandbox: disabled '/ad_accounts/{ad_account_id}/leads_export/{leads_export_id}': get: operationId: leads_export/get summary: Get the lead export from the lead export create call 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. 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 required: true schema: type: string pattern: ^\d+$ example: '123755885175' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/LeadsExportResponseData' '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' security: - pinterest_oauth2: - 'ads:read' tags: - leads_export x-ratelimit-category: ads_read x-sandbox: disabled '/ad_accounts/{ad_account_id}/mmm_reports': get: operationId: analytics/get_mmm_report 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. parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_token_required' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/GetMMMReportResponse' '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' security: - pinterest_oauth2: - 'ads:read' tags: - ad_accounts x-ratelimit-category: ads_read x-sandbox: disabled post: operationId: analytics/create_mmm_report 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. parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateMMMReportRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/CreateMMMReportResponse' '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' security: - pinterest_oauth2: - 'ads:read' tags: - ad_accounts x-ratelimit-category: ads_analytics x-sandbox: disabled '/ad_accounts/{ad_account_id}/order_lines': get: operationId: order_lines/list summary: Get order lines description: List existing order lines associated with an ad account. 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' - type: object properties: items: type: array items: $ref: '#/components/schemas/OrderLine' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:read' tags: - order_lines x-ratelimit-category: ads_read x-sandbox: enabled '/ad_accounts/{ad_account_id}/order_lines/{order_line_id}': get: operationId: order_lines/get summary: Get order line description: Get a specific existing order line associated with an ad account. parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_order_line_id' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/OrderLine' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:read' tags: - order_lines x-ratelimit-category: ads_read x-sandbox: enabled '/ad_accounts/{ad_account_id}/pins/analytics': get: operationId: ad_pins/analytics 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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdPinsAnalyticsResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- campaigns
x-ratelimit-category: ads_analytics
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/product_group_promotions':
post:
operationId: product_group_promotions/create
summary: Create product group promotions
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.')
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: 'List of Product Group Promotions to create, size limit [1, 30].'
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupPromotionCreateRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupPromotionResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- product_group_promotions
x-ratelimit-category: ads_write
x-sandbox: disabled
patch:
operationId: product_group_promotions/update
summary: Update product group promotions
description: Update multiple existing Product Group Promotions (by product_group_id)
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Parameters to update Product group promotions
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupPromotionUpdateRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupPromotionResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- product_group_promotions
x-ratelimit-category: ads_write
x-sandbox: disabled
get:
operationId: product_group_promotions/list
summary: Get product group promotions
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.
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':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ProductGroupPromotion'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- product_group_promotions
x-ratelimit-category: ads_read
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/product_group_promotions/{product_group_promotion_id}':
get:
operationId: product_group_promotions/get
summary: Get a product group promotion by id
description: Get a product group promotion by id
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_product_group_promotion_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupPromotion'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- product_group_promotions
x-ratelimit-category: ads_read
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/product_groups/analytics':
get:
operationId: product_groups/analytics
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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupAnalyticsResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- product_group_promotions
x-ratelimit-category: ads_analytics
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/promotions':
get:
operationId: promotions/list
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.
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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- promotions
x-ratelimit-category: ads_read
x-sandbox: disabled
post:
operationId: promotions/create
summary: Create promotions
description: Create multiple new promotions.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: 'List of promotions to create, size limit [1, 30].'
required: true
content:
application/json:
schema:
description: List of promotions to create.
type: array
items:
$ref: '#/components/schemas/PromotionCreateRequest'
maxItems: 30
minItems: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PromotionsResponse'
'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:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- promotions
x-ratelimit-category: ads_write
x-sandbox: disabled
patch:
operationId: promotions/update
summary: Update promotions
description: Update multiple promotions.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: 'List of promotions to create, size limit [1, 30].'
required: true
content:
application/json:
schema:
description: List of promotion data updates keyed on promotion id.
type: array
items:
$ref: '#/components/schemas/PromotionUpdateRequest'
maxItems: 30
minItems: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PromotionsResponse'
'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:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- promotions
x-ratelimit-category: ads_write
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/promotions/{promotion_id}':
get:
operationId: promotions/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.
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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- promotions
x-ratelimit-category: ads_read
x-sandbox: disabled
delete:
operationId: promotions/delete
summary: Delete promotion by id
description: Delete a promotion within Pinterest.
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'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- promotions
x-ratelimit-category: ads_write
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/reports':
get:
operationId: analytics/get_report
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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_token_required'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsGetAsyncResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- ad_accounts
x-ratelimit-category: ads_analytics
x-sandbox: disabled
post:
operationId: analytics/create_report
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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsCreateAsyncRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsCreateAsyncResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- ad_accounts
x-ratelimit-category: ads_analytics
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/reports/brand_category_sku':
get:
operationId: analytics/get_conversion_product_report
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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_token_required'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsGetAsyncResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- ad_accounts
x-ratelimit-category: ads_read
x-sandbox: disabled
post:
operationId: analytics/create_conversion_product_report
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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionProductReportRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsCreateAsyncResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- ad_accounts
x-ratelimit-category: ads_analytics
x-sandbox: disabled
'/ad_accounts/{ad_account_id}/sandbox':
delete:
operationId: 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.
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'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- ad_accounts
x-ratelimit-category: ads_write
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ssio/accounts':
get:
operationId: 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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOAccountResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- billing
x-ratelimit-category: ads_read
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ssio/insertion_orders':
post:
operationId: ssio_insertion_order/create
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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Order line to create.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOCreateInsertionOrderRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOCreateInsertionOrderResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- billing
x-ratelimit-category: ads_write
x-sandbox: enabled
patch:
operationId: ssio_insertion_order/edit
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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Order line to create.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOEditInsertionOrderRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOEditInsertionOrderResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- billing
x-ratelimit-category: ads_write
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ssio/insertion_orders/status':
get:
operationId: ssio_insertion_orders_status/get_by_ad_account
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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $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:
description: Insertion orders status by ad acount id
items:
$ref: '#/components/schemas/SSIOInsertionOrderStatus'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- billing
x-ratelimit-category: ads_read
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ssio/insertion_orders/{pin_order_id}/status':
get:
operationId: ssio_insertion_orders_status/get_by_pin_order_id
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.
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_pin_order_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOInsertionOrderStatusResponse'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- billing
x-ratelimit-category: ads_read
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/ssio/order_lines':
get:
operationId: ssio_order_lines/get_by_ad_account
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.
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':
description: Success
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'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- billing
x-ratelimit-category: ads_read
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/targeting_analytics':
get:
operationId: ad_account_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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- ad_accounts
x-ratelimit-category: ads_analytics
x-sandbox: enabled
'/ad_accounts/{ad_account_id}/targeting_templates':
get:
operationId: targeting_template/list
summary: List targeting templates
description: Get a list of the targeting templates in the specified ad_account_id
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_order'
- name: include_sizing
in: query
description: Include audience sizing in result or not
required: false
schema:
type: boolean
default: false
- name: search_query
in: query
description: Search keyword for targeting templates
required: false
schema:
type: string
example: gaming
- $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/TargetingTemplateGetResponseData'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- targeting_template
x-ratelimit-category: ads_read
x-sandbox: disabled
post:
operationId: targeting_template/create
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.
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': description: Success content: application/json: schema: $ref: '#/components/schemas/TargetingTemplateGetResponseData' '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' security: - pinterest_oauth2: - 'ads:write' tags: - targeting_template x-ratelimit-category: ads_write x-sandbox: disabled patch: operationId: targeting_template/update summary: Update targeting templates description:Update the targeting template given advertiser ID and targeting template ID
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: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:write' tags: - targeting_template x-ratelimit-category: ads_write x-sandbox: enabled '/ad_accounts/{ad_account_id}/templates': get: operationId: templates/list summary: List templates description: Gets all Templates associated with an ad account ID. 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' - type: object properties: items: type: array items: $ref: '#/components/schemas/TemplateResponse' '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' security: - pinterest_oauth2: - 'ads:read' tags: - ad_accounts x-ratelimit-category: ads_read x-sandbox: enabled '/ad_accounts/{ad_account_id}/templates/{template_id}/reports': post: operationId: analytics/create_template_report 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. 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': description: Success content: application/json: schema: $ref: '#/components/schemas/AdsAnalyticsCreateAsyncResponse' '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' security: - pinterest_oauth2: - 'ads:read' tags: - ad_accounts x-ratelimit-category: ads_analytics x-sandbox: disabled '/ad_accounts/{ad_account_id}/terms_of_service': get: operationId: terms_of_service/get summary: Get terms of service description: Get the text of the terms of service and see whether the advertiser has accepted the terms of service. parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_include_html' - $ref: '#/components/parameters/query_tos_type' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/TermsOfService' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:read' tags: - terms_of_service x-ratelimit-category: ads_read x-sandbox: enabled /advanced_auction/items/get: post: operationId: 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.
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'
security:
- pinterest_oauth2:
- 'ads:read'
- 'catalogs:read'
tags:
- advanced_auction
x-ratelimit-category: advanced_auction_read
x-sandbox: enabled
/advanced_auction/items/submit:
post:
operationId: 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.
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'
security:
- pinterest_oauth2:
- 'ads:write'
- 'catalogs:read'
tags:
- advanced_auction
x-ratelimit-category: advanced_auction_write
x-sandbox: enabled
/boards:
post:
operationId: boards/create
summary: Create board
description: |2-
Create a board owned by the "operation user_account".
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
* By default, the "operation user_account" is the token user_account.
parameters:
- $ref: '#/components/parameters/QueryParams.query_ad_account_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BoardCreate'
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Board'
'201':
description: Resource create operation completed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Board'
'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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:write'
- client_credentials:
- 'boards:read'
- 'boards:write'
tags:
- boards
x-ratelimit-category: org_write
x-sandbox: enabled
get:
operationId: boards/list
summary: List boards
description: |2-
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.
parameters:
- $ref: '#/components/parameters/QueryParams.query_ad_account_id'
- $ref: '#/components/parameters/QueryParams.query_board_privacy'
- $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
properties:
bookmark:
type: string
nullable: true
items:
type: array
items:
$ref: '#/components/schemas/Board'
required:
- items
'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'
security:
- pinterest_oauth2:
- 'boards:read'
- client_credentials:
- 'boards:read'
tags:
- boards
x-ratelimit-category: org_read
x-sandbox: enabled
'/boards/{board_id}':
get:
operationId: boards/get
summary: Get board
description: |2-
Get a board owned by the operation user_account - or a group board that has been shared with this account.
* Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
* By default, the "operation user_account" is the token user_account.
parameters:
- $ref: '#/components/parameters/BoardKey'
- $ref: '#/components/parameters/QueryParams.query_ad_account_id'
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Board'
'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'
security:
- pinterest_oauth2:
- 'boards:read'
- client_credentials:
- 'boards:read'
tags:
- boards
x-ratelimit-category: org_read
x-sandbox: enabled
delete:
operationId: boards/delete
summary: Delete board
description: |2-
Delete a board owned by the "operation user_account".
* Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
* By default, the "operation user_account" is the token user_account.
parameters:
- $ref: '#/components/parameters/BoardKey'
- $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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:write'
tags:
- boards
x-ratelimit-category: org_write
x-sandbox: enabled
patch:
operationId: boards/update
summary: Update board
description: |2-
Update a board owned by the "operating user_account".
* Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
* By default, the "operation user_account" is the token user_account.
parameters:
- $ref: '#/components/parameters/BoardWithUpdatePrivacyKey'
- $ref: '#/components/parameters/QueryParams.query_ad_account_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BoardWithUpdatePrivacyUpdate'
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/BoardWithUpdatePrivacy'
'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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:write'
- client_credentials:
- 'boards:read'
- 'boards:write'
tags:
- boards
x-ratelimit-category: org_write
x-sandbox: enabled
'/boards/{board_id}/pins':
get:
operationId: boards/list_pins
summary: List Pins on board
description: |-
Get a list of the Pins on a board owned by the "operation user_account" - or on a group board that has been shared with this account.
- Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
- By default, the "operation user_account" is the token user_account.
parameters:
- $ref: '#/components/parameters/path_board_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_creative_types'
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_pin_metrics'
responses:
'200':
description: response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Pins
items:
$ref: '#/components/schemas/Pin'
'404':
description: Board not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Board not found.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'boards:read'
- 'pins:read'
- client_credentials:
- 'boards:read'
- 'pins:read'
tags:
- boards
x-ratelimit-category: org_read
x-sandbox: enabled
'/boards/{board_id}/sections':
get:
operationId: board_sections/list
summary: List board sections
description: |-
Get a list of all board sections from a board owned by the "operation user_account" - or a group board that has been shared with this account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
- By default, the "operation user_account" is the token user_account.
parameters:
- $ref: '#/components/parameters/path_board_id'
- $ref: '#/components/parameters/query_ad_account_id'
- $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: Board sections
items:
$ref: '#/components/schemas/BoardSection'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'boards:read'
- client_credentials:
- 'boards:read'
tags:
- boards
x-ratelimit-category: org_read
x-sandbox: enabled
post:
operationId: board_sections/create
summary: Create board section
description: |-
Create a board section on a board owned by the "operation user_account" - or on a group board that has been shared with this account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
- By default, the "operation user_account" is the token user_account.
parameters:
- $ref: '#/components/parameters/path_board_id'
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Create a board section.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BoardSection'
responses:
'201':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/BoardSection'
'400':
description: Invalid board section parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid board section parameters.
'403':
description: Not authorized to create board sections.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to create board sections.
'409':
description: Could not get exclusive access to the board to create a new section.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 409
message: Could not get exclusive access to the board to create a new section.
'500':
description: Could not create a new board section.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: Could not create a new board section.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:write'
tags:
- boards
x-ratelimit-category: org_write
x-sandbox: enabled
'/boards/{board_id}/sections/{section_id}':
patch:
operationId: board_sections/update
summary: Update board section
description: |-
Update a board section on a board owned by the "operation user_account" - or on a group board that has been shared with this account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
- By default, the "operation user_account" is the token user_account.
parameters:
- $ref: '#/components/parameters/path_board_id'
- $ref: '#/components/parameters/path_board_section_id'
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Update a board section.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BoardSection'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/BoardSection'
'400':
description: Invalid board section parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid board section parameters.
'403':
description: Not authorized to update board section.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to update board section.
'409':
description: Board section conflict.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 409
message: Board section conflict.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:write'
tags:
- boards
x-ratelimit-category: org_write
x-sandbox: enabled
delete:
operationId: board_sections/delete
summary: Delete board section
description: |-
Delete a board section on a board owned by the "operation user_account" - or on a group board that has been shared with this account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
- By default, the "operation user_account" is the token user_account.
parameters:
- $ref: '#/components/parameters/path_board_id'
- $ref: '#/components/parameters/path_board_section_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'204':
description: Board section deleted successfully
'403':
description: Not authorized to delete board section.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to delete board section.
'404':
description: Board section not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Board section not found.
'409':
description: Board section conflict.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 409
message: Board section conflict.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:write'
tags:
- boards
x-ratelimit-category: org_write
x-sandbox: enabled
'/boards/{board_id}/sections/{section_id}/pins':
get:
operationId: board_sections/list_pins
summary: List Pins on board section
description: |-
Get a list of the Pins on a board section of a board owned by the "operation user_account" - or on a group board that has been shared with this account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
- By default, the "operation user_account" is the token user_account.
parameters:
- $ref: '#/components/parameters/path_board_id'
- $ref: '#/components/parameters/path_board_section_id'
- $ref: '#/components/parameters/query_ad_account_id'
- $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: Pins
items:
$ref: '#/components/schemas/Pin'
'403':
description: Not authorized to access Pins on board section.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access Pins on board section.
'404':
description: Board or section not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Board or section not found.
'409':
description: Board section conflict.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 409
message: Board section conflict.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'boards:read'
- 'pins:read'
- client_credentials:
- 'boards:read'
- 'pins:read'
tags:
- boards
x-ratelimit-category: org_read
x-sandbox: enabled
/businesses/employers:
get:
operationId: get/business_employers
summary: List business employers for user
description: Get all of the viewing user's business employers.
parameters:
- $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:
description: List of employers.
type: array
items:
$ref: '#/components/schemas/UserBusinessRoleBinding'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
tags:
- business_access_relationships
x-ratelimit-category: ads_read
x-sandbox: enabled
/businesses/invites:
patch:
operationId: respond_business_access_invites
summary: Accept or decline an invite/request
description: Accept or decline invites or requests.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AuthRespondInvitesBody'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RespondToInvitesResponseArray'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
- 'biz_access:write'
tags:
- business_access_invite
x-ratelimit-category: ads_write
x-sandbox: enabled
'/businesses/{business_id}/system_users/{system_user_id}':
patch:
operationId: system_user/update
summary: Update a system user information.
description: Update a system user information such as name.
parameters:
- $ref: '#/components/parameters/path_business_user'
- name: system_user_id
in: path
description: Unique identifier of a system user.
required: true
schema:
type: string
maxLength: 20
minLength: 1
pattern: ^\d+$
example: '729090764583391194'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
description: New system user name
type: string
example: Billing API
required:
- name
responses:
'200':
description: System user updated successfully.
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
- 'biz_access:write'
tags:
- business_access_relationships
x-ratelimit-category: ads_write
x-sandbox: disabled
'/businesses/{business_id}/assets/{asset_id}/members':
get:
operationId: business_asset_members/get
summary: Get members with access to asset
description: Get all the members the requesting business has granted access to on the given asset.
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/path_asset_id'
- $ref: '#/components/parameters/fetch_system_users'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_business_access_start_index'
responses:
'200':
description: Sucess
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: List of members with permissions to the asset.
type: array
items:
$ref: '#/components/schemas/UserSingleAssetBinding'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
tags:
- business_access_assets
x-ratelimit-category: ads_read
x-sandbox: disabled
'/businesses/{business_id}/assets/{asset_id}/partners':
get:
operationId: business_asset_partners/get
summary: Get partners with access to asset
description: |-
Get all the partners the requesting business has granted access to on the given asset.
Note: If the asset has been shared with you, an empty array will be returned. This is because an asset shared with
you cannot be shared with a different partner.
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/path_asset_id'
- $ref: '#/components/parameters/query_business_access_start_index'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
description: Sucess
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: List of partners with permissions to the asset.
type: array
items:
$ref: '#/components/schemas/UserSingleAssetBinding'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
tags:
- business_access_assets
x-ratelimit-category: ads_read
x-sandbox: disabled
'/businesses/{business_id}/invites/assets/access':
post:
operationId: create_asset_invites
summary: Update invite/request with an asset permission
description: |-
Assign asset permissions information to an existing invite/request. Can be used to:
- Request access to a partner's asset. Note: This is only for when no existing partnership exists. If an existing
partnership exists, use "Create a request to access an existing partner's assets" to request access to your
partner's assets.
- invite_type="PARTNER_REQUEST"
- Invite a partner to access your business assets. Note: This is only for when there is no existing partnership.
If there is an existing partnership, use "Assign/Update partner asset permissions" to assign a partner access to
new assets.
- invite_type="PARTNER_INVITE"
- Invite a member to access your business assets. Note: This is only for when there is no existing membership.
If there is an existing membership, use "Assign/Update member asset permissions" to assign a member access to new
assets.
- invite_type="MEMBER_INVITE"
To learn more about permission levels, visit https://help.pinterest.com/en/business/article/business-manager-overview.
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
description: |
A list of invites/requests together with the asset permissions to be assigned to the invite/request.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAssetInvitesRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateInvitesResultsResponseArray'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
- 'biz_access:write'
tags:
- business_access_invite
x-ratelimit-category: ads_write
x-sandbox: disabled
'/businesses/{business_id}/requests/assets/access':
post:
operationId: asset_access_requests/create
summary: Create a request to access an existing partner's assets.
description: Create a request to access an existing partner's assets with the specified permissions. The request will be sent to the partner for approval. The assets that can be requested are ad accounts and profiles.
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAssetAccessRequestBody'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAssetAccessRequestResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
- 'biz_access:write'
tags:
- business_access_invite
x-ratelimit-category: ads_write
x-sandbox: disabled
'/businesses/{business_id}/members':
get:
operationId: get/business_members
summary: Get business members
description: |-
Get all members of the specified business.
The return response will include the member's business_role and assets they have access to if assets_summary=TRUE
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/fetch_system_users'
- $ref: '#/components/parameters/query_assets_summary'
- name: business_roles
in: query
description: A list of business roles to filter the members by. Only members whose roles are in the specified roles will be returned.
required: false
schema:
type: array
items:
$ref: '#/components/schemas/MemberBusinessRole'
- name: member_ids
in: query
description: A list of business members ids separated by comma.
required: false
schema:
type: string
maxLength: 500
example: '00101010101,2222220101'
- $ref: '#/components/parameters/query_business_access_start_index'
- $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:
description: List of business members.
type: array
items:
$ref: '#/components/schemas/UserBusinessRoleBinding'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
tags:
- business_access_relationships
x-ratelimit-category: ads_read
x-sandbox: disabled
patch:
operationId: update/business_memberships
summary: Update member's business role
description: Update a member's business role within the business.
parameters:
- $ref: '#/components/parameters/path_business_id'
requestBody:
description: List of objects with the member id and the business_role.
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UpdateMemberBusinessRoleBody'
minItems: 1
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateMemberResultsResponseArray'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:write'
tags:
- business_access_relationships
x-ratelimit-category: ads_write
x-sandbox: disabled
delete:
operationId: delete_business_membership
summary: Terminate business memberships
description: Terminate memberships between the specified members and your business.
parameters:
- $ref: '#/components/parameters/path_business_id'
requestBody:
description: List of members with role to delete.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MembersToDeleteBody'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DeletedMembersResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
- 'biz_access:write'
tags:
- business_access_relationships
x-ratelimit-category: ads_write
x-sandbox: enabled
'/businesses/{business_id}/assets':
get:
operationId: business_assets/get
summary: List business assets
description: Get all the assets the requesting business has access to. This includes assets the business owns and assets the business has access to through partnerships.
parameters:
- $ref: '#/components/parameters/path_business_user'
- name: permissions
in: query
description: A list of asset permissions used to filter the assets. Only assets where the requesting business has at least one of the specified permissions will be returned.
required: false
schema:
type: array
items:
$ref: '#/components/schemas/PermissionsWithOwner'
- name: child_asset_id
in: query
description: A child asset unique identifier. Used to fetch asset groups that contain the asset id as a child.
required: false
schema:
type: string
example: '549764894835'
maxLength: 20
minLength: 1
pattern: ^\d+$
- name: asset_group_id
in: query
description: An asset group unique identifier. Used to fetch assets contained within the specified asset group.
required: false
schema:
type: string
example: '7078106104032'
maxLength: 20
minLength: 1
pattern: ^\d+$
- $ref: '#/components/parameters/query_resource_type'
- $ref: '#/components/parameters/query_business_access_start_index'
- $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:
description: List of assets the requesting business has access to.
type: array
items:
$ref: '#/components/schemas/GetBusinessAssetsResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
tags:
- business_access_assets
x-ratelimit-category: ads_read
x-sandbox: disabled
'/businesses/{business_id}/members/{member_id}/assets':
get:
operationId: business_member_assets/get
summary: Get assets assigned to a member
description: |-
Get assets on which you assigned asset permissions to the given member. Can be used to:
- get all assets, regardless of asset type or
- get assets of one asset type by using the asset_type query.
The return response will include the permissions the member has to that asset and the asset type.
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/path_business_member_user'
- $ref: '#/components/parameters/query_resource_type'
- $ref: '#/components/parameters/query_business_access_start_index'
- $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:
description: List asset permissions the given member was granted.
type: array
items:
$ref: '#/components/schemas/AssetIdPermissions'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
tags:
- business_access_assets
x-ratelimit-category: ads_read
x-sandbox: disabled
'/businesses/{business_id}/members/assets/access':
patch:
operationId: business_members_asset_access/update
summary: Assign/Update member asset permissions
description: |
Grant multiple members access to assets and/or update multiple member's exisiting permissions to an asset.
Note: Not all listed permissions are applicable to each asset type. For example, PROFILE_PUBLISHER would not be applicable to an asset of type AD_ACCOUNT. The permission level PROFILE_PUBLISHER is only available to an asset of the type PROFILE.
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
description: List of member asset permissions to create or update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateMemberAssetAccessBody'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateMemberAssetsResultsResponseArray'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:write'
tags:
- business_access_assets
x-ratelimit-category: ads_write
x-sandbox: disabled
delete:
operationId: business_members_asset_access/delete
summary: Delete member access to asset
description: Terminate multiple members' access to an asset.
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
description: List member assset permissions to delete.
required: true
content:
application/json:
schema:
type: object
properties:
accesses:
description: List of members asset access to be deleted
type: array
items:
type: object
required:
- asset_id
- member_id
properties:
asset_id:
description: Id of the asset on which to remove member permissions.
type: string
example: '549755885175'
maxLength: 25
pattern: ^\d+$
member_id:
description: Unique identifier of the member on which to perform the asset permission removal
type: string
example: '140943737684417'
maxLength: 25
pattern: ^\d+$
maxItems: 100
minItems: 1
required:
- accesses
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteMemberAccessResultsResponseArray'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:write'
tags:
- business_access_assets
x-ratelimit-category: ads_write
x-sandbox: disabled
'/businesses/{business_id}/invites':
get:
operationId: get/invites
summary: Get invites/requests
description: Get the membership/partnership invites and/or requests for the authorized user.
parameters:
- $ref: '#/components/parameters/path_non_system_business_user'
- $ref: '#/components/parameters/query_is_member'
- $ref: '#/components/parameters/query_invite_status'
- $ref: '#/components/parameters/query_invite_type'
- $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:
description: List of invite and request data.
type: array
items:
$ref: '#/components/schemas/InviteResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:read'
tags:
- business_access_invite
x-ratelimit-category: ads_read
x-sandbox: disabled
post:
operationId: create_membership_or_partnership_invites
summary: Create invites or requests
description: |-
Create batch invites or requests. Can create batch invites or requests as described below.
- Invite members to join the business. This would required specifying the following:
- invite_type="MEMBER_INVITE"
- business_role="EMPLOYEE" OR business_role="BIZ_ADMIN" (To learn more about business roles, visit
https://help.pinterest.com/en/business/article/profile-permissions-in-business-access.)
- members
- Invite partners to access your business assets. This would require specifying the following:
- invite_type="PARTNER_INVITE"
- business_role="PARTNER"
- partners
- Request to be a partner so you can access their assets. This would require specifying the following:
- invite_type="PARTNER_REQUEST"
- business_role="PARTNER"
- partners
parameters:
- $ref: '#/components/parameters/path_non_system_business_user'
requestBody:
description: 'An object with the properties: invite_type, partners, members, business_role'
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateMembershipOrPartnershipInvitesBody'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInvitesResultsResponseArray'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:write'
tags:
- business_access_invite
x-ratelimit-category: ads_write
x-sandbox: disabled
delete:
operationId: cancel_invites_or_requests
summary: Cancel invites/requests
description: Cancel membership/partnership invites and/or requests.
parameters:
- $ref: '#/components/parameters/path_non_system_business_user'
requestBody:
description: A list with invite ids
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CancelInvitesBody'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteInvitesResultsResponseArray'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:write'
tags:
- business_access_invite
x-ratelimit-category: ads_write
x-sandbox: disabled
'/businesses/{business_id}/partners/assets':
patch:
operationId: update_partner_asset_access_handler_impl
summary: Assign/Update partner asset permissions
description: |-
Grant multiple partners access to assets and/or update multiple partner's exisiting permissions to an asset.
If your partner already had permissions on the asset, they will be overriden with the new permissions you assign to them.
To learn more about permission levels, visit https://help.pinterest.com/en/business/article/business-manager-overview
Note: Not all listed permissions are applicable to each asset type. For example, PROFILE_PUBLISHER would not be
applicable to an asset of type AD_ACCOUNT. The permission level PROFILE_PUBLISHER is only available to an asset of
the type PROFILE.
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
description: A list of assets and permissions to assign to your partners.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePartnerAssetAccessBody'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePartnerAssetsResultsResponseArray'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:write'
tags:
- business_access_assets
x-ratelimit-category: ads_write
x-sandbox: disabled
delete:
operationId: delete_partner_asset_access_handler_impl
summary: Delete partner access to asset
description: |-
Terminate multiple partners' access to an asset. If
- partner_type=INTERNAL: You will terminate a partner's asset access to your business assets.
- partner_type=EXTERNAL: You will terminate your own access to your partner's business assets.
parameters:
- $ref: '#/components/parameters/path_business_user'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePartnerAssetAccessBody'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePartnerAssetsResultsResponseArray'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'biz_access:write'
tags:
- business_access_assets
x-ratelimit-category: ads_write
x-sandbox: disabled
'/businesses/{business_id}/partners/{partner_id}/assets':
get:
operationId: business_partner_asset_access/get
summary: Get assets assigned to a partner or assets assigned by a partner
description: |-
Can be used to get the business assets your partner has granted you access to or the business assets you have
granted your partner access to. If you specify:
- partner_type=INTERNAL, you will retrieve your business assets that the partner has access to.
- partner_type=EXTERNAL, you will retrieve the partner's business assets that the partner has granted you access to.
parameters:
- $ref: '#/components/parameters/path_business_user'
- $ref: '#/components/parameters/path_business_partner_user'
- name: partner_type
in: query
description: |-
Specifies whether to fetch internal or external (shared) partners.
If partner_type=INTERNAL, the asset being queried is for accesses the partner has to your business assets.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
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Catalog'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalogs
x-ratelimit-category: catalogs_read
x-sandbox: enabled
post:
operationId: catalogs/create
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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Catalog'
'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'
security:
- pinterest_oauth2:
- 'catalogs:write'
tags:
- catalogs
x-ratelimit-category: catalogs_write
x-sandbox: enabled
/catalogs/available_filter_values:
get:
operationId: catalogs/available_filter_values
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
parameters:
- name: catalog_id
in: query
description: Filter entities for a given catalog_id.
required: true
schema:
type: string
pattern: ^\d+$
- $ref: '#/components/parameters/query_catalogs_feed_id'
- name: country
in: query
description: Country for the Catalogs Items
required: false
schema:
$ref: '#/components/schemas/Country'
example: US
- name: language
in: query
description: Language for the Catalogs Items
required: false
schema:
$ref: '#/components/schemas/CatalogsLocale'
example: en-US
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsAvailableFilterValues'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalogs
x-ratelimit-category: catalogs_read
x-sandbox: enabled
/catalogs/feeds:
get:
operationId: feeds/list
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.
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':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsFeed'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
- client_credentials:
- 'catalogs:read'
tags:
- catalog_feeds
x-ratelimit-category: catalogs_read
x-sandbox: enabled
post:
operationId: feeds/create
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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsFeed'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
- 'catalogs:write'
- client_credentials:
- 'catalogs:read'
- 'catalogs:write'
tags:
- catalog_feeds
x-ratelimit-category: catalogs_write
x-sandbox: enabled
'/catalogs/feeds/{feed_id}':
get:
operationId: feeds/get
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.
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsFeed'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
- client_credentials:
- 'catalogs:read'
tags:
- catalog_feeds
x-ratelimit-category: catalogs_read
x-sandbox: enabled
patch:
operationId: feeds/update
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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsFeed'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
- 'catalogs:write'
- client_credentials:
- 'catalogs:read'
- 'catalogs:write'
tags:
- catalog_feeds
x-ratelimit-category: catalogs_write
x-sandbox: enabled
delete:
operationId: feeds/delete
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.
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'
security:
- pinterest_oauth2:
- 'catalogs:read'
- 'catalogs:write'
- client_credentials:
- 'catalogs:read'
- 'catalogs:write'
tags:
- catalog_feeds
x-ratelimit-category: catalogs_write
x-sandbox: enabled
'/catalogs/feeds/{feed_id}/ingest':
post:
operationId: feeds/ingest
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.
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'
security:
- pinterest_oauth2:
- 'catalogs:write'
tags:
- catalog_feeds
x-ratelimit-category: catalogs_write
x-sandbox: enabled
'/catalogs/feeds/{feed_id}/processing_results':
get:
operationId: feed_processing_results/list
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
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':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsFeedProcessingResult'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalog_feeds
x-ratelimit-category: catalogs_read
x-sandbox: enabled
'/catalogs/processing_results/{processing_result_id}/item_issues':
get:
operationId: items_issues/list
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
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':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsItemValidationIssues'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalog_feeds
x-ratelimit-category: catalogs_read
x-sandbox: enabled
/catalogs/items:
post:
operationId: 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.
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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalog_items
x-ratelimit-category: catalogs_read
x-sandbox: enabled
/catalogs/items/batch:
post:
operationId: 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.
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'
security:
- pinterest_oauth2:
- 'catalogs:read'
- 'catalogs:write'
- client_credentials:
- 'catalogs:read'
- 'catalogs:write'
tags:
- catalog_items
x-ratelimit-category: catalogs_write
x-sandbox: enabled
'/catalogs/items/batch/{batch_id}':
get:
operationId: items_batch/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.
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'
security:
- pinterest_oauth2:
- 'catalogs:read'
- client_credentials:
- 'catalogs:read'
tags:
- catalog_items
x-ratelimit-category: catalogs_read
x-sandbox: enabled
/catalogs/product_groups/multiple:
delete:
operationId: catalogs_product_groups/delete_many
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
parameters:
- $ref: '#/components/parameters/query_catalogs_product_group_ids_required'
- $ref: '#/components/parameters/query_ad_account_id'
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'
security:
- pinterest_oauth2:
- 'catalogs:write'
tags:
- catalog_product_groups
x-ratelimit-category: catalogs_write
x-sandbox: enabled
post:
operationId: catalogs_product_groups/create_many
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.
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
items:
oneOf:
- $ref: '#/components/schemas/CatalogsProductGroupCreateRequest'
- $ref: '#/components/schemas/CatalogsVerticalProductGroupCreateRequest'
maxItems: 1000
minItems: 1
title: multiple product groups
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':
description: Success
content:
application/json:
schema:
type: array
items:
description: ID of a created catalog product group.
example: '443727193917'
type: string
pattern: ^\d+$
'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'
security:
- pinterest_oauth2:
- 'catalogs:write'
tags:
- catalog_product_groups
x-ratelimit-category: catalogs_write
x-sandbox: enabled
/catalogs/product_groups:
get:
operationId: catalogs_product_groups/list
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
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':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalog_product_groups
x-ratelimit-category: catalogs_read
x-sandbox: enabled
post:
operationId: catalogs_product_groups/create
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.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
'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'
security:
- pinterest_oauth2:
- 'catalogs:write'
tags:
- catalog_product_groups
x-ratelimit-category: catalogs_write
x-sandbox: enabled
'/catalogs/product_groups/{product_group_id}':
get:
operationId: catalogs_product_groups/get
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
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalog_product_groups
x-ratelimit-category: catalogs_read
x-sandbox: enabled
delete:
operationId: catalogs_product_groups/delete
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
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
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'
security:
- pinterest_oauth2:
- 'catalogs:write'
tags:
- catalog_product_groups
x-ratelimit-category: catalogs_write
x-sandbox: enabled
patch:
operationId: catalogs_product_groups/update
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.
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
'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'
security:
- pinterest_oauth2:
- 'catalogs:write'
tags:
- catalog_product_groups
x-ratelimit-category: catalogs_write
x-sandbox: enabled
'/catalogs/product_groups/{product_group_id}/product_counts':
get:
operationId: catalogs_product_groups/product_counts_get
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
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsProductGroupProductCountsVertical'
'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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalog_product_groups
x-ratelimit-category: catalogs_read
x-sandbox: enabled
'/catalogs/product_groups/{product_group_id}/products':
get:
operationId: catalogs_product_group_pins/list
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
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':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Pins
items:
$ref: '#/components/schemas/CatalogsProduct'
'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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'catalogs:read'
- 'pins:read'
tags:
- catalog_product_groups
x-ratelimit-category: catalogs_read
x-sandbox: enabled
/catalogs/products/get_by_product_group_filters:
post:
operationId: products_by_product_group_filter/list
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
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':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Pins
items:
$ref: '#/components/schemas/CatalogsProduct'
'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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'catalogs:read'
- 'pins:read'
tags:
- catalog_product_groups
x-ratelimit-category: catalogs_read
x-sandbox: enabled
/catalogs/reports:
post:
operationId: reports/create
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.
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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalog_reports
x-ratelimit-category: catalogs_read
x-sandbox: disabled
get:
operationId: 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.
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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalog_reports
x-ratelimit-category: catalogs_read
x-sandbox: disabled
/catalogs/reports/stats:
get:
operationId: reports/stats
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.
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'
security:
- pinterest_oauth2:
- 'catalogs:read'
tags:
- catalog_reports
x-ratelimit-category: catalogs_read
x-sandbox: disabled
/integrations/commerce:
post:
operationId: 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.
requestBody:
description: Parameters to get create/update the Integration Metadata
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationMetadata'
'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'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- integrations
x-ratelimit-category: ads_write
x-sandbox: disabled
'/integrations/commerce/{external_business_id}':
get:
operationId: integrations_commerce/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.
parameters:
- $ref: '#/components/parameters/path_external_business_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationMetadata'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- integrations
x-ratelimit-category: ads_read
x-sandbox: disabled
patch:
operationId: integrations_commerce/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.
parameters:
- $ref: '#/components/parameters/path_external_business_id'
requestBody:
description: Parameters to get create/update the Integration Metadata
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationRequestPatch'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationMetadata'
'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'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- integrations
x-ratelimit-category: ads_write
x-sandbox: disabled
delete:
operationId: integrations_commerce/del
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.
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'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- integrations
x-ratelimit-category: ads_write
x-sandbox: disabled
/integrations/logs:
post:
operationId: 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.
requestBody:
description: Ingest log information from external integration application.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationLogsRequest'
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'
security:
- pinterest_oauth2:
- 'ads:write'
tags:
- integrations
x-ratelimit-category: ads_write
x-sandbox: enabled
/integrations:
get:
operationId: integrations/get_list
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.
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/IntegrationRecord'
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- integrations
x-ratelimit-category: ads_read
x-sandbox: disabled
'/integrations/{id}':
get:
operationId: integrations/get_by_id
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.
parameters:
- name: id
in: path
description: Integration ID.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationRecord'
'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'
security:
- pinterest_oauth2:
- 'ads:read'
tags:
- integrations
x-ratelimit-category: ads_read
x-sandbox: disabled
/media:
get:
operationId: media/list
summary: List media uploads
description: |-
List media uploads filtered by given parameters.
**[Learn more](/docs/api-features/creating-boards-and-pins/#creating-video-pins)** about video Pin creation.
parameters:
- $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
properties:
bookmark:
type: string
nullable: true
items:
type: array
items:
$ref: '#/components/schemas/Media'
required:
- items
'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'
security:
- pinterest_oauth2:
- 'pins:read'
tags:
- media
x-ratelimit-category: org_read
x-sandbox: enabled
post:
operationId: media/create
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](/docs/api-features/creating-boards-and-pins/#creating-video-pins)** about video Pin creation.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUploadCreate'
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUpload'
'201':
description: Resource create operation completed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUpload'
'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'
security:
- pinterest_oauth2:
- 'pins:read'
- 'pins:write'
tags:
- media
x-ratelimit-category: org_write
x-sandbox: enabled
'/media/{media_id}':
get:
operationId: media/get
summary: Get media upload details
description: |-
Get details for a registered media upload, including its current status.
**[Learn more](/docs/api-features/creating-boards-and-pins/#creating-video-pins)** about video Pin creation.
parameters:
- $ref: '#/components/parameters/MediaKey'
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Media'
'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'
security:
- pinterest_oauth2:
- 'pins:read'
tags:
- media
x-ratelimit-category: org_read
x-sandbox: enabled
/notifications:
post:
operationId: notification/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.
requestBody:
description: notification event.
required: true
content:
application/json:
schema:
description: Any valid JSON object
additionalProperties: true
oneOf:
- type: array
minItems: 1
maxItems: 100
items:
type: object
additionalProperties: true
description: Any valid JSON object
- type: object
responses:
'200':
description: Successfully received notification
content:
application/json:
schema:
type: object
properties:
success:
description: Returns true if the notification accepted.
type: boolean
example: false
received_at:
description: Received time. Unix timestamp in seconds.
type: integer
example: 1677003860
error_msg:
description: error message when success is false
type: string
title: NotificationResponse
'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'
security:
- pinterest_oauth2:
- 'user_accounts:read'
- client_credentials:
- 'user_accounts:read'
tags:
- notification
x-ratelimit-category: ads_read
x-sandbox: enabled
/oauth/token:
post:
operationId: oauth/token
summary: Generate OAuth access token
description: |-
Generate a new OAuth access token using an authorization code; or refresh an existing one using a continuous refresh token.
Follow the complete steps for requesting and refreshing tokens.
Note: If your app was created before September 25, 2025, make sure to set the continuous_refresh parameter to true to use the continuous refresh token (60-day expiration, refreshable indefinitely). Pinterest no longer supports the legacy refresh token (365-day expiration, hard limit).
Disregard this note if your app was activated on or after September 25, 2025. You are automatically using the continuous refresh token.
Use Token Debugger to validate and inspect your access token.
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'
security:
- basic: []
tags:
- oauth
x-ratelimit-category: org_read
x-sandbox: enabled
/oauth/token/revoke:
post:
operationId: token/revoke
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.
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'
security:
- basic: []
tags:
- oauth
x-ratelimit-category: org_write
x-sandbox: enabled
/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'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PinCreate'
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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:write'
- 'pins:read'
- 'pins:write'
- client_credentials:
- 'boards:read'
- 'boards:write'
- 'pins:read'
- 'pins:write'
tags:
- pins
x-ratelimit-category: org_write
x-sandbox: enabled
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
properties:
bookmark:
type: string
nullable: true
items:
type: array
items:
$ref: '#/components/schemas/Pin'
required:
- items
'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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'pins:read'
- client_credentials:
- 'boards:read'
- 'pins:read'
tags:
- pins
x-ratelimit-category: org_read
x-sandbox: enabled
'/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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'pins:read'
- client_credentials:
- 'boards:read'
- 'pins:read'
tags:
- pins
x-ratelimit-category: org_read
x-sandbox: enabled
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'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PinUpdate'
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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:write'
- 'pins:read'
- 'pins:write'
- client_credentials:
- 'boards:read'
- 'boards:write'
- 'pins:read'
- 'pins:write'
tags:
- pins
x-ratelimit-category: org_write
x-sandbox: enabled
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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:write'
- 'pins:read'
- 'pins:write'
- client_credentials:
- 'boards:read'
- 'boards:write'
- 'pins:read'
- 'pins:write'
tags:
- pins
x-ratelimit-category: org_write
x-sandbox: enabled
'/pins/{pin_id}/analytics':
get:
operationId: pins/analytics
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.
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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'pins:read'
- client_credentials:
- 'boards:read'
- 'pins:read'
tags:
- pins
x-ratelimit-category: org_analytics
x-sandbox: disabled
/pins/analytics:
get:
operationId: multi_pins/analytics
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.
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'
- name: metric_types
in: query
description: Pin metric types to get data for.
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
explode: false
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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'pins:read'
- client_credentials:
- 'boards:read'
- 'pins:read'
tags:
- pins
x-ratelimit-category: org_analytics
x-sandbox: disabled
'/pins/{pin_id}/save':
post:
operationId: pins/save
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.
parameters:
- $ref: '#/components/parameters/path_pin_id'
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to save an existing pin
required: true
content:
application/json:
schema:
type: object
properties:
board_id:
description: Unique identifier of the board to which the pin will be saved.
type: string
nullable: true
pattern: ^\d+$
board_section_id:
description: Unique identifier of the board section to which the pin will be saved.
type: string
nullable: true
pattern: ^\d+$
responses:
'201':
description: Successfully saved pin.
content:
application/json:
schema:
$ref: '#/components/schemas/Pin'
'403':
description: Not authorized to access Board or Pin.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 29
message: You are not permitted to access that resource.
'404':
description: Board or Pin not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
BoardNotFound:
value:
code: 40
message: Board not found.
PinNotFound:
value:
code: 50
message: Pin not found.
BoardSectionNotFound:
value:
code: 2031
message: Sorry! We couldn't find this board section.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:write'
- 'pins:read'
- 'pins:write'
tags:
- pins
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.
' parameters: - $ref: '#/components/parameters/path_interest_id' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SingleInterestTargetingOptionResponse' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' security: - pinterest_oauth2: - 'ads:read' - client_credentials: - 'ads:read' tags: - resources x-ratelimit-category: ads_read x-sandbox: enabled '/resources/targeting/{targeting_type}': get: operationId: targeting_options/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",...}]
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TargetingOptionResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'ads:read'
- client_credentials:
- 'ads:read'
tags:
- resources
x-ratelimit-category: ads_read
x-sandbox: enabled
/search/boards:
get:
operationId: search_user_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.
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'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:read_secret'
- client_credentials:
- 'boards:read'
- 'boards:read_secret'
tags:
- search
x-ratelimit-category: org_read
x-sandbox: disabled
/search/pins:
get:
operationId: search_user_pins/list
summary: Search user's Pins
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.
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_required_search_query'
- $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/Pin'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UserNotFound:
value:
code: 30
message: User not found.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'boards:read'
- 'boards:read_secret'
- 'pins:read'
- 'pins:read_secret'
tags:
- search
x-ratelimit-category: org_read
x-sandbox: disabled
/search/partner/pins:
get:
operationId: search_partner_pins
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.
parameters:
- name: term
in: query
description: Search term to look up pins.
required: true
schema:
type: string
- $ref: '#/components/parameters/query_country_code'
- $ref: '#/components/parameters/query_bookmark'
- name: locale
in: query
description: Search locale.
required: false
schema:
type: string
- $ref: '#/components/parameters/result_limit'
responses:
'200':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/SummaryPin'
'400':
description: Invalid pins
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid pin filter value
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'boards:read'
- 'pins:read'
tags:
- search
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.
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
in: query
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.
required: false
schema:
$ref: '#/components/schemas/KeywordList'
example:
- recipes
- dessert
- $ref: '#/components/parameters/query_normalize_against_group'
- $ref: '#/components/parameters/query_trending_keyword_limit'
- name: include_prediction
in: query
description: |-
Closed beta
Including predicted weekly search volume data for the next 90 days.
By default (`false`), the response will not include predicted data.
required: false
schema:
type: boolean
example: true
default: false
- name: include_demographics
in: query
description: |-
Closed beta
Including the age and gender distribution for each keyword.
By default (`false`), the response will not include demographics data.
required: false
schema:
type: boolean
example: true
default: false
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TrendingKeywordsResponse'
'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:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'user_accounts:read'
tags:
- keywords
x-ratelimit-category: trends_read
x-sandbox: enabled
/user_account:
get:
operationId: 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.
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'
security:
- pinterest_oauth2:
- 'user_accounts:read'
- client_credentials:
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: org_read
x-sandbox: enabled
/user_account/analytics:
get:
operationId: user_account/analytics
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".
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AnalyticsResponse'
'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'
security:
- pinterest_oauth2:
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: org_analytics
x-sandbox: disabled
/user_account/analytics/top_pins:
get:
operationId: user_account/analytics/top_pins
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".
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TopPinsAnalyticsResponse'
'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'
security:
- pinterest_oauth2:
- 'pins:read'
- 'user_accounts:read'
- client_credentials:
- 'pins:read'
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: org_analytics
x-sandbox: disabled
/user_account/analytics/top_video_pins:
get:
operationId: user_account/analytics/top_video_pins
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".
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TopVideoPinsAnalyticsResponse'
'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'
security:
- pinterest_oauth2:
- 'pins:read'
- 'user_accounts:read'
- client_credentials:
- 'pins:read'
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: org_analytics
x-sandbox: disabled
/user_account/businesses:
get:
operationId: linked_business_accounts/get
summary: List linked businesses
description: Get a list of your linked business accounts.
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LinkedBusiness'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'user_accounts:read'
- client_credentials:
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: org_read
x-sandbox: enabled
/user_account/followers:
get:
operationId: followers/list
summary: List followers
description: Get a list of your followers.
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/UserSummary'
'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'
security:
- pinterest_oauth2:
- 'user_accounts:read'
- client_credentials:
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: ads_read
x-sandbox: enabled
/user_account/following:
get:
operationId: user_following/get
summary: List following
description: Get a list of who a certain user follows.
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'
security:
- pinterest_oauth2:
- 'user_accounts:read'
- client_credentials:
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: org_read
x-sandbox: disabled
/user_account/following/boards:
get:
operationId: boards_user_follows/list
summary: List following boards
description: Get a list of the boards a user follows. The request returns a board summary object array.
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':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Board'
'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'
security:
- pinterest_oauth2:
- 'user_accounts:read'
- client_credentials:
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: org_read
x-sandbox: enabled
'/user_account/following/{username}':
post:
operationId: follow_user/update
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.
parameters:
- $ref: '#/components/parameters/path_username'
requestBody:
description: Follow a user.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FollowUserRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserSummary'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UserNotFound:
value:
code: 30
message: User not found.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'user_accounts:write'
tags:
- user_account
x-ratelimit-category: org_write
x-sandbox: enabled
/user_account/websites:
post:
operationId: verify_website/update
summary: Verify website
description: Verify a website as a signed-in user.
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':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteSummary'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'user_accounts:write'
tags:
- user_account
x-ratelimit-category: org_write
x-sandbox: disabled
get:
operationId: user_websites/get
summary: Get user websites
description: 'Get user websites, claimed or not'
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'
security:
- pinterest_oauth2:
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: org_read
x-sandbox: disabled
delete:
operationId: unverify_website/delete
summary: Unverify website
description: Unverifu a website verified by the signed-in user.
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'
security:
- pinterest_oauth2:
- 'user_accounts:write'
tags:
- user_account
x-ratelimit-category: org_write
x-sandbox: disabled
/user_account/websites/verification:
get:
operationId: website_verification/get
summary: Get user verification code for website claiming
description: Get verification code for user to install on the website to claim it.
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteVerificationCode'
'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:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- pinterest_oauth2:
- 'user_accounts:read'
- client_credentials:
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: org_read
x-sandbox: disabled
'/users/{username}/interests/follow':
get:
operationId: user_account/followed_interests
summary: List following interests
description: Get a list of a user's following interests in one place.
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'
security:
- pinterest_oauth2:
- 'user_accounts:read'
- client_credentials:
- 'user_accounts:read'
tags:
- user_account
x-ratelimit-category: org_read
x-sandbox: enabled
components:
parameters:
aggregate_report_rows:
in: query
description: Determines if report rows should be aggregated across all requested entities. This feature is currently in BETA and is not available to all users.
name: aggregate_report_rows
required: false
schema:
type: boolean
default: false
BoardKey:
name: board_id
in: path
required: true
schema:
type: string
pattern: ^\d+$
BoardWithUpdatePrivacyKey:
name: board_id
in: path
required: true
schema:
type: string
pattern: ^\d+$
fetch_system_users:
name: fetch_system_users
in: query
description: Fetches system users if True. Fetches regular user employees if False.
required: false
schema:
type: boolean
default: false
include_details:
name: include_details
description: if set to True then attach the errors/details to all the requests
in: query
schema:
type: boolean
default: false
keywords_query_ad_group_ids:
name: ad_group_ids
description: List of Ad group Ids to retrieve keywords from. This feature is currently in BETA and is not available to all users.
in: query
required: false
schema:
type: array
items:
type: string
maxLength: 18
pattern: ^\d+$
maxItems: 250
minItems: 1
MediaKey:
name: media_id
in: path
required: true
description: |-
Unique identifier for this media upload. Used to track status
and for attaching during Pin creation.
schema:
type: string
pattern: ^\d+$
path_ad_account_id:
name: ad_account_id
description: Unique identifier of an ad account.
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_ad_group_id:
name: ad_group_id
description: Unique identifier of an ad group.
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_ad_id:
name: ad_id
description: Unique identifier of an ad.
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_aggregated_pin_data:
name: aggregated_pin_data
description: Id of aggregated pin data
in: path
required: true
schema:
type: string
pattern: ^\d+$
path_asset_id:
name: asset_id
in: path
description: Unique identifier of a business asset.
example: '729090764583391194'
required: true
schema:
type: string
maxLength: 20
minLength: 1
pattern: ^\d+$
path_audience_id:
name: audience_id
description: Unique identifier of an audience
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_billing_invoice_id:
name: billing_invoice_id
description: Unique identifier of a billing invoice.
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_board_id:
name: board_id
description: Unique identifier of a board.
in: path
required: true
schema:
type: string
pattern: ^\d+$
path_board_section_id:
name: section_id
description: Unique identifier of a board section.
in: path
required: true
schema:
type: string
pattern: ^\d+$
path_bulk_request_id:
name: bulk_request_id
description: Unique identifier of a bulk upsert request.
in: path
required: true
schema:
type: string
path_business_hierarchy_id:
name: business_hierarchy_id
in: path
description: business hierarchy node id
example: '7009386637860'
required: true
schema:
type: string
maxLength: 20
minLength: 1
pattern: ^\d+$
path_business_id:
name: business_id
in: path
description: Business id
example: '729090764583391194'
required: true
schema:
type: string
maxLength: 20
minLength: 1
pattern: ^\d+$
path_business_member_user:
name: member_id
in: path
description: The member id to fetch assets for.
example: '729090764583391194'
required: true
schema:
type: string
maxLength: 20
minLength: 1
pattern: ^\d+$
path_business_partner_user:
name: partner_id
in: path
description: The partner id to be bound to the Business
example: '729090764583391194'
required: true
schema:
type: string
maxLength: 20
minLength: 1
pattern: ^\d+$
path_business_user:
name: business_id
in: path
description: Unique identifier of the requesting business.
example: '729090764583391194'
required: true
schema:
type: string
maxLength: 20
minLength: 1
pattern: ^\d+$
path_campaign_id:
name: campaign_id
description: 'Campaign ID, must be associated with the ad account ID provided in the path.'
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_catalogs_feed_id:
description: Unique identifier of a feed
in: path
required: true
name: feed_id
schema:
type: string
pattern: ^\d+$
path_catalogs_items_batch_id:
name: batch_id
in: path
description: Id of a catalogs items batch to fetch
example: 66753b9bb65c46c49bd8503b27fecf9e
required: true
schema:
type: string
pattern: '^[a-zA-Z0-9]+$'
path_catalogs_processing_result_id:
description: 'Unique identifier of a feed processing result. It can be acquired from the "id" field of the "items" array within the response of the [List processing results for a given feed](/docs/api/v5/#operation/feed_processing_results/list).'
name: processing_result_id
in: path
example: '5224831246441439241'
required: true
schema:
type: string
pattern: ^\d+$
path_catalogs_product_group_id:
description: Unique identifier of a product group
in: path
required: true
name: product_group_id
schema:
type: string
pattern: ^\d+$
path_category_id:
name: category_id
description: Category (L1 interest) numeric ID.
in: path
required: true
style: simple
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_conversion_tag_id:
description: Id of the conversion tag.
in: path
example: '2617998078212'
explode: false
name: conversion_tag_id
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
style: simple
path_customer_list_id:
name: customer_list_id
description: Unique identifier of a customer list
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_external_business_id:
name: external_business_id
description: External business ID for the integration.
in: path
required: true
schema:
type: string
path_interest_id:
name: interest_id
description: Unique identifier of an interest.
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_lead_form_id:
name: lead_form_id
in: path
description: Unique identifier of a lead form.
example: '1234567890123'
required: true
schema:
type: string
pattern: ^\d+$
path_media_id:
name: media_id
description: Media identifier
in: path
required: true
schema:
type: string
pattern: ^\d+$
path_member_id:
name: member_id
in: path
description: The member id to be bound to the Business
example: '729090764583391194'
required: true
schema:
type: string
maxLength: 20
minLength: 1
pattern: ^\d+$
path_non_system_business_user:
name: business_id
in: path
description: Unique identifier of the requesting business.
example: '729090764583391194'
required: true
schema:
type: string
minLength: 1
pattern: ^\d+$
path_order_line_id:
name: order_line_id
description: Unique identifier of an order line.
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_pin_id:
name: pin_id
description: Unique identifier of a Pin.
in: path
required: true
schema:
type: string
path_pin_order_id:
description: The pin order id associated with the ssio insertion order
in: path
name: pin_order_id
required: true
schema:
type: string
example: 0Q01N0000015hekSVDFDC
path_product_group_promotion_id:
name: product_group_promotion_id
description: Unique identifier of a product group promotion
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_promotion_id:
name: promotion_id
description: Unique identifier of a promotion
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_scope:
name: scope
description: Generated audience scope to request.
in: path
required: true
style: simple
schema:
$ref: '#/components/schemas/AudienceDefinitionScope'
path_subscription_id:
name: subscription_id
description: Unique identifier of a subscription.
in: path
required: true
schema:
type: string
pattern: ^\d+$
path_targeting_type:
name: targeting_type
description: Public targeting type.
in: path
required: true
style: simple
schema:
description: Public ad targeting type with external names
type: string
example: APPTYPE
enum:
- APPTYPE
- GENDER
- LOCALE
- AGE_BUCKET
- LOCATION
- GEO
- INTEREST
- KEYWORD
- AUDIENCE_INCLUDE
- AUDIENCE_EXCLUDE
title: PublicTargetingType
path_template_id:
name: template_id
description: Unique identifier of a template.
in: path
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
path_trend_region:
name: region
description: |-
The geographic region of interest. Only top trends within the specified region will be returned.
The `region` parameter is formatted as ISO 3166-2 country codes delimited by `+`, corresponding to the following geographic areas:
- `US` - United States
- `CA` - Canada
- `DE` - Germany
- `FR` - France
- `ES` - Spain
- `IT` - Italy
- `DE+AT+CH` - Germanic countries
- `GB+IE` - Great Britain & Ireland
- `IT+ES+PT+GR+MT` - Southern Europe
- `PL+RO+HU+SK+CZ` - Eastern Europe
- `SE+DK+FI+NO` - Nordic countries
- `NL+BE+LU` - Benelux
- `AR` - Argentina
- `BR` - Brazil
- `CO` - Colombia
- `MX` - Mexico
- `MX+AR+CO+CL` - Hispanic LatAm
- `AU+NZ` - Australasia
in: path
required: true
schema:
$ref: '#/components/schemas/TrendsSupportedRegion'
path_trend_type:
name: trend_type
description: |-
The methodology used to rank how trendy a keyword is.
- `growing` trends have high upward growth in search volume over the last quarter
- `monthly` trends have high search volume in the last month
- `yearly` trends have high search volume in the last year
- `seasonal` trends have high upward growth in search volume over the last month and exhibit a seasonal recurring pattern (typically annual)
in: path
required: true
schema:
$ref: '#/components/schemas/TrendType'
path_type:
name: type
description: Generated audience type to request.
in: path
required: true
style: simple
schema:
$ref: '#/components/schemas/AudienceDefinitionType'
path_username:
name: username
description: A valid username
in: path
required: true
schema:
type: string
example: username
pattern: (?!^\d+$)^.+$
PinKey:
name: pin_id
in: path
required: true
schema:
type: string
pattern: ^\d+$
Pinterest.Lib.AdAccountId:
name: ad_account_id
in: path
required: true
description: Unique identifier of an ad account.
schema:
type: string
maxLength: 18
pattern: ^\d+$
Pinterest.Lib.BookmarkParams.bookmark:
name: bookmark
in: query
required: false
description: Cursor used to fetch the next page of items
schema:
type: string
Pinterest.Lib.BookmarkParams.page_size:
name: page_size
in: query
required: false
description: |-
Maximum number of items to include in a single page.
See documentation on [Pagination](/docs/reference/pagination/) for more information.
schema:
type: integer
default: 25
maximum: 250
minimum: 1
Pinterest.Lib.OrderingParams:
name: order
in: query
required: false
description: |-
The order in which to sort the items returned: "ASCENDING" or "DESCENDING" by ID.
Note that higher-value IDs are associated with more-recently added items.
schema:
default: ASCENDING
$ref: '#/components/schemas/Pinterest.Lib.PaginationOrder'
Pinterest.Lib.OrderingParams.order:
$ref: '#/components/parameters/Pinterest.Lib.OrderingParams'
query_account_type:
description: Filter accounts by account type.
in: query
name: account_type
required: true
schema:
$ref: '#/components/schemas/AudienceAccountType'
query_ad_account_id:
name: ad_account_id
description: Unique identifier of an ad account.
in: query
schema:
type: string
maxLength: 18
pattern: ^\d+$
query_ad_group_id:
description: Ad group Id.
in: query
name: ad_group_id
example: '123123123'
required: false
schema:
type: string
maxLength: 18
pattern: ^\d+$
query_ad_group_ids:
description: List of Ad group Ids to use to filter the results.
in: query
name: ad_group_ids
required: false
schema:
type: array
items:
type: string
pattern: ^\d+$
maxItems: 250
minItems: 1
query_ad_group_ids_required:
description: List of Ad group Ids to use to filter the results.
in: query
name: ad_group_ids
required: true
schema:
type: array
items:
type: string
pattern: ^\d+$
maxLength: 18
maxItems: 250
minItems: 1
query_ad_group_targeting_types:
name: targeting_types
description: 'Targeting type breakdowns for the report. The reporting per targeting type
is independent from each other. ["AGE_BUCKET_AND_GENDER", "CREATIVE_ENHANCEMENTS"] are in BETA and not yet available to all users.'
required: true
explode: false
in: query
schema:
type: array
items:
$ref: '#/components/schemas/AdsAnalyticsAdGroupTargetingType'
maxItems: 14
minItems: 1
query_ad_ids:
description: List of Ad Ids to use to filter the results.
in: query
name: ad_ids
required: false
schema:
type: array
items:
type: string
pattern: ^\d+$
maxItems: 250
minItems: 1
query_ad_ids_required:
description: List of Ad Ids to use to filter the results.
in: query
name: ad_ids
required: true
schema:
type: array
items:
type: string
pattern: ^\d+$
maxItems: 250
minItems: 1
query_ad_targeting_types:
name: targeting_types
description: 'Targeting type breakdowns for the report. The reporting per targeting type
is independent from each other. ["AGE_BUCKET_AND_GENDER"] is in BETA and not yet available to all users.'
required: true
explode: false
in: query
schema:
type: array
items:
$ref: '#/components/schemas/AdsAnalyticsAdTargetingType'
maxItems: 14
minItems: 1
query_age_bucket_list:
name: ages
description: |-
If set, filters the results to trends among users in the specified age range(s).
If unset, trends among all age groups will be returned.
example:
- 35-44
- 50-54
in: query
required: false
schema:
$ref: '#/components/schemas/AgeBucketList'
query_app_types:
description: 'Apps or devices to get data for, default is all.'
in: query
name: app_types
required: false
schema:
type: string
default: ALL
enum:
- ALL
- MOBILE
- TABLET
- WEB
query_assets_summary:
name: assets_summary
description: |-
Include assets summary in the response if this is true.
The assets summary returns a dictionary representing a summary of the assets
for the business user ID, with information like the ad accounts and profiles
the user has permissions for and what those permissions are
in: query
required: false
schema:
type: boolean
default: false
query_attribution_types:
name: attribution_types
description: List of types of attribution for the conversion report
required: false
explode: false
in: query
schema:
type: array
items:
$ref: '#/components/schemas/ConversionReportAttributionType'
maxItems: 2
query_audience_id:
description: Unique identifier of the audience to use to filter the results.
in: query
name: audience_id
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
query_audience_ids:
description: List of audience ids to use to filter the results.
in: query
name: audience_ids
required: false
schema:
type: array
items:
type: string
pattern: ^\d+$
maxItems: 100
minItems: 1
query_audience_insight_type:
description: Type of audience insights.
explode: false
in: query
name: audience_insight_type
required: true
schema:
$ref: '#/components/schemas/AudienceInsightType'
query_audience_type:
description: The type of audience to filter for.
in: query
name: audience_type
required: false
schema:
type: string
pattern: ^\d+$
query_audience_types:
description: The types of audience to filter for.
in: query
name: audience_types
required: false
schema:
type: array
items:
$ref: '#/components/schemas/AudienceType'
maxItems: 100
minItems: 1
query_billing_document_type:
name: document_type
in: query
description: Document type of billing invoices to filter by
required: false
schema:
type: string
example: INVOICE
enum:
- INVOICE
- CREDIT_MEMO
query_billing_end_due_date:
name: end_due_date
in: query
description: 'Ending point for due dates when searching for invoices. Format: YYYY-MM-DD'
required: false
schema:
type: string
format: date
example: '2024-01-01'
pattern: '^(\d{4})-(\d{2})-(\d{2})$'
query_billing_invoice_status:
name: status
in: query
description: Status of billing invoices to filter by
required: false
schema:
type: string
example: OPEN
enum:
- OPEN
- CLOSED
query_billing_start_due_date:
name: start_due_date
in: query
description: 'Starting point for due dates when searching for invoices. Format: YYYY-MM-DD'
required: false
schema:
type: string
format: date
example: '2023-01-01'
pattern: '^(\d{4})-(\d{2})-(\d{2})$'
query_bookmark:
name: bookmark
description: Cursor used to fetch the next page of items
in: query
required: false
schema:
type: string
query_business_access_start_index:
name: start_index
in: query
description: An index to start fetching the results from. Only the results starting from this index will be returned.
example: 0
required: false
schema:
type: integer
default: 0
minimum: 0
query_business_partner_type:
name: partner_type
in: query
description: |-
Specifies whether to fetch internal or external (shared) partners.
If partner_type=INTERNAL, the asset being queried is for accesses the partner has to your business assets.
If partner_type=EXTERNAL, the asset being queried is for the accesses you have to the partner's business asset.
example: INTERNAL
required: false
schema:
$ref: '#/components/schemas/PartnerType'
query_campaign_id:
description: Campaign Id to use to filter the results.
in: query
name: campaign_id
required: false
schema:
type: string
maxLength: 18
pattern: ^\d+$
query_campaign_id_required:
description: Campaign Id to use to filter the results.
in: query
name: campaign_id
required: true
schema:
type: string
maxLength: 18
pattern: ^\d+$
query_campaign_ids:
description: List of Campaign Ids to use to filter the results.
in: query
name: campaign_ids
required: false
schema:
type: array
items:
type: string
pattern: ^\d+$
maxLength: 18
maxItems: 250
minItems: 1
query_campaign_ids_required:
description: List of Campaign Ids to use to filter the results.
in: query
name: campaign_ids
required: true
schema:
type: array
items:
type: string
pattern: ^\d+$
maxLength: 18
maxItems: 250
minItems: 1
query_campaign_targeting_types:
name: targeting_types
description: 'Targeting type breakdowns for the report. The reporting per targeting type
is independent from each other. ["AGE_BUCKET_AND_GENDER"] is in BETA and not yet available to all users.'
required: true
explode: false
in: query
schema:
type: array
items:
$ref: '#/components/schemas/AdsAnalyticsCampaignTargetingType'
maxItems: 14
minItems: 1
query_catalogs_catalog_id:
description: 'Filter entities for a given catalog_id. If not given, all catalogs are considered.'
in: query
required: false
name: catalog_id
schema:
type: string
pattern: ^\d+$
query_catalogs_feed_id:
description: 'Filter entities for a given feed_id. If not given, all feeds are considered.'
in: query
required: false
name: feed_id
schema:
type: string
pattern: ^\d+$
query_catalogs_item_numbers:
name: item_numbers
in: query
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:
- 1
- 5
required: false
schema:
type: array
items:
type: integer
query_catalogs_item_validation_issue:
name: item_validation_issue
in: query
description: Filter item validation issues that have a given type of item validation issue.
example: TITLE_MISSING
required: false
schema:
$ref: '#/components/schemas/CatalogsItemValidationIssue'
query_catalogs_items_country:
name: country
in: query
description: Country for the Catalogs Items
example: US
required: true
schema:
type: string
query_catalogs_items_filters:
name: filters
in: query
description: Identifies items to be retrieved. This is a required parameter.
required: false
style: deepObject
schema:
$ref: '#/components/schemas/CatalogsItemsFilters'
query_catalogs_items_language:
name: language
in: query
description: Language for the Catalogs Items
example: EN
required: true
schema:
type: string
query_catalogs_product_group_ids:
name: id
in: query
style: form
explode: false
description: Comma-separated list of product group ids
required: false
schema:
type: array
items:
type: integer
maxItems: 1000
minItems: 1
query_catalogs_product_group_ids_required:
name: id
in: query
style: form
explode: false
description: Comma-separated list of product group ids
required: true
schema:
type: array
items:
type: integer
maxItems: 1000
minItems: 1
query_catalogs_report_stats_parameters:
name: parameters
in: query
description: Contains the parameters for report identification.
required: true
style: deepObject
schema:
description: Report stats parameters
type: object
properties:
catalog_type:
$ref: '#/components/schemas/CatalogsType'
discriminator:
propertyName: catalog_type
mapping:
RETAIL: '#/components/schemas/CatalogsRetailReportStatsParameters'
HOTEL: '#/components/schemas/CatalogsHotelReportStatsParameters'
oneOf:
- $ref: '#/components/schemas/CatalogsRetailReportStatsParameters'
- $ref: '#/components/schemas/CatalogsHotelReportStatsParameters'
required:
- catalog_type
query_catalogs_report_token:
name: token
description: Token returned from async build report call
in: query
required: true
schema:
type: string
query_client_id:
name: client_id
description: Client ID.
in: query
required: false
schema:
type: string
example: '1094834'
maxLength: 18
pattern: ^\d+$
style: form
query_columns:
description: 'Columns to retrieve, encoded as a comma-separated string. **NOTE**: Any metrics defined as MICRO_DOLLARS returns a value based on the advertiser profile''s currency field. For USD,($1/1,000,000, or $0.000001 - one one-ten-thousandth of a cent). it''s microdollars. Otherwise, it''s in microunits of the advertiser''s currency.
For example, if the advertiser''s currency is GBP (British pound sterling), all MICRO_DOLLARS fields will be in GBP microunits (1/1,000,000 British pound).
If a column has no value, it may not be returned'
explode: false
in: query
name: columns
required: true
schema:
type: array
items:
type: string
description: Reporting columns for sync reporting endpoints
example: TOTAL_CONVERSIONS
enum:
- SPEND_IN_MICRO_DOLLAR
- PAID_IMPRESSION
- SPEND_IN_DOLLAR
- CPC_IN_MICRO_DOLLAR
- ECPC_IN_MICRO_DOLLAR
- ECPC_IN_DOLLAR
- CTR
- ECTR
- OUTBOUND_CTR_1
- CAMPAIGN_NAME
- CAMPAIGN_BRAND_LABEL
- PIN_ID
- TOTAL_ENGAGEMENT
- ENGAGEMENT_1
- ENGAGEMENT_2
- ECPE_IN_DOLLAR
- ENGAGEMENT_RATE
- EENGAGEMENT_RATE
- ECPM_IN_MICRO_DOLLAR
- REPIN_RATE
- CTR_2
- CAMPAIGN_ID
- ADVERTISER_ID
- AD_ACCOUNT_ID
- PIN_PROMOTION_ID
- AD_ID
- AD_GROUP_ID
- CAMPAIGN_ENTITY_STATUS
- CAMPAIGN_OBJECTIVE_TYPE
- CPM_IN_MICRO_DOLLAR
- CPM_IN_DOLLAR
- AD_GROUP_NAME
- AD_GROUP_BUDGET_TYPE
- AD_GROUP_BUDGET_IN_LOCAL_CURRENCY
- AD_GROUP_ENTITY_STATUS
- AD_GROUP_BID_MULTIPLIER
- PROMO_ID
- PROMO_NAME
- ORDER_LINE_ID
- ORDER_LINE_NAME
- CLICKTHROUGH_1
- REPIN_1
- IMPRESSION_1
- IMPRESSION_1_GROSS
- CLICKTHROUGH_1_GROSS
- OUTBOUND_CLICK_1
- CLICKTHROUGH_2
- REPIN_2
- IMPRESSION_2
- OUTBOUND_CLICK_2
- TOTAL_CLICKTHROUGH
- TOTAL_IMPRESSION
- TOTAL_IMPRESSION_USER
- TOTAL_IMPRESSION_FREQUENCY
- COST_PER_OUTBOUND_CLICK_IN_DOLLAR
- COST_PER_OUTBOUND_CLICK_IN_DOLLAR_1
- TOTAL_ENGAGEMENT_SIGNUP
- TOTAL_ENGAGEMENT_CHECKOUT
- TOTAL_ENGAGEMENT_LEAD
- TOTAL_CLICK_SIGNUP
- TOTAL_CLICK_CHECKOUT
- TOTAL_CLICK_ADD_TO_CART
- TOTAL_CLICK_LEAD
- TOTAL_VIEW_SIGNUP
- TOTAL_VIEW_CHECKOUT
- TOTAL_VIEW_ADD_TO_CART
- TOTAL_VIEW_LEAD
- TOTAL_CONVERSIONS
- TOTAL_ENGAGEMENT_SIGNUP_VALUE_IN_MICRO_DOLLAR
- TOTAL_ENGAGEMENT_CHECKOUT_VALUE_IN_MICRO_DOLLAR
- TOTAL_CLICK_SIGNUP_VALUE_IN_MICRO_DOLLAR
- TOTAL_CLICK_CHECKOUT_VALUE_IN_MICRO_DOLLAR
- TOTAL_VIEW_SIGNUP_VALUE_IN_MICRO_DOLLAR
- TOTAL_VIEW_CHECKOUT_VALUE_IN_MICRO_DOLLAR
- TOTAL_WEB_SESSIONS
- WEB_SESSIONS_1
- WEB_SESSIONS_2
- AD_NAME
- CAMPAIGN_LIFETIME_SPEND_CAP
- AD_GROUP_OPTIMIZATION
- CAMPAIGN_DAILY_SPEND_CAP
- CAMPAIGN_BUDGET_OPTIMIZATION
- IS_PREMIERE_CAMPAIGN
- TOTAL_PAGE_VISIT
- TOTAL_SIGNUP
- TOTAL_CHECKOUT
- TOTAL_CUSTOM
- TOTAL_LEAD
- TOTAL_ADD_TO_WISHLIST
- TOTAL_SUBSCRIBE
- TOTAL_SIGNUP_VALUE_IN_MICRO_DOLLAR
- TOTAL_CHECKOUT_VALUE_IN_MICRO_DOLLAR
- TOTAL_CUSTOM_VALUE_IN_MICRO_DOLLAR
- PAGE_VISIT_COST_PER_ACTION
- PAGE_VISIT_ROAS
- CHECKOUT_ROAS
- CUSTOM_ROAS
- PRODUCT_GROUP_AD_IMAGE_TAG
- PRODUCT_GROUP_AD_VIDEO_TAG
- VIDEO_3SEC_VIEWS_1
- VIDEO_15SEC_UNIQUE_VIEWS_1
- VIDEO_MRC_VIEWS_1
- VIDEO_3SEC_VIEWS_2
- VIDEO_15SEC_UNIQUE_VIEWS_2
- VIDEO_P100_COMPLETE_2
- VIDEO_P0_COMBINED_2
- VIDEO_P25_COMBINED_2
- VIDEO_P50_COMBINED_2
- VIDEO_P75_COMBINED_2
- VIDEO_P95_COMBINED_2
- VIDEO_MRC_VIEWS_2
- PAID_VIDEO_VIEWABLE_RATE
- VIDEO_LENGTH
- VIDEO_SPEND_IN_DOLLAR
- ECPV_IN_DOLLAR
- ECPCV_IN_DOLLAR
- ECPCV_P95_IN_DOLLAR
- TOTAL_VIDEO_3SEC_VIEWS
- TOTAL_VIDEO_15SEC_UNIQUE_VIEWS
- TOTAL_VIDEO_P100_COMPLETE
- TOTAL_VIDEO_P0_COMBINED
- TOTAL_VIDEO_P25_COMBINED
- TOTAL_VIDEO_P50_COMBINED
- TOTAL_VIDEO_P75_COMBINED
- TOTAL_VIDEO_P95_COMBINED
- TOTAL_VIDEO_MRC_VIEWS
- TOTAL_VIDEO_AVG_WATCHTIME_IN_SECOND
- TOTAL_REPIN_RATE
- WEB_CHECKOUT_COST_PER_ACTION
- WEB_CHECKOUT_ROAS
- TOTAL_WEB_CHECKOUT
- TOTAL_WEB_CHECKOUT_VALUE_IN_MICRO_DOLLAR
- TOTAL_WEB_CLICK_CHECKOUT
- TOTAL_WEB_CLICK_CHECKOUT_VALUE_IN_MICRO_DOLLAR
- TOTAL_WEB_ENGAGEMENT_CHECKOUT
- TOTAL_WEB_ENGAGEMENT_CHECKOUT_VALUE_IN_MICRO_DOLLAR
- TOTAL_WEB_VIEW_CHECKOUT
- TOTAL_WEB_VIEW_CHECKOUT_VALUE_IN_MICRO_DOLLAR
- INAPP_CHECKOUT_COST_PER_ACTION
- TOTAL_OFFLINE_CHECKOUT
- IDEA_PIN_PRODUCT_TAG_VISIT_1
- IDEA_PIN_PRODUCT_TAG_VISIT_2
- TOTAL_IDEA_PIN_PRODUCT_TAG_VISIT
- LEADS
- COST_PER_LEAD
- QUIZ_COMPLETED
- QUIZ_PIN_RESULT_OPEN
- QUIZ_COMPLETION_RATE
- SHOWCASE_PIN_CLICKTHROUGH
- SHOWCASE_SUBPAGE_CLICKTHROUGH
- SHOWCASE_SUBPIN_CLICKTHROUGH
- SHOWCASE_SUBPAGE_IMPRESSION
- SHOWCASE_SUBPIN_IMPRESSION
- SHOWCASE_SUBPAGE_SWIPE_LEFT
- SHOWCASE_SUBPAGE_SWIPE_RIGHT
- SHOWCASE_SUBPIN_SWIPE_LEFT
- SHOWCASE_SUBPIN_SWIPE_RIGHT
- SHOWCASE_SUBPAGE_REPIN
- SHOWCASE_SUBPIN_REPIN
- SHOWCASE_SUBPAGE_CLOSEUP
- SHOWCASE_CARD_THUMBNAIL_SWIPE_FORWARD
- SHOWCASE_CARD_THUMBNAIL_SWIPE_BACKWARD
- SHOWCASE_AVERAGE_SUBPAGE_CLOSEUP_PER_SESSION
- TOTAL_CHECKOUT_CONVERSION_RATE
- TOTAL_VIEW_CATEGORY_CONVERSION_RATE
- TOTAL_ADD_TO_CART_CONVERSION_RATE
- TOTAL_SIGNUP_CONVERSION_RATE
- TOTAL_PAGE_VISIT_CONVERSION_RATE
- TOTAL_LEAD_CONVERSION_RATE
- TOTAL_SEARCH_CONVERSION_RATE
- TOTAL_WATCH_VIDEO_CONVERSION_RATE
- TOTAL_UNKNOWN_CONVERSION_RATE
- TOTAL_CUSTOM_CONVERSION_RATE
query_comment_feed_type:
name: feed_type
description: Comment feed type.
in: query
schema:
type: string
default: recent
enum:
- ranked
- recent
query_content_type:
description: Filter to paid or organic data. Default is all.
in: query
name: content_type
required: false
schema:
type: string
default: ALL
enum:
- ALL
- PAID
- ORGANIC
query_conversion_attribution_click_window_days:
name: click_window_days
in: query
schema:
type: integer
default: 30
enum:
- 0
- 1
- 7
- 14
- 30
- 60
description: 'Number of days to use as the conversion attribution window for a pin click action. Applies to Pinterest Tag conversion metrics. Prior conversion tags use their defined attribution windows. If not specified, defaults to `30` days.'
example: 1
query_conversion_attribution_conversion_report_time:
description: 'The date by which the conversion metrics returned from this endpoint will be reported. There are two dates associated with a conversion event: the date that the user interacted with the ad, and the date that the user completed a conversion event.'
example: TIME_OF_AD_ACTION
in: query
name: conversion_report_time
schema:
type: string
default: TIME_OF_AD_ACTION
enum:
- TIME_OF_AD_ACTION
- TIME_OF_CONVERSION
query_conversion_attribution_engagement_window_days:
name: engagement_window_days
in: query
description: 'Number of days to use as the conversion attribution window for an engagement action. Engagements include saves, closeups, link clicks, and carousel card swipes. Applies to Pinterest Tag conversion metrics. Prior conversion tags use their defined attribution windows. If not specified, defaults to `30` days.
Note: This parameter no longer returns new data. However, you can still access historic data through Sept 30, 2027.'
schema:
type: integer
default: 30
enum:
- 0
- 1
- 7
- 14
- 30
- 60
query_conversion_attribution_view_window_days:
name: view_window_days
in: query
description: 'Number of days to use as the conversion attribution window for a view action. Applies to Pinterest Tag conversion metrics. Prior conversion tags use their defined attribution windows. If not specified, defaults to `1` day.'
schema:
type: integer
default: 1
enum:
- 0
- 1
- 7
- 14
- 30
- 60
query_country_code:
name: country_code
description: Two letter country code (ISO 3166-1 alpha-2)
in: query
example: US
required: true
explode: true
schema:
type: string
style: form
query_created_in_last_n_days:
name: created_in_last_n_days
in: query
schema:
type: integer
enum:
- 30
description: Get metrics for pins created in the last "n" days.
example: 30
query_creative_types:
in: query
name: creative_types
required: false
description: 'Pin creative types filter.
2023-03-20, Profile visits and Follows will only be available for Idea Pins. These metrics are available for all Pin formats since then. Keep in mind this cannot have ALL if split_field is set to any value other than NO_SPLIT.'
explode: false
in: query
name: metric_types
required: true
schema:
type: array
items:
oneOf:
- description: Standard Pin metric types
type: string
enum:
- IMPRESSION
- OUTBOUND_CLICK
- PIN_CLICK
- SAVE
- SAVE_RATE
- TOTAL_COMMENTS
- TOTAL_REACTIONS
- 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
query_pin_format:
description: 'Pin formats to get data for, default is all.'
in: query
name: pin_format
required: false
schema:
type: string
default: ALL
enum:
- ALL
- ORGANIC_IMAGE
- ORGANIC_PRODUCT
- ORGANIC_VIDEO
- ADS_STANDARD
- ADS_PRODUCT
- ADS_VIDEO
- ADS_IDEA
query_pin_metrics:
name: pin_metrics
description: Specify whether to return 90d and lifetime Pin metrics. Total comments and total reactions are only available with lifetime Pin metrics. If Pin was created before 2023-03-20 lifetime metrics will only be available for Video and Idea Pin formats. Lifetime metrics are available for all Pin formats since then.
in: query
required: false
schema:
type: boolean
default: false
query_pin_order_id:
description: The pin order id associated with the ssio insertino order
in: query
name: pin_order_id
required: false
schema:
type: string
example: 0Q01N0000015hekSVDFDC
query_product_group_ids_required:
description: List of Product group Ids to use to filter the results.
in: query
name: product_group_ids
required: true
schema:
type: array
items:
type: string
pattern: ^\d+$
maxItems: 250
minItems: 1
query_product_group_promotion_ids:
description: List of Product group promotion Ids.
in: query
name: product_group_promotion_ids
required: false
schema:
type: array
items:
type: string
pattern: ^\d+$
maxItems: 250
minItems: 1
query_query:
description: Search query. Can contain pin description keywords or comma-separated pin IDs.
in: query
name: query
required: false
schema:
type: string
query_report_type:
name: report_type
description: Report type.
in: query
required: false
schema:
type: string
enum:
- SYNC
- ASYNC
query_reporting_timezone:
in: query
description: Specify the timezone to be applied for the reporting. This feature is currently in BETA and is not available to all users.
name: reporting_timezone
required: false
schema:
$ref: '#/components/schemas/ReportingTimeZone'
query_required_pin_ids:
name: pin_ids
description: List of Pin IDs.
in: query
required: true
schema:
type: array
items:
type: string
pattern: ^\d+$
maxItems: 100
minItems: 1
query_required_search_query:
description: Search query. Can contain pin description keywords or comma-separated pin IDs.
in: query
example: Plants
name: query
required: true
schema:
type: string
query_resource_type:
name: asset_type
in: query
required: false
description: A resource type to filter the assets by. Only assets of the specified type will be returned.
schema:
type: string
example: AD_ACCOUNT
default: AD_ACCOUNT
enum:
- AD_ACCOUNT
- PROFILE
- ASSET_GROUP
- CATALOG
- CONSUMER
query_schedule_statuses:
name: schedule_statuses
in: query
required: false
description: Specifies which schedules to return based on their status.
schema:
type: array
items:
type: string
example: ACTIVE
enum:
- DRAFT
- CREATED
- SCHEDULED
- ACTIVE
- COMPLETED
- FAILED
- CANCELED
query_schedule_types:
name: schedule_type
in: query
required: false
description: Specifies which schedules to return based on their type.
schema:
type: array
items:
type: string
example: CAMPAIGN_BUDGET
enum:
- CAMPAIGN_BUDGET
- CAMPAIGN_BID_MULTIPLIERS
query_search_query:
description: String keywords to search for audiences by.
in: query
name: search_query
required: false
schema:
type: string
query_sort:
description: Sort method. Only RATIO is supported.
explode: false
in: query
name: sort
required: false
schema:
type: string
example: RATIO
default: RATIO
enum:
- RATIO
query_sort_billing_invoice:
name: sort
in: query
description: Field of which to sort billing invoices
required: false
schema:
type: string
example: DUE_DATE
default: DUE_DATE
enum:
- DUE_DATE
- BILLING_PERIOD
- DOCUMENT_TYPE
- TOTAL_AMOUNT
- INVOICE_NUMBER
query_sort_by:
description: Specify sorting order for metrics
explode: false
in: query
name: sort_by
required: true
schema:
type: string
enum:
- ENGAGEMENT
- IMPRESSION
- OUTBOUND_CLICK
- PIN_CLICK
- SAVE
query_source:
description: 'Filter to activity from Pins created and saved by your, or activity created and saved by others from your claimed accounts'
in: query
name: source
required: false
schema:
type: string
default: ALL
enum:
- ALL
- YOUR_PINS
- OTHER_PINS
query_split_field_pins:
description: How to split the data into groups. Not including this param means data won't be split.
required: false
in: query
explode: false
name: split_field
schema:
type: string
default: NO_SPLIT
enum:
- NO_SPLIT
- APP_TYPE
query_split_field_user_account:
description: How to split the data into groups. Not including this param means data won't be split.
required: false
in: query
explode: false
name: split_field
schema:
type: string
default: NO_SPLIT
enum:
- NO_SPLIT
- APP_TYPE
- OWNED_CONTENT
- SOURCE
- PIN_FORMAT
query_start_date:
description: 'Metric report start date (UTC). Format: YYYY-MM-DD. Cannot be more than 90 days back from today.'
in: query
name: start_date
required: true
schema:
type: string
format: date
query_start_date_async:
description: 'Metric report start date (UTC). Format: YYYY-MM-DD. Cannot be more than 2.5 years back from today.'
in: query
name: start_date
required: false
schema:
type: string
format: date
query_start_index:
description: The starting index for returned list.
in: query
name: start_index
required: false
schema:
type: string
pattern: ^\d+$
query_targeting_types:
name: targeting_types
description: 'Targeting type breakdowns for the report. The reporting per targeting type 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:
description: Ad review status
type: string
example: PENDING
enum:
- OTHER
- PENDING
- REJECTED
- APPROVED
summary_status:
description: Ad summary status
type: string
allOf:
- $ref: '#/components/schemas/PinPromotionSummaryStatus'
type:
description: Always "ad".
type: string
example: pinpromotion
updated_time:
description: Last update time. Unix timestamp in seconds.
type: integer
example: 1451431341
AdUpdateRequest:
type: object
allOf:
- $ref: '#/components/schemas/AdCommon'
- type: object
title: AdUpdateRequest
properties:
id:
description: The ID of this ad.
type: string
example: '687195134316'
pattern: ^\d+$
title: id
pin_id:
description: Pin ID. This field may only be updated for draft ads.
type: string
example: '394205773611545468'
nullable: true
pattern: ^\d+$
required:
- id
AdsAnalyticsAdGroupTargetingType:
description: Reporting targeting type for ad groups
type: string
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:
description: Reporting targeting type for ads
type: string
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:
description: Reporting targeting type for campaigns
type: string
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:
attribution_types:
description: List of types of attribution for the conversion report
type: array
items:
$ref: '#/components/schemas/ConversionReportAttributionType'
click_window_days:
description: 'Number of days to use as the conversion attribution window for a pin click action. Applies to Pinterest Tag conversion metrics. Prior conversion tags use their defined attribution windows. If not specified, defaults to `30` days.'
type: integer
default: 30
allOf:
- $ref: '#/components/schemas/ConversionAttributionWindowDays'
conversion_report_time:
description: 'The date by which the conversion metrics returned from this endpoint will be reported. There are two dates associated with a conversion event: the date that the user interacted with the ad, and the date that the user completed a conversion event.'
type: string
default: TIME_OF_AD_ACTION
allOf:
- $ref: '#/components/schemas/ConversionReportTimeType'
end_date:
description: 'Metric report end date (UTC). Format: YYYY-MM-DD'
type: string
example: '2020-12-20'
pattern: '^(\d{4})-(\d{2})-(\d{2})$'
engagement_window_days:
description: 'Number of days to use as the conversion attribution window for an engagement action. Engagements include saves, closeups, link clicks, and carousel card swipes. Applies to Pinterest Tag conversion metrics. Prior conversion tags use their defined attribution windows. If not specified, defaults to `30` days.'
type: integer
default: 30
allOf:
- $ref: '#/components/schemas/ConversionAttributionWindowDays'
granularity:
description: TOTAL - metrics are aggregated over the specified date range.<= 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://.
type: array items: type: string example: - 'https://scene.example.com/image/image_v2.jpg' - 'https://scene.example.com/image/image_v3.jpg' nullable: true main_image: description: The main hotel image type: object properties: link: description: |-<= 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://.
type: string tag: description: Tag appended to the image that identifies image category or details. There can be multiple tags associated with an image type: array items: type: string nullable: true - $ref: '#/components/schemas/CatalogsUpdatableHotelAttributes' CatalogsRetailFeedsCreateRequest: description: Request object for creating a retail feed. type: object properties: 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+$ catalog_type: $ref: '#/components/schemas/CatalogsType' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' default_availability: $ref: '#/components/schemas/ProductAvailabilityType' default_country: $ref: '#/components/schemas/Country' default_currency: $ref: '#/components/schemas/NullableCurrency' default_locale: description: The locale used within a feed for product descriptions. example: en-US anyOf: - $ref: '#/components/schemas/CatalogsLocale' description: The locale used within a feed for product descriptions. - 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 format: $ref: '#/components/schemas/CatalogsFormat' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. type: string pattern: '^(http|https|ftp|sftp)://' name: description: A human-friendly name associated to a given feed. type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: type: string allOf: - $ref: '#/components/schemas/CatalogsStatus' - default: ACTIVE additionalProperties: false required: - format - location - name - catalog_type - default_country - default_locale title: feeds_retail_create_request CatalogsRetailItemsFilter: type: object properties: catalog_id: description: 'Catalog id pertaining to the retail item. If not provided, default to oldest retail catalog' type: string pattern: ^\d+$ catalog_type: type: string enum: - RETAIL item_ids: type: array items: type: string maxItems: 100 minItems: 1 required: - catalog_type - item_ids CatalogsRetailItemsPostFilter: type: object properties: catalog_id: description: 'Catalog id pertaining to the retail item. If not provided, default to oldest retail catalog' type: string pattern: ^\d+$ catalog_type: type: string enum: - RETAIL item_ids: type: array items: type: string maxItems: 1000 minItems: 1 required: - catalog_type - item_ids CatalogsHotelFeedsCreateRequest: 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.' type: object properties: 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+$ catalog_type: $ref: '#/components/schemas/CatalogsType' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' default_currency: $ref: '#/components/schemas/NullableCurrency' default_locale: description: The locale used within a feed for product descriptions. example: en-US anyOf: - $ref: '#/components/schemas/CatalogsLocale' description: The locale used within a feed for product descriptions. - 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 format: $ref: '#/components/schemas/CatalogsFormat' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. type: string pattern: '^(http|https|ftp|sftp)://' name: description: A human-friendly name associated to a given feed. type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: type: string allOf: - $ref: '#/components/schemas/CatalogsStatus' - default: ACTIVE additionalProperties: false required: - format - location - name - catalog_type - default_locale title: feeds_hotel_create_request CatalogsHotelItemsFilter: type: object properties: catalog_id: description: 'Catalog id pertaining to the hotel item. If not provided, default to oldest hotel catalog' type: string pattern: ^\d+$ catalog_type: type: string enum: - HOTEL hotel_ids: type: array items: type: string maxItems: 100 minItems: 1 required: - catalog_type - hotel_ids CatalogsHotelItemsPostFilter: type: object properties: catalog_id: description: 'Catalog id pertaining to the hotel item. If not provided, default to oldest hotel catalog' type: string pattern: ^\d+$ catalog_type: type: string enum: - HOTEL hotel_ids: type: array items: type: string maxItems: 1000 minItems: 1 required: - catalog_type - hotel_ids CatalogsCreativeAssetsItemsFilter: type: object properties: catalog_id: description: 'Catalog id pertaining to the creative assets item. If not provided, default to oldest creative assets catalog' type: string pattern: ^\d+$ catalog_type: type: string enum: - CREATIVE_ASSETS creative_assets_ids: type: array items: type: string maxItems: 100 minItems: 1 required: - catalog_type - creative_assets_ids CatalogsCreativeAssetsItemsPostFilter: type: object properties: catalog_id: description: 'Catalog id pertaining to the creative assets item. If not provided, default to oldest creative assets catalog' type: string pattern: ^\d+$ catalog_type: type: string enum: - CREATIVE_ASSETS creative_assets_ids: type: array items: type: string maxItems: 1000 minItems: 1 required: - catalog_type - creative_assets_ids CatalogsCreativeAssetsFeedsCreateRequest: description: Request object for creating a feed. type: object properties: 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+$ catalog_type: $ref: '#/components/schemas/CatalogsType' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' default_country: $ref: '#/components/schemas/Country' default_currency: $ref: '#/components/schemas/NullableCurrency' default_locale: description: The locale used within a feed for product descriptions. example: en-US anyOf: - $ref: '#/components/schemas/CatalogsLocale' description: The locale used within a feed for product descriptions. - 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 format: $ref: '#/components/schemas/CatalogsFormat' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. type: string pattern: '^(http|https|ftp|sftp)://' name: description: A human-friendly name associated to a given feed. type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: type: string allOf: - $ref: '#/components/schemas/CatalogsStatus' - default: ACTIVE additionalProperties: false required: - format - location - name - catalog_type - default_country - default_locale title: feeds_creative_assets_create_request CatalogsVerticalFeedsCreateRequest: description: Request object for creating a feed. type: object discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailFeedsCreateRequest' HOTEL: '#/components/schemas/CatalogsHotelFeedsCreateRequest' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsFeedsCreateRequest' oneOf: - $ref: '#/components/schemas/CatalogsRetailFeedsCreateRequest' - $ref: '#/components/schemas/CatalogsHotelFeedsCreateRequest' - $ref: '#/components/schemas/CatalogsCreativeAssetsFeedsCreateRequest' title: feeds_create_request CatalogsCreativeAssetsFeedsUpdateRequest: description: Request object for updating a feed. type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' default_currency: $ref: '#/components/schemas/NullableCurrency' format: $ref: '#/components/schemas/CatalogsFormat' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. type: string pattern: '^(http|https|ftp|sftp)://' name: description: A human-friendly name associated to a given feed. type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' additionalProperties: false required: - catalog_type title: catalogs_feeds_update_request CatalogsRetailFeedsUpdateRequest: description: Request object for updating a feed. type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' default_availability: $ref: '#/components/schemas/ProductAvailabilityType' default_currency: $ref: '#/components/schemas/NullableCurrency' format: $ref: '#/components/schemas/CatalogsFormat' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. type: string pattern: '^(http|https|ftp|sftp)://' name: description: A human-friendly name associated to a given feed. type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' additionalProperties: false required: - catalog_type title: catalogs_feeds_update_request CatalogsHotelFeedsUpdateRequest: description: Request object for updating a feed. type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' default_currency: $ref: '#/components/schemas/NullableCurrency' format: $ref: '#/components/schemas/CatalogsFormat' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. type: string pattern: '^(http|https|ftp|sftp)://' name: description: A human-friendly name associated to a given feed. type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' additionalProperties: false required: - catalog_type title: catalogs_feeds_update_request CatalogsVerticalFeedsUpdateRequest: description: Request object for updating a feed. type: object discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailFeedsUpdateRequest' HOTEL: '#/components/schemas/CatalogsHotelFeedsUpdateRequest' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsFeedsUpdateRequest' oneOf: - $ref: '#/components/schemas/CatalogsRetailFeedsUpdateRequest' - $ref: '#/components/schemas/CatalogsHotelFeedsUpdateRequest' - $ref: '#/components/schemas/CatalogsCreativeAssetsFeedsUpdateRequest' title: feeds_update_request CatalogsFeedsUpdateRequest: description: Request object for updating a feed. type: object properties: credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' default_availability: $ref: '#/components/schemas/ProductAvailabilityType' default_currency: $ref: '#/components/schemas/NullableCurrency' format: $ref: '#/components/schemas/CatalogsFormat' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. type: string pattern: '^(http|https|ftp|sftp)://' name: description: A human-friendly name associated to a given feed. type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' additionalProperties: false title: legacy_retail_only CatalogsFormat: description: The file format of a feed. type: string enum: - TSV - CSV - XML CatalogsItemValidationDetails: type: object properties: attribute_name: description: Attribute that has a validation issue. $ref: '#/components/schemas/NullableCatalogsItemFieldType' provided_value: description: Provided value that caused the validation issue. type: string nullable: true required: - attribute_name - provided_value CatalogsItemValidationErrors: type: object properties: ADULT_INVALID: description: Item has an invalid adult value. $ref: '#/components/schemas/CatalogsItemValidationDetails' ADWORDS_FORMAT_INVALID: description: Adword link contains too many characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AVAILABILITY_INVALID: description: 'Item is missing availability value in its product metadata, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' BLOCKLISTED_IMAGE_SIGNATURE: description: Item will not be published because it doesn't meet Pinterest's Merchant Guidelines. $ref: '#/components/schemas/CatalogsItemValidationDetails' DESCRIPTION_MISSING: description: 'Item is missing description in its product metadata, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' DUPLICATE_PRODUCTS: description: This product is duplicated. The duplicate entry will not be published. $ref: '#/components/schemas/CatalogsItemValidationDetails' IMAGE_LINK_INVALID: description: Image link is invalid. $ref: '#/components/schemas/CatalogsItemValidationDetails' IMAGE_LINK_LENGTH_TOO_LONG: description: 'Item has image_link URL that contains too many characters, so the item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' IMAGE_LINK_MISSING: description: 'Item is missing an image link URL in its product metadata, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' INVALID_DOMAIN: description: Product link value doesn't match the verified domain associated with this account. $ref: '#/components/schemas/CatalogsItemValidationDetails' ITEM_MAIN_IMAGE_DOWNLOAD_FAILURE: description: Main image can't be found. $ref: '#/components/schemas/CatalogsItemValidationDetails' ITEMID_MISSING: description: 'Item is missing item id in its product metadata, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' LINK_FORMAT_INVALID: description: Link is invalid. $ref: '#/components/schemas/CatalogsItemValidationDetails' LINK_LENGTH_TOO_LONG: description: 'Product link contains too many characters, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' LIST_PRICE_INVALID: description: 'Item has a list price formatting error, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' MAX_ITEMS_PER_ITEM_GROUP_EXCEEDED: description: 'Item exceed the maximum number of items per item group, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' PARSE_LINE_ERROR: description: Item contains formating errors. $ref: '#/components/schemas/CatalogsItemValidationDetails' PINJOIN_CONTENT_UNSAFE: description: Item will not be published because it doesn't meet Pinterest's Merchant Guidelines. $ref: '#/components/schemas/CatalogsItemValidationDetails' PRICE_CANNOT_BE_DETERMINED: description: 'Item price cannot be determined because the price, list price, and sale price are all different.' $ref: '#/components/schemas/CatalogsItemValidationDetails' PRICE_MISSING: description: 'Product is missing a price, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' PRODUCT_LINK_MISSING: description: 'Item is missing a link URL in its product metadata, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' PRODUCT_PRICE_INVALID: description: 'Item has a price formatting error in its product metadata, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' TITLE_MISSING: description: 'Item is missing title in its product metadata, this item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' 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: errors: $ref: '#/components/schemas/CatalogsItemValidationErrors' item_id: description: The merchant-created unique ID that represents the product. type: string example: DS0294-L nullable: true 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.' type: integer example: 0 warnings: $ref: '#/components/schemas/CatalogsItemValidationWarnings' required: - item_number - item_id - errors - warnings CatalogsItemValidationWarnings: type: object properties: AD_IMAGE_0_LINK_DUPLICATED: description: ad_image_0_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_0_LINK_LENGTH_TOO_LONG: description: Ad image link 0 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_0_LINK_REQUIRED: description: Ad image link 0 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_0_LINK_WARNING: description: Ad image link 0 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_0_TAG_DUPLICATED: description: ad_image_0_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_0_TAG_LENGTH_TOO_LONG: description: Ad image tag 0 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_0_TAG_REQUIRED: description: Ad image tag 0 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_10_LINK_DUPLICATED: description: ad_image_10_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_10_LINK_LENGTH_TOO_LONG: description: Ad image link 10 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_10_LINK_REQUIRED: description: Ad image link 10 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_10_LINK_WARNING: description: Ad image link 10 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_10_TAG_DUPLICATED: description: ad_image_10_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_10_TAG_LENGTH_TOO_LONG: description: Ad image tag 10 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_10_TAG_REQUIRED: description: Ad image tag 10 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_11_LINK_DUPLICATED: description: ad_image_11_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_11_LINK_LENGTH_TOO_LONG: description: Ad image link 11 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_11_LINK_REQUIRED: description: Ad image link 11 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_11_LINK_WARNING: description: Ad image link 11 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_11_TAG_DUPLICATED: description: ad_image_11_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_11_TAG_LENGTH_TOO_LONG: description: Ad image tag 11 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_11_TAG_REQUIRED: description: Ad image tag 11 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_12_LINK_DUPLICATED: description: ad_image_12_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_12_LINK_LENGTH_TOO_LONG: description: Ad image link 12 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_12_LINK_REQUIRED: description: Ad image link 12 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_12_LINK_WARNING: description: Ad image link 12 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_12_TAG_DUPLICATED: description: ad_image_12_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_12_TAG_LENGTH_TOO_LONG: description: Ad image tag 12 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_12_TAG_REQUIRED: description: Ad image tag 12 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_13_LINK_DUPLICATED: description: ad_image_13_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_13_LINK_LENGTH_TOO_LONG: description: Ad image link 13 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_13_LINK_REQUIRED: description: Ad image link 13 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_13_LINK_WARNING: description: Ad image link 13 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_13_TAG_DUPLICATED: description: ad_image_13_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_13_TAG_LENGTH_TOO_LONG: description: Ad image tag 13 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_13_TAG_REQUIRED: description: Ad image tag 13 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_14_LINK_DUPLICATED: description: ad_image_14_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_14_LINK_LENGTH_TOO_LONG: description: Ad image link 14 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_14_LINK_REQUIRED: description: Ad image link 14 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_14_LINK_WARNING: description: Ad image link 14 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_14_TAG_DUPLICATED: description: ad_image_14_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_14_TAG_LENGTH_TOO_LONG: description: Ad image tag 14 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_14_TAG_REQUIRED: description: Ad image tag 14 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_15_LINK_DUPLICATED: description: ad_image_15_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_15_LINK_LENGTH_TOO_LONG: description: Ad image link 15 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_15_LINK_REQUIRED: description: Ad image link 15 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_15_LINK_WARNING: description: Ad image link 15 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_15_TAG_DUPLICATED: description: ad_image_15_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_15_TAG_LENGTH_TOO_LONG: description: Ad image tag 15 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_15_TAG_REQUIRED: description: Ad image tag 15 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_16_LINK_DUPLICATED: description: ad_image_16_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_16_LINK_LENGTH_TOO_LONG: description: Ad image link 16 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_16_LINK_REQUIRED: description: Ad image link 16 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_16_LINK_WARNING: description: Ad image link 16 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_16_TAG_DUPLICATED: description: ad_image_16_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_16_TAG_LENGTH_TOO_LONG: description: Ad image tag 16 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_16_TAG_REQUIRED: description: Ad image tag 16 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_17_LINK_DUPLICATED: description: ad_image_17_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_17_LINK_LENGTH_TOO_LONG: description: Ad image link 17 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_17_LINK_REQUIRED: description: Ad image link 17 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_17_LINK_WARNING: description: Ad image link 17 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_17_TAG_DUPLICATED: description: ad_image_17_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_17_TAG_LENGTH_TOO_LONG: description: Ad image tag 17 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_17_TAG_REQUIRED: description: Ad image tag 17 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_18_LINK_DUPLICATED: description: ad_image_18_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_18_LINK_LENGTH_TOO_LONG: description: Ad image link 18 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_18_LINK_REQUIRED: description: Ad image link 18 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_18_LINK_WARNING: description: Ad image link 18 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_18_TAG_DUPLICATED: description: ad_image_18_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_18_TAG_LENGTH_TOO_LONG: description: Ad image tag 18 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_18_TAG_REQUIRED: description: Ad image tag 18 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_19_LINK_DUPLICATED: description: ad_image_19_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_19_LINK_LENGTH_TOO_LONG: description: Ad image link 19 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_19_LINK_REQUIRED: description: Ad image link 19 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_19_LINK_WARNING: description: Ad image link 19 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_19_TAG_DUPLICATED: description: ad_image_19_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_19_TAG_LENGTH_TOO_LONG: description: Ad image tag 19 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_19_TAG_REQUIRED: description: Ad image tag 19 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_1_LINK_DUPLICATED: description: ad_image_1_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_1_LINK_LENGTH_TOO_LONG: description: Ad image link 1 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_1_LINK_REQUIRED: description: Ad image link 1 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_1_LINK_WARNING: description: Ad image link 1 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_1_TAG_DUPLICATED: description: ad_image_1_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_1_TAG_LENGTH_TOO_LONG: description: Ad image tag 1 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_1_TAG_REQUIRED: description: Ad image tag 1 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_2_LINK_DUPLICATED: description: ad_image_2_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_2_LINK_LENGTH_TOO_LONG: description: Ad image link 2 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_2_LINK_REQUIRED: description: Ad image link 2 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_2_LINK_WARNING: description: Ad image link 2 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_2_TAG_DUPLICATED: description: ad_image_2_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_2_TAG_LENGTH_TOO_LONG: description: Ad image tag 2 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_2_TAG_REQUIRED: description: Ad image tag 2 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_3_LINK_DUPLICATED: description: ad_image_3_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_3_LINK_LENGTH_TOO_LONG: description: Ad image link 3 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_3_LINK_REQUIRED: description: Ad image link 3 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_3_LINK_WARNING: description: Ad image link 3 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_3_TAG_DUPLICATED: description: ad_image_3_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_3_TAG_LENGTH_TOO_LONG: description: Ad image tag 3 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_3_TAG_REQUIRED: description: Ad image tag 3 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_4_LINK_DUPLICATED: description: ad_image_4_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_4_LINK_LENGTH_TOO_LONG: description: Ad image link 4 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_4_LINK_REQUIRED: description: Ad image link 4 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_4_LINK_WARNING: description: Ad image link 4 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_4_TAG_DUPLICATED: description: ad_image_4_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_4_TAG_LENGTH_TOO_LONG: description: Ad image tag 4 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_4_TAG_REQUIRED: description: Ad image tag 4 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_5_LINK_DUPLICATED: description: ad_image_5_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_5_LINK_LENGTH_TOO_LONG: description: Ad image link 5 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_5_LINK_REQUIRED: description: Ad image link 5 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_5_LINK_WARNING: description: Ad image link 5 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_5_TAG_DUPLICATED: description: ad_image_5_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_5_TAG_LENGTH_TOO_LONG: description: Ad image tag 5 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_5_TAG_REQUIRED: description: Ad image tag 5 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_6_LINK_DUPLICATED: description: ad_image_6_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_6_LINK_LENGTH_TOO_LONG: description: Ad image link 6 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_6_LINK_REQUIRED: description: Ad image link 6 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_6_LINK_WARNING: description: Ad image link 6 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_6_TAG_DUPLICATED: description: ad_image_6_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_6_TAG_LENGTH_TOO_LONG: description: Ad image tag 6 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_6_TAG_REQUIRED: description: Ad image tag 6 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_7_LINK_DUPLICATED: description: ad_image_7_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_7_LINK_LENGTH_TOO_LONG: description: Ad image link 7 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_7_LINK_REQUIRED: description: Ad image link 7 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_7_LINK_WARNING: description: Ad image link 7 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_7_TAG_DUPLICATED: description: ad_image_7_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_7_TAG_LENGTH_TOO_LONG: description: Ad image tag 7 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_7_TAG_REQUIRED: description: Ad image tag 7 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_8_LINK_DUPLICATED: description: ad_image_8_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_8_LINK_LENGTH_TOO_LONG: description: Ad image link 8 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_8_LINK_REQUIRED: description: Ad image link 8 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_8_LINK_WARNING: description: Ad image link 8 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_8_TAG_DUPLICATED: description: ad_image_8_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_8_TAG_LENGTH_TOO_LONG: description: Ad image tag 8 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_8_TAG_REQUIRED: description: Ad image tag 8 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_9_LINK_DUPLICATED: description: ad_image_9_link is duplicated with another ad image link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_9_LINK_LENGTH_TOO_LONG: description: Ad image link 9 length is too long. The maximum length is 2047 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_9_LINK_REQUIRED: description: Ad image link 9 is required because an image tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_9_LINK_WARNING: description: Ad image link 9 format is unsupported. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_9_TAG_DUPLICATED: description: ad_image_9_tag is duplicated with another ad image tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_9_TAG_LENGTH_TOO_LONG: description: Ad image tag 9 length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_IMAGE_9_TAG_REQUIRED: description: Ad image tag 9 is required because an image link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_LINK_FORMAT_WARNING: description: Item has an ad link that is formatted incorrectly. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_LINK_SAME_AS_LINK: description: Item has an ad link URL that is duplicate of the link URL. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_0_LINK_DUPLICATED: description: ad_video_0_link is duplicated with another ad video link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_0_LINK_LENGTH_TOO_LONG: description: ad_video_0_link length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_0_LINK_REQUIRED: description: ad_video_0_link is required for this item because ad_video_0_tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_0_LINK_WARNING: description: ad_video_0_link is formatted incorrectly and will not be published with your items. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_0_TAG_DUPLICATED: description: ad_video_0_tag is duplicated with another ad video tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_0_TAG_LENGTH_TOO_LONG: description: ad_video_0_tag length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_0_TAG_REQUIRED: description: ad_video_0_tag is required because ad_video_0_link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_1_LINK_DUPLICATED: description: ad_video_1_link is duplicated with another ad video link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_1_LINK_LENGTH_TOO_LONG: description: ad_video_1_link length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_1_LINK_REQUIRED: description: ad_video_1_link is required for this item because ad_video_1_tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_1_LINK_WARNING: description: ad_video_1_link is formatted incorrectly and will not be published with your items. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_1_TAG_DUPLICATED: description: ad_video_1_tag is duplicated with another ad video tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_1_TAG_LENGTH_TOO_LONG: description: ad_video_1_tag length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_1_TAG_REQUIRED: description: ad_video_1_tag is required because ad_video_1_link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_2_LINK_DUPLICATED: description: ad_video_2_link is duplicated with another ad video link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_2_LINK_LENGTH_TOO_LONG: description: ad_video_2_link length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_2_LINK_REQUIRED: description: ad_video_2_link is required for this item because ad_video_2_tag was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_2_LINK_WARNING: description: ad_video_2_link is formatted incorrectly and will not be published with your items. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_2_TAG_DUPLICATED: description: ad_video_2_tag is duplicated with another ad video tag. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_2_TAG_LENGTH_TOO_LONG: description: ad_video_2_tag length is too long. The maximum length is 511 characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' AD_VIDEO_2_TAG_REQUIRED: description: ad_video_2_tag is required because ad_video_2_link was provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' ADDITIONAL_IMAGE_LINK_LENGTH_TOO_LONG: description: 'Item has an additional_image_link URL that contains too many characters, so the item will not be published.' $ref: '#/components/schemas/CatalogsItemValidationDetails' ADDITIONAL_IMAGE_LINK_WARNING: description: Item has additional_image_link URLs that are formatted incorrectly and will not be published with your items. $ref: '#/components/schemas/CatalogsItemValidationDetails' ADWORDS_FORMAT_WARNING: description: Item has an adwords_redirect link that is formatted incorrectly. $ref: '#/components/schemas/CatalogsItemValidationDetails' ADWORDS_SAME_AS_LINK: description: Item has an adwords_redirect URL that is duplicate of the link URL. $ref: '#/components/schemas/CatalogsItemValidationDetails' AGE_GROUP_INVALID: description: 'Item has an age group value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences.' $ref: '#/components/schemas/CatalogsItemValidationDetails' ANDROID_DEEP_LINK_INVALID: description: Item includes an invalid android_deep_link. $ref: '#/components/schemas/CatalogsItemValidationDetails' AVAILABILITY_DATE_INVALID: description: 'Item has an availability_date value that is formatted incorrectly, this item will be published without an availability date.' $ref: '#/components/schemas/CatalogsItemValidationDetails' COUNTRY_DOES_NOT_MAP_TO_CURRENCY: description: Item includes a currency that doesn't match the usual currency for the location where the product is sold or shipped. $ref: '#/components/schemas/CatalogsItemValidationDetails' CUSTOM_LABEL_LENGTH_TOO_LONG: description: 'Item has a custom_label value that is too long, this item will be published without that custom label.' $ref: '#/components/schemas/CatalogsItemValidationDetails' DESCRIPTION_LENGTH_TOO_LONG: description: The description for this item was truncated because it contains too many characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' EXPIRATION_DATE_INVALID: description: 'Item has an expiration_date value that is formatted incorrectly, this item will be published without an expiration date.' $ref: '#/components/schemas/CatalogsItemValidationDetails' GENDER_INVALID: description: 'Item has a gender value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences.' $ref: '#/components/schemas/CatalogsItemValidationDetails' GTIN_INVALID: description: Item has a GTIN value that is formatted incorrectly. $ref: '#/components/schemas/CatalogsItemValidationDetails' IMAGE_LINK_WARNING: description: Item has an image_link URL that is formatted incorrectly and will not be published. $ref: '#/components/schemas/CatalogsItemValidationDetails' IOS_DEEP_LINK_INVALID: description: Item includes an invalid ios_deep_link value. $ref: '#/components/schemas/CatalogsItemValidationDetails' IS_BUNDLE_INVALID: description: 'Item has an is_bundle value that is formatted incorrectly, this item will be published without being bundled with other products.' $ref: '#/components/schemas/CatalogsItemValidationDetails' ITEM_ADDITIONAL_IMAGE_DOWNLOAD_FAILURE: description: Item includes additional_image_links that can't be found. $ref: '#/components/schemas/CatalogsItemValidationDetails' LINK_FORMAT_WARNING: description: Item has an invalid product link which contains invalid UTM tracking paramaters. $ref: '#/components/schemas/CatalogsItemValidationDetails' MIN_AD_PRICE_INVALID: description: Item includes a min_ad_price value that is formatted incorrectly. $ref: '#/components/schemas/CatalogsItemValidationDetails' MPN_INVALID: description: Item has a MPN value that is formatted incorrectly. $ref: '#/components/schemas/CatalogsItemValidationDetails' MULTIPACK_INVALID: description: Item has an invalid multipack value. $ref: '#/components/schemas/CatalogsItemValidationDetails' OPTIONAL_CONDITION_INVALID: description: 'Item includes a condition value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences.' $ref: '#/components/schemas/CatalogsItemValidationDetails' OPTIONAL_CONDITION_MISSING: description: 'Item is missing condition value, which may limit visibility in recommendations, search results and shopping experiences.' $ref: '#/components/schemas/CatalogsItemValidationDetails' OPTIONAL_PRODUCT_CATEGORY_INVALID: description: Item includes a google_product_category value that is not formatted correctly according to the GPC taxonomy. $ref: '#/components/schemas/CatalogsItemValidationDetails' OPTIONAL_PRODUCT_CATEGORY_MISSING: description: Item is missing google_product_category. $ref: '#/components/schemas/CatalogsItemValidationDetails' PRODUCT_CATEGORY_DEPTH_WARNING: description: 'Item only has 1 or 2 levels of google_product_category value, which may limit visibility in recommendations, search results and shopping experiences.' $ref: '#/components/schemas/CatalogsItemValidationDetails' PRODUCT_TYPE_LENGTH_TOO_LONG: description: 'Item has a product_type value that is too long, this item will be published without that product type.' $ref: '#/components/schemas/CatalogsItemValidationDetails' SALE_DATE_INVALID: description: 'Item has a sale_price_effective_date value that is formatted incorrectly, this item will be published without a sale date.' $ref: '#/components/schemas/CatalogsItemValidationDetails' SALES_PRICE_INVALID: description: Item has an incorrectly formatted sales price. $ref: '#/components/schemas/CatalogsItemValidationDetails' SALES_PRICE_TOO_HIGH: description: Item has a sale price value that is higher than the original price of the item. $ref: '#/components/schemas/CatalogsItemValidationDetails' SALES_PRICE_TOO_LOW: description: Item has a sale price value that is discounted very low compared to the price. $ref: '#/components/schemas/CatalogsItemValidationDetails' SHIPPING_HEIGHT_INVALID: description: Item has an incorrectly formatted shipping_height value. The value must first contain a numeric value then a valid dimension unit type. $ref: '#/components/schemas/CatalogsItemValidationDetails' SHIPPING_INVALID: description: Item has a shipping value that is formatted incorrectly. $ref: '#/components/schemas/CatalogsItemValidationDetails' SHIPPING_WEIGHT_INVALID: description: Item has an invalid shipping_weight value. $ref: '#/components/schemas/CatalogsItemValidationDetails' SHIPPING_WIDTH_INVALID: description: Item has an incorrectly formatted shipping_width value. The value must first contain a numeric value then a valid dimension unit type. $ref: '#/components/schemas/CatalogsItemValidationDetails' SIZE_SYSTEM_INVALID: description: Some items have size system values which are not one of the supported size systems. $ref: '#/components/schemas/CatalogsItemValidationDetails' SIZE_TYPE_INVALID: description: 'Item has a size type value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences.' $ref: '#/components/schemas/CatalogsItemValidationDetails' TAX_INVALID: description: Item has a tax value that is formatted incorrectly. $ref: '#/components/schemas/CatalogsItemValidationDetails' TITLE_LENGTH_TOO_LONG: description: The title for the item was truncated because it contains too many characters. $ref: '#/components/schemas/CatalogsItemValidationDetails' TOO_MANY_ADDITIONAL_IMAGE_LINKS: 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.' $ref: '#/components/schemas/CatalogsItemValidationDetails' UTM_SOURCE_AUTO_CORRECTED: description: Item includes an utm_source value that is formatted incorrectly and has been automatically corrected. $ref: '#/components/schemas/CatalogsItemValidationDetails' VIDEO_REQUIRED_WHEN_AD_VIDEO_PROVIDED: description: A video is required in the item when ad_video fields are provided. $ref: '#/components/schemas/CatalogsItemValidationDetails' WEIGHT_UNIT_INVALID: description: 'Item has a weight_unit value that is formatted incorrectly, this item will be published without a weight unit.' $ref: '#/components/schemas/CatalogsItemValidationDetails' CatalogsItems: description: Response object of catalogs items type: object properties: items: description: Array with catalogs items type: array items: $ref: '#/components/schemas/ItemResponse' CatalogsItemsBatch: description: Object describing the catalogs items batch type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailItemsBatch' HOTEL: '#/components/schemas/CatalogsHotelItemsBatch' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsItemsBatch' oneOf: - $ref: '#/components/schemas/CatalogsRetailItemsBatch' - $ref: '#/components/schemas/CatalogsHotelItemsBatch' - $ref: '#/components/schemas/CatalogsCreativeAssetsItemsBatch' required: - catalog_type CatalogsItemsFilters: type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailItemsFilter' HOTEL: '#/components/schemas/CatalogsHotelItemsFilter' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsItemsFilter' oneOf: - $ref: '#/components/schemas/CatalogsRetailItemsFilter' - $ref: '#/components/schemas/CatalogsHotelItemsFilter' - $ref: '#/components/schemas/CatalogsCreativeAssetsItemsFilter' required: - catalog_type CatalogsItemsPostFilters: type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailItemsPostFilter' HOTEL: '#/components/schemas/CatalogsHotelItemsPostFilter' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsItemsPostFilter' oneOf: - $ref: '#/components/schemas/CatalogsRetailItemsPostFilter' - $ref: '#/components/schemas/CatalogsHotelItemsPostFilter' - $ref: '#/components/schemas/CatalogsCreativeAssetsItemsPostFilter' required: - catalog_type CatalogsCreativeAssetsItemsBatch: description: Object describing the catalogs creative assets items batch type: object properties: batch_id: description: Id of the catalogs items batch type: string example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e catalog_type: $ref: '#/components/schemas/CatalogsType' completed_time: description: 'Date and time (UTC) of the batch completion: YYYY-MM-DD''T''hh:mm:ss' type: string format: date-time example: '2024-01-01T20:20:00' nullable: true readOnly: true created_time: description: 'Date and time (UTC) of the batch creation: YYYY-MM-DD''T''hh:mm:ss' type: string format: date-time example: '2024-01-01T20:10:40' readOnly: true items: description: Array with the catalogs items processing records part of the catalogs items batch type: array items: $ref: '#/components/schemas/CreativeAssetsProcessingRecord' status: $ref: '#/components/schemas/BatchOperationStatus' required: - catalog_type CatalogsHotelItemsBatch: description: Object describing the catalogs hotel items batch type: object properties: batch_id: description: Id of the catalogs items batch type: string example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e catalog_type: $ref: '#/components/schemas/CatalogsType' completed_time: description: 'Date and time (UTC) of the batch completion: YYYY-MM-DD''T''hh:mm:ss' type: string format: date-time example: '2024-01-01T20:20:00' nullable: true readOnly: true created_time: description: 'Date and time (UTC) of the batch creation: YYYY-MM-DD''T''hh:mm:ss' type: string format: date-time example: '2024-01-01T20:10:40' readOnly: true items: description: Array with the catalogs items processing records part of the catalogs items batch type: array items: $ref: '#/components/schemas/HotelProcessingRecord' status: $ref: '#/components/schemas/BatchOperationStatus' required: - catalog_type CatalogsRetailItemsBatch: description: Object describing the catalogs retail items batch type: object properties: batch_id: description: Id of the catalogs items batch type: string example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e catalog_type: $ref: '#/components/schemas/CatalogsType' completed_time: description: 'Date and time (UTC) of the batch completion: YYYY-MM-DD''T''hh:mm:ss' type: string format: date-time example: '2024-01-01T20:20:00' nullable: true readOnly: true created_time: description: 'Date and time (UTC) of the batch creation: YYYY-MM-DD''T''hh:mm:ss' type: string format: date-time example: '2024-01-01T20:10:40' readOnly: true items: description: Array with the catalogs items processing records part of the catalogs items batch type: array items: $ref: '#/components/schemas/ItemProcessingRecord' status: $ref: '#/components/schemas/BatchOperationStatus' required: - catalog_type CatalogsItemsRequest: description: Request object of catalogs items type: object properties: country: $ref: '#/components/schemas/Country' filters: $ref: '#/components/schemas/CatalogsItemsPostFilters' language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' additionalProperties: false required: - country - language - filters CatalogsItemsBatchRequest: description: Request object of catalogs items batch type: object 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' oneOf: - $ref: '#/components/schemas/CatalogsItemsUpdateBatchRequest' - $ref: '#/components/schemas/CatalogsItemsUpsertBatchRequest' - $ref: '#/components/schemas/CatalogsItemsCreateBatchRequest' - $ref: '#/components/schemas/CatalogsItemsDeleteDiscontinuedBatchRequest' - $ref: '#/components/schemas/CatalogsItemsDeleteBatchRequest' title: legacy_retail_only CatalogsItemsCreateBatchRequest: description: Request object to create catalogs items type: object properties: country: $ref: '#/components/schemas/Country' items: description: Array with catalogs items type: array items: $ref: '#/components/schemas/ItemCreateBatchRecord' maxItems: 1000 minItems: 1 language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' additionalProperties: false required: - country - language - operation - items CatalogsItemsDeleteBatchRequest: description: Request object to delete catalogs items type: object properties: country: $ref: '#/components/schemas/Country' items: description: Array with catalogs items type: array items: $ref: '#/components/schemas/ItemDeleteBatchRecord' language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' additionalProperties: false required: - country - language - operation - items CatalogsItemsDeleteDiscontinuedBatchRequest: description: Request object to discontinue catalogs items type: object properties: country: $ref: '#/components/schemas/Country' items: description: Array with catalogs items type: array items: $ref: '#/components/schemas/ItemDeleteDiscontinuedBatchRecord' language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' additionalProperties: false required: - country - language - operation - items CatalogsItemsUpdateBatchRequest: description: Request object to update catalogs items type: object properties: country: $ref: '#/components/schemas/Country' items: description: Array with catalogs items type: array items: $ref: '#/components/schemas/ItemUpdateBatchRecord' maxItems: 1000 minItems: 1 language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' additionalProperties: false required: - country - language - operation - items CatalogsItemsUpsertBatchRequest: description: Request object to upsert catalogs items type: object properties: country: $ref: '#/components/schemas/Country' items: description: Array with catalogs items type: array items: $ref: '#/components/schemas/ItemUpsertBatchRecord' maxItems: 1000 minItems: 1 language: description: We recommend using the CatalogsLocale values. anyOf: - $ref: '#/components/schemas/CatalogsLocale' - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' 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: description: Request object to list products for a given feed_id and product group filter. type: object properties: feed_id: description: Catalog Feed id pertaining to the catalog product group filter. type: string example: '2680059592705' pattern: ^\d+$ filters: $ref: '#/components/schemas/CatalogsProductGroupFilters' additionalProperties: false required: - feed_id - filters title: feed based product group CatalogsVerticalsListProductsByCatalogBasedFilterRequest: description: Request object to list products for a given catalog_id and product group filter. type: object discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailListProductsByCatalogBasedFilterRequest' HOTEL: '#/components/schemas/CatalogsHotelListProductsByCatalogBasedFilterRequest' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsListProductsByCatalogBasedFilterRequest' oneOf: - $ref: '#/components/schemas/CatalogsRetailListProductsByCatalogBasedFilterRequest' - $ref: '#/components/schemas/CatalogsHotelListProductsByCatalogBasedFilterRequest' - $ref: '#/components/schemas/CatalogsCreativeAssetsListProductsByCatalogBasedFilterRequest' title: catalog based product group CatalogsRetailListProductsByCatalogBasedFilterRequest: description: Request object to list products for a given retail catalog_id and product group filter. type: object properties: catalog_id: description: Catalog id pertaining to the retail product group. type: string example: '2680059592705' pattern: ^\d+$ catalog_type: 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.' type: string enum: - RETAIL country: $ref: '#/components/schemas/Country' filters: $ref: '#/components/schemas/CatalogsProductGroupFilters' locale: $ref: '#/components/schemas/CatalogsLocale' additionalProperties: false required: - catalog_type - catalog_id - filters - country - locale title: retail_list_products_by_catalog_based_filter_request CatalogsHotelListProductsByCatalogBasedFilterRequest: description: Request object to list products for a given hotel catalog_id and product group filter. type: object properties: catalog_id: description: Catalog id pertaining to the hotel product group. type: string example: '2680059592705' pattern: ^\d+$ catalog_type: type: string enum: - HOTEL filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' additionalProperties: false required: - catalog_type - catalog_id - filters title: hotel_list_products_by_catalog_based_filter_request CatalogsCreativeAssetsListProductsByCatalogBasedFilterRequest: description: Request object to list products for a given creative assets catalog_id and product group filter. type: object properties: catalog_id: description: Catalog id pertaining to the creative assets product group. type: string example: '2680059592705' pattern: ^\d+$ catalog_type: type: string enum: - CREATIVE_ASSETS filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' additionalProperties: false required: - catalog_type - catalog_id - filters title: creative_assets_list_products_by_catalog_based_filter_request 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: description: Catalogs product for all verticals type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailProduct' HOTEL: '#/components/schemas/CatalogsHotelProduct' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProduct' oneOf: - $ref: '#/components/schemas/CatalogsRetailProduct' - $ref: '#/components/schemas/CatalogsHotelProduct' - $ref: '#/components/schemas/CatalogsCreativeAssetsProduct' required: - catalog_type CatalogsVerticalProductGroup: type: object discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailProductGroup' HOTEL: '#/components/schemas/CatalogsHotelProductGroup' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProductGroup' oneOf: - $ref: '#/components/schemas/CatalogsRetailProductGroup' - $ref: '#/components/schemas/CatalogsHotelProductGroup' - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroup' title: product_group CatalogsCreativeAssetsProductGroup: type: object properties: catalog_id: description: Catalog id pertaining to the creative assets product group. type: string pattern: ^\d+$ catalog_type: type: string enum: - CREATIVE_ASSETS created_at: description: Unix timestamp in seconds of when catalog product group was created. type: integer example: 1621350033000 description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' id: description: ID of the creative assets product group. type: string example: '443727193917' pattern: ^\d+$ name: description: Name of creative assets product group type: string example: Most Popular updated_at: description: Unix timestamp in seconds of last time catalog product group was updated. type: integer example: 1622742155000 required: - id - filters - catalog_type - catalog_id title: creative_assets_product_group CatalogsCreativeAssetsProductGroupFilters: description: Object holding a group of filters for a creative assets product group type: object anyOf: - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFiltersAnyOf' - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFiltersAllOf' title: catalogs_product_group_filters CatalogsCreativeAssetsProductGroupFiltersAllOf: type: object properties: all_of: type: array items: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilterKeys' type: object additionalProperties: false required: - all_of title: all_of CatalogsCreativeAssetsProductGroupFiltersAnyOf: type: object properties: any_of: type: array items: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilterKeys' type: object additionalProperties: false required: - any_of title: any_of CatalogsCreativeAssetsProductGroupFilterKeys: 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' title: catalogs_product_group_keys CatalogsCreativeAssetsProductGroupCreateRequest: description: Request object for creating a creative assets product group. type: object properties: catalog_id: description: Catalog id pertaining to the creative assets product group. type: string example: '2680059592705' pattern: ^\d+$ catalog_type: type: string enum: - CREATIVE_ASSETS description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' name: type: string additionalProperties: false required: - name - filters - catalog_id - catalog_type title: creative_assets_product_groups_create_request CatalogsCreativeAssetsProductGroupUpdateRequest: description: Request object for updating a creative assets product group. type: object properties: catalog_type: type: string enum: - CREATIVE_ASSETS description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' name: type: string additionalProperties: false title: creative_assets_product_groups_update_request CatalogsHotelProductGroup: type: object properties: catalog_id: description: Catalog id pertaining to the hotel product group. type: string pattern: ^\d+$ catalog_type: type: string enum: - HOTEL created_at: description: Unix timestamp in seconds of when catalog product group was created. type: integer example: 1621350033000 description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' id: description: ID of the hotel product group. type: string example: '443727193917' pattern: ^\d+$ name: description: Name of hotel product group type: string example: Most Popular type: $ref: '#/components/schemas/CatalogsHotelProductGroupType' updated_at: description: Unix timestamp in seconds of last time catalog product group was updated. type: integer example: 1622742155000 required: - id - filters - catalog_type - catalog_id - type title: hotel_product_group CatalogsHotelProductGroupFilterKeys: 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' title: catalogs_product_group_keys CatalogsHotelProductGroupFilters: description: Object holding a group of filters for a hotel product group type: object anyOf: - $ref: '#/components/schemas/CatalogsHotelProductGroupFiltersAnyOf' - $ref: '#/components/schemas/CatalogsHotelProductGroupFiltersAllOf' title: catalogs_product_group_filters CatalogsHotelProductGroupFiltersAllOf: type: object properties: all_of: type: array items: $ref: '#/components/schemas/CatalogsHotelProductGroupFilterKeys' type: object additionalProperties: false required: - all_of title: all_of CatalogsHotelProductGroupFiltersAnyOf: type: object properties: any_of: type: array items: $ref: '#/components/schemas/CatalogsHotelProductGroupFilterKeys' type: object additionalProperties: false required: - any_of title: any_of CatalogsRetailProductGroup: type: object properties: catalog_id: description: Catalog id pertaining to the retail product group. type: string pattern: ^\d+$ catalog_type: type: string enum: - RETAIL country: type: string nullable: true created_at: description: Unix timestamp in seconds of when catalog product group was created. type: integer example: 1621350033000 description: type: string nullable: true feed_id: description: id of the catalogs feed belonging to this catalog product group type: string example: '2680059592705' nullable: true pattern: ^\d+$ filters: $ref: '#/components/schemas/CatalogsProductGroupFilters' id: description: ID of the catalog product group. type: string example: '443727193917' pattern: ^\d+$ is_featured: description: boolean indicator of whether the product group is being featured or not type: boolean deprecated: true locale: type: string nullable: true name: description: Name of catalog product group type: string example: Most Popular status: $ref: '#/components/schemas/CatalogsProductGroupStatus' type: $ref: '#/components/schemas/CatalogsProductGroupType' updated_at: description: Unix timestamp in seconds of last time catalog product group was updated. type: integer example: 1622742155000 required: - filters - id - catalog_id - feed_id - catalog_type - type title: retail_product_group CatalogsHotelProductGroupCreateRequest: description: Request object for creating a hotel product group. type: object properties: catalog_id: description: Catalog id pertaining to the hotel product group. type: string example: '2680059592705' pattern: ^\d+$ catalog_type: type: string enum: - HOTEL description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' name: type: string additionalProperties: false required: - name - filters - catalog_id - catalog_type title: hotel_product_groups_create_request CatalogsRetailProductGroupCreateRequest: description: Request object for creating a product group. type: object properties: catalog_id: description: Catalog id pertaining to the retail product group. type: string example: '2680059592705' pattern: ^\d+$ catalog_type: 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.' type: string enum: - RETAIL country: $ref: '#/components/schemas/Country' description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsProductGroupFiltersRequest' locale: $ref: '#/components/schemas/CatalogsLocale' name: type: string additionalProperties: false required: - name - filters - catalog_id - catalog_type title: retail_product_groups_create_request CatalogsHotelProductGroupUpdateRequest: description: Request object for updating a hotel product group. type: object properties: catalog_type: type: string enum: - HOTEL description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' name: type: string additionalProperties: false title: hotel_product_groups_update_request CatalogsRetailProductGroupUpdateRequest: description: Request object for updating a retail product group. type: object properties: catalog_type: 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.' type: string enum: - RETAIL country: $ref: '#/components/schemas/Country' description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsProductGroupFiltersRequest' locale: $ref: '#/components/schemas/CatalogsLocale' name: type: string additionalProperties: false title: retail_product_groups_update_request CatalogsProductGroupCreateRequest: description: Request object for creating a product group. type: object properties: description: type: string nullable: true feed_id: description: Catalog Feed id pertaining to the catalog product group. type: string example: '2680059592705' pattern: ^\d+$ filters: $ref: '#/components/schemas/CatalogsProductGroupFiltersRequest' is_featured: description: boolean indicator of whether the product group is being featured or not type: boolean default: false deprecated: true name: type: string required: - name - filters - feed_id title: retail feed based CatalogsProductGroupCurrencyCriteria: description: A currency filter. This filter cannot be negated type: object properties: negated: type: boolean default: false enum: - false values: $ref: '#/components/schemas/NonNullableCatalogsCurrency' additionalProperties: false required: - values title: catalogs_product_group_currency_criteria CatalogsProductGroupFilterKeys: 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' title: catalogs_product_group_keys CatalogsProductGroupFilters: description: Object holding a group of filters for a catalog product group type: object anyOf: - $ref: '#/components/schemas/CatalogsProductGroupFiltersAnyOf' - $ref: '#/components/schemas/CatalogsProductGroupFiltersAllOf' title: catalogs_product_group_filters CatalogsProductGroupFiltersAllOf: type: object properties: all_of: type: array items: $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' type: object additionalProperties: false required: - all_of title: 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. type: object anyOf: - type: object title: any_of additionalProperties: false properties: any_of: type: array items: $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' type: object minItems: 1 required: - any_of - type: object title: all_of additionalProperties: false properties: all_of: type: array items: $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' type: object minItems: 1 required: - all_of title: catalogs_product_group_filters CatalogsProductGroupFiltersAnyOf: type: object properties: any_of: type: array items: $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' type: object additionalProperties: false required: - any_of title: any_of CatalogsProductGroupMultipleCountriesCriteria: type: object properties: negated: type: boolean default: false values: type: array items: $ref: '#/components/schemas/Country' additionalProperties: false required: - values title: catalogs_product_group_multiple_country_criteria CatalogsProductGroupMultipleGenderCriteria: type: object properties: negated: type: boolean default: false values: type: array items: $ref: '#/components/schemas/Gender' additionalProperties: false required: - values title: catalogs_product_group_multiple_gender_criteria CatalogsProductGroupMultipleMediaTypesCriteria: type: object properties: negated: type: boolean default: false values: type: array items: $ref: '#/components/schemas/MediaType' additionalProperties: false required: - values title: catalogs_product_group_multiple_media_type_criteria CatalogsProductGroupMultipleStringCriteria: type: object properties: negated: type: boolean default: false values: type: array items: type: string additionalProperties: false required: - values title: catalogs_product_group_multiple_string_criteria CatalogsProductGroupFilterOperatorTypeCriteria: type: object properties: filter_operator_type: type: string default: IS enum: - IS - CONTAINS negated: type: boolean default: false values: type: array items: type: string additionalProperties: false required: - values title: catalogs_product_group_filter_operator_type_criteria CatalogsProductGroupMultipleStringListCriteria: type: object properties: negated: type: boolean default: false values: type: array items: type: array items: type: string additionalProperties: false required: - values title: catalogs_product_group_multiple_string_list_criteria CatalogsProductGroupPricingCriteria: type: object properties: inclusion: type: boolean default: true negated: type: boolean default: false values: type: number minimum: 0 additionalProperties: false required: - values title: catalogs_product_group_pricing_criteria CatalogsProductGroupUint32Criteria: type: object properties: negated: type: boolean default: false operator: type: string enum: - GREATER_THAN - GREATER_THAN_OR_EQUALS - LESS_THAN - LESS_THAN_OR_EQUALS value: type: integer maximum: 4294967295 minimum: 0 additionalProperties: false required: - operator - value title: catalogs_product_group_uint32_criteria CatalogsProductGroupProductCountsVertical: description: Product counts for a CatalogsProductGroup type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailProductGroupProductCounts' HOTEL: '#/components/schemas/CatalogsHotelProductGroupProductCounts' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProductGroupProductCounts' oneOf: - $ref: '#/components/schemas/CatalogsRetailProductGroupProductCounts' - $ref: '#/components/schemas/CatalogsHotelProductGroupProductCounts' - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupProductCounts' required: - catalog_type CatalogsHotelProductGroupProductCounts: 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 title: catalogs_hotel_product_group_product_counts CatalogsCreativeAssetsProductGroupProductCounts: 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 title: catalogs_creative_assets_product_group_product_counts CatalogsRetailProductGroupProductCounts: 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 title: catalogs_retail_product_group_product_counts CatalogsProductGroupStatus: type: string enum: - ACTIVE - INACTIVE CatalogsProductGroupType: 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.
type: string
example: MERCHANT_CREATED
enum:
- MERCHANT_CREATED
- ALL_LISTINGS
title: hotel_product_group_type
CatalogsProductGroupUpdateRequest:
description: Request object for updating a product group.
type: object
properties:
description:
type: string
nullable: true
filters:
$ref: '#/components/schemas/CatalogsProductGroupFiltersRequest'
is_featured:
description: boolean indicator of whether the product group is being featured or not
type: boolean
deprecated: true
name:
type: string
additionalProperties: false
title: retail feed based
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:
description: Retail product metadata entity
type: object
properties:
availability:
$ref: '#/components/schemas/NonNullableProductAvailabilityType'
currency:
$ref: '#/components/schemas/NonNullableCatalogsCurrency'
item_group_id:
description: The parent ID of the product.
type: string
example: DS0294
nullable: true
item_id:
description: The user-created unique ID that represents the product.
type: string
example: DS0294-L
price:
description: The price of the product.
type: number
example: 24.99
sale_price:
description: The discounted price of the product.
type: number
example: 14.99
nullable: true
required:
- item_id
- item_group_id
- availability
- price
- sale_price
- currency
CatalogsStatus:
description: 'Status for catalogs entities. Present in catalogs_feed values. When a feed is deleted, the response will inform DELETED as status.'
type: string
enum:
- ACTIVE
- INACTIVE
CatalogsType:
description: Type of the catalog entity.
type: string
enum:
- RETAIL
- HOTEL
- CREATIVE_ASSETS
CatalogsVerticalBatchRequest:
description: A request object that can have multiple operations on a single batch
type: object
discriminator:
propertyName: catalog_type
mapping:
RETAIL: '#/components/schemas/CatalogsRetailBatchRequest'
HOTEL: '#/components/schemas/CatalogsHotelBatchRequest'
CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsBatchRequest'
oneOf:
- $ref: '#/components/schemas/CatalogsRetailBatchRequest'
- $ref: '#/components/schemas/CatalogsHotelBatchRequest'
- $ref: '#/components/schemas/CatalogsCreativeAssetsBatchRequest'
title: operate on item batch
CatalogsHotelGuestRatings:
description: 'If specified, you must provide all properties'
type: object
properties:
max_score:
description: Max value for the hotel rating score.
type: number
number_of_reviewers:
description: Total number of people who have rated this hotel.
type: integer
rating_system:
description: System you use for guest reviews.
type: string
score:
description: Your hotel's rating.
type: number
CatalogsHotelItemErrorResponse:
description: Object describing a hotel item error
type: object
properties:
catalog_type:
$ref: '#/components/schemas/CatalogsType'
errors:
description: Array with the errors for the item id requested
type: array
items:
$ref: '#/components/schemas/ItemValidationEvent'
hotel_id:
description: The catalog hotel id in the merchant namespace
type: string
example: DS0294-M
required:
- catalog_type
CatalogsHotelItemResponse:
description: Object describing a hotel record
type: object
properties:
attributes:
$ref: '#/components/schemas/CatalogsHotelAttributes'
catalog_type:
$ref: '#/components/schemas/CatalogsType'
hotel_id:
description: The catalog hotel id in the merchant namespace
type: string
example: DS0294-M
pins:
description: The pins mapped to the item
type: array
items:
$ref: '#/components/schemas/Pin'
maxItems: 11
nullable: true
required:
- catalog_type
CatalogsCreativeAssetsItemErrorResponse:
description: Object describing a creative assets item error
type: object
properties:
catalog_type:
$ref: '#/components/schemas/CatalogsType'
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
type: string
example: DS0294-M
errors:
description: Array with the errors for the item id requested
type: array
items:
$ref: '#/components/schemas/ItemValidationEvent'
required:
- catalog_type
CatalogsCreativeAssetsItemResponse:
description: Object describing a hotel record
type: object
properties:
attributes:
$ref: '#/components/schemas/CatalogsCreativeAssetsAttributes'
catalog_type:
$ref: '#/components/schemas/CatalogsType'
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
type: string
example: DS0294-M
pins:
description: The pins mapped to the item
type: array
items:
$ref: '#/components/schemas/Pin'
maxItems: 11
nullable: true
required:
- catalog_type
CreativeAssetsProcessingRecord:
description: Object describing an item processing record
type: object
properties:
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
type: string
example: DS0294-M
errors:
description: |-
Array with the validation errors for the item processing record.
A non empty errors list causes the item processing to fail.
type: array
items:
$ref: '#/components/schemas/ItemValidationEvent'
status:
$ref: '#/components/schemas/ItemProcessingStatus'
warnings:
description: Array with the validation warnings for the item processing record
type: array
items:
$ref: '#/components/schemas/ItemValidationEvent'
CatalogsRetailBatchRequest:
description: A request object that can have multiple operations on a single retail batch
type: object
properties:
catalog_id:
description: 'Catalog id pertaining to the retail item. If not provided, default to oldest retail catalog'
type: string
example: '2680059592705'
pattern: ^\d+$
catalog_type:
type: string
enum:
- RETAIL
country:
$ref: '#/components/schemas/Country'
items:
description: Array with catalogs item operations
type: array
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'
maxItems: 1000
minItems: 1
language:
description: We recommend using the CatalogsLocale values.
anyOf:
- $ref: '#/components/schemas/CatalogsLocale'
- $ref: '#/components/schemas/Language'
additionalProperties: false
required:
- catalog_type
- country
- language
- items
CatalogsRetailItemErrorResponse:
description: Object describing a retail item error
type: object
properties:
catalog_type:
$ref: '#/components/schemas/CatalogsType'
errors:
description: Array with the errors for the item id requested
type: array
items:
$ref: '#/components/schemas/ItemValidationEvent'
item_id:
description: The catalog item id in the merchant namespace
type: string
example: DS0294-M
required:
- catalog_type
CatalogsRetailItemResponse:
description: Object describing a retail item record
type: object
properties:
attributes:
$ref: '#/components/schemas/ItemAttributes'
catalog_type:
$ref: '#/components/schemas/CatalogsType'
item_id:
description: The catalog retail item id in the merchant namespace
type: string
example: DS0294-M
pins:
description: The pins mapped to the item
type: array
items:
$ref: '#/components/schemas/Pin'
maxItems: 11
nullable: true
required:
- catalog_type
CatalogsCreateRetailItem:
description: An item to be created
type: object
properties:
attributes:
$ref: '#/components/schemas/ItemAttributesRequest'
item_id:
description: The catalog item id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- CREATE
required:
- item_id
- operation
- attributes
CatalogsUpdateRetailItem:
description: An item to be updated
type: object
properties:
attributes:
$ref: '#/components/schemas/UpdatableItemAttributes'
item_id:
description: The catalog item id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- UPDATE
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.
type: array
items:
$ref: '#/components/schemas/UpdateMaskFieldType'
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
- promotion_id
nullable: true
required:
- item_id
- operation
- attributes
CatalogsUpsertRetailItem:
description: An item to be upserted
type: object
properties:
attributes:
$ref: '#/components/schemas/ItemAttributesRequest'
item_id:
description: The catalog item id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- UPSERT
required:
- item_id
- operation
- attributes
CatalogsDeleteRetailItem:
description: An item to be deleted
type: object
properties:
item_id:
description: The catalog item id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- DELETE
required:
- item_id
- operation
CatalogsHotelBatchRequest:
description: Request object to update catalogs hotel items
type: object
properties:
catalog_id:
description: 'Catalog id pertaining to the hotel item. If not provided, default to oldest hotel catalog'
type: string
example: '2680059592705'
pattern: ^\d+$
catalog_type:
type: string
enum:
- HOTEL
country:
$ref: '#/components/schemas/Country'
items:
description: Array with catalogs item operations
type: array
items:
$ref: '#/components/schemas/CatalogsHotelBatchItem'
maxItems: 1000
minItems: 1
language:
description: We recommend using the CatalogsLocale values.
anyOf:
- $ref: '#/components/schemas/CatalogsLocale'
- $ref: '#/components/schemas/Language'
additionalProperties: false
required:
- catalog_type
- country
- language
- items
CatalogsDeleteHotelItem:
description: A hotel item to be deleted
type: object
properties:
hotel_id:
description: The catalog hotel id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- DELETE
required:
- hotel_id
- operation
CatalogsCreateHotelItem:
description: A hotel item to be created.
type: object
properties:
attributes:
$ref: '#/components/schemas/CatalogsHotelAttributes'
hotel_id:
description: The catalog hotel id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- CREATE
required:
- hotel_id
- operation
- attributes
CatalogsUpdateHotelItem:
description: Object describing an hotel item batch record
type: object
properties:
attributes:
$ref: '#/components/schemas/CatalogsUpdatableHotelAttributes'
hotel_id:
description: The catalog hotel item id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- UPDATE
required:
- hotel_id
- operation
- attributes
CatalogsUpsertHotelItem:
description: A hotel item to be upserted.
type: object
properties:
attributes:
$ref: '#/components/schemas/CatalogsHotelAttributes'
hotel_id:
description: The catalog hotel id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- UPSERT
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
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
region:
description: 'State, county, province, where the hotel is located.'
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:
description: Hotel product metadata entity
type: object
properties:
hotel_id:
description: The user-created unique ID that represents the hotel item.
type: string
example: 123abc
required:
- hotel_id
CatalogsUpdatableHotelAttributes:
type: object
properties:
address:
description: Hotel address
$ref: '#/components/schemas/CatalogsHotelAddress'
base_price:
description: Base price of the hotel room per night followed by the ISO currency code
type: string
example: 100 USD
nullable: true
brand:
description: The brand to which this hotel belongs to.
type: string
nullable: true
category:
description: The type of property. The category can be any type of internal description desired.
type: string
nullable: true
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
description:
description: Brief description of the hotel.
type: string
nullable: true
guest_ratings:
description: 'If specified, you must provide all properties'
$ref: '#/components/schemas/CatalogsHotelGuestRatings'
latitude:
description: Latitude of the hotel.
type: number
link:
description: Link to the product page
type: string
nullable: true
longitude:
description: Longitude of the hotel.
type: number
nullable: true
name:
description: The hotel's name.
type: string
nullable: true
neighborhood:
description: A list of neighborhoods where the hotel is located
type: array
items:
type: string
nullable: true
sale_price:
description: Sale price of a hotel room per night. Used to advertise discounts off the regular price of the hotel.
type: string
example: 90 USD
nullable: true
CatalogsCreativeAssetsProductMetadata:
description: Creative assets product metadata entity
type: object
properties:
creative_assets_id:
description: The user-created unique ID that represents the creative assets item.
type: string
example: 123abc
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.
type: string
enum:
- VISIBLE
- HIDDEN
nullable: false
CatalogsCreativeAssetsBatchRequest:
description: Request object to update catalogs creative assets items
type: object
properties:
catalog_id:
description: 'Catalog id pertaining to the creative assets item. If not provided, default to oldest creative assets catalog'
type: string
example: '2680059592705'
pattern: ^\d+$
catalog_type:
type: string
enum:
- CREATIVE_ASSETS
country:
$ref: '#/components/schemas/Country'
items:
description: Array with creative assets item operations
type: array
items:
$ref: '#/components/schemas/CatalogsCreativeAssetsBatchItem'
maxItems: 1000
minItems: 1
language:
description: We recommend using the CatalogsLocale values.
anyOf:
- $ref: '#/components/schemas/CatalogsLocale'
- $ref: '#/components/schemas/Language'
additionalProperties: false
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:
description: A creative assets item to be created.
type: object
properties:
attributes:
$ref: '#/components/schemas/CatalogsCreativeAssetsAttributes'
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- CREATE
required:
- creative_assets_id
- operation
- attributes
CatalogsUpdateCreativeAssetsItem:
description: A creative assets item to be updated.
type: object
properties:
attributes:
$ref: '#/components/schemas/CatalogsUpdatableCreativeAssetsAttributes'
creative_assets_id:
description: The catalog creative assets item id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- UPDATE
required:
- creative_assets_id
- operation
- attributes
CatalogsUpsertCreativeAssetsItem:
description: A creative assets item to be upserted.
type: object
properties:
attributes:
$ref: '#/components/schemas/CatalogsCreativeAssetsAttributes'
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- UPSERT
required:
- creative_assets_id
- operation
- attributes
CatalogsDeleteCreativeAssetsItem:
description: A creative assets item to be deleted
type: object
properties:
creative_assets_id:
description: The catalog creative assets id in the merchant namespace
type: string
example: DS0294-M
operation:
type: string
enum:
- DELETE
required:
- creative_assets_id
- operation
CatalogsUpdatableCreativeAssetsAttributes:
type: object
properties:
android_deep_link:
description: Link to the creative assets page.
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
description:
description: Brief description of the creative assets.
type: string
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
ios_deep_link:
description: IOS deep link to the creative assets page.
type: string
nullable: true
link:
description: Link to the creative assets page.
type: string
title:
description: The name of the creative assets.
type: string
visibility:
description: 'Visibility of the creative assets. Must be one of the following values (upper or lowercase): ‘visible’, ‘hidden’.'
type: string
nullable: true
CatalogsCreativeAssetsAttributes:
type: object
allOf:
- type: object
properties:
image_link:
description: The creative assets image.
type: string
example: 'https://scene.example.com/image/image_v2.jpg'
video_link:
description: The creative assets video.
type: string
example: 'https://scene.example.com/image/image_v2.mp4'
- $ref: '#/components/schemas/CatalogsUpdatableCreativeAssetsAttributes'
CatalogsVerticalProductGroupCreateRequest:
description: Request object for creating a catalog based product group.
type: object
discriminator:
propertyName: catalog_type
mapping:
RETAIL: '#/components/schemas/CatalogsRetailProductGroupCreateRequest'
HOTEL: '#/components/schemas/CatalogsHotelProductGroupCreateRequest'
CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProductGroupCreateRequest'
oneOf:
- $ref: '#/components/schemas/CatalogsRetailProductGroupCreateRequest'
- $ref: '#/components/schemas/CatalogsHotelProductGroupCreateRequest'
- $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupCreateRequest'
title: catalog based
CatalogsVerticalProductGroupUpdateRequest:
description: Request object for updating a catalog based product group.
type: object
discriminator:
propertyName: catalog_type
mapping:
RETAIL: '#/components/schemas/CatalogsRetailProductGroupUpdateRequest'
HOTEL: '#/components/schemas/CatalogsHotelProductGroupUpdateRequest'
CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProductGroupUpdateRequest'
oneOf:
- $ref: '#/components/schemas/CatalogsRetailProductGroupUpdateRequest'
- $ref: '#/components/schemas/CatalogsHotelProductGroupUpdateRequest'
- $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupUpdateRequest'
title: catalog based
CatalogsAvailableFilterValues:
description: Object holding available filter values for each filter key
type: object
discriminator:
propertyName: catalog_type
mapping:
RETAIL: '#/components/schemas/CatalogsRetailAvailableFilterValues'
HOTEL: '#/components/schemas/CatalogsHotelAvailableFilterValues'
CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsAvailableFilterValues'
oneOf:
- $ref: '#/components/schemas/CatalogsRetailAvailableFilterValues'
- $ref: '#/components/schemas/CatalogsHotelAvailableFilterValues'
- $ref: '#/components/schemas/CatalogsCreativeAssetsAvailableFilterValues'
title: catalogs_available_filter_values
CatalogsRetailAvailableFilterValues:
type: object
properties:
catalog_type:
type: string
enum:
- RETAIL
filter_values:
description: A map of filter attributes to their available values.
type: object
properties:
ad_image_tags:
type: array
items:
type: string
ad_video_tags:
type: array
items:
type: string
availability:
type: array
items:
type: string
enum:
- IN_STOCK
- OUT_OF_STOCK
- PREORDER
- UNAVAILABLE
brand:
type: array
items:
type: string
condition:
type: array
items:
type: string
enum:
- NEW
- USED
- REFURBISHED
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
gender:
type: array
items:
type: string
enum:
- FEMALE
- MALE
- UNISEX
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
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
title: catalogs_retail_filter_values_map
required:
- catalog_type
- filter_values
title: catalogs_retail_available_filter_values
CatalogsHotelAvailableFilterValues:
type: object
properties:
catalog_type:
type: string
enum:
- HOTEL
filter_values:
description: A map of filter attributes to their available values.
type: object
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
title: catalogs_hotel_filter_values_map
required:
- catalog_type
- filter_values
title: catalogs_hotel_available_filter_values
CatalogsCreativeAssetsAvailableFilterValues:
type: object
properties:
catalog_type:
type: string
enum:
- CREATIVE_ASSETS
filter_values:
description: A map of filter attributes to their available values.
type: object
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
title: catalogs_creative_assets_filter_values_map
required:
- catalog_type
- filter_values
title: catalogs_creative_assets_available_filter_values
ConditionFilter:
type: object
properties:
CONDITION:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringCriteria'
additionalProperties: false
required:
- CONDITION
title: 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:
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:
error_message:
description: Error message containing more information about why the event failed to be processed.
type: string
nullable: true
status:
description: Whether the event was processed successfully.
type: string
example: processed
enum:
- failed
- processed
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
num_events_processed:
description: Number of events that were successfully processed from the events.
type: integer
num_events_received:
description: Total number of events received in the request.
type: integer
required:
- num_events_received
- num_events_processed
- events
ConversionAttributionWindowDays:
type: integer
enum:
- 0
- 1
- 7
- 14
- 30
- 60
ConversionEventResponse:
type: object
properties:
ad_account_id:
description: Id of the ad account.
type: string
example: '549757463328'
pattern: ^\d+$
title: ad_account_id
conversion_event:
type: string
$ref: '#/components/schemas/ConversionTagType'
conversion_tag_id:
description: Id of the tag.
type: string
example: '2614324385652'
pattern: ^\d+$
title: conversion_tag_id
created_time:
description: Creation date in epoch format.
type: integer
example: 1564768710
title: created_time
title: ConversionEventResponse
ConversionEvents:
description: A list of events (one or more) encapsulated by a data object.
type: object
properties:
data:
type: array
items:
type: object
additionalProperties: false
properties:
action_source:
description: |-
The source indicating where the conversion event occurred.
- `app_android` - `app_ios` - `web` - `offline` type: string example: app_ios app_id: description: The app store app ID. type: string example: '429047995' nullable: true app_info: $ref: '#/components/schemas/ConversionEventAppInfo' app_name: description: Name of the app. type: string example: Pinterest nullable: true app_version: description: Version of the app. type: string example: '7.9' nullable: true custom_data: description: Object containing other custom data. type: object additionalProperties: false properties: content_brand: description: The brand of the content associated with the event. type: string example: pinterest-brand nullable: true content_category: description: The category of the content associated with the event. type: string example: shirts nullable: true content_ids: description: 'List of products IDs. We recommend using this if you are a merchant for PageVisit, AddToCart and Checkouts. For detail, please check here (Install the Pinterest tag section).' type: array items: type: string example: - product-id-001 - product-id-002 content_name: description: The name of the page or product associated with the event. type: string example: pinterest-themed-clothing nullable: true contents: description: 'A list of objects containing information about products, such as price and quantity. We recommend using this if you are a merchant for PageVisit, AddToCart and Checkouts. For detail, please check here (Install the Pinterest tag section).' type: array items: type: object additionalProperties: false properties: id: description: 'The id of a product. We recommend using this if you are a merchant for AddToCart and Checkouts. For detail, please check here (Install the Pinterest tag section).' type: string item_brand: description: The brand of a product. type: string item_category: description: The category of a product. type: string item_name: description: The name of a product. type: string item_price: description: 'The price of a product. Accepted as a string in the request; it will be parsed into a double. This is the original item value before any discount. We recommend using this if you are a merchant for PageVisit, AddToCart and Checkouts. For detail, please check here (Install the Pinterest tag section).' type: string quantity: description: 'The amount of a product. We recommend using this if you are a merchant for AddToCart and Checkouts. For detail, please check here (Install the Pinterest tag section).' type: integer format: int64 example: - id: product-id-001 item_price: '14.99' quantity: 3 item_name: pinterest-shirt-girl item_category: pinterest-clothing-shirts item_brand: pinterest - id: product-id-002 item_price: '13.71' quantity: 2 item_name: pinterest-shirt-men item_category: pinterest-clothing-shirts item_brand: pinterest currency: description: 'The ISO-4217 currency code. If not provided, we will default to the advertiser''s currency set during account creation. Your campaign performance needs this field to report right ROAS/CPA.' type: string example: USD nullable: true external_measurement_id: description: Only use when instructed. type: string example: rbos-cb7a9e56-4988-4ca0-801b-05c79b29785f nullable: true external_measurement_vendor_id: description: Only use when instructed. type: integer example: 1 nullable: true np: description: 'Named partner. Not required, this is for Pinterest internal use only. Please do not use this unless specifically guided.' type: string example: ss-company nullable: true num_items: description: 'Total number of products of the event. For example, the total number of items purchased in a checkout event. We recommend using this if you are a merchant for AddToCart and Checkouts. For detail, please check here (Install the Pinterest tag section).' type: integer format: int64 example: 5 opt_out_type: description: 'Flags for different privacy rights laws to opt out users of sharing personal information. Separate values with commas. See the Help Center article about limited data processing and the developer''s guide for tracking conversion events for help with using this parameter.' type: string example: LDP nullable: true order_id: description: The order ID. We recommend sending order_id to help us deduplicate events when necessary. This also helps to run other measurement products at Pinterest. type: string example: my_order_id nullable: true search_string: description: The search string related to the user conversion event. type: string example: sample string nullable: true value: description: 'Total value of the event. Accepted as a string in the request; it will be parsed into a double. For example, if there are two items in a checkout event, the value should be the total price. We recommend to use pre-tax, pre-shipping final value.' type: string example: '72.39' nullable: true device_brand: description: Brand of the user device. type: string example: Apple nullable: true device_carrier: description: User device's mobile carrier. type: string example: T-Mobile nullable: true device_info: $ref: '#/components/schemas/ConversionEventDeviceInfo' device_model: description: Model of the user device. type: string example: iPhone X nullable: true device_type: description: Type of the user device. type: string example: iPhone nullable: true event_id: description: 'A unique id string that identifies this event and can be used for deduping between events ingested via both the conversion API and Pinterest tracking. Without this, event''s data is likely to be double counted and will cause report metric inflation. Third-party vendors make sure this field is updated on both Pinterest tag and Conversions API side before rolling out template for Conversions API.' type: string example: eventId0001 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_info` - `add_to_cart` - `add_to_wishlist` - `app_install` - `checkout` - `custom` - `initiate_checkout` - `lead` - `page_visit` - `search` - `signup` - `subscribe` - `view_category` - `view_content` - `watch_video` type: string example: checkout event_source_url: description: URL of the web conversion event. type: string example: 'https://www.my-clothing-shop.org/' nullable: true event_time: description: The time when the event happened. Unix timestamp in seconds. type: integer format: int64 example: 1451431341 language: description: Two-character ISO-639-1 language code indicating the user's language. type: string example: en nullable: true opt_out: description: 'When action_source is web or offline, it defines whether the user has opted out of tracking for web conversion events. While when action_source is app_android or app_ios, it defines whether the user has enabled Limit Ad Tracking on their iOS device, or opted out of Ads Personalization on their Android device.' type: boolean example: false os_version: description: Version of the device operating system. type: string example: 12.1.4 nullable: true partner_name: description: The third party partner name responsible to send the event to Conversions API on behalf of the advertiser. The naming convention is "ss-partnername" lowercase. E.g ‘ss-shopify’ type: string example: ss-partnername nullable: true user_data: $ref: '#/components/schemas/ConversionEventsUserData' wifi: description: Whether the event occurred when the user device was connected to wifi. type: boolean example: false required: - event_name - action_source - event_time - user_data - event_id maxItems: 1000 minItems: 1 additionalProperties: false required: - data ConversionEventsUserData: description: 'Object containing customer information data. Note, It is required at least one of 1) em, 2) hashed_maids or 3) pair client_ip_address + client_user_agent.' type: object anyOf: - $ref: '#/components/schemas/ConversionEventsUserDataProperties' required: - em title: EMConversionEventsUserDataPropertyRequired - $ref: '#/components/schemas/ConversionEventsUserDataProperties' required: - hashed_maids title: HashedMaidsConversionEventsUserDataPropertyRequired - $ref: '#/components/schemas/ConversionEventsUserDataProperties' required: - client_ip_address - client_user_agent title: ClientIPAddressConversionEventsUserDataPropertyRequired ConversionEventAppInfo: description: Object containing information about the application where event occurred. type: object properties: app_id: description: 'App ID in Google Play Store, AppStore or other stores.' type: string example: '429047995' maxLength: 200 app_name: description: Name of the app. Primarily used for Mobile Apps. type: string example: MyAwesomeApp maxLength: 200 app_package_name: description: App package name type: string example: com.company.myawesomeapp maxLength: 200 app_store: description: |- The name of the app distributor or store from which the app was installed. Some options: Samsung Galaxy Store, Google Play Store, Amazon Store, Apple App Store, F-Droid, Aptoide, Obtanium, Huawei AppGallery, Xiaomi Mi GetApps type: string example: Google Play Store maxLength: 100 app_version: description: App version. Primarily used for mobile apps type: string example: '7.9' maxLength: 100 install_time: description: App install time. Unix timestamp in seconds type: integer example: 1739222269 minimum: 0 user_agent: description: User Agent request header. Primarily used for Web events type: string example: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' maxLength: 16384 window_height: description: Inner height of the window or viewport. type: integer example: 900 maximum: 30720 minimum: 0 window_width: description: Inner width of the window or viewport. type: integer example: 1678 maximum: 30720 minimum: 0 additionalProperties: false ConversionEventDeviceInfo: description: Object containing information about the device where event occurred. type: object properties: battery_level: description: Battery charge level percentage type: integer example: 78 maximum: 100 minimum: 0 brand: description: Device brand type: string example: 'Apple, Samsung, Motorola' maxLength: 100 carrier: description: User device's mobile carrier. type: string example: T-Mobile maxLength: 100 cpu_cores: description: Number of CPU cores type: integer example: 8 maximum: 1152 minimum: 0 external_storage_free_space: description: External storage size in GB type: integer example: 126 maximum: 1048576 minimum: 0 external_storage_size: description: External storage size in GB type: integer example: 512 maximum: 1048576 minimum: 0 form_factor: description: Device form factor type: string example: cellphone enum: - desktop - laptop - cellphone - tablet - smartwatch - tv - vr - console - other kernel_version: description: |- Kernel version. Examples: Linux: 6.15. Obtain by running: uname -r MacOS: 24.3.0. Obtain by running: sysctl kern.version Android: 6.6. Obtain from OS.uname().release type: string example: '6.15' maxLength: 100 languages: description: List of user installed languages. ISO 639-1 format type: array items: type: string example: - en - de - lt maxItems: 100 minItems: 0 locale: description: Device locale BCP-47 format type: string example: en-us maxLength: 35 model: description: Device model name type: string example: '16 Pro, Galaxy S25 Ultra' maxLength: 100 network_type: description: |- Network type: 4G, 5G, ethernet, wifi In Android: NetworkCapabilities.getNetworkCapabilities() type: string example: wifi enum: - wifi - cellular_2g - cellular_3g - cellular_4g - cellular_5g - cellular_6g - ethernet - unknown os_family: description: OS Family type: string example: ios enum: - ios - android - macos - windows - linux - bsd - other os_name: description: |- Short name of the OS. This value if specific to os family. Examples: Windows: 10, 11; Android: 16; iOS: 18; MacOS: 15; Linux: Debian, Ubuntu, Arch type: string example: '10' maxLength: 100 os_release_name: description: |- Marketing name for the release version iOS: Dawn Android: Baklava MacOS: Sequoia Ubuntu Linux: Plucky Puffin type: string example: '18.3' maxLength: 100 os_version: description: |- Full name of the version. Examples: iOS: 18.3 Android: 16.1 MacOS: 15.5 Windows: 24H2 Ubuntu Linux: 25.04 type: string example: '18.3' maxLength: 100 screen_density: description: 'Screen density, PPI' type: integer example: 460 maximum: 100000 minimum: 0 screen_height: description: Screen height in pixels type: integer example: 2868 maximum: 30720 minimum: 0 screen_width: description: Screen width in pixels type: integer example: 1320 maximum: 30720 minimum: 0 storage_free_space: description: Internal storage size in GB type: integer example: 184 maximum: 1048576 minimum: 0 storage_size: description: Internal storage size in GB type: integer example: 256 maximum: 1048576 minimum: 0 timezone: description: Device timezone type: string example: USA/New York maxLength: 40 timezone_abbr: description: Timezone abbreviation type: string example: PDT maxLength: 5 type: description: Device type type: string example: 'iPhone, Android' maxLength: 100 additionalProperties: false ConversionEventsUserDataProperties: type: object properties: click_id: description: The unique identifier stored in _epik cookie on your domain or &epik= query parameter in the URL. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. type: string example: dj0yJnU9b2JDcFFHekV4SHJNcmVrbFBkUEdqakh0akdUT1VjVVUmcD0yJm49cnNBQ3F2Q2dOVDBXWWhkWklrUGxBUSZ0PUFBQUFBR1BaY3Bv nullable: true client_ip_address: description: 'The user''s IP address, which can be either in IPv4 or IPv6 format. Used for matching. We highly recommend this for all events. It may improve reporting performance such as ROAS/CPA.' type: string example: 216.3.128.12 client_user_agent: description: The user agent string of the user's web browser. We highly recommend this for all events. It may improve reporting performance such as ROAS/CPA. type: string country: description: 'Sha256 hashes of two-character ISO-3166 country code indicating the user''s country, in lowercase. The string should be in the UTF-8 format.' type: array items: type: string example: - 9b202ecbc6d45c6d8901d989a918878397a3eb9d00e8f48022fc051b19d21a1d ct: description: 'Sha256 hashes of user''s city, in lowercase, and without spaces or punctuation. User residency city (mostly billing). The string should be in the UTF-8 format.' type: array items: type: string example: - 4ac01a129bfd10385c9278c2cf2c46fac5ab57350841234f587c8522a2e4ce36 db: description: 'Sha256 hashes of user''s date of birthday, given as year, month, and day. The string should be in the UTF-8 format.' type: array items: type: string example: - d4426a0086d10f12ad265539ae8d54221dc67786053d511407204b76e99d7739 em: description: Sha256 hashes of lowercase version of user's email addresses. Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format. type: array items: type: string example: - 411e44ce1261728ffd2c0686e44e3fffe413c0e2c5adc498bc7da883d476b9c8 - 09831ea51bd1b7b32a836683a00a9ccaf3d05f59499f42d9883412ed79289969 external_id: description: 'Sha256 hashes of the unique id from the advertiser that identifies a user in their space, e.g. user id, loyalty id, etc. We highly recommend this on all events. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.' type: array items: type: string example: - 6a7a73766627eb611720883d5a11cc62b5bfee237b00a6658d78c50032ec4aee fn: description: 'Sha256 hashes of user''s first name, in lowercase. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.' type: array items: type: string example: - ec1e6a072231703f1bc41429052fff8c00a7e0c6aaec2e7107241ca8f3ceb6b2 ge: description: 'Sha256 hashes of user''s gender, in lowercase. Either "f" or "m" or "n" for non-binary gender. The string should be in the UTF-8 format.' type: array items: type: string example: - 0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf hashed_maids: description: Sha256 hashes of user's "Google Advertising IDs" (GAIDs) or "Apple's Identifier for Advertisers" (IDFAs). Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format. type: array items: type: string example: - 0192518eb84137ccfe82c8b6322d29631dae7e28ed9d0f6dd5f245d73a58c5f1 - 837b850ac46d62b2272a71de73c27801ff011ac1e36c5432620c8755cf90db46 ln: description: 'Sha256 hashes of user''s last name, in lowercase. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.' type: array items: type: string example: - 7e546b3aa43f989dd359672e6c3409d4f9d4e8f155ae1e9b90ee060985468c19 partner_id: description: A unique identifier of visitors' information defined by third party partners. e.g RampID type: string example: BUJrTlRRzGJmWhRXFZdkioV6wKPBve7Lom__GU9J74hq2NIQj4O3nOZJrp3mcUr5MptkXsI14juMOIM9mNZnM4zEUFT2JLVaFhcOfuuWz3IWEDtBf6I0DPc nullable: true ph: description: 'Sha256 hashes of user''s phone numbers, only digits with country code, area code, and number. Remove any symbols, letters, spaces and leading zeros. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.' type: array items: type: string example: - 45df139772a81b6011bdc1c9cc3d1cb408fc0b10ec0c5cb9d4d4e107f0ddc49d st: description: 'Sha256 hashes of user''s state, given as a two-letter code in lowercase. User residency state (mostly billing). The string should be in the UTF-8 format.' type: array items: type: string example: - 49a6d05b8e4b516656e464271d9dd38d0a7e0142f7f49546f4dabd2720cafc34 zp: description: 'Sha256 hashes of user''s zipcode, only digits. User residency zipcode (mostly billing). The string should be in the UTF-8 format.' type: array items: type: string example: - fd5f56b40a79a385708428e7b32ab996a681080a166a2206e750eb4819186145 ConversionMSOTEvents: description: Object containing the MSOT conversion events. type: object properties: action_timestamps: description: Timestamp(s) when the ad action(s) happened. Unix timestamp in seconds. type: array items: type: integer format: int64 example: - 1451410040 ad_group_id: description: The ID of the ad group that was attributed to the conversion event. type: string example: '2680060704746' pattern: ^\d+$ attribution_model: description: The attribution model used to attribute the conversion event. type: string example: multi_touch enum: - first_touch - last_touch - multi_touch attribution_scope: description: Ad event type. type: string example: click enum: - view - engagement - click attribution_score: description: Credit given to the attributed ad actions. Allowed values are > 0 and <= 1. type: number format: double example: 0.5 exclusiveMinimum: true maximum: 1 minimum: 0 campaign_id: description: The ID of the campaign that was attributed to the conversion event. type: string example: '626736533506' pattern: ^\d+$ currency: allOf: - $ref: '#/components/schemas/Currency' - type: string description: 'Currency code for the value field, required ifvalue is present. Currency Codes should be in ISO 4217 standard.'
event_id:
description: 'A unique id string that identifies this event. If you are already sending us events through Conversions API, then this id should match the event_id sent through Conversions API.'
type: string
example: eventId0001
maxLength: 256
event_name:
description: Type of user event.
type: string
example: add_to_cart
enum:
- add_to_cart
- checkout
- lead
- signup
event_timestamp:
description: The time when the event occurred. Unix timestamp in seconds.
type: integer
format: int64
example: 1451431341
total_event_touchpoints:
description: Total number of ad events including other non-Pinterest ad platforms.
type: integer
example: 2
minimum: 1
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 example: 2 minimum: 1 value: description: Order value of the conversion event. Required ifevent_name is 'add_to_cart' or 'checkout'.
type: number
format: double
example: 123.45
additionalProperties: false
required:
- event_id
- event_name
- event_timestamp
- ad_group_id
- attribution_scope
title: Conversion MSOT Events
ConversionProductReportRequest:
description: 'Request for a brand, category, SKU report'
type: object
properties:
ad_group_ids:
description: List of ad group ids.