openapi: 3.0.3 info: version: 5.13.0 title: Pinterest REST API description: Pinterest's REST API contact: name: Pinterest, Inc. url: https://developers.pinterest.com/ license: name: MIT url: https://spdx.org/licenses/MIT termsOfService: https://developers.pinterest.com/terms/ servers: - url: https://api.pinterest.com/v5 tags: - name: ad_accounts description: |- View analytical information about advertising. Note: If the current operation_user_account (defined by the access token) has access to another user's Ad Accounts via Pinterest Business Access, you can modify your request to use the current operation_user_account's permissions to those Ad Accounts by including the ad_account_id in the path parameters for the request (e.g. .../?ad_account_id=12345&...). - name: ad_groups description: View, create or update ad groups. - name: ads description: View, create or update ads. - name: audience_insights description: View audience insights. - name: audiences description: View, create, or update audiences. - name: billing description: View, create, or update information related to billing. - name: boards description: View, create, update, or delete information about boards. - name: bulk description: Create, update, or download ads-related entities in bulk. - name: campaigns description: View, create or update campaigns. - name: catalogs description: Manage information about shopping product catalogs and items. - name: conversion_events description: Submit conversion events via the Pinterest API. - name: conversion_tags description: View, create, or update conversion tags. - name: customer_lists description: View, create, or update customer lists. - name: integrations description: View, create, or update commerce integrations. - name: keywords description: View, create or update keywords. - name: lead_ads description: View, create, or update lead ads. - name: lead_forms description: View lead forms. - name: leads_export description: Create and export leads information from lead ads. - name: media description: Register and manage media uploads. - name: oauth description: Generate and refresh OAuth access tokens. - name: order_lines description: View order lines. - name: pins description: View, create, update, or delete information about Pins. - name: product_group_promotions description: View, create, update, or delete information about promoted product groups. - name: product_groups description: View, create, update, or delete information about product groups. - name: resources description: View metadata about available metrics and targeting options in the Pinterest API. - name: search description: Search for Pins and boards owned by the current user. - name: targeting_template description: View, create or update targeting templates. - name: terms description: View related and suggested terms for ads targeting. - name: terms_of_service description: View Advertising Terms Of Service. - name: user_account description: View user accounts associated with a given access token. x-tagGroups: - name: Pin and Boards tags: - pins - boards - media - aggregated_comments - aggregated_pin_data - user_account - name: Campaign Management tags: - ad_accounts - campaigns - ad_groups - ads - product_group_promotions - bulk - name: Targeting tags: - audiences - customer_lists - keywords - targeting_template - audience_insights - audience_sharing - name: Ad Formats tags: - lead_forms - lead_ads - leads_export - name: Billing tags: - billing - order_lines - terms_of_service - name: Business Access tags: - business_access_assets - business_access_invite - business_access_relationships - name: Conversions tags: - conversion_events - conversion_tags - name: Others tags: - integrations - oauth - resources - search - terms - name: Shopping tags: - catalogs - name: Deprecated tags: - product_groups paths: /ad_accounts: get: summary: List ad accounts description: |- Get a list of the ad_accounts that the "operation user_account" has access to. - This includes ad_accounts they own and ad_accounts that are owned by others who have granted them Business Access. tags: - ad_accounts operationId: ad_accounts/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/query_bookmark' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_include_shared_accounts' responses: '200': description: response content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: description: Ad accounts items: $ref: '#/components/schemas/AdAccount' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' post: summary: Create ad account description: |- Create a new ad account. Different ad accounts can support different currencies, payment methods, etc. An ad account is needed to create campaigns, ad groups, and ads; other accounts (your employees or partners) can be assigned business access and appropriate roles to access an ad account.
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. tags: - ad_accounts operationId: ad_accounts/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: enabled requestBody: content: application/json: schema: $ref: '#/components/schemas/AdAccountCreateRequest' description: Ad account to create. required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AdAccount' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error /ad_accounts/{ad_account_id}: get: summary: Get ad account description: Get an ad account operationId: ad_accounts/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/AdAccount' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - ad_accounts /ad_accounts/{ad_account_id}/ad_groups: get: 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. operationId: ad_groups/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_campaign_ids' - $ref: '#/components/parameters/query_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': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/AdGroupResponse' description: Success '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' tags: - ad_groups post: 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.\nNote:\n- '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.\nMicrocurrency\ \ is used to track very small transactions, based on the currency set in the\ \ advertiser\u2019s profile.
\nA microcurrency unit is 10^(-6) of the\ \ standard unit of currency selected in the advertiser\u2019s profile.
\n\ \Equivalency equations, using dollars as an example currency:
\n\To convert between currency and microcurrency,\ \ using dollars as an example currency:
\nad_account_id
, filtered by the specified options.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.
- If granularity is not HOUR, 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.
operationId: ad_groups/analytics
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_ad_group_ids_required'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupsAnalyticsResponse'
description: Success
'400':
description: Invalid ad account group analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account group analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_groups
/ad_accounts/{ad_account_id}/ad_groups/targeting_analytics:
get:
summary: Get targeting analytics for ad groups
description: |-
Get targeting analytics for one or more ad groups.
For the requested ad group(s) and metrics, the response will include the requested metric information
(e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. "age_bucket") for applicable values (e.g. "45-49").
- The token's user_account must either be the Owner of the specified ad account, or have one
of the necessary roles granted to them via
Business Access: Admin, Analyst, Campaign Manager.
- If granularity is not HOUR, 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.
operationId: ad_groups_targeting_analytics/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_ad_group_ids_required'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_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'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
description: Success
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_groups
/ad_accounts/{ad_account_id}/ad_groups/audience_sizing:
post:
summary: Get audience sizing
description: "Get potential audience size for an ad group with given targeting\
\ criteria. \nPotential audience size estimates the number of people you may\
\ be able to reach per month with your campaign. \nIt is based on historical\
\ advertising data and the targeting criteria you select.\nIt does not guarantee\
\ results or take into account factors such as bid, budget, schedule, seasonality\
\ or product experiments."
operationId: ad_groups/audience_sizing
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupAudienceSizingRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupAudienceSizingResponse'
description: Success
'400':
description: Invalid ad group audience sizing parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad group audience sizing parameters.
'403':
description: No access to requested audience list or product group.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: You don't have access to the requested audience list or product
group.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- ad_groups
/ad_accounts/{ad_account_id}/ad_groups/{ad_group_id}:
get:
summary: Get ad group
description: |-
Get a specific ad given the ad ID. If your pin is rejected, rejected_reasons will
contain additional information from the Ad Review process.
For more information about our policies and rejection reasons see the Pinterest advertising standards.
operationId: ad_groups/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_ad_group_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdGroupResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- ad_groups
/ad_accounts/{ad_account_id}/ad_previews:
post:
summary: Create ad preview with pin or image
description: |-
Create an ad preview given an ad account ID and either an existing organic pin ID or the URL for an image to be used to create the Pin and the ad.
If you are creating a preview from an existing Pin, that Pin must be promotable: that is, it must have a clickthrough link and meet other requirements. (See Ads Overview.)
You can view the returned preview URL on a webpage or iframe for 7 days, after which the URL expires. Collection ads are not currently supported ad preview.
tags:
- ads
operationId: ad_previews/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Create ad preview with pin or image.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdPreviewRequest'
responses:
'200':
description: Successful ad preview creation.
content:
application/json:
schema:
$ref: '#/components/schemas/AdPreviewURLResponse'
'400':
description: Invalid Pin parameters response
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidPinUrl:
value:
code: 1
message: Whoops! It looks like you entered an invalid URL. Try
creating a Pin again with a valid URL.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ad_accounts/{ad_account_id}/ads:
get:
summary: List ads
description: |-
List ads that meet the filters provided:
- Listed campaign ids or ad group ids or ad ids
- Listed entity statuses
If no filter is provided, all ads in the ad account are returned.
Note:
Provide only campaign_id or ad_group_id or ad_id. Do not provide more than one type.
Review status is provided for each ad; if review_status is REJECTED, the rejected_reasons field will contain additional information.
For more, see Pinterest advertising standards.
operationId: ads/list
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_campaign_ids'
- $ref: '#/components/parameters/query_ad_group_ids'
- $ref: '#/components/parameters/query_ad_ids'
- $ref: '#/components/parameters/query_entity_statuses'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_order'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdResponse'
description: Success
'400':
description: Invalid ad account ads parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ads
post:
description: Create multiple new ads. Request must contain ad_group_id, creative_type,
and the source Pin pin_id.
operationId: ads/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
items:
$ref: '#/components/schemas/AdCreateRequest'
maxItems: 30
minItems: 1
type: array
description: List of ads to create, size limit [1, 30].
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdArrayResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Create ads
tags:
- ads
patch:
description: Update multiple existing ads
operationId: ads/update
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
items:
$ref: '#/components/schemas/AdUpdateRequest'
maxItems: 30
minItems: 1
type: array
description: List of ads to update, size limit [1, 30]
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdArrayResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Update ads
tags:
- ads
/ad_accounts/{ad_account_id}/ads/analytics:
get:
summary: Get ad analytics
description: |-
Get analytics for the specified ads in the specified ad_account_id
, filtered by the specified options.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.
- 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.
operationId: ads/analytics
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_ad_ids_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'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsResponse'
description: Success
'400':
description: Invalid ad account ads analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ads
/ad_accounts/{ad_account_id}/ads_credit/discounts:
get:
summary: Get ads credit discounts
description: |-
Returns the list of discounts applied to the account.
This endpoint might not be available to all apps. Learn more.
operationId: ads_credits_discounts/get
security:
- pinterest_oauth2:
- ads:read
- billing:read
x-ratelimit-category: ads_read
x-sandbox: disabled
tags:
- billing
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdsCreditDiscountsResponse'
description: Success
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ad_accounts/{ad_account_id}/ads_credit/redeem:
post:
summary: Redeem ad credits
description: |-
Redeem ads credit on behalf of the ad account id and apply it towards billing.
This endpoint might not be available to all apps. Learn more.
tags:
- billing
operationId: ads_credit/redeem
security:
- pinterest_oauth2:
- ads:write
- billing:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Redeem ad credits request.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdsCreditRedeemRequest'
responses:
'200':
description: Successfully redeemed ad credits.
content:
application/json:
schema:
$ref: '#/components/schemas/AdsCreditRedeemResponse'
'400':
description: Error thrown when unable to redeem offer code.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ValidationError:
value:
code: 15
message: Unable to redeem offer code. Try again later.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ad_accounts/{ad_account_id}/ads/targeting_analytics:
get:
summary: Get targeting analytics for ads
description: |-
Get targeting analytics for one or more ads. For the requested ad(s) and metrics,
the response will include the requested metric information (e.g. SPEND_IN_DOLLAR) for the requested target type
(e.g. "age_bucket") for applicable values (e.g. "45-49").
- The token's user_account must either be the Owner of the specified ad account, or have one
of the necessary roles granted to them via
Business Access: Admin, Analyst, Campaign Manager.
- If granularity is not HOUR, 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.
operationId: ad_targeting_analytics/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_ad_ids_required'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_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'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- ads
/ad_accounts/{ad_account_id}/ads/{ad_id}:
get:
summary: Get ad
description: |-
Get a specific ad given the ad ID. If your pin is rejected, rejected_reasons will
contain additional information from the Ad Review process.
For more information about our policies and rejection reasons see the Pinterest advertising standards.
operationId: ads/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_ad_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- ads
/ad_accounts/{ad_account_id}/analytics:
get:
summary: Get ad account analytics
description: |-
Get analytics for the specified ad_account_id
, filtered by the specified options.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.
- If granularity is not HOUR, 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.
operationId: ad_account/analytics
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdAccountAnalyticsResponse'
description: Success
'400':
description: Invalid ad account analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
/ad_accounts/{ad_account_id}/audience_insights:
get:
summary: Get audience insights
description: |-
Get Audience Insights for an ad account. The response will return insights for 3 types of audiences: the
ad account's engaged audience on Pinterest, the ad account's total audience on Pinterest and Pinterest's
total audience.
Learn more about Audience Insights.
operationId: audience_insights/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_audience_insight_type'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceInsightsResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- audience_insights
/ad_accounts/{ad_account_id}/audiences:
get:
summary: List audiences
description: Get list of audiences for the ad account.
operationId: audiences/list
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_bookmark'
- description: "The order in which to sort the items returned: \u201CASCENDING\u201D\
\ or \u201CDESCENDING\u201D by ID.\nFor received audiences, it is sorted\
\ by sharing event time.\nNote that higher-value IDs are associated with\
\ more-recently added items."
in: query
name: order
required: false
schema:
type: string
example: ASCENDING
enum:
- ASCENDING
- DESCENDING
- $ref: '#/components/parameters/query_page_size'
- description: |-
This feature is currently in beta and not available to all apps.
Filter audiences by ownership type.
in: query
name: ownership_type
required: false
example: OWNED
schema:
type: string
default: OWNED
enum:
- OWNED
- RECEIVED
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Audience'
description: Success
'400':
description: Invalid ad account audience parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account audience parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- audiences
post:
description: |-
Create an audience you can use in targeting for specific ad groups. Targeting combines customer information with
the ways users interact with Pinterest to help you reach specific groups of users; you can include or exclude
specific audience_ids when you create an ad group.
For more, see Audience targeting.
operationId: audiences/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceCreateRequest'
description: List of ads to create, size limit [1, 30]
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Create audience
tags:
- audiences
/ad_accounts/{ad_account_id}/audiences/{audience_id}:
get:
summary: Get audience
description: Get a specific audience given the audience ID.
operationId: audiences/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_audience_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
'404':
description: Audience not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- audiences
patch:
summary: Update audience
description: Update (edit or remove) an existing targeting audience.
operationId: audiences/update
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_audience_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceUpdateRequest'
description: The audience to be updated.
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- audiences
/ad_accounts/{ad_account_id}/audiences/custom:
post:
summary: Create custom audience
description: Create a custom audience and find the audiences you want your ads
to reach.
operationId: audiences/create_custom
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
description: Custom audience to create.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceCreateCustomRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- audiences
/ad_accounts/{ad_account_id}/bid_floor:
post:
description: "List bid floors for your campaign configuration. Bid floors are\
\ given in microcurrency values based on the currency in the bid floor specification.\
\ \nMicrocurrency is used to track very small transactions, based on\ \ the currency set in the advertiser\u2019s profile.
\nA microcurrency\ \ unit is 10^(-6) of the standard unit of currency selected in the advertiser\u2019\ \ s profile.
\nEquivalency equations, using dollars\ \ as an example currency:
\nTo convert between\ \ currency and microcurrency, using dollars as an example currency:
\n\request_id
that can be used to obtain the status of the request.
operationId: bulk_upsert/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertRequest'
description: Parameters to get create/update ad entities in bulk
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Create/update ad entities in bulk
tags:
- bulk
/ad_accounts/{ad_account_id}/bulk/{bulk_request_id}:
get:
description: |-
Get the status of a bulk request by request_id
, along with a download URL that will allow you to download the
new or updated entity data (campaigns, ad groups, product groups, ads, or keywords).
operationId: bulk_request/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_bulk_request_id'
- $ref: '#/components/parameters/include_details'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertStatusResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
summary: Download advertiser entities in bulk
tags:
- bulk
/ad_accounts/{ad_account_id}/campaigns:
get:
summary: List campaigns
description: |-
Get a list of the campaigns in the specified ad_account_id
, filtered by the specified options.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.
operationId: campaigns/list
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_campaign_ids'
- $ref: '#/components/parameters/query_entity_statuses'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_order'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CampaignResponse'
description: Success
'400':
description: Invalid ad account campaign parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account campaign parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- campaigns
post:
summary: Create campaigns
description: "Create multiple new campaigns. Every campaign has its own campaign_id\
\ and houses one or more ad groups, which contain one or more ads.\nFor more,\
\ see Set up your campaign. \nNote:\n- The values for\
\ 'lifetime_spend_cap' and 'daily_spend_cap' are microcurrency amounts based\
\ on the currency field set in the advertiser's profile. (e.g. USD) \n\
Microcurrency is used to track very small transactions, based on the currency\ \ set in the advertiser\u2019s profile.
\nA microcurrency unit is 10^(-6)\ \ of the standard unit of currency selected in the advertiser\u2019s profile.
\n\ \Equivalency equations, using dollars as an example currency:
\n\To convert between currency and microcurrency,\ \ using dollars as an example currency:
\nThe values for 'lifetime_spend_cap' and 'daily_spend_cap' are microcurrency\ \ amounts based on the currency field set in the advertiser's profile. (e.g.\ \ USD)
\nMicrocurrency is used to track very small transactions, based\ \ on the currency set in the advertiser\u2019s profile.
\nA microcurrency\ \ unit is 10^(-6) of the standard unit of currency selected in the advertiser\u2019\ \ s profile.
\nEquivalency equations, using dollars\ \ as an example currency:
\nTo convert between\ \ currency and microcurrency, using dollars as an example currency:
\n\ad_account_id
, filtered by the specified options.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.
- If granularity is not HOUR, 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.
operationId: campaigns/analytics
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_campaign_ids_required'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignsAnalyticsResponse'
description: Success
'400':
description: Invalid ad account campaign analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account campaign analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- campaigns
/ad_accounts/{ad_account_id}/campaigns/targeting_analytics:
get:
summary: Get targeting analytics for campaigns
description: |-
Get targeting analytics for one or more campaigns.
For the requested account and metrics, the response will include the requested metric information
(e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. "age_bucket") for applicable values (e.g. "45-49").
- The token's user_account must either be the Owner of the specified ad account, or have one
of the necessary roles granted to them via
Business Access: Admin, Analyst, Campaign Manager.
- If granularity is not HOUR, 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.
operationId: campaign_targeting_analytics/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_campaign_ids_required'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_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'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
description: Success
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- campaigns
/ad_accounts/{ad_account_id}/campaigns/{campaign_id}:
get:
summary: Get campaign
description: Get a specific campaign given the campaign ID.
operationId: campaigns/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_campaign_id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- campaigns
/ad_accounts/{ad_account_id}/conversion_tags:
get:
summary: Get conversion tags
description: List conversion tags associated with an ad account.
operationId: conversion_tags/list
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_filter_deleted'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagListResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- conversion_tags
x-sandbox: disabled
post:
x-sandbox: disabled
summary: Create conversion tag
description: "Create a conversion tag, also known as Pinterest tag, with the option to enable enhanced\
\ match.\nThe Pinterest Tag tracks actions people take on the ad account\u2019\
\ s website after they view the ad account's ad on Pinterest. The advertiser\
\ needs to customize this tag to track conversions.\nFor more information,\
\ see:\nSet up the Pinterest tag\nPinterest\
\ Tag\nEnhanced match"
operationId: conversion_tags/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagCreate'
description: Conversion Tag to create
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- conversion_tags
/ad_accounts/{ad_account_id}/conversion_tags/ocpm_eligible:
get:
summary: Get Ocpm eligible conversion tags
description: Get Ocpm eligible conversion tag events for an ad account.
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
operationId: ocpm_eligible_conversion_tags/get
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
x-sandbox: disabled
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagsOcpmEligibleResponse'
default:
description: Unexpected errors
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- conversion_tags
/ad_accounts/{ad_account_id}/conversion_tags/page_visit:
get:
summary: Get page visit conversion tags
description: Get all page visit conversion tag events for an ad account.
operationId: page_visit_conversion_tags/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_order'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ConversionEventResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- conversion_tags
/ad_accounts/{ad_account_id}/conversion_tags/{conversion_tag_id}:
get:
x-sandbox: disabled
summary: Get conversion tag
description: Get information about an existing conversion tag.
operationId: conversion_tags/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_conversion_tag_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionTagResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- conversion_tags
/ad_accounts/{ad_account_id}/customer_lists:
post:
description: "Create a customer list from your records(hashed or plain-text\ \ email addresses, or hashed MAIDs or IDFAs).
\nA customer list is one\ \ of the four types of Pinterest audiences: for more information, see Audience targeting\nor the Audiences section of the ads management guide.
\n\ \Please review our requirements for what type of information is allowed\ \ when uploading a customer list.
\nWhen you create a customer list,\ \ the system scans the list for existing Pinterest accounts;\nthe list must\ \ include at least 100 Pinterest accounts. Your original list will be deleted\ \ when the matching process\nis complete. The filtered list \u2013 containing\ \ only the Pinterest accounts that were included in your starting\nlist \u2013\ \ is what will be used to create the audience.
\nNote that once you\ \ have created your customer list, you must convert it into an audience (of\ \ the \u201C CUSTOMER_LIST\u201D type)\nusing the create audience endpoint before it can be used.
" operationId: customer_lists/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomerListRequest' description: Parameters to get Customer lists info required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomerList' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Create customer lists tags: - customer_lists get: description: |-Get a set of customer lists including id and name based on the filters provided.
(Customer lists are a type of audience.) For more information, see Audience targeting or the Audiences section of the ads management guide.
operationId: customer_lists/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/CustomerList' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Get customer lists tags: - customer_lists /ad_accounts/{ad_account_id}/customer_lists/{customer_list_id}: get: summary: Get customer list description: Gets a specific customer list given the customer list ID. operationId: customer_lists/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_customer_list_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomerList' description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - customer_lists patch: description: "Append or remove records to/from an existing customer list.\ \ (A customer list is one of the four types of Pinterest audiences.)
\n\When you add records to an existing customer list, the system scans the\ \ additions for existing Pinterest\naccounts; those are the records that will\ \ be added to your \u201CCUSTOMER_LIST\u201D audience. Your original list\ \ of records\n to add will be deleted when the matching process is complete.
\n\For more information, see Audience targeting\nor the Audiences\nsection of the ads management guide.
" operationId: customer_lists/update security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_customer_list_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomerListUpdateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CustomerList' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Update customer list tags: - customer_lists /ad_accounts/{ad_account_id}/events: post: summary: Send conversions description: |- The Pinterest API offers advertisers a way to send Pinterest their conversion information (including web conversions, in-app conversions, or even offline conversions) based on theirad_account_id
. The request body should be a JSON object.
- This endpoint requires an access_token
be generated through Ads Manager. Review the Conversions Guide for more details.
- The token's user_account
must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Audience, Campaign. (Note that the token can be used across multiple ad accounts under an user ID.)
- This endpoint has a rate limit of 5,000 calls per minute per ad account.
- If the merchant is submitting this information using both Pinterest conversion tags and the Pinterest API, Pinterest will remove duplicate information before reporting. (Note that events that took place offline cannot be deduplicated.)
operationId: events/create
tags:
- conversion_events
security:
- pinterest_oauth2:
- ads:write
- conversion_token: []
x-ratelimit-category: ads_conversions
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- name: test
description: |-
Include query param ?test=true to mark the request as a test request. The events will not be recorded but the API will still return the same response messages. Use this mode to verify your requests are working and your events are constructed correctly.
Warning: If you use this query parameter, be certain that it is off (set to false or deleted) before sending a legitimate (non-testing) request.
in: query
required: false
schema:
type: boolean
requestBody:
description: Conversion events.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionEvents'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionApiResponse'
description: Success
'400':
description: The request was invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 4196
message: The request was invalid.
'401':
description: Not authorized to send conversion events
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/DetailedError'
description: Not all events were successfully processed.
'429':
description: |-
This request exceeded a rate limit. This can happen if the client exceeds one
of the published rate limits within a short time window.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 8
message: |-
This request exceeded a rate limit. This can happen if the client exceeds one
of the published rate limits within a short time window.
'503':
description: The endpoint has been ramped down and is currently not accepting
any traffic.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 4197
message: The endpoint has been ramped down and is currently not accepting
any traffic.
default:
description: Unexpected errors
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/ad_accounts/{ad_account_id}/insights/audiences:
get:
summary: Get audience insights scope and type
description: Get the scope and type of available audiences, which along with
a date, is an audience that has recently had an interaction (referred to here
as a type) on pins. Interacted pins can belong to at least the most common
**partner** or **Pinterest** scopes. This means that user interactions made
on advertiser or partner pins will have the **partner** scope. You can also
have user interactions performed in general on Pinterest with the **Pinterest**
scope. In that case, you can then use the returned type and scope values together
on requests to other endpoints to retrieve insight metrics for a desired audience.
operationId: audience_insights_scope_and_type/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceDefinitionResponse'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- audience_insights
/ad_accounts/{ad_account_id}/keywords:
get:
summary: Get keywords
description: |-
Get a list of keywords based on the filters provided. If no filter is provided, it will default to the ad_account_id filter, which means it will only return keywords that specifically have parent_id set to the ad_account_id. Note: Keywords can have ad_account_ids, campaign_ids, and ad_group_ids set as their parent_ids. Keywords created through Ads Manager will have their parent_id set to an ad_group_id, not ad_account_id.
For more information, see Keyword targeting.
Notes:
For more information on match types, see match type enums.
Returns:
A successful call returns an object containing an array of new keyword objects and an empty "errors" object array.
An unsuccessful call returns an empty keywords array, and, instead, inserts the entire object with nulled/negated properties into the "errors" object array:
{ "keywords": [], "errors": [ { "data": { "archived": null, "match_type": "EXACT", "parent_type": null, "value": "foobar", "parent_id": null, "type": "keyword", "id": null }, "error_messages": [ "Advertisers and Campaigns only accept excluded targeting attributes." ] } }
Create keywords for following entity types(advertiser, campaign, ad group or ad).
For more information, see Keyword targeting.
Notes:
For more information on match types, see match type enums.
Returns:
A successful call returns an object containing an array of new keyword objects and an empty "errors" object array.
An unsuccessful call returns an empty keywords array, and, instead, inserts the entire object with nulled/negated properties into the "errors" object array:
{ "keywords": [], "errors": [ { "data": { "archived": null, "match_type": "EXACT", "parent_type": null, "value": "foobar", "parent_id": null, "type": "keyword", "id": null }, "error_messages": [ "Advertisers and Campaigns only accept excluded targeting attributes." ] } }
Rate limit: WRITE.
operationId: keywords/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/KeywordsRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeywordsResponse' description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - keywords patch: summary: Update keywords description:Update one or more keywords' bid and archived fields.
Archiving a keyword effectively deletes it - keywords no longer receive metrics and no longer visible within the parent entity's keywords list.
operationId: keywords/update security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/KeywordUpdateBody' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeywordsResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - keywords /ad_accounts/{ad_account_id}/keywords/metrics: get: summary: Get country's keyword metrics description: |- See keyword metrics for a specified country, aggregated across all of Pinterest. (Definitions are available from the "Get delivery metrics definitions" API endpoint). operationId: country_keywords_metrics/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_country_code' - $ref: '#/components/parameters/query_keywords' responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeywordsMetricsArrayResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - keywords /ad_accounts/{ad_account_id}/lead_forms: get: summary: Get 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. Gets all Lead Forms associated with an ad account ID. For more, see Lead ads. operationId: lead_forms/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/LeadFormResponse' description: Success '400': description: Invalid ad account lead forms parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account lead forms parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_forms /ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}: get: summary: Get lead form by id description: |- This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager. Gets a lead form given it's ID. It must also be associated with the provided ad account ID. For more, see Lead ads. operationId: lead_form/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_lead_form_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/LeadFormResponse' description: Success '400': description: Invalid ad account lead forms parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 1 message: Invalid ad account lead forms parameters. '404': description: The lead form ID for the given ad account ID does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 4842 message: Lead form is not found. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_forms /ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}/test: post: summary: Create lead form test data description: |- Create lead form test data based on the list of answers provided as part of the body. - List of answers should follow the questions creation order. This endpoint is currently in beta and not available to all apps. Learn more. operationId: lead_form_test/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_lead_form_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/LeadFormTestRequest' description: Subscription to create. required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LeadFormTestResponse' description: Success '400': description: Invalid parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 1 message: Invalid parameters. '404': description: Lead not found. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 4842 message: Lead not found. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_forms /ad_accounts/{ad_account_id}/leads/subscriptions: post: summary: Create lead ads subscription description: "Create a lead ads webhook subscription.\nSubscriptions 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. \n- Only requests\ \ for the OWNER or ADMIN of the ad_account will be allowed.\n- Advertisers\ \ can set up multiple integrations using ad_account_id + lead_form_id but\ \ only one integration per unique records.\n- For data security, egress lead\ \ data is encrypted with AES-256-GCM.\n\nThis endpoint is currently\ \ in beta and not available to all apps. Learn\ \ more." tags: - lead_ads operationId: ad_accounts_subscriptions/post security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/AdAccountCreateSubscriptionRequest' description: Subscription to create. required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AdAccountCreateSubscriptionResponse' description: Success '400': description: Invalid input parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 1 message: Advertiser ID must be numeric. '403': description: Can't access this subscription. content: application/json: schema: $ref: '#/components/schemas/Error' examples: NotIntegrationOwner: value: code: 4182 message: Can't access this subscription. default: description: Unexpected error. content: application/json: schema: $ref: '#/components/schemas/Error' get: 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. This endpoint is currently in beta and not available to all apps. Learn more. operationId: ad_accounts_subscriptions/get_list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/AdAccountGetSubscriptionResponse' description: Success '403': description: Can't access this subscription. content: application/json: schema: $ref: '#/components/schemas/Error' examples: NotIntegrationOwner: value: code: 29 message: You are not permitted to access that resource. default: description: Unexpected error. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_ads /ad_accounts/{ad_account_id}/leads/subscriptions/{subscription_id}: get: summary: Get lead ads subscription description: |- Get a specific lead ads subscription record. - Only requests for the OWNER or ADMIN of the ad_account will be allowed. This endpoint is currently in beta and not available to all apps. Learn more. operationId: ad_accounts_subscriptions/get_by_id security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_subscription_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/AdAccountGetSubscriptionResponse' description: Success '400': description: Invalid input parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 1 message: Advertiser ID must be numeric. '403': description: Can't access this subscription. content: application/json: schema: $ref: '#/components/schemas/Error' examples: NotIntegrationOwner: value: code: 29 message: You are not permitted to access that resource. '404': description: Subscription not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: CommerceIntegrationNotFound: value: code: 4517 message: Subscription for given ids not found. default: description: Unexpected error. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_ads delete: 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. This endpoint is currently in beta and not available to all apps. Learn more. operationId: ad_accounts_subscriptions/del_by_id security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_subscription_id' responses: '204': description: Subscription deleted successfully '400': description: Invalid input parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 1 message: Advertiser ID must be numeric. '403': description: You are not authorized to delete this subscription. content: application/json: schema: $ref: '#/components/schemas/Error' examples: NotIntegrationOwner: value: code: 29 message: You are not permitted to access that resource. '404': description: Subscription not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: CommerceIntegrationNotFound: value: code: 4517 message: Subscription for given ids not found. default: description: Unexpected error. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - lead_ads /ad_accounts/{ad_account_id}/mmm_reports: get: summary: Get advertiser Marketing Mix Modeling (MMM) report. description: |- Get an mmm report for an ad account. This returns a URL to an mmm metrics report given a token returned from the create mmm report endpoint. operationId: analytics/get_mmm_report security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_token_required' responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetMMMReportResponse' description: Success '400': description: Invalid ad account ads analytics parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account ads analytics parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - ad_accounts post: summary: Create a request for a Marketing Mix Modeling (MMM) report description: |- This creates an asynchronous mmm report based on the given request. It returns a token that you can use to download the report when it is ready. NOTE: An additional limit of 5 queries per minute per advertiser applies to this endpoint while it's in beta release. operationId: analytics/create_mmm_report security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_analytics x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateMMMReportRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CreateMMMReportResponse' description: Success '400': description: Invalid ad account ads analytics mmm parameters content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account ads analytics mmm parameters default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - ad_accounts /ad_accounts/{ad_account_id}/order_lines: get: summary: Get order lines description: List existing order lines associated with an ad account. operationId: order_lines/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/OrderLine' description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - order_lines /ad_accounts/{ad_account_id}/order_lines/{order_line_id}: get: summary: Get order line description: Get a specific existing order line associated with an ad account. operationId: order_lines/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_order_line_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrderLine' description: Success default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - order_lines /ad_accounts/{ad_account_id}/product_group_promotions: post: description: Add one or more product groups from your catalog to an existing ad group. (Product groups added to an ad group are a 'product group promotion.') operationId: product_group_promotions/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductGroupPromotionCreateRequest' description: List of Product Group Promotions to create, size limit [1, 30]. required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProductGroupPromotionResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Create product group promotions tags: - product_group_promotions patch: description: Update multiple existing Product Group Promotions (by product_group_id) operationId: product_group_promotions/update security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/ProductGroupPromotionUpdateRequest' description: Parameters to update Product group promotions required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProductGroupPromotionResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Update product group promotions tags: - product_group_promotions get: description: |- List existing product group promotions associated with an ad account. Include either ad_group_id or product_group_promotion_ids in your request. Note: ad_group_ids and product_group_promotion_ids are mutually exclusive parameters. Only provide one. If multiple options are provided, product_group_promotion_ids takes precedence over ad_group_ids. If none are provided, the endpoint returns an error. operationId: product_group_promotions/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_product_group_promotion_ids' - $ref: '#/components/parameters/query_entity_statuses' - $ref: '#/components/parameters/query_ad_group_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/ProductGroupPromotionResponseItem' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Get product group promotions tags: - product_group_promotions /ad_accounts/{ad_account_id}/product_group_promotions/{product_group_promotion_id}: get: description: Get a product group promotion by id operationId: product_group_promotions/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_product_group_promotion_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProductGroupPromotionResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Get a product group promotion by id tags: - product_group_promotions /ad_accounts/{ad_account_id}/product_groups/analytics: get: summary: Get product group analytics description: |- Get analytics for the specified product groups in the 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.
operationId: product_groups/analytics
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_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'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ProductGroupAnalyticsResponse'
description: Success
'400':
description: Invalid ad account ads analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- product_group_promotions
/ad_accounts/{ad_account_id}/product_groups/catalogs:
get:
deprecated: true
description: This endpoint is completely deprecated. Please use List
product groups from Catalogs API instead.
operationId: ad_accounts_catalogs_product_groups/list
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_feed_profile_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogProductGroup'
description: Success
'400':
description: Invalid ad account ads parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads parameters.
'401':
description: Access Denied. This can happen if account is not yet approved
to operate as Merchant on Pinterest.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Merchant data not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
summary: Get catalog product groups
tags:
- product_groups
/ad_accounts/{ad_account_id}/reports:
get:
summary: Get the account analytics report created by the async call
description: |-
This returns a URL to an analytics report given a token returned from the post request report creation call. You can use the URL to download the report. The link is valid for five minutes and the report is valid for one hour.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.
operationId: analytics/get_report
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_token_required'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsGetAsyncResponse'
description: Success
'400':
description: Invalid ad account ads analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
post:
summary: Create async request for an account analytics report
description: |-
This returns a token that you can use to download the report when it is ready. Note that this endpoint requires the parameters to be passed as JSON-formatted in the request body. This endpoint does not support URL query parameters.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.
- If granularity is not HOUR, the furthest back you can are allowed to pull data is 914 days before the current date in UTC time and the max time range supported is 186 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.
- If level is PRODUCT_ITEM, the furthest back you can are allowed to pull data is 92 days before the current date in UTC time and the max time range supported is 31 days.
- If level is PRODUCT_ITEM, ad_ids and ad_statuses parameters are not allowed. Any columns related to pin promotion and ad is not allowed either.
operationId: analytics/create_report
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsCreateAsyncRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdsAnalyticsCreateAsyncResponse'
description: Success
'400':
description: Invalid ad account ads analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account ads analytics parameters.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
/ad_accounts/{ad_account_id}/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. \nA string message is returned indicating the status of the delete\
\ operation.\n\nNote: This endpoint is only allowed in the Pinterest API Sandbox\
\ (https://api-sandbox.pinterest.com/v5). \nGo to https://developers.pinterest.com/docs/dev-tools/sandbox/\
\ for more information."
operationId: sandbox/delete
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
responses:
'200':
description: OK
content:
application/json:
schema:
type: string
example: Delete Success
'400':
description: Invalid ad account id.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account id
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
/ad_accounts/{ad_account_id}/ssio/accounts:
get:
summary: Get Salesforce account details including bill-to information.
description: |-
Get Salesforce account details including bill-to information to be used in insertion orders process for ad_account_id
.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Finance, Campaign.
operationId: ssio_accounts/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOAccountResponse'
description: Success
'400':
description: Invalid request parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid request parameter.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- billing
/ad_accounts/{ad_account_id}/ssio/insertion_orders:
post:
summary: Create insertion order through SSIO.
description: |-
Create insertion order through SSIO for ad_account_id
.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Finance, Campaign.
operationId: ssio_insertion_order/create
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOCreateInsertionOrderRequest'
description: Order line to create.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOCreateInsertionOrderResponse'
description: Success
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid request.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- billing
patch:
summary: Edit insertion order through SSIO.
description: |-
Edit insertion order through SSIO for ad_account_id
.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Finance, Campaign.
operationId: ssio_insertion_order/edit
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOEditInsertionOrderRequest'
description: Order line to create.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOEditInsertionOrderResponse'
description: Success
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid request.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- billing
/ad_accounts/{ad_account_id}/ssio/insertion_orders/status:
get:
summary: Get insertion order status by ad account id.
description: |-
Get insertion order status for account id ad_account_id
.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Finance, Campaign.
operationId: ssio_insertion_orders_status/get_by_ad_account
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Insertion orders status by ad acount id
items:
$ref: '#/components/schemas/SSIOInsertionOrderStatus'
description: Success
'400':
description: Invalid request parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid request parameter.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- billing
/ad_accounts/{ad_account_id}/ssio/insertion_orders/{pin_order_id}/status:
get:
summary: Get insertion order status by pin order id.
description: |-
Get insertion order status for pin order id pin_order_id
.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Finance, Campaign.
operationId: ssio_insertion_orders_status/get_by_pin_order_id
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/path_pin_order_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SSIOInsertionOrderStatusResponse'
description: Success
'400':
description: Invalid request parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid request parameter.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- billing
/ad_accounts/{ad_account_id}/ssio/order_lines:
get:
summary: Get Salesforce order lines by ad account id.
description: |-
Get Salesforce order lines for account id ad_account_id
.
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Finance, Campaign.
operationId: ssio_order_lines/get_by_ad_account
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_pin_order_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: SSIO order lines by ad acount id
items:
$ref: '#/components/schemas/SSIOOrderLine'
description: Success
'400':
description: Invalid request parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid request parameter.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- billing
/ad_accounts/{ad_account_id}/targeting_analytics:
get:
summary: Get targeting analytics for an ad account
description: |-
Get targeting analytics for an ad account.
For the requested account and metrics, the response will include the requested metric information
(e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. "age_bucket") for applicable values (e.g. "45-49").
- The token's user_account must either be the Owner of the specified ad account, or have one
of the necessary roles granted to them via
Business Access: Admin, Analyst, Campaign Manager.
- If granularity is not HOUR, 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.
operationId: ad_account_targeting_analytics/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_analytics
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_targeting_types'
- $ref: '#/components/parameters/query_columns'
- $ref: '#/components/parameters/query_granularity'
- $ref: '#/components/parameters/query_conversion_attribution_click_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_engagement_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_view_window_days'
- $ref: '#/components/parameters/query_conversion_attribution_conversion_report_time'
- $ref: '#/components/parameters/query_attribution_types'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsResponse'
description: Success
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- ad_accounts
/ad_accounts/{ad_account_id}/targeting_templates:
get:
summary: List targeting templates
description: Get a list of the targeting templates in the specified ad_account_id
operationId: targeting_template/list
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_ad_account_id'
- $ref: '#/components/parameters/query_order'
- in: query
description: Include audience sizing in result or not
name: include_sizing
required: false
schema:
type: boolean
default: false
- description: Search keyword for targeting templates
in: query
name: search_query
example: gaming
required: false
schema:
type: string
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_bookmark'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/TargetingTemplateResponseData'
description: Success
'400':
description: Invalid ad account id.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid ad account id
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- targeting_template
post:
summary: Create targeting templates
description: |-
Targeting templates allow advertisers to save a set of targeting details including audience lists, keywords & interest, demographics, and placements to use more than once during the campaign creation process.
Templates can be used to build out basic targeting criteria that you plan to use across campaigns and to reuse performance targeting from prior campaigns for new campaigns.
operationId: targeting_template/create security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: description: targeting template creation entity required: true content: application/json: schema: $ref: '#/components/schemas/TargetingTemplateCreate' responses: '200': content: application/json: schema: $ref: '#/components/schemas/TargetingTemplateGetResponseData' description: Success '400': description: Invalid ad account id. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account id default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - targeting_template patch: summary: Update targeting templates description:Update the targeting template given advertiser ID and targeting template ID
operationId: targeting_template/update security: - pinterest_oauth2: - ads:write x-ratelimit-category: ads_write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' requestBody: description: Operation type and targeting template ID required: true content: application/json: schema: $ref: '#/components/schemas/TargetingTemplateUpdateRequest' responses: '200': description: Success '400': description: Invalid ad account id. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account id default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - targeting_template /ad_accounts/{ad_account_id}/templates: get: summary: List templates description: Gets all Templates associated with an ad account ID. operationId: templates/list security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_order' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/TemplateResponse' description: Success '400': description: Invalid ad account template parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account template parameters default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - ad_accounts /ad_accounts/{ad_account_id}/templates/{template_id}/reports: post: summary: Create async request for an analytics report using a template description: |- This takes a template ID and an optional custom timeframe and constructs an asynchronous report based on the template. It returns a token that you can use to download the report when it is ready. operationId: analytics/create_template_report security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_analytics x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/path_template_id' - $ref: '#/components/parameters/query_start_date_async' - $ref: '#/components/parameters/query_end_date_async' - $ref: '#/components/parameters/query_granularity_async' responses: '200': content: application/json: schema: $ref: '#/components/schemas/AdsAnalyticsCreateAsyncResponse' description: Success '400': description: Invalid ad account ads analytics template parameters. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 message: Invalid ad account analytics template parameters. default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - ad_accounts /ad_accounts/{ad_account_id}/terms_of_service: get: description: Get the text of the terms of service and see whether the advertiser has accepted the terms of service. operationId: terms_of_service/get x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_include_html' - $ref: '#/components/parameters/query_tos_type' security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read responses: '200': content: application/json: schema: $ref: '#/components/schemas/TermsOfService' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Get terms of service tags: - terms_of_service /boards: get: summary: List boards description: |- Get a list of the boards owned by the "operation user_account" + group boards where this account is a collaborator Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". Optional: Specify a privacy type (public, protected, or secret) to indicate which boards to return. - If no privacy is specified, all boards that can be returned (based on the scopes of the token and ad_account role if applicable) will be returned. tags: - boards operationId: boards/list security: - pinterest_oauth2: - boards:read x-ratelimit-category: org_read x-sandbox: enabled x-codeSamples: - lang: cURL label: curl source: | curl --location --request GET 'https://api.pinterest.com/v5/boards' \ --header 'Authorization: Bearerad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs/list
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Catalog'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: Parameter 'page_size' was not numeric (was 3e)"
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/feeds:
get:
x-ratelimit-category: catalogs_read
summary: List feeds
description: |-
Fetch feeds owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.
operationId: feeds/list
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_catalogs_catalog_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsFeed'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: Parameter 'page_size' was not numeric (was 3e)"
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
post:
x-ratelimit-category: catalogs_write
summary: Create feed
description: |-
Create a new feed owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Please, be aware that "default_country"
and "default_locale" are not required in the spec for forward compatibility
but for now the API will not accept requests without those fields.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.
Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.
If access is required, please contact your partner manager.
operationId: feeds/create
security:
- pinterest_oauth2:
- catalogs:read
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to created a feed.
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatalogsVerticalFeedsCreateRequest'
- $ref: '#/components/schemas/CatalogsFeedsCreateRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsFeed'
description: Success
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: ...'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Business account required.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
BusinessAccountRequired:
value:
code: 654
message: You must have a business account to operate as merchant.
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action. Account is disapproved.
'409':
description: User website required.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UserWebsiteRequired:
value:
code: 4168
message: User does not have a website.
UserWebsiteNotVerified:
value:
code: 4169
message: User does not have a verified website.
'422':
description: Unique feed name is required.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedDuplicatedName:
value:
code: 4170
message: The feed name already exists.
'501':
description: Not implemented (absent "default_country" or "default_locale").
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotImplemented:
value:
code: 4181
message: Not implemented at the moment. Please, see documentation
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/feeds/{feed_id}:
get:
x-ratelimit-category: catalogs_read
summary: Get feed
description: |-
Get a single feed owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.
operationId: feeds/get
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsFeed'
description: Success
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
patch:
x-ratelimit-category: catalogs_write
summary: Update feed
description: |-
Update a feed owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.
Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.
If access is required, please contact your partner manager.
operationId: feeds/update
security:
- pinterest_oauth2:
- catalogs:read
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to update a feed.
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatalogsVerticalFeedsUpdateRequest'
- $ref: '#/components/schemas/CatalogsFeedsUpdateRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsFeed'
description: Success
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: ...'
'403':
description: Forbidden. Account not approved for feed mutations yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action. Account is disapproved.
MerchantUnderReview:
value:
code: 2626
message: Sorry, you cannot perform this action. Account is under
review.
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
delete:
x-ratelimit-category: catalogs_write
summary: Delete feed
description: |-
Delete a feed owned by the "operating user_account".
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.
operationId: feeds/delete
security:
- pinterest_oauth2:
- catalogs:read
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'204':
description: Feed deleted successfully.
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
'403':
description: Forbidden. Account not approved for feed mutations yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action. Account is disapproved.
MerchantUnderReview:
value:
code: 2626
message: Sorry, you cannot perform this action. Account is under
review.
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
'409':
description: Conflict. Can't delete a feed with active promotions.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedHasActivePromotions:
value:
code: 4162
message: We can't disable a Product Group with active promotions.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/feeds/{feed_id}/ingest:
post:
x-ratelimit-category: catalogs_write
summary: Ingest items for a given feed
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 only allowed in the Pinterest API Sandbox (https://api-sandbox.pinterest.com/v5).
Go to https://developers.pinterest.com/docs/dev-tools/sandbox/ for more information.
operationId: feeds/ingest
security:
- pinterest_oauth2:
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'204':
description: The ingestion process was successfully started.
'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. Account is disapproved.
MerchantUnderReview:
value:
code: 2626
message: Sorry, you cannot perform this action. Account is under
review.
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/feeds/{feed_id}/processing_results:
get:
x-ratelimit-category: catalogs_read
summary: List processing results for a given feed
description: |-
Fetch a feed processing results owned by the "operation user_account". Please note that for now the bookmark parameter is not functional and only the first page will be available until it is implemented in some release in the near future.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Learn more
operationId: feed_processing_results/list
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_feed_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsFeedProcessingResult'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: Parameter 'page_size' was not numeric (was 3e)"
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'404':
description: Feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/processing_results/{processing_result_id}/item_issues:
get:
x-ratelimit-category: catalogs_read
summary: List item issues for a given processing result
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.
Learn more
operationId: items_issues/list
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/path_catalogs_processing_result_id'
- $ref: '#/components/parameters/query_catalogs_item_numbers'
- $ref: '#/components/parameters/query_catalogs_item_validation_issue'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsItemValidationIssues'
description: Success
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'404':
description: Processing Result not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
ProcessingResultFound:
value:
code: 4184
message: Sorry! We could not find your processing result.
'501':
description: Not implemented.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotImplemented:
value:
code: 4181
message: Not implemented at the moment. Please, see documentation.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/items:
get:
summary: Get catalogs items
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: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.
If access is required, please contact your partner manager.
operationId: items/get
security:
- pinterest_oauth2:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_catalogs_items_country'
- $ref: '#/components/parameters/query_catalogs_items_language'
- $ref: '#/components/parameters/query_catalogs_items'
- $ref: '#/components/parameters/query_catalogs_items_filters'
responses:
'200':
description: Response containing the requested catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsItems'
'400':
description: Invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: Parameter 'item_ids' is required.
'401':
description: Not authorized to access catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Not authorized to access catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
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: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.
If access is required, please contact your partner manager.
operationId: items/post
security:
- pinterest_oauth2:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to get catalogs items
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsItemsRequest'
responses:
'200':
description: Response containing the requested catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsItems'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: {''country'': ''US'', ''language'':
''EN'', ''filters'': {''catalog_type'': ''RETAIL'', ''item_ids'':
''test0''}} (''test0'' is not of type array)'
'401':
description: Not authorized to access catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Not authorized to access catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/items/batch:
post:
summary: Operate on item batch
description: |-
This endpoint supports multiple operations on a set of one or more catalog items owned by the "operation user_account". See detailed documentation here.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.
If access is required, please contact your partner manager.
operationId: items_batch/post
x-ratelimit-category: catalogs_write
x-sandbox: enabled
security:
- pinterest_oauth2:
- catalogs:read
- catalogs:write
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to create catalogs items in a batch
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatalogsVerticalBatchRequest'
- $ref: '#/components/schemas/CatalogsItemsBatchRequest'
responses:
'200':
description: Response containing the requested catalogs items batch
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsItemsBatch'
'400':
description: Invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: 'Invalid request: {''country'': ''US'', ''language'':
''EN'', ''operation'': ''CREATE'', ''items'': [{''item_id'':
''RAY_01_'', ''attributes'': {''image_link'': ''https://www.example.com/'',
''title'': ''My Product''}}]} (''https://www.example.com/''
is not of type array)'
'401':
description: Not authenticated to post catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthenticatedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Not authorized to post catalogs items
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/items/batch/{batch_id}:
get:
summary: Get catalogs item batch status
description: |-
Get a single catalogs items batch owned by the "operating user_account". See detailed documentation here.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
operationId: items_batch/get
security:
- pinterest_oauth2:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_items_batch_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: Response containing the requested catalogs items batch
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsItemsBatch'
'401':
description: Not authenticated to access catalogs items batch
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthenticatedAccess:
value:
code: 2
message: Authentication failed.
'403':
description: Not authorized to access catalogs items batch
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Catalogs items batch not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CannotFindBatch:
value:
code: 4331
message: Sorry! We could not find your batch ID.
'405':
description: Method Not Allowed.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MethodNotAllowed:
value:
status: failure
code: 5
data: '405 Method Not Allowed: The method is not allowed for the
requested URL.'
message: Method not allowed
endpoint_name: null
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/product_groups/multiple:
delete:
x-ratelimit-category: catalogs_write
summary: Delete multiple product groups
description: |-
Delete product groups owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs_product_groups/delete_many
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_catalogs_product_group_ids_required'
- $ref: '#/components/parameters/query_ad_account_id'
security:
- pinterest_oauth2:
- catalogs:write
responses:
'204':
description: Catalogs Product Groups deleted successfully.
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action. Account is disapproved.
MerchantUnderReview:
value:
code: 2626
message: Sorry, you cannot perform this action. Account is under
review.
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
'409':
description: Conflict. Can't delete this catalogs product group.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupHasActivePromotions:
value:
code: 4176
message: We can't delete a Catalogs Product Group with active
promotions.
CannotAlterAutoGeneratedCatalogsProductGroup:
value:
code: 4177
message: You cannot alter an auto generated catalogs product group.
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
post:
x-ratelimit-category: catalogs_write
summary: Create multiple 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.
Learn more
Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.
If access is required, please contact your partner manager.
operationId: catalogs_product_groups/create_many
security:
- pinterest_oauth2:
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to create one or more catalogs product groups.
required: true
content:
application/json:
schema:
type: array
title: multiple product groups
items:
oneOf:
- $ref: '#/components/schemas/CatalogsProductGroupCreateRequest'
- $ref: '#/components/schemas/CatalogsVerticalProductGroupCreateRequest'
examples:
RetailFewFiltersUsingAllOf:
summary: A simple retail example that applies "all of the following
filters".
description: |
The use of "all_of" creates a Product Group where all of the individual filters
must be satisfied by a product to be included in the Product Group.
value:
- name: Few Filters using "all_of"
feed_id: '2680059592705'
featured: false
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"
featured: false
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
responses:
'201':
content:
application/json:
schema:
type: array
items:
description: ID of a created catalog product group.
example: '443727193917'
type: string
pattern: ^\d+$
description: Success
'400':
description: Invalid body.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
'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. Account is disapproved.
MerchantUnderReview:
value:
code: 2626
message: Sorry, you cannot perform this action. Account is under
review.
'409':
description: Conflict. Can't create this catalogs product group with this
value.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupFiltersAlreadyExist:
value:
code: 4178
message: A catalogs product group with these filters already exists
for this feed.
CatalogsProductGroupNameAlreadyExist:
value:
code: 4179
message: A catalogs product group with this name already exists
for this feed.
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
CatalogsProductGroupFiltersInvalid:
value:
code: 4183
message: Catalog product group filters failed validation, please
ensure all filters are set correctly.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/product_groups:
get:
x-ratelimit-category: catalogs_read
summary: List product groups
description: |-
Get a list of product groups for a given Catalogs Feed Id owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs_product_groups/list
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_catalogs_product_group_ids'
- $ref: '#/components/parameters/query_catalogs_feed_id'
- $ref: '#/components/parameters/query_catalogs_catalog_id'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
description: Success
'400':
description: Invalid feed parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action. Account is disapproved.
MerchantUnderReview:
value:
code: 2626
message: Sorry, you cannot perform this action. Account is under
review.
'404':
description: Data feed not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
'409':
description: Conflict. Can't create this catalogs product group with this
value.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
post:
x-ratelimit-category: catalogs_write
summary: Create single 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.
Learn more
Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.
If access is required, please contact your partner manager.
operationId: catalogs_product_groups/create
security:
- pinterest_oauth2:
- catalogs:write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object used to create a single catalogs product groups.
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatalogsProductGroupCreateRequest'
- $ref: '#/components/schemas/CatalogsVerticalProductGroupCreateRequest'
examples:
RetailFewFiltersUsingAllOf:
summary: A simple retail example that applies "all of the following
filters".
description: |
The use of "all_of" creates a Product Group where all of the individual filters
must be satisfied by a product to be included in the Product Group.
value:
name: Few Filters using "all_of"
feed_id: '2680059592705'
featured: false
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"
featured: false
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
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
description: Success
'400':
description: Invalid body.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''feed_id'' value ''1511851494501_'' must match the
pattern: ^\d+$"}'
'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. Account is disapproved.
MerchantUnderReview:
value:
code: 2626
message: Sorry, you cannot perform this action. Account is under
review.
'409':
description: Conflict. Can't create this catalogs product group with this
value.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupFiltersAlreadyExist:
value:
code: 4178
message: A catalogs product group with these filters already exists
for this feed.
CatalogsProductGroupNameAlreadyExist:
value:
code: 4179
message: A catalogs product group with this name already exists
for this feed.
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
CatalogsProductGroupFiltersInvalid:
value:
code: 4183
message: Catalog product group filters failed validation, please
ensure all filters are set correctly.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/product_groups/{product_group_id}:
get:
x-ratelimit-category: catalogs_read
summary: Get single product group
description: |-
Get a singe product group for a given Catalogs Product Group Id owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs_product_groups/get
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
security:
- pinterest_oauth2:
- catalogs:read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
description: Success
'400':
description: Invalid catalogs product group id parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''product_group_id'' value ''11851494501_'' must match
the pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action. Account is disapproved.
MerchantUnderReview:
value:
code: 2626
message: Sorry, you cannot perform this action. Account is under
review.
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
'409':
description: Conflict. Can't get a catalogs product group without an existing
catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't acccess this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
delete:
x-ratelimit-category: catalogs_write
summary: Delete single product group
description: |-
Delete a product group owned by the "operation user_account" from being in use in Catalogs.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Learn more
operationId: catalogs_product_groups/delete
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
security:
- pinterest_oauth2:
- catalogs:write
responses:
'204':
description: Catalogs Product Group deleted successfully.
'400':
description: Invalid catalogs product group id parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''product_group_id'' value ''11851494501_'' must match
the pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'403':
description: Forbidden. Account not approved for catalog product group mutations
yet.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
MerchantDisapproved:
value:
code: 2625
message: Sorry, you cannot perform this action. Account is disapproved.
MerchantUnderReview:
value:
code: 2626
message: Sorry, you cannot perform this action. Account is under
review.
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
'409':
description: Conflict. Can't delete this catalogs product group.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupHasActivePromotions:
value:
code: 4176
message: We can't delete a Catalogs Product Group with active
promotions.
CannotAlterAutoGeneratedCatalogsProductGroup:
value:
code: 4177
message: You cannot alter an auto generated catalogs product group.
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
patch:
x-ratelimit-category: catalogs_write
summary: Update single product group
description: |-
Update product group owned by the "operation user_account" to use in Catalogs.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Learn more
Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.
If access is required, please contact your partner manager.
operationId: catalogs_product_groups/update
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
security:
- pinterest_oauth2:
- catalogs:write
requestBody:
description: Request object used to Update a catalogs product group.
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatalogsProductGroupUpdateRequest'
- $ref: '#/components/schemas/CatalogsVerticalProductGroupUpdateRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsVerticalProductGroup'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''product_group_id'' value ''11851494501_'' must match
the pattern: ^\d+$"}'
'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. Account is disapproved.
MerchantUnderReview:
value:
code: 2626
message: Sorry, you cannot perform this action. Account is under
review.
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
'409':
description: Conflict. Can't update this catalogs product group to this
value.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CannotAlterAutoGeneratedCatalogsProductGroup:
value:
code: 4177
message: You cannot alter an auto generated catalogs product group.
CatalogsProductGroupFiltersAlreadyExist:
value:
code: 4178
message: A catalogs product group with these filters already exists
for this feed.
CatalogsProductGroupNameAlreadyExist:
value:
code: 4179
message: A catalogs product group with this name already exists
for this feed.
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
CatalogsProductGroupFiltersInvalid:
value:
code: 4183
message: Catalog product group filters failed validation, please
ensure all filters are set correctly.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/product_groups/{product_group_id}/product_counts:
get:
x-ratelimit-category: catalogs_read
summary: Get product counts for a Product Group
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.
Note: This endpoint only supports RETAIL catalog at the moment.
Learn more
operationId: catalogs_product_groups/product_counts_get
security:
- pinterest_oauth2:
- catalogs:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsProductGroupProductCounts'
description: Success
'404':
description: Product Group Not Found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
'409':
description: Can't access this feature without an existing catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/product_groups/{product_group_id}/products:
get:
x-ratelimit-category: catalogs_read
summary: List products for a 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.
Note: This endpoint only supports RETAIL catalog at the moment.
Learn more
operationId: catalogs_product_group_pins/list
security:
- pinterest_oauth2:
- boards:read
- catalogs:read
- pins:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Pins
items:
$ref: '#/components/schemas/CatalogsProduct'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''product_group_id'' value ''11851494501_'' must match
the pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/products/get_by_product_group_filters:
post:
x-ratelimit-category: catalogs_read
summary: List products for Product Group Filters
description: |-
List products Pins owned by the "operation user_account" that meet the criteria specified in the Catalogs Product Group Filter given in the request.
- This endpoint has been implemented in POST to allow for complex filters. This specific POST endpoint is designed to be idempotent.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Note: This endpoint only supports RETAIL catalog at the moment.
Learn more
operationId: products_by_product_group_filter/list
security:
- pinterest_oauth2:
- boards:read
- catalogs:read
- pins:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Object holding a group of filters for a catalog product group
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsListProductsByFilterRequest'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Pins
items:
$ref: '#/components/schemas/CatalogsProduct'
description: Success
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'409':
description: Conflict. Can't get products.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't acccess this feature without an existing catalog.
CatalogsProductGroupFiltersInvalid:
value:
code: 4183
message: Catalog product group filters failed validation, please
ensure all filters are set correctly.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/reports:
post:
summary: Build catalogs report
description: |-
Async request to create a report of the catalog owned by the "operation user_account". This endpoint generates a report upon receiving the first approved request of the day. Any following requests with identical parameters will yield the same report even if data has changed.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
operationId: reports/create
security:
- pinterest_oauth2:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Request object to asynchronously create a report.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsReportParameters'
responses:
'200':
description: Response containing the report token
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsCreateReportResponse'
'404':
description: Entity (e.g., catalog, feed or processing_result) not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogNotFound:
value:
code: 678
message: Sorry! We couldn't find that catalog. Please ensure you
have access to a valid catalog id.
FeedNotFound:
value:
code: 4161
message: Sorry! We could not find your catalogs feed.
CatalogsProcessingResultNotFound:
value:
code: 4184
message: Sorry! We could not find your processing result
'409':
description: Can't access this feature without an existing catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
get:
summary: Get catalogs report
description: |-
This returns a URL to a report given a token returned from Build catalogs report. You can use the URL to download the report.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
operationId: reports/get
security:
- pinterest_oauth2:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_catalogs_report_token'
responses:
'200':
description: Response that contains a link to download the report
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsReport'
'400':
description: The token you provided is not valid or has expired.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidReportingToken:
value:
code: 1104
message: The token you provided is not valid or has expired.
'409':
description: Can't access this feature without an existing catalog.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't access this feature without an existing catalog.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/catalogs/reports/stats:
get:
summary: List report stats
description: |-
List aggregated numbers of issues for a catalog owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
operationId: reports/stats
security:
- pinterest_oauth2:
- catalogs:read
x-ratelimit-category: catalogs_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_catalogs_report_stats_parameters'
responses:
'200':
description: Response containing the diagnostics aggregated counters
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CatalogsReportStats'
'401':
description: Not authorized to access catalogs
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 2
message: Authentication failed.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- catalogs
/integrations/commerce:
post:
summary: Create commerce integration
description: |-
Create commerce integration metadata to link an external business ID with a Pinterest merchant & ad account.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations_commerce/post
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationRequest'
description: Parameters to get create/update the Integration Metadata
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationMetadata'
description: Success
'404':
description: Integration not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
IntegrationNotFound:
value:
code: 4180
message: Sorry! We could not find your integration.
'409':
description: Can't access this integration metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotIntegrationOwner:
value:
code: 4182
message: Can't access this integration metadata.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
/integrations/commerce/{external_business_id}:
get:
summary: Get commerce integration
description: |-
Get commerce integration metadata associated with the given external business ID.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations_commerce/get
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_external_business_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationMetadata'
description: Success
'404':
description: Integration not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
IntegrationNotFound:
value:
code: 4180
message: Sorry! We could not find your integration.
'409':
description: Can't access this integration metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotIntegrationOwner:
value:
code: 4182
message: Can't access this integration metadata.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
patch:
summary: Update commerce integration
description: |-
Update commerce integration metadata for the given external business ID.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations_commerce/patch
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_external_business_id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationRequestPatch'
description: Parameters to get create/update the Integration Metadata
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationMetadata'
description: Success
'404':
description: Integration not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
IntegrationNotFound:
value:
code: 4180
message: Sorry! We could not find your integration.
'409':
description: Can't access this integration metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
NotIntegrationOwner:
value:
code: 4182
message: Can't access this integration metadata.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
delete:
summary: Delete commerce integration
description: |-
Delete commerce integration metadata for the given external business ID.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations_commerce/del
security:
- pinterest_oauth2:
- ads:write
x-ratelimit-category: ads_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_external_business_id'
responses:
'204':
description: Commerce Integration deleted successfully
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
/integrations/logs:
post:
summary: Receives batched logs from integration applications.
description: |-
This endpoint receives batched logs from integration applications on partner platforms.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
tags:
- integrations
operationId: integrations_logs/post
x-ratelimit-category: ads_write
security:
- pinterest_oauth2:
- ads:write
x-sandbox: enabled
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationLogsRequest'
description: Ingest log information from external integration application.
required: true
responses:
'200':
description: Success.
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationLogsSuccessResponse'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/DetailedError'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/integrations:
get:
summary: Get integration metadata list
description: |-
Get integration metadata list.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations/get_list
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/IntegrationRecord'
description: Success
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
/integrations/{id}:
get:
summary: Get integration metadata
description: |-
Get integration metadata by ID.
Note: If you're interested in joining the beta, please reach out to your Pinterest account manager.
operationId: integrations/get_by_id
security:
- pinterest_oauth2:
- ads:read
x-ratelimit-category: ads_read
x-sandbox: disabled
parameters:
- name: id
description: Integration ID.
in: path
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationRecord'
description: Success
'404':
description: Integration not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
IntegrationNotFound:
value:
code: 4517
message: Sorry! We could not find your integration.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- integrations
/media:
get:
summary: List media uploads
description: |-
List media uploads filtered by given parameters.
Learn more about video Pin creation.
tags:
- media
operationId: media/list
security:
- pinterest_oauth2:
- pins:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
description: response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Media
items:
$ref: '#/components/schemas/MediaUploadDetails'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
summary: Register media upload
description: |-
Register your intent to upload media
The response includes all of the information needed to upload the media
to Pinterest.
To upload the media, make an HTTP POST request (using curl, for
example) to upload_url using the Content-Type header
value. Send the media file's contents as the request's file
parameter and also include all of the parameters from
upload_parameters.
Learn more about video Pin creation.
tags:
- media
operationId: media/create
security:
- pinterest_oauth2:
- pins:read
- pins:write
x-ratelimit-category: org_write
x-sandbox: enabled
requestBody:
description: Create a media upload request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUploadRequest'
responses:
'201':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUpload'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/media/{media_id}:
get:
summary: Get media upload details
description: |-
Get details for a registered media upload, including its current status.
Learn more about video Pin creation.
tags:
- media
operationId: media/get
security:
- pinterest_oauth2:
- pins:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_media_id'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUploadDetails'
'404':
description: Media upload not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Media upload not found
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/oauth/token:
post:
summary: Generate OAuth access token
description: |-
Generate an OAuth access token by using an authorization code or a refresh token.
IMPORTANT: You need to start the OAuth flow via www.pinterest.com/oauth before calling this endpoint (or have an existing refresh token).
See Authentication for more.
Parameter refresh_on and its corresponding response type everlasting_refresh are now available to all apps! Later this year, continuous refresh will become the default behavior (ie you will no longer need to send this parameter). Learn more.
tags:
- oauth
operationId: oauth/token
security:
- basic: []
x-ratelimit-category: org_read
x-sandbox: enabled
requestBody:
description: Generate an OAuth access token.
required: true
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OauthAccessTokenRequest'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/OauthAccessTokenResponse'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/pins:
get:
summary: List Pins
description: |-
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.
operationId: pins/list
security:
- pinterest_oauth2:
- boards:read
- pins:read
x-ratelimit-category: org_read
x-sandbox: enabled
x-codeSamples:
- lang: cURL
label: curl
source: |
curl --location --request GET 'https://api.pinterest.com/v5/pins' \
--header 'Authorization: Bearer ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account:
- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.
- For Pins on secret boards: Owner, Admin.
tags:
- pins
operationId: pins/get
security:
- pinterest_oauth2:
- boards:read
- pins:read
x-ratelimit-category: org_read
x-sandbox: enabled
x-codeSamples:
- lang: python
label: Python SDK
source: |
# Follow this link for initial setup: https://github.com/pinterest/pinterest-python-sdk#getting-started
from pinterest.organic.pins import Pin
# Pin information can be fetched from profile page or from list pin method here:
# https://developers.pinterest.com/docs/api/v5/#operation/pins/list
PIN_ID="ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account:
- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.
- For Pins on secret boards: Owner, Admin.
tags:
- pins
operationId: pins/delete
security:
- pinterest_oauth2:
- boards:read
- boards:write
- pins:read
- pins:write
x-ratelimit-category: org_write
x-sandbox: enabled
x-codeSamples:
- lang: python
label: Python SDK
source: |
# Follow this link for initial setup: https://github.com/pinterest/pinterest-python-sdk#getting-started
from pinterest.organic.pins import Pin
# Pin information can be fetched from profile page or from create/list pin method here:
# https://developers.pinterest.com/docs/api/v5/#operation/pins/list
PIN_ID="ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account:
- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.
- For Pins on secret boards: Owner, Admin.
This endpoint is currently in beta and not available to all apps. Learn more.
tags:
- pins
operationId: pins/update
security:
- pinterest_oauth2:
- boards:read
- boards:write
- pins:read
- pins:write
x-ratelimit-category: org_write
x-sandbox: enabled
x-codeSamples:
- lang: cURL
label: curl
source: |
# Pin information can be fetched from profile page or from create/list pin method here:
# https://developers.pinterest.com/docs/api/v5/#operation/pins/list
curl --location --request PATCH 'https://api.pinterest.com/v5/pins/ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account:
- For Pins on public or protected boards: Admin, Analyst.
- For Pins on secret boards: Admin.
If Pin was created before 2023-03-20
lifetime metrics will only be available for Video and Idea Pin formats. Lifetime metrics are available for all Pin formats since then.
tags:
- pins
operationId: pins/analytics
security:
- pinterest_oauth2:
- boards:read
- pins:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/path_pin_id'
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_pin_analytics_metric_types'
- $ref: '#/components/parameters/query_split_field_pins'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/PinAnalyticsResponse'
'400':
description: Invalid pins analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid pins analytics parameters.
'403':
description: Not authorized to access board or Pin.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access board or Pin.
'404':
description: Pin not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Pin not found.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/pins/analytics:
get:
summary: Get multiple Pin analytics
description: |-
This endpoint is currently in beta and not available to all apps. Learn more.
Get analytics for multiple pins owned by the "operation user_account" - or on a group board that has been shared with this account.
- The maximum number of pins supported in a single request is 100.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account:
- For Pins on public or protected boards: Admin, Analyst.
- For Pins on secret boards: Admin.
If Pin was created before 2023-03-20
lifetime metrics will only be available for Video and Idea Pin formats. Lifetime metrics are available for all Pin formats since then.
tags:
- pins
operationId: multi_pins/analytics
security:
- pinterest_oauth2:
- boards:read
- pins:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- name: pin_ids
description: List of Pin IDs.
in: query
schema:
type: array
items:
type: string
pattern: ^\d+$
minItems: 1
maxItems: 100
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_app_types'
- description: Pin metric types to get data for.
explode: false
in: query
name: metric_types
required: true
schema:
type: array
items:
oneOf:
- description: Standard Pin metric types
type: string
enum:
- IMPRESSION
- OUTBOUND_CLICK
- PIN_CLICK
- SAVE
- SAVE_RATE
- TOTAL_COMMENTS
- TOTAL_REACTIONS
- description: Video Pin metric types
type: string
enum:
- IMPRESSION
- OUTBOUND_CLICK
- PIN_CLICK
- SAVE
- SAVE_RATE
- VIDEO_MRC_VIEW
- VIDEO_10S_VIEW
- QUARTILE_95_PERCENT_VIEW
- VIDEO_V50_WATCH_TIME
- VIDEO_START
- VIDEO_AVG_WATCH_TIME
- TOTAL_COMMENTS
- TOTAL_REACTIONS
style: form
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/BulkPinAnalyticsResponse'
'400':
description: Invalid pins analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 1
message: Invalid multi_pins analytics parameters.
'401':
description: Not authorized to access board or Pin.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 7
message: Not authorized to access board or Pin.
'404':
description: Pin not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 50
message: Pin not found.
'429':
description: |-
This request exceeded a rate limit. This can happen if the client exceeds one
of the published rate limits or if multiple write operations are applied to
an object within a short time window.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 8
message: |-
This request exceeded a rate limit. This can happen if the client exceeds one
of the published rate limits or if multiple write operations are applied to
an object within a short time window.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/pins/{pin_id}/save:
post:
summary: Save Pin
description: |-
Save a Pin on a board or board section owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id
(obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account:
- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.
- For Pins on secret boards: Owner, Admin.
- Any Pin type can be saved: image Pin, video Pin, Idea Pin, product Pin, etc.
- Any public Pin can be saved given a pin ID.
tags:
- pins
operationId: pins/save
security:
- pinterest_oauth2:
- boards:read
- boards:write
- pins:read
- pins:write
x-ratelimit-category: org_write
x-sandbox: enabled
x-codeSamples:
- lang: python
label: Python SDK
source: |
# Follow this link for initial setup: https://github.com/pinterest/pinterest-python-sdk#getting-started
from pinterest.organic.pins import Pin
# Pin information can be fetched from profile page or from create/list pin method here:
# https://developers.pinterest.com/docs/api/v5/#operation/pins/list
PIN_ID="Get details of a specific interest given interest ID.
Click here for a spreadsheet listing interests and their IDs.
operationId: interest_targeting_options/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_interest_id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/SingleInterestTargetingOptionResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - resources /resources/targeting/{targeting_type}: get: summary: Get targeting options description: |-You can use targeting values in ads placement to define your intended audience.
Targeting metrics are organized around targeting specifications.
For more information on ads targeting, see Audience targeting.
Sample return:
[{"36313": "Australia: Moreton Bay - North", "124735": "Canada: North Battleford", "36109": "Australia: Murray", "36108": "Australia: Mid North Coast", "36101": "Australia: Capital Region", "811": "U.S.: Reno", "36103": "Australia: Central West", "36102": "Australia: Central Coast", "36105": "Australia: Far West and Orana", "36104": "Australia: Coffs Harbour - Grafton", "36107": "Australia: Illawarra", "36106": "Australia: Hunter Valley Exc Newcastle", "554017": "New Zealand: Wanganui", "554016": "New Zealand: Marlborough", "554015": "New Zealand: Gisborne", "554014": "New Zealand: Tararua", "554013": "New Zealand: Invercargill", "GR": "Greece", "554011": "New Zealand: Whangarei", "554010": "New Zealand: Far North", "717": "U.S.: Quincy-Hannibal-Keokuk", "716": "U.S.: Baton Rouge",...}]operationId: targeting_options/get security: - pinterest_oauth2: - ads:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_targeting_type' - $ref: '#/components/parameters/query_client_id' - $ref: '#/components/parameters/query_oauth_signature' - $ref: '#/components/parameters/query_timestamp' responses: '200': content: application/json: schema: $ref: '#/components/schemas/TargetingOptionResponse' description: Success default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error tags: - resources /search/boards: get: summary: Search user's boards description: |- Search for boards for the "operation user_account". This includes boards of all board types. - By default, the "operation user_account" is the token user_account. If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information. operationId: search_user_boards/get security: - pinterest_oauth2: - boards:read - boards:read_secret x-ratelimit-category: org_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/query_ad_account_id' - $ref: '#/components/parameters/query_bookmark' - $ref: '#/components/parameters/query_page_size' - $ref: '#/components/parameters/query_query' responses: '200': description: response content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: description: items items: $ref: '#/components/schemas/Board' default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' tags: - search /search/pins: get: description: |- Search for pins for the "operation user_account". - By default, the "operation user_account" is the token user_account. If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information. operationId: search_user_pins/list security: - pinterest_oauth2: - boards:read - boards:read_secret - pins:read - pins:read_secret x-ratelimit-category: org_read x-sandbox: disabled parameters: - $ref: '#/components/parameters/query_ad_account_id' - $ref: '#/components/parameters/query_required_search_query' - $ref: '#/components/parameters/query_bookmark' responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/Paginated' - type: object properties: items: type: array items: $ref: '#/components/schemas/Pin' description: Success '404': description: User not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: UserNotFound: value: code: 30 message: User not found. default: content: application/json: schema: $ref: '#/components/schemas/Error' description: Unexpected error summary: Search user's Pins tags: - search /search/partner/pins: get: summary: Search pins by a given search term description: |- This endpoint is currently in beta and not available to all apps. Learn more. Get the top 10 Pins by a given search term. operationId: search_partner_pins security: - pinterest_oauth2: - boards:read - pins:read x-ratelimit-category: org_read x-sandbox: disabled x-codeSamples: - lang: cURL label: curl source: | curl --location --request GET 'https://api.pinterest.com/v5/search/partner/pins' \ --header 'Authorization: Bearer
Get the top trending search keywords among the Pinterest user audience.
Trending keywords can be used to inform ad targeting, budget strategy, and creative decisions about which products and Pins will resonate with your audience.
Geographic, demographic and interest-based filters are available to narrow down to the top trends among a specific audience. Multiple trend types are supported that can be used to identify newly-popular, evergreen or seasonal keywords.
For an interactive way to explore this data, please visit trends.pinterest.com.
operationId: trending_keywords/list
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: trends_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_trend_region'
- $ref: '#/components/parameters/path_trend_type'
- $ref: '#/components/parameters/query_interest_list'
- $ref: '#/components/parameters/query_gender_list'
- $ref: '#/components/parameters/query_age_bucket_list'
- name: include_keywords
description: |-
If set, filters the results to top trends which include at least one of the specified keywords.
If unset, no keyword filtering logic is applied.
example:
- recipes
- dessert
in: query
required: false
schema:
$ref: '#/components/schemas/KeywordList'
- $ref: '#/components/parameters/query_normalize_against_group'
- $ref: '#/components/parameters/query_trending_keyword_limit'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TrendingKeywordsResponse'
description: Success
'400':
description: Invalid trending keywords request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid trending keywords request parameters
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- keywords
/user_account:
get:
summary: Get user account
description: |-
Get account information for the "operation user_account"
- By default, the "operation user_account" is the token user_account.
If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information.
tags:
- user_account
operationId: user_account/get
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'403':
description: Not authorized to access the user account.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/analytics:
get:
summary: Get user account analytics
description: |-
Get analytics for the "operation user_account"
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
tags:
- user_account
operationId: user_account/analytics
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_from_claimed_content'
- $ref: '#/components/parameters/query_pin_format'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_content_type'
- $ref: '#/components/parameters/query_source'
- $ref: '#/components/parameters/query_metric_types'
- $ref: '#/components/parameters/query_split_field_user_account'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AnalyticsResponse'
description: Success
'400':
description: Invalid user accounts analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid user accounts analytics parameters.
'403':
description: Not authorized to access the user account analytics.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account analytics.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/analytics/top_pins:
get:
summary: Get user account top pins analytics
description: |-
Gets analytics data about a user's top pins (limited to the top 50).
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
tags:
- user_account
operationId: user_account/analytics/top_pins
security:
- pinterest_oauth2:
- pins:read
- user_accounts:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_sort_by'
- $ref: '#/components/parameters/query_from_claimed_content'
- $ref: '#/components/parameters/query_pin_format'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_content_type'
- $ref: '#/components/parameters/query_source'
- $ref: '#/components/parameters/query_metric_types'
- $ref: '#/components/parameters/query_num_of_pins'
- $ref: '#/components/parameters/query_created_in_last_n_days'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopPinsAnalyticsResponse'
description: Success
'403':
description: Not authorized to access the user account analytics.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account analytics.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/analytics/top_video_pins:
get:
summary: Get user account top video pins analytics
description: |-
Gets analytics data about a user's top video pins (limited to the top 50).
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".
tags:
- user_account
operationId: user_account/analytics/top_video_pins
security:
- pinterest_oauth2:
- pins:read
- user_accounts:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_video_pin_sort_by'
- $ref: '#/components/parameters/query_from_claimed_content'
- $ref: '#/components/parameters/query_pin_format'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_content_type'
- $ref: '#/components/parameters/query_source'
- $ref: '#/components/parameters/query_video_pin_metric_types'
- $ref: '#/components/parameters/query_num_of_pins'
- $ref: '#/components/parameters/query_created_in_last_n_days'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopVideoPinsAnalyticsResponse'
description: Success
'403':
description: Not authorized to access the user account analytics.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account analytics.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/businesses:
get:
summary: List linked businesses
description: Get a list of your linked business accounts.
operationId: linked_business_accounts/get
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: enabled
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LinkedBusiness'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- user_account
/user_account/followers:
get:
summary: List followers
description: Get a list of your followers.
operationId: followers/list
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/UserSummary'
description: Success
'400':
description: Invalid user id
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid user id
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- user_account
/user_account/following:
get:
summary: List following
description: Get a list of who a certain user follows.
operationId: user_following/get
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_user_following_feed_type'
- $ref: '#/components/parameters/query_explicit_following'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Users
items:
$ref: '#/components/schemas/UserSummary'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- user_account
/user_account/following/boards:
get:
summary: List following boards
description: Get a list of the boards a user follows. The request returns a
board summary object array.
operationId: boards_user_follows/list
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_explicit_following'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Board'
description: Success
'400':
description: Invalid user id
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid user id
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- user_account
/user_account/following/{username}:
post:
summary: Follow user
description: |-
This endpoint is currently in beta and not available to all apps. Learn more.
Use this request, as a signed-in user, to follow another user.
tags:
- user_account
operationId: follow_user/update
security:
- pinterest_oauth2:
- user_accounts:write
x-ratelimit-category: org_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_username'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FollowUserRequest'
description: Follow a user.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserSummary'
description: Success
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UserNotFound:
value:
code: 30
message: User not found.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
/user_account/websites:
post:
summary: Verify website
description: Verify a website as a signed-in user.
tags:
- user_account
operationId: verify_website/update
security:
- pinterest_oauth2:
- user_accounts:write
x-ratelimit-category: org_write
x-sandbox: disabled
requestBody:
description: Verify a website.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteVerifyRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteSummary'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
get:
summary: Get user websites
description: Get user websites, claimed or not
tags:
- user_account
operationId: user_websites/get
security:
- pinterest_oauth2:
- user_accounts:read
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/UserWebsiteSummary'
'403':
description: Not authorized to access the user website list.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user website list.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-ratelimit-category: org_read
x-sandbox: disabled
delete:
summary: Unverify website
description: Unverifu a website verified by the signed-in user.
tags:
- user_account
operationId: unverify_website/delete
security:
- pinterest_oauth2:
- user_accounts:write
x-ratelimit-category: org_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_website'
responses:
'204':
description: Successfully unverified website
'404':
description: Website not in user list.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Website not in user list.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/websites/verification:
get:
summary: Get user verification code for website claiming
description: Get verification code for user to install on the website to claim
it.
tags:
- user_account
operationId: website_verification/get
security:
- pinterest_oauth2:
- user_accounts:read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteVerificationCode'
description: Success
'403':
description: Not authorized to access the user verification code for website
claiming.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user verification code for website
claiming.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
x-ratelimit-category: org_read
x-sandbox: disabled
/users/{username}/interests/follow:
get:
summary: List following interests
description: Get a list of a user's following interests in one place.
tags:
- user_account
operationId: user_account/followed_interests
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_read
parameters:
- $ref: '#/components/parameters/path_username'
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Interest'
'400':
description: Invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-sandbox: enabled
components:
securitySchemes:
pinterest_oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://www.pinterest.com/oauth/
tokenUrl: https://api.pinterest.com/v5/oauth/token
scopes:
ads:read: See all of your advertising data, including ads, ad groups,
campaigns etc.
ads:write: Create, update, or delete ads, ad groups, campaigns etc.
billing:read: See all of your billing data, billing profile, etc.
billing:write: Create, update, or delete billing data, billing profiles,
etc.
biz_access:read: See business access data
biz_access:write: Create, update, or delete business access data
boards:read: See your public boards, including group boards you join
boards:read_secret: See your secret boards
boards:write: Create, update, or delete your public boards
boards:write_secret: Create, update, or delete your secret boards
catalogs:read: See all of your catalogs data
catalogs:write: Create, update, or delete your catalogs data
pins:read: See your public Pins
pins:read_secret: See your secret Pins
pins:write: Create, update, or delete your public Pins
pins:write_secret: Create, update, or delete your secret Pins
user_accounts:read: See your user accounts and followers
user_accounts:write: Update your user accounts and followers
conversion_token:
type: http
scheme: bearer
description: This security scheme only applies to the conversion events endpoint
(POST /ad_accounts/{ad_account_id}/events). This endpoint requires a bearer
token generated via Ads Manager (ads.pinterest.com).
basic:
type: http
scheme: basic
schemas:
Account:
type: object
readOnly: true
properties:
account_type:
description: Type of account
type: string
enum:
- PINNER
- BUSINESS
id:
description: User account ID.
type: string
pattern: ^\d+$
example: '2783136121146311751'
profile_image:
type: string
website_url:
type: string
username:
type: string
about:
description: Profile about description.
type: string
business_name:
type: string
nullable: true
board_count:
type: integer
readOnly: true
nullable: true
example: 14
description: 'User account board count.
**Note**: Board count on user
account level may differ from counts found elsewhere due to attribution
of collaborative Boards.'
pin_count:
type: integer
readOnly: true
nullable: true
example: 339
description: User account pin count. This includes both created and saved
pins.
follower_count:
type: integer
readOnly: true
nullable: true
example: 10
description: User account follower count.
following_count:
type: integer
readOnly: true
nullable: true
example: 347
description: User account following count.
monthly_views:
type: integer
readOnly: true
nullable: true
example: 163
description: User account monthly views.
ActionType:
type: string
description: Ad group billable event type. For update, only draft ad groups
may update billable event.
example: CLICKTHROUGH
enum:
- CLICKTHROUGH
- IMPRESSION
- VIDEO_V_50_MRC
AdAccount:
type: object
readOnly: true
properties:
id:
type: string
name:
type: string
owner:
title: Ad account owner
type: object
properties:
username:
type: string
description: Public username for the user account
id:
type: string
description: The owning account's user ID.
country:
$ref: '#/components/schemas/Country'
currency:
$ref: '#/components/schemas/Currency'
permissions:
title: permissions
type: array
items:
$ref: '#/components/schemas/BusinessAccessRole'
nullable: true
created_time:
description: Creation time. Unix timestamp in seconds.
example: 1451431341
nullable: true
title: created_time
type: integer
updated_time:
description: Last update time. Unix timestamp in seconds.
example: 1451431341
nullable: true
title: updated_time
type: integer
AdAccountAnalyticsResponse:
type: array
items:
type: object
properties:
AD_ACCOUNT_ID:
description: The ID of the advertiser that this metrics belongs to.
type: string
pattern: ^\d+$
DATE:
description: Current metrics date. Only returned when granularity is a
time-based value (`DAY`, `HOUR`, `WEEK`, `MONTH`)
type: string
format: date
required:
- AD_ACCOUNT_ID
additionalProperties: true
example:
DATE: '2021-04-01'
AD_ACCOUNT_ID: '547602124502'
SPEND_IN_DOLLAR: 30
TOTAL_CLICKTHROUGH: 216
AdAccountCreateRequest:
title: AdAccountCreate
type: object
example:
country: US
owner_user_id: '383791336903426391'
name: ACME Tools
properties:
country:
$ref: '#/components/schemas/Country'
name:
description: Ad Account name.
example: ACME Tools
maxLength: 256
title: name
type: string
owner_user_id:
description: Advertiser's owning user ID.
example: '383791336903426391'
pattern: ^\d+$
title: owner_user_id
type: string
AdAccountCreateSubscriptionRequest:
title: AdAccountCreateSubscriptionRequest
type: object
example:
webhook_url: https://webhook.example.com/xyz
lead_form_id: '383791336903426390'
properties:
webhook_url:
description: Standard HTTPS webhook URL.
example: https://webhook.example.com/xyz
title: webhook_url
type: string
lead_form_id:
description: Lead form ID.
example: '383791336903426390'
title: Lead form ID
type: string
pattern: ^\d+$
partner_access_token:
description: Partner access token. Only for clients that requires authentication.
We recommend to avoid this param.
type: string
partner_refresh_token:
description: Partner refresh token. Only for clients that requires authentication.
We recommend to avoid this param.
type: string
partner_metadata:
description: Partner metadata. Only for clients that requires special handling.
We recommend to avoid this param.
type: object
properties:
subscriber_key:
description: Text field value that uniquely identifies a subscriber.
type: string
required:
- webhook_url
AdAccountCreateSubscriptionResponse:
title: AdAccountCreateSubscriptionResponse
type: object
properties:
id:
description: Subscription ID.
example: '8078432025948590686'
type: string
pattern: ^\d+$
cryptographic_key:
description: Base64 encoded key for client to decrypt lead data.
example: ucvxbV2Tdss0vNeYsdh4Qfa/1Khm2b0PqXvXeTTZh54
type: string
cryptographic_algorithm:
description: Lead data encryption algorithm.
example: AES-256-GCM
type: string
created_time:
description: Subscription creation time. Unix timestamp in milliseconds.
example: 1699209842000
type: integer
AdAccountGetSubscriptionResponse:
title: AdAccountGetSubscriptionsResponse
type: object
allOf:
- type: object
description: Lead ads subscription response common fields.
properties:
lead_form_id:
description: Lead form ID.
example: '383791336903426390'
type: string
pattern: ^\d+$
nullable: true
webhook_url:
description: Standard HTTPS webhook URL.
example: https://webhook.example.com/xyz
type: string
- type: object
properties:
id:
description: Subscription ID.
example: '8078432025948590686'
type: string
pattern: ^\d+$
user_account_id:
description: User account used to subscribe lead data.
example: '549755885175'
type: string
pattern: ^\d+$
ad_account_id:
description: The Ad Account ID that this lead form belongs to.
example: '549755885176'
type: string
pattern: ^\d+$
api_version:
description: API version.
example: v5
type: string
cryptographic_key:
description: Base64 encoded key for client to decrypt lead data.
example: ucvxbV2Tdss0vNeYsdh4Qfa/1Khm2b0PqXvXeTTZh54
type: string
cryptographic_algorithm:
description: Lead data encryption algorithm.
example: AES-256-GCM
type: string
created_time:
description: Lead form creation time. Unix timestamp in milliseconds.
example: 1699209842000
type: integer
AdAccountsCountryResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdAccountsCountryResponseData'
AdAccountsCountryResponseData:
type: object
properties:
code:
$ref: '#/components/schemas/AdCountry'
type: string
currency:
description: Country currency.
example: Dollars
type: string
index:
type: number
description: Country index
example: 1
name:
type: string
description: Country name
example: United States of America
AdArrayResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdArrayResponseElement'
title: AdArrayResponse
AdArrayResponseElement:
type: object
properties:
data:
$ref: '#/components/schemas/AdResponse'
exceptions:
$ref: '#/components/schemas/Exception'
AdCommon:
type: object
description: Creation fields
properties:
ad_group_id:
description: ID of the ad group that contains the ad.
example: '2680059592705'
type: string
pattern: ^(AG)?\d+$
android_deep_link:
description: Deep link URL for Android devices. Not currently available.
Using this field will generate an error.
nullable: true
type: string
carousel_android_deep_links:
description: Comma-separated deep links for the carousel pin on Android.
type: array
nullable: true
items:
type: string
carousel_destination_urls:
description: Comma-separated destination URLs for the carousel pin to promote.
type: array
nullable: true
items:
type: string
carousel_ios_deep_links:
description: Comma-separated deep links for the carousel pin on iOS.
type: array
nullable: true
items:
type: string
click_tracking_url:
description: Tracking url for the ad clicks.
type: string
nullable: true
creative_type:
$ref: '#/components/schemas/CreativeType'
destination_url:
description: Destination URL.
type: string
nullable: true
ios_deep_link:
description: Deep link URL for iOS devices. Not currently available. Using
this field will generate an error.
type: string
nullable: true
is_pin_deleted:
description: Is original pin deleted?
example: false
type: boolean
is_removable:
description: Is pin repinnable?
example: false
type: boolean
name:
description: Name of the ad - 255 chars max.
type: string
nullable: true
status:
$ref: '#/components/schemas/EntityStatus'
tracking_urls:
type: object
allOf:
- $ref: '#/components/schemas/TrackingUrls'
nullable: true
view_tracking_url:
description: Tracking URL for ad impressions.
type: string
nullable: true
lead_form_id:
description: Lead form ID for lead ad generation.
type: string
pattern: ^(AG)?\d+$
nullable: true
grid_click_type:
$ref: '#/components/schemas/GridClickType'
customizable_cta_type:
type: string
description: Select a call to action (CTA) to display below your ad. Available
only for ads with direct links enabled. CTA options for consideration
and conversion campaigns are LEARN_MORE, SHOP_NOW, BOOK_NOW, SIGN_UP,
VISIT_WEBSITE, BUY_NOW, GET_OFFER, ORDER_NOW, ADD_TO_CART (for conversion
campaigns with add to cart conversion events only)
example: LEARN_MORE
nullable: true
enum:
- GET_OFFER
- LEARN_MORE
- ORDER_NOW
- SHOP_NOW
- SIGN_UP
- SUBSCRIBE
- BUY_NOW
- CONTACT_US
- GET_QUOTE
- VISIT_WEBSITE
- APPLY_NOW
- BOOK_NOW
- REQUEST_DEMO
- REGISTER_NOW
- FIND_A_DEALER
- ADD_TO_CART
- WATCH_NOW
- READ_MORE
- null
quiz_pin_data:
type: object
allOf:
- $ref: '#/components/schemas/QuizPinData'
description: Before creating a quiz ad, you must create an organic Pin using
POST/Create Pin for each result in the quiz. Quiz ads cannot be saved
by a Pinner. Quiz ad results can be saved.
nullable: true
AdCountry:
type: string
description: Country ID from ISO 3166-1 alpha-2.
example: US
enum:
- AD
- AE
- AF
- AG
- AI
- AL
- AM
- AO
- AQ
- AR
- AS
- AT
- AU
- AW
- AX
- AZ
- BA
- BB
- BD
- BE
- BF
- BG
- BH
- BI
- BJ
- BL
- BM
- BN
- BO
- BQ
- BR
- BS
- BT
- BV
- BW
- BY
- BZ
- CA
- CC
- CD
- CF
- CG
- CH
- CI
- CK
- CL
- CM
- CN
- CO
- CR
- CU
- CV
- CW
- CX
- CY
- CZ
- DE
- DJ
- DK
- DM
- DO
- DZ
- EC
- EE
- EG
- EH
- ER
- ES
- ET
- FI
- FJ
- FK
- FM
- FO
- FR
- GA
- GB
- GD
- GE
- GF
- GG
- GH
- GI
- GL
- GM
- GN
- GP
- GQ
- GR
- GS
- GT
- GU
- GW
- GY
- HK
- HM
- HN
- HR
- HT
- HU
- ID
- IE
- IL
- IM
- IN
- IO
- IQ
- IR
- IS
- IT
- JE
- JM
- JO
- JP
- KE
- KG
- KH
- KI
- KM
- KN
- KR
- KW
- KY
- KZ
- LA
- LB
- LC
- LI
- LK
- LR
- LS
- LT
- LU
- LV
- LY
- MA
- MC
- MD
- ME
- MF
- MG
- MH
- MK
- ML
- MM
- MN
- MO
- MP
- MQ
- MR
- MS
- MT
- MU
- MV
- MW
- MX
- MY
- MZ
- NA
- NC
- NE
- NF
- NG
- NI
- NL
- 'NO'
- NP
- NR
- NU
- NZ
- OM
- PA
- PE
- PF
- PG
- PH
- PK
- PL
- PM
- PN
- PR
- PS
- PT
- PW
- PY
- QA
- RE
- RO
- RS
- RU
- RW
- SA
- SB
- SC
- SD
- SE
- SG
- SH
- SI
- SJ
- SK
- SL
- SM
- SN
- SO
- SR
- SS
- ST
- SV
- SX
- SY
- SZ
- TC
- TD
- TF
- TG
- TH
- TJ
- TK
- TL
- TM
- TN
- TO
- TR
- TT
- TV
- TW
- TZ
- UA
- UG
- UM
- US
- UY
- UZ
- VA
- VC
- VE
- VG
- VI
- VN
- VU
- WF
- WS
- YE
- YT
- ZA
- ZM
- ZW
AdCreateRequest:
type: object
allOf:
- $ref: '#/components/schemas/AdCommon'
- $ref: '#/components/schemas/AdPinId'
- type: object
title: Request schema for creating ads
required:
- ad_group_id
- pin_id
- creative_type
AdGroupArrayResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/AdGroupArrayResponseElement'
AdGroupArrayResponseElement:
type: object
properties:
data:
$ref: '#/components/schemas/AdGroupResponse'
exceptions:
type: array
items:
$ref: '#/components/schemas/Exception'
AdGroupCommon:
type: object
properties:
name:
description: Ad group name.
type: string
example: 'Ad Group For Pin: 687195905986'
status:
type: string
allOf:
- $ref: '#/components/schemas/EntityStatus'
description: Ad group/entity status.
budget_in_micro_currency:
description: Budget in micro currency. This field is **REQUIRED** for non-CBO
(campaign budget optimization) campaigns. A CBO campaign automatically
generates ad group budgets from its campaign budget to maximize campaign
outcome. A CBO campaign is limited to 70 or less ad groups.
type: integer
example: 5000000
nullable: true
bid_in_micro_currency:
description: 'Bid price in micro currency. This field is **REQUIRED** for
the following campaign objective_type/billable_event combinations: AWARENESS/IMPRESSION,
CONSIDERATION/CLICKTHROUGH, CATALOG_SALES/CLICKTHROUGH, VIDEO_VIEW/VIDEO_V_50_MRC.'
type: integer
example: 5000000
nullable: true
optimization_goal_metadata:
type: object
allOf:
- $ref: '#/components/schemas/OptimizationGoalMetadata'
description: Optimization goals for objective-based performance campaigns.
**REQUIRED** when campaign's `objective_type` is set to `"WEB_CONVERSION"`.
nullable: true
budget_type:
type: string
allOf:
- $ref: '#/components/schemas/BudgetType'
start_time:
description: Ad group start time. Unix timestamp in seconds. Defaults to
current time.
type: integer
example: 5686848000
nullable: true
end_time:
description: Ad group end time. Unix timestamp in seconds.
type: integer
example: 5705424000
nullable: true
targeting_spec:
$ref: '#/components/schemas/TargetingSpec'
lifetime_frequency_cap:
description: Set a limit to the number of times a promoted pin from this
campaign can be impressed by a pinner within the past rolling 30 days.
Only available for CPM (cost per mille (1000 impressions)) ad groups.
A CPM ad group has an IMPRESSION billable_event
value. This field **REQUIRES** the `end_time` field.
type: integer
example: 100
tracking_urls:
type: object
allOf:
- $ref: '#/components/schemas/TrackingUrls'
description: 'Third-party tracking URLs.
JSON object with the format:
{"Tracking
event enum":[URL string array],...}
For example: {"impression":
["URL1", "URL2"], "click": ["URL1", "URL2", "URL3"]}.
Up to three tracking
URLs are supported for each event type. Tracking URLs set at the ad group
or ad level can override those set at the campaign level. May be null.
Pass in an empty object - {} - to remove tracking URLs.
For more
information, see Third-party and dynamic tracking.'
nullable: true
auto_targeting_enabled:
type: boolean
description: Enable auto-targeting for ad group. Also known as "expanded targeting".
example: true
nullable: true
placement_group:
type: string
allOf:
- $ref: '#/components/schemas/PlacementGroupType'
description: Placement
group.
pacing_delivery_type:
type: string
allOf:
- $ref: '#/components/schemas/PacingDeliveryType'
campaign_id:
description: Campaign ID of the ad group.
type: string
pattern: ^[C]?\d+$
example: '626736533506'
billable_event:
$ref: '#/components/schemas/ActionType'
bid_strategy_type:
nullable: true
description: Bid strategy type
enum:
- AUTOMATIC_BID
- MAX_BID
- TARGET_AVG
- null
example: MAX_BID
title: BidStrategyType
type: string
targeting_template_ids:
type: array
description: 'Targeting template IDs applied to the ad group. We currently
only support 1 targeting template per ad group. To use targeting templates,
do not set any other targeting fields: targeting_spec, tracking_urls,
auto_targeting_enabled, placement_group. To clear all targeting template
IDs, set this field to [''0''].'
items:
description: Targeting template ID.
type: string
pattern: ^\d+$
example: '643'
maxItems: 1
nullable: true
AdGroupCreateRequest:
type: object
allOf:
- $ref: '#/components/schemas/AdGroupCommon'
- type: object
properties:
pacing_delivery_type:
type: string
allOf:
- $ref: '#/components/schemas/PacingDeliveryType'
default: STANDARD
auto_targeting_enabled:
type: boolean
allOf:
- type: boolean
description: Enable auto-targeting for ad group.Default value is True.
Also known as "expanded targeting".
example: true
budget_type:
type: string
allOf:
- $ref: '#/components/schemas/BudgetType'
default: DAILY
required:
- billable_event
- campaign_id
- name
AdGroupResponse:
type: object
allOf:
- $ref: '#/components/schemas/AdGroupCommon'
- type: object
properties:
id:
description: Ad group ID.
type: string
pattern: ^\d+$
example: '2680060704746'
ad_account_id:
description: Advertiser ID.
type: string
pattern: ^\d+$
example: '549755885175'
created_time:
description: Ad group creation time. Unix timestamp in seconds.
type: integer
example: 1476477189
updated_time:
description: Ad group last update time. Unix timestamp in seconds.
type: integer
example: 1476477189
type:
description: Always "adgroup".
type: string
default: adgroup
conversion_learning_mode_type:
type: string
description: oCPM learn mode
example: ACTIVE
nullable: true
enum:
- NOT_ACTIVE
- ACTIVE
- null
summary_status:
type: string
allOf:
- $ref: '#/components/schemas/AdGroupSummaryStatus'
description: Ad group summary status.
feed_profile_id:
description: Feed Profile ID associated to the adgroup.
type: string
example: '626736533506'
dca_assets:
description: '[DCA] The Dynamic creative assets to use for DCA. Dynamic
Creative Assembly (DCA) accepts basic creative assets of an ad (image,
video, title, call to action, logo etc). Then it automatically generates
optimized ad combinations based on these assets.'
AdGroupSummaryStatus:
type: string
description: Summary status for ad group
example: RUNNING
enum:
- RUNNING
- PAUSED
- NOT_STARTED
- COMPLETED
- ADVERTISER_DISABLED
- ARCHIVED
- DRAFT
- DELETED_DRAFT
AdGroupUpdateRequest:
type: object
allOf:
- $ref: '#/components/schemas/AdGroupCommon'
- type: object
properties:
id:
description: Ad group ID.
type: string
pattern: ^\d+$
example: '2680060704746'
required:
- id
AdGroupsAnalyticsResponse:
type: array
items:
type: object
properties:
AD_GROUP_ID:
description: The ID of the ad group that this metrics belongs to.
type: string
pattern: ^\d+$
DATE:
description: Current metrics date. Only returned when granularity is a
time-based value (`DAY`, `HOUR`, `WEEK`, `MONTH`)
type: string
format: date
required:
- AD_GROUP_ID
additionalProperties: true
example:
DATE: '2021-04-01'
AD_GROUP_ID: '547602124502'
SPEND_IN_DOLLAR: 30
TOTAL_CLICKTHROUGH: 216
AdGroupAudienceSizingRequest:
type: object
properties:
auto_targeting_enabled:
type: boolean
description: Enable auto-targeting for ad group. Also known as "expanded targeting".
example: true
default: true
placement_group:
type: string
allOf:
- $ref: '#/components/schemas/PlacementGroupType'
default: ALL
description: Placement group.
creative_types:
description: Pin creative types filter.
review_status
is "REJECTED".
type: array
items:
type: string
description: ad disapproval reasons
enum:
- HASHTAGS
- PROMOTIONS_AND_PRICES
- TARGETING
- LANDING_PAGE
- CAPS_AND_SYMBOLS
- SHOCKING
- WEIGHT_LOSS
- PROHIBITED_PRODUCT
- AUTHENTICITY
- NUDITY
- CONFUSING_DESIGN
- URGENCY
- RATINGS
- APP
- ALCOHOL
- CONTESTS
- POLITICAL
- OTHER
- IMAGE
- NAR
- INCONSISTENT
- CLICKBAIT
- NO_DESCRIPTION
- LOW_QUALITY
- EXAGGERATED_CLAIMS
- PINTEREST_BRAND
- ALCOHOL_NO_SALE
- LANDING_PAGE_SPEED
- LANDING_PAGE_HARDWALL
- LANDING_PAGE_BROKEN
- LANDING_PAGE_QUALITY
- OUT_OF_STOCK
- IMAGE_LOW_QUALITY
- IMAGE_BUSY
- IMAGE_POORLY_EDITED
- IMAGE_BEFORE_AFTER
- UGC
- FAKE_BUTTONS
- WEAPONS
- SENSITIVE
- UNACCEPTABLE_BUSINESS
- SUSPICIOUS_CLAIMS
- PHARMA
- SUSPICIOUS_SUPPLEMENTS
- ILLEGAL_RECREATIONAL_DRUG
- LOW_QUALITY_LANDING_PAGE
- RESTRICTED_HEALTHCARE
- INCONSISTENT_LANG_FR
rejection_labels:
description: Text reason why the pin was rejected. Returned if review_status
is "REJECTED".
type: array
items:
type: string
review_status:
type: string
description: Ad review status
example: PENDING
enum:
- OTHER
- PENDING
- REJECTED
- APPROVED
type:
description: Always "ad".
example: pinpromotion
type: string
updated_time:
description: Last update time. Unix timestamp in seconds.
example: 1451431341
type: integer
summary_status:
type: string
allOf:
- $ref: '#/components/schemas/PinPromotionSummaryStatus'
description: Ad summary status
AdUpdateRequest:
type: object
allOf:
- $ref: '#/components/schemas/AdCommon'
- type: object
title: AdUpdateRequest
properties:
id:
type: string
example: '687195134316'
pattern: ^\d+$
description: The ID of this ad.
title: id
pin_id:
type: string
description: Pin ID. This field may only be updated for draft ads.
example: '394205773611545468'
pattern: ^\d+$
nullable: true
required:
- id
AdsAnalyticsCreateAsyncRequest:
type: object
allOf:
- type: object
properties:
start_date:
description: 'Metric report start date (UTC). Format: YYYY-MM-DD'
type: string
pattern: ^(\d{4})-(\d{2})-(\d{2})$
example: '2020-12-20'
end_date:
description: 'Metric report end date (UTC). Format: YYYY-MM-DD'
type: string
pattern: ^(\d{4})-(\d{2})-(\d{2})$
example: '2020-12-20'
granularity:
description: TOTAL - metrics are aggregated over the specified date range.<= 2000 characters
The link to the main hotel image. Image should be at least 75x75 pixels to avoid errors. Use the additional_image_link field to add more images of your hotel. The URL of your main_image.link must be accessible by the Pinterest user-agent, and send the accurate image. Please make sure there is no template or placeholder image at the link. Must start with http:// or https://.
tag: type: array nullable: true description: Tag appended to the image that identifies image category or details. There can be multiple tags associated with an image items: type: string additional_image_link: type: array nullable: true items: type: string description: |-<= 2000 characters
The links to additional images for your hotel. Up to ten additional images can be used to show a hotel from different angles. Must begin with http:// or https://.
example: - https://scene.example.com/image/image_v2.jpg - https://scene.example.com/image/image_v3.jpg - $ref: '#/components/schemas/CatalogsUpdatableHotelAttributes' CatalogsRetailFeedsCreateRequest: type: object title: feeds_retail_create_request description: Request object for creating a retail feed. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' default_locale: description: The locale used within a feed for product descriptions. example: en-US anyOf: - description: The locale used within a feed for product descriptions. $ref: '#/components/schemas/CatalogsLocale' - description: The locale used within a feed for product descriptions. This free text string version is deprecated in favor of official list of supported locales defined by CatalogsLocale. type: string deprecated: true credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. pattern: ^(http|https|ftp|sftp):// type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' catalog_type: $ref: '#/components/schemas/CatalogsType' default_country: $ref: '#/components/schemas/Country' default_availability: $ref: '#/components/schemas/ProductAvailabilityType' required: - format - location - name - catalog_type - default_country - default_locale CatalogsRetailItemsFilter: type: object properties: catalog_type: type: string enum: - RETAIL item_ids: type: array minItems: 1 maxItems: 100 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the retail item. If not provided, default to oldest retail catalog required: - catalog_type - item_ids CatalogsRetailItemsPostFilter: type: object properties: catalog_type: type: string enum: - RETAIL item_ids: type: array minItems: 1 maxItems: 1000 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the retail item. If not provided, default to oldest retail catalog required: - catalog_type - item_ids CatalogsHotelFeedsCreateRequest: type: object title: feeds_hotel_create_request description: Request object for creating a feed. Please, be aware that "default_country" and "default_locale" are not required in the spec for forward compatibility but for now the API will not accept requests without those fields. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' default_locale: description: The locale used within a feed for product descriptions. example: en-US anyOf: - description: The locale used within a feed for product descriptions. $ref: '#/components/schemas/CatalogsLocale' - description: The locale used within a feed for product descriptions. This free text string version is deprecated in favor of official list of supported locales defined by CatalogsLocale. type: string deprecated: true credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. pattern: ^(http|https|ftp|sftp):// type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' catalog_type: $ref: '#/components/schemas/CatalogsType' catalog_id: description: Catalog id pertaining to the feed. If not provided, feed will use a default catalog based on type. At the moment a catalog can not have multiple hotel feeds but this will change in the future. nullable: true type: string pattern: ^\d+$ required: - format - location - name - catalog_type - default_locale CatalogsHotelItemsFilter: type: object properties: catalog_type: type: string enum: - HOTEL hotel_ids: type: array minItems: 1 maxItems: 100 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the hotel item. If not provided, default to oldest hotel catalog required: - catalog_type - hotel_ids CatalogsHotelItemsPostFilter: type: object properties: catalog_type: type: string enum: - HOTEL hotel_ids: type: array minItems: 1 maxItems: 1000 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the hotel item. If not provided, default to oldest hotel catalog required: - catalog_type - hotel_ids CatalogsCreativeAssetsItemsFilter: type: object properties: catalog_type: type: string enum: - CREATIVE_ASSETS creative_assets_ids: type: array minItems: 1 maxItems: 100 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the creative assets item. If not provided, default to oldest creative assets catalog required: - catalog_type - creative_assets_ids CatalogsCreativeAssetsItemsPostFilter: type: object properties: catalog_type: type: string enum: - CREATIVE_ASSETS creative_assets_ids: type: array minItems: 1 maxItems: 1000 items: type: string catalog_id: type: string pattern: ^\d+$ description: Catalog id pertaining to the creative assets item. If not provided, default to oldest creative assets catalog required: - catalog_type - creative_assets_ids CatalogsCreativeAssetsFeedsCreateRequest: type: object title: feeds_creative_assets_create_request description: Request object for creating a feed. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' default_locale: description: The locale used within a feed for product descriptions. example: en-US anyOf: - description: The locale used within a feed for product descriptions. $ref: '#/components/schemas/CatalogsLocale' - description: The locale used within a feed for product descriptions. This free text string version is deprecated in favor of official list of supported locales defined by CatalogsLocale. type: string deprecated: true default_country: $ref: '#/components/schemas/Country' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. pattern: ^(http|https|ftp|sftp):// type: string preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' catalog_type: $ref: '#/components/schemas/CatalogsType' catalog_id: description: Catalog id pertaining to the feed. If not provided, feed will use a default catalog based on type. At the moment a catalog can not have multiple creative assets feeds but this will change in the future. nullable: true type: string pattern: ^\d+$ required: - format - location - name - catalog_type - default_country - default_locale CatalogsVerticalFeedsCreateRequest: type: object title: feeds_create_request description: Request object for creating a feed. oneOf: - $ref: '#/components/schemas/CatalogsRetailFeedsCreateRequest' - $ref: '#/components/schemas/CatalogsHotelFeedsCreateRequest' - $ref: '#/components/schemas/CatalogsCreativeAssetsFeedsCreateRequest' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailFeedsCreateRequest' HOTEL: '#/components/schemas/CatalogsHotelFeedsCreateRequest' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsFeedsCreateRequest' CatalogsCreativeAssetsFeedsUpdateRequest: type: object title: catalogs_feeds_update_request description: Request object for updating a feed. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: type: string pattern: ^(http|https|ftp|sftp):// description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type CatalogsRetailFeedsUpdateRequest: type: object title: catalogs_feeds_update_request description: Request object for updating a feed. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: type: string pattern: ^(http|https|ftp|sftp):// description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' default_availability: $ref: '#/components/schemas/ProductAvailabilityType' required: - catalog_type CatalogsHotelFeedsUpdateRequest: type: object title: catalogs_feeds_update_request description: Request object for updating a feed. additionalProperties: false properties: default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: type: string pattern: ^(http|https|ftp|sftp):// description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type CatalogsVerticalFeedsUpdateRequest: type: object title: feeds_update_request description: Request object for updating a feed. oneOf: - $ref: '#/components/schemas/CatalogsRetailFeedsUpdateRequest' - $ref: '#/components/schemas/CatalogsHotelFeedsUpdateRequest' - $ref: '#/components/schemas/CatalogsCreativeAssetsFeedsUpdateRequest' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailFeedsUpdateRequest' HOTEL: '#/components/schemas/CatalogsHotelFeedsUpdateRequest' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsFeedsUpdateRequest' CatalogsFeedsUpdateRequest: type: object title: legacy_retail_only description: Request object for updating a feed. additionalProperties: false properties: default_availability: $ref: '#/components/schemas/ProductAvailabilityType' default_currency: $ref: '#/components/schemas/NullableCurrency' name: description: A human-friendly name associated to a given feed. type: string format: $ref: '#/components/schemas/CatalogsFormat' credentials: $ref: '#/components/schemas/CatalogsFeedCredentials' location: type: string pattern: ^(http|https|ftp|sftp):// description: The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing. preferred_processing_schedule: $ref: '#/components/schemas/CatalogsFeedProcessingSchedule' status: $ref: '#/components/schemas/CatalogsStatus' CatalogsFormat: description: The file format of a feed. type: string enum: - TSV - CSV - XML CatalogsItemValidationDetails: type: object properties: attribute_name: $ref: '#/components/schemas/NullableCatalogsItemFieldType' description: Attribute that has a validation issue. provided_value: type: string nullable: true description: Provided value that caused the validation issue. required: - attribute_name - provided_value CatalogsItemValidationErrors: type: object properties: ADULT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an invalid adult value. ADWORDS_FORMAT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Adword link contains too many characters. AVAILABILITY_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing availability value in its product metadata, this item will not be published. BLOCKLISTED_IMAGE_SIGNATURE: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item will not be published because it doesn't meet Pinterest's Merchant Guidelines. DESCRIPTION_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing description in its product metadata, this item will not be published. DUPLICATE_PRODUCTS: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: This product is duplicated. The duplicate entry will not be published. IMAGE_LINK_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Image link is invalid. IMAGE_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has image_link URL that contains too many characters, so the item will not be published. IMAGE_LINK_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing an image link URL in its product metadata, this item will not be published. INVALID_DOMAIN: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Product link value doesn't match the verified domain associated with this account. ITEMID_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing item id in its product metadata, this item will not be published. ITEM_MAIN_IMAGE_DOWNLOAD_FAILURE: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Main image can't be found. LINK_FORMAT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Link is invalid. LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Product link contains too many characters, this item will not be published. LIST_PRICE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a list price formatting error, this item will not be published. MAX_ITEMS_PER_ITEM_GROUP_EXCEEDED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item exceed the maximum number of items per item group, this item will not be published. PARSE_LINE_ERROR: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item contains formating errors. PINJOIN_CONTENT_UNSAFE: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item will not be published because it doesn't meet Pinterest's Merchant Guidelines. PRICE_CANNOT_BE_DETERMINED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item price cannot be determined because the price, list price, and sale price are all different. PRICE_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Product is missing a price, this item will not be published. PRODUCT_LINK_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing a link URL in its product metadata, this item will not be published. PRODUCT_PRICE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a price formatting error in its product metadata, this item will not be published. TITLE_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing title in its product metadata, this item will not be published. CatalogsItemValidationIssue: type: string enum: - AD_LINK_FORMAT_WARNING - AD_LINK_SAME_AS_LINK - ADDITIONAL_IMAGE_LINK_LENGTH_TOO_LONG - ADDITIONAL_IMAGE_LINK_WARNING - ADULT_INVALID - ADWORDS_FORMAT_INVALID - ADWORDS_FORMAT_WARNING - ADWORDS_SAME_AS_LINK - AGE_GROUP_INVALID - ANDROID_DEEP_LINK_INVALID - AVAILABILITY_DATE_INVALID - AVAILABILITY_INVALID - BLOCKLISTED_IMAGE_SIGNATURE - COUNTRY_DOES_NOT_MAP_TO_CURRENCY - CUSTOM_LABEL_LENGTH_TOO_LONG - DESCRIPTION_LENGTH_TOO_LONG - DESCRIPTION_MISSING - DUPLICATE_PRODUCTS - EXPIRATION_DATE_INVALID - GENDER_INVALID - GTIN_INVALID - IMAGE_LINK_INVALID - IMAGE_LINK_LENGTH_TOO_LONG - IMAGE_LINK_MISSING - IMAGE_LINK_WARNING - INVALID_DOMAIN - IOS_DEEP_LINK_INVALID - IS_BUNDLE_INVALID - ITEM_ADDITIONAL_IMAGE_DOWNLOAD_FAILURE - ITEM_MAIN_IMAGE_DOWNLOAD_FAILURE - ITEMID_MISSING - LINK_FORMAT_INVALID - LINK_FORMAT_WARNING - LINK_LENGTH_TOO_LONG - LIST_PRICE_INVALID - MAX_ITEMS_PER_ITEM_GROUP_EXCEEDED - MIN_AD_PRICE_INVALID - MPN_INVALID - MULTIPACK_INVALID - OPTIONAL_CONDITION_INVALID - OPTIONAL_CONDITION_MISSING - OPTIONAL_PRODUCT_CATEGORY_INVALID - OPTIONAL_PRODUCT_CATEGORY_MISSING - PARSE_LINE_ERROR - PINJOIN_CONTENT_UNSAFE - PRICE_CANNOT_BE_DETERMINED - PRICE_MISSING - PRODUCT_CATEGORY_DEPTH_WARNING - PRODUCT_LINK_MISSING - PRODUCT_PRICE_INVALID - PRODUCT_TYPE_LENGTH_TOO_LONG - SALE_DATE_INVALID - SALES_PRICE_INVALID - SALES_PRICE_TOO_HIGH - SALES_PRICE_TOO_LOW - SHIPPING_INVALID - SHIPPING_HEIGHT_INVALID - SHIPPING_WEIGHT_INVALID - SHIPPING_WIDTH_INVALID - SIZE_SYSTEM_INVALID - SIZE_TYPE_INVALID - TAX_INVALID - TITLE_LENGTH_TOO_LONG - TITLE_MISSING - TOO_MANY_ADDITIONAL_IMAGE_LINKS - UTM_SOURCE_AUTO_CORRECTED - WEIGHT_UNIT_INVALID CatalogsItemValidationIssues: type: object properties: item_number: description: Item number based on order of appearance in the Catalogs Feed. For example, '0' refers to first item found in a feed that was downloaded from a 'location' specified during feed creation. example: 0 type: integer item_id: description: The merchant-created unique ID that represents the product. example: DS0294-L type: string nullable: true errors: $ref: '#/components/schemas/CatalogsItemValidationErrors' warnings: $ref: '#/components/schemas/CatalogsItemValidationWarnings' required: - item_number - item_id - errors - warnings CatalogsItemValidationWarnings: type: object properties: AD_LINK_FORMAT_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an ad link that is formatted incorrectly. AD_LINK_SAME_AS_LINK: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an ad link URL that is duplicate of the link URL. ADDITIONAL_IMAGE_LINK_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an additional_image_link URL that contains too many characters, so the item will not be published. ADDITIONAL_IMAGE_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has additional_image_link URLs that are formatted incorrectly and will not be published with your items. ADWORDS_FORMAT_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an adwords_redirect link that is formatted incorrectly. ADWORDS_SAME_AS_LINK: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an adwords_redirect URL that is duplicate of the link URL. AGE_GROUP_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an age group value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences. SIZE_SYSTEM_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Some items have size system values which are not one of the supported size systems. ANDROID_DEEP_LINK_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes an invalid android_deep_link. AVAILABILITY_DATE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an availability_date value that is formatted incorrectly, this item will be published without an availability date. COUNTRY_DOES_NOT_MAP_TO_CURRENCY: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes a currency that doesn't match the usual currency for the location where the product is sold or shipped. CUSTOM_LABEL_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a custom_label value that is too long, this item will be published without that custom label. DESCRIPTION_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: The description for this item was truncated because it contains too many characters. EXPIRATION_DATE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an expiration_date value that is formatted incorrectly, this item will be published without an expiration date. GENDER_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a gender value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences. GTIN_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a GTIN value that is formatted incorrectly. IMAGE_LINK_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an image_link URL that is formatted incorrectly and will not be published. IOS_DEEP_LINK_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes an invalid ios_deep_link value. IS_BUNDLE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an is_bundle value that is formatted incorrectly, this item will be published without being bundled with other products. ITEM_ADDITIONAL_IMAGE_DOWNLOAD_FAILURE: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes additional_image_links that can't be found. LINK_FORMAT_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an invalid product link which contains invalid UTM tracking paramaters. MIN_AD_PRICE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes a min_ad_price value that is formatted incorrectly. MPN_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a MPN value that is formatted incorrectly. MULTIPACK_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an invalid multipack value. OPTIONAL_CONDITION_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes a condition value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences. OPTIONAL_CONDITION_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing condition value, which may limit visibility in recommendations, search results and shopping experiences. OPTIONAL_PRODUCT_CATEGORY_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes a google_product_category value that is not formatted correctly according to the GPC taxonomy. OPTIONAL_PRODUCT_CATEGORY_MISSING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item is missing google_product_category. PRODUCT_CATEGORY_DEPTH_WARNING: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item only has 1 or 2 levels of google_product_category value, which may limit visibility in recommendations, search results and shopping experiences. PRODUCT_TYPE_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a product_type value that is too long, this item will be published without that product type. SALES_PRICE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an incorrectly formatted sales price. SALES_PRICE_TOO_LOW: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a sale price value that is discounted very low compared to the price. SALES_PRICE_TOO_HIGH: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a sale price value that is higher than the original price of the item. SALE_DATE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a sale_price_effective_date value that is formatted incorrectly, this item will be published without a sale date. SHIPPING_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a shipping value that is formatted incorrectly. SHIPPING_HEIGHT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an incorrectly formatted shipping_height value. The value must first contain a numeric value then a valid dimension unit type. SHIPPING_WEIGHT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an invalid shipping_weight value. SHIPPING_WIDTH_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has an incorrectly formatted shipping_width value. The value must first contain a numeric value then a valid dimension unit type. SIZE_TYPE_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a size type value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences. TAX_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a tax value that is formatted incorrectly. TITLE_LENGTH_TOO_LONG: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: The title for the item was truncated because it contains too many characters. TOO_MANY_ADDITIONAL_IMAGE_LINKS: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a additional_image_link value that exceed the limit for additional images, this item will be published without some of your images. UTM_SOURCE_AUTO_CORRECTED: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item includes an utm_source value that is formatted incorrectly and has been automatically corrected. WEIGHT_UNIT_INVALID: $ref: '#/components/schemas/CatalogsItemValidationDetails' description: Item has a weight_unit value that is formatted incorrectly, this item will be published without a weight unit. CatalogsItems: type: object description: Response object of catalogs items properties: items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemResponse' CatalogsItemsBatch: type: object description: Object describing the catalogs items batch properties: catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type oneOf: - $ref: '#/components/schemas/CatalogsRetailItemsBatch' - $ref: '#/components/schemas/CatalogsHotelItemsBatch' - $ref: '#/components/schemas/CatalogsCreativeAssetsItemsBatch' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailItemsBatch' HOTEL: '#/components/schemas/CatalogsHotelItemsBatch' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsItemsBatch' CatalogsItemsFilters: type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type oneOf: - $ref: '#/components/schemas/CatalogsRetailItemsFilter' - $ref: '#/components/schemas/CatalogsHotelItemsFilter' - $ref: '#/components/schemas/CatalogsCreativeAssetsItemsFilter' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailItemsFilter' HOTEL: '#/components/schemas/CatalogsHotelItemsFilter' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsItemsFilter' CatalogsItemsPostFilters: type: object properties: catalog_type: $ref: '#/components/schemas/CatalogsType' required: - catalog_type oneOf: - $ref: '#/components/schemas/CatalogsRetailItemsPostFilter' - $ref: '#/components/schemas/CatalogsHotelItemsPostFilter' - $ref: '#/components/schemas/CatalogsCreativeAssetsItemsPostFilter' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailItemsPostFilter' HOTEL: '#/components/schemas/CatalogsHotelItemsPostFilter' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsItemsPostFilter' CatalogsCreativeAssetsItemsBatch: type: object description: Object describing the catalogs creative assets items batch properties: batch_id: description: Id of the catalogs items batch example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e type: string created_time: description: 'Time of the batch creation: YYYY-MM-DD''T''hh:mm:ssTZD' example: '2020-01-01T20:10:40-00:00' type: string format: date-time readOnly: true completed_time: description: 'Time of the batch completion: YYYY-MM-DD''T''hh:mm:ssTZD' example: '2022-03-10T15:37:10-00:00' type: string format: date-time readOnly: true nullable: true status: $ref: '#/components/schemas/BatchOperationStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' items: description: Array with the catalogs items processing records part of the catalogs items batch items: $ref: '#/components/schemas/CreativeAssetsProcessingRecord' type: array required: - catalog_type CatalogsHotelItemsBatch: type: object description: Object describing the catalogs hotel items batch properties: batch_id: description: Id of the catalogs items batch example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e type: string created_time: description: 'Time of the batch creation: YYYY-MM-DD''T''hh:mm:ssTZD' example: '2020-01-01T20:10:40-00:00' type: string format: date-time readOnly: true completed_time: description: 'Time of the batch completion: YYYY-MM-DD''T''hh:mm:ssTZD' example: '2022-03-10T15:37:10-00:00' type: string format: date-time readOnly: true nullable: true status: $ref: '#/components/schemas/BatchOperationStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' items: description: Array with the catalogs items processing records part of the catalogs items batch items: $ref: '#/components/schemas/HotelProcessingRecord' type: array required: - catalog_type CatalogsRetailItemsBatch: type: object description: Object describing the catalogs retail items batch properties: batch_id: description: Id of the catalogs items batch example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e type: string created_time: description: 'Time of the batch creation: YYYY-MM-DD''T''hh:mm:ssTZD' example: '2020-01-01T20:10:40-00:00' type: string format: date-time readOnly: true completed_time: description: 'Time of the batch completion: YYYY-MM-DD''T''hh:mm:ssTZD' example: '2022-03-10T15:37:10-00:00' type: string format: date-time readOnly: true nullable: true status: $ref: '#/components/schemas/BatchOperationStatus' catalog_type: $ref: '#/components/schemas/CatalogsType' items: description: Array with the catalogs items processing records part of the catalogs items batch items: $ref: '#/components/schemas/ItemProcessingRecord' type: array required: - catalog_type CatalogsItemsRequest: type: object additionalProperties: false description: Request object of catalogs items properties: country: $ref: '#/components/schemas/Country' language: $ref: '#/components/schemas/Language' filters: $ref: '#/components/schemas/CatalogsItemsPostFilters' required: - country - language - filters CatalogsItemsBatchRequest: type: object title: legacy_retail_only description: Request object of catalogs items batch oneOf: - $ref: '#/components/schemas/CatalogsItemsUpdateBatchRequest' - $ref: '#/components/schemas/CatalogsItemsUpsertBatchRequest' - $ref: '#/components/schemas/CatalogsItemsCreateBatchRequest' - $ref: '#/components/schemas/CatalogsItemsDeleteDiscontinuedBatchRequest' - $ref: '#/components/schemas/CatalogsItemsDeleteBatchRequest' discriminator: propertyName: operation mapping: UPDATE: '#/components/schemas/CatalogsItemsUpdateBatchRequest' UPSERT: '#/components/schemas/CatalogsItemsUpsertBatchRequest' CREATE: '#/components/schemas/CatalogsItemsCreateBatchRequest' DELETE_DISCONTINUED: '#/components/schemas/CatalogsItemsDeleteDiscontinuedBatchRequest' DELETE: '#/components/schemas/CatalogsItemsDeleteBatchRequest' CatalogsItemsCreateBatchRequest: description: Request object to create catalogs items type: object additionalProperties: false properties: country: $ref: '#/components/schemas/Country' language: $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemCreateBatchRecord' minItems: 1 maxItems: 1000 required: - country - language - operation - items CatalogsItemsDeleteBatchRequest: description: Request object to delete catalogs items type: object additionalProperties: false properties: country: $ref: '#/components/schemas/Country' language: $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemDeleteBatchRecord' required: - country - language - operation - items CatalogsItemsDeleteDiscontinuedBatchRequest: description: Request object to discontinue catalogs items type: object additionalProperties: false properties: country: $ref: '#/components/schemas/Country' language: $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemDeleteDiscontinuedBatchRecord' required: - country - language - operation - items CatalogsItemsUpdateBatchRequest: description: Request object to update catalogs items type: object additionalProperties: false properties: country: $ref: '#/components/schemas/Country' language: $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemUpdateBatchRecord' minItems: 1 maxItems: 1000 required: - country - language - operation - items CatalogsItemsUpsertBatchRequest: description: Request object to upsert catalogs items type: object properties: country: $ref: '#/components/schemas/Country' language: $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: type: array description: Array with catalogs items items: $ref: '#/components/schemas/ItemUpsertBatchRecord' minItems: 1 maxItems: 1000 required: - country - language - operation - items CatalogsListProductsByFilterRequest: description: Request object to list products for a given product group filter. type: object oneOf: - description: Request object to list products for a given feed_id and product group filter. type: object additionalProperties: false properties: feed_id: description: Catalog Feed id pertaining to the catalog product group filter. example: '2680059592705' type: string pattern: ^\d+$ filters: $ref: '#/components/schemas/CatalogsProductGroupFilters' required: - feed_id - filters CatalogsLocale: type: string enum: - af-ZA - ar-SA - bg-BG - bn-IN - cs-CZ - da-DK - de - el-GR - en-AU - en-CA - en-GB - en-IN - en-US - es-419 - es-AR - es-ES - es-MX - fi-FI - fr - fr-CA - he-IL - hi-IN - hr-HR - hu-HU - id-ID - it - ja - ko-KR - ms-MY - nb-NO - nl - pl-PL - pt-BR - pt-PT - ro-RO - ru-RU - sk-SK - sv-SE - te-IN - th-TH - tl-PH - tr - uk-UA - vi-VN - zh-CN - zh-TW CatalogsProduct: type: object properties: metadata: $ref: '#/components/schemas/CatalogsProductMetadata' pin: $ref: '#/components/schemas/Pin' required: - metadata - pin CatalogsVerticalProductGroup: type: object title: product_group oneOf: - $ref: '#/components/schemas/CatalogsRetailProductGroup' - $ref: '#/components/schemas/CatalogsHotelProductGroup' - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroup' discriminator: propertyName: catalog_type mapping: RETAIL: '#/components/schemas/CatalogsRetailProductGroup' HOTEL: '#/components/schemas/CatalogsHotelProductGroup' CREATIVE_ASSETS: '#/components/schemas/CatalogsCreativeAssetsProductGroup' CatalogsCreativeAssetsProductGroup: type: object title: creative_assets_product_group properties: catalog_type: type: string enum: - CREATIVE_ASSETS id: description: ID of the creative assets product group. example: '443727193917' type: string pattern: ^\d+$ name: description: Name of creative assets product group example: Most Popular type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' created_at: description: Unix timestamp in seconds of when catalog product group was created. example: 1621350033000 type: integer updated_at: description: Unix timestamp in seconds of last time catalog product group was updated. example: 1622742155000 type: integer catalog_id: description: Catalog id pertaining to the creative assets product group. type: string pattern: ^\d+$ required: - id - filters - catalog_type - catalog_id CatalogsCreativeAssetsProductGroupFilters: description: Object holding a group of filters for a creative assets product group title: catalogs_product_group_filters type: object anyOf: - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFiltersAnyOf' - $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFiltersAllOf' CatalogsCreativeAssetsProductGroupFiltersAllOf: type: object additionalProperties: false properties: all_of: type: array items: type: object $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilterKeys' required: - all_of CatalogsCreativeAssetsProductGroupFiltersAnyOf: type: object additionalProperties: false properties: any_of: type: array items: type: object $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilterKeys' required: - any_of CatalogsCreativeAssetsProductGroupFilterKeys: title: catalogs_product_group_keys anyOf: - $ref: '#/components/schemas/CreativeAssetsIdFilter' - $ref: '#/components/schemas/CustomLabel0Filter' - $ref: '#/components/schemas/CustomLabel1Filter' - $ref: '#/components/schemas/CustomLabel2Filter' - $ref: '#/components/schemas/CustomLabel3Filter' - $ref: '#/components/schemas/CustomLabel4Filter' - $ref: '#/components/schemas/GoogleProductCategory6Filter' - $ref: '#/components/schemas/GoogleProductCategory5Filter' - $ref: '#/components/schemas/GoogleProductCategory4Filter' - $ref: '#/components/schemas/GoogleProductCategory3Filter' - $ref: '#/components/schemas/GoogleProductCategory2Filter' - $ref: '#/components/schemas/GoogleProductCategory1Filter' - $ref: '#/components/schemas/GoogleProductCategory0Filter' - $ref: '#/components/schemas/MediaTypeFilter' CatalogsCreativeAssetsProductGroupCreateRequest: type: object title: creative_assets_product_groups_create_request additionalProperties: false description: Request object for creating a creative assets product group. properties: catalog_type: type: string enum: - CREATIVE_ASSETS name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' catalog_id: description: Catalog id pertaining to the creative assets product group. example: '2680059592705' type: string pattern: ^\d+$ required: - name - filters - catalog_id - catalog_type CatalogsCreativeAssetsProductGroupUpdateRequest: type: object title: creative_assets_product_groups_update_request additionalProperties: false description: Request object for updating a creative assets product group. properties: catalog_type: type: string enum: - CREATIVE_ASSETS name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsCreativeAssetsProductGroupFilters' CatalogsHotelProductGroup: type: object title: hotel_product_group properties: catalog_type: type: string enum: - HOTEL id: description: ID of the hotel product group. example: '443727193917' type: string pattern: ^\d+$ name: description: Name of hotel product group example: Most Popular type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' created_at: description: Unix timestamp in seconds of when catalog product group was created. example: 1621350033000 type: integer updated_at: description: Unix timestamp in seconds of last time catalog product group was updated. example: 1622742155000 type: integer catalog_id: description: Catalog id pertaining to the hotel product group. type: string pattern: ^\d+$ required: - id - filters - catalog_type - catalog_id CatalogsHotelProductGroupFilterKeys: title: catalogs_product_group_keys anyOf: - $ref: '#/components/schemas/PriceFilter' - $ref: '#/components/schemas/HotelIdFilter' - $ref: '#/components/schemas/BrandFilter' - $ref: '#/components/schemas/CustomLabel0Filter' - $ref: '#/components/schemas/CustomLabel1Filter' - $ref: '#/components/schemas/CustomLabel2Filter' - $ref: '#/components/schemas/CustomLabel3Filter' - $ref: '#/components/schemas/CustomLabel4Filter' - $ref: '#/components/schemas/CountryFilter' CatalogsHotelProductGroupFilters: description: Object holding a group of filters for a hotel product group title: catalogs_product_group_filters type: object anyOf: - $ref: '#/components/schemas/CatalogsHotelProductGroupFiltersAnyOf' - $ref: '#/components/schemas/CatalogsHotelProductGroupFiltersAllOf' CatalogsHotelProductGroupFiltersAllOf: type: object additionalProperties: false properties: all_of: type: array items: type: object $ref: '#/components/schemas/CatalogsHotelProductGroupFilterKeys' required: - all_of CatalogsHotelProductGroupFiltersAnyOf: type: object additionalProperties: false properties: any_of: type: array items: type: object $ref: '#/components/schemas/CatalogsHotelProductGroupFilterKeys' required: - any_of CatalogsRetailProductGroup: type: object title: retail_product_group properties: catalog_type: type: string enum: - RETAIL id: description: ID of the catalog product group. example: '443727193917' type: string pattern: ^\d+$ name: description: Name of catalog product group example: Most Popular type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsProductGroupFilters' is_featured: description: boolean indicator of whether the product group is being featured or not type: boolean type: $ref: '#/components/schemas/CatalogsProductGroupType' status: $ref: '#/components/schemas/CatalogsProductGroupStatus' created_at: description: Unix timestamp in seconds of when catalog product group was created. example: 1621350033000 type: integer updated_at: description: Unix timestamp in seconds of last time catalog product group was updated. example: 1622742155000 type: integer catalog_id: description: Catalog id pertaining to the retail product group. type: string pattern: ^\d+$ feed_id: description: id of the catalogs feed belonging to this catalog product group example: '2680059592705' type: string pattern: ^\d+$ nullable: true required: - filters - id - catalog_id - feed_id - catalog_type CatalogsHotelProductGroupCreateRequest: type: object title: hotel_product_groups_create_request additionalProperties: false description: Request object for creating a hotel product group. properties: catalog_type: type: string enum: - HOTEL name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' catalog_id: description: Catalog id pertaining to the hotel product group. example: '2680059592705' type: string pattern: ^\d+$ required: - name - filters - catalog_id - catalog_type CatalogsRetailProductGroupCreateRequest: type: object title: retail_product_groups_create_request additionalProperties: false description: Request object for creating a product group. properties: catalog_type: type: string enum: - RETAIL description: Retail catalog based product group is available only for selected partners at the moment. If you are not eligible, please use feed based one. name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsProductGroupFiltersRequest' catalog_id: description: Catalog id pertaining to the retail product group. example: '2680059592705' type: string pattern: ^\d+$ country: $ref: '#/components/schemas/Country' locale: $ref: '#/components/schemas/CatalogsLocale' required: - name - filters - catalog_id - catalog_type - country - locale CatalogsHotelProductGroupUpdateRequest: type: object title: hotel_product_groups_update_request additionalProperties: false description: Request object for updating a hotel product group. properties: catalog_type: type: string enum: - HOTEL name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsHotelProductGroupFilters' CatalogsRetailProductGroupUpdateRequest: type: object title: retail_product_groups_update_request additionalProperties: false description: Request object for updating a retail product group. properties: catalog_type: type: string enum: - RETAIL description: Retail catalog based product group is available only for selected partners at the moment. If you are not eligible, please use feed based one. name: type: string description: type: string nullable: true filters: $ref: '#/components/schemas/CatalogsProductGroupFiltersRequest' country: $ref: '#/components/schemas/Country' locale: $ref: '#/components/schemas/CatalogsLocale' CatalogsProductGroupCreateRequest: type: object title: retail feed based description: Request object for creating a product group. properties: name: type: string description: type: string nullable: true is_featured: description: boolean indicator of whether the product group is being featured or not type: boolean default: false filters: $ref: '#/components/schemas/CatalogsProductGroupFiltersRequest' feed_id: description: Catalog Feed id pertaining to the catalog product group. example: '2680059592705' type: string pattern: ^\d+$ required: - name - filters - feed_id CatalogsProductGroupCurrencyCriteria: title: catalogs_product_group_currency_criteria type: object description: A currency filter. This filter cannot be negated additionalProperties: false properties: values: $ref: '#/components/schemas/NonNullableCatalogsCurrency' negated: type: boolean default: false enum: - false required: - values CatalogsProductGroupFilterKeys: title: catalogs_product_group_keys anyOf: - $ref: '#/components/schemas/MinPriceFilter' - $ref: '#/components/schemas/MaxPriceFilter' - $ref: '#/components/schemas/CurrencyFilter' - $ref: '#/components/schemas/ItemIdFilter' - $ref: '#/components/schemas/AvailabilityFilter' - $ref: '#/components/schemas/BrandFilter' - $ref: '#/components/schemas/ConditionFilter' - $ref: '#/components/schemas/CustomLabel0Filter' - $ref: '#/components/schemas/CustomLabel1Filter' - $ref: '#/components/schemas/CustomLabel2Filter' - $ref: '#/components/schemas/CustomLabel3Filter' - $ref: '#/components/schemas/CustomLabel4Filter' - $ref: '#/components/schemas/ItemGroupIdFilter' - $ref: '#/components/schemas/GenderFilter' - $ref: '#/components/schemas/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' CatalogsProductGroupFilters: description: Object holding a group of filters for a catalog product group title: catalogs_product_group_filters type: object anyOf: - $ref: '#/components/schemas/CatalogsProductGroupFiltersAnyOf' - $ref: '#/components/schemas/CatalogsProductGroupFiltersAllOf' CatalogsProductGroupFiltersAllOf: type: object additionalProperties: false properties: all_of: type: array items: type: object $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' required: - all_of CatalogsProductGroupFiltersRequest: description: Object holding a group of filters for request on catalog product group. This is a distinct schema It is not possible to create or update a Product Group with empty filters. But some automatically generated Product Groups might have empty filters. title: catalogs_product_group_filters type: object anyOf: - type: object additionalProperties: false properties: any_of: type: array items: type: object $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' minItems: 1 required: - any_of - type: object additionalProperties: false properties: all_of: type: array items: type: object $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' minItems: 1 required: - all_of CatalogsProductGroupFiltersAnyOf: type: object additionalProperties: false properties: any_of: type: array items: type: object $ref: '#/components/schemas/CatalogsProductGroupFilterKeys' required: - any_of CatalogsProductGroupMultipleCountriesCriteria: title: catalogs_product_group_multiple_country_criteria type: object additionalProperties: false properties: values: type: array items: $ref: '#/components/schemas/Country' negated: type: boolean default: false required: - values CatalogsProductGroupMultipleGenderCriteria: title: catalogs_product_group_multiple_gender_criteria type: object additionalProperties: false properties: values: type: array items: $ref: '#/components/schemas/Gender' negated: type: boolean default: false required: - values CatalogsProductGroupMultipleMediaTypesCriteria: title: catalogs_product_group_multiple_media_type_criteria type: object additionalProperties: false properties: values: type: array items: $ref: '#/components/schemas/MediaType' negated: type: boolean default: false required: - values CatalogsProductGroupMultipleStringCriteria: title: catalogs_product_group_multiple_string_criteria type: object additionalProperties: false properties: values: type: array items: type: string negated: type: boolean default: false required: - values CatalogsProductGroupMultipleStringListCriteria: title: catalogs_product_group_multiple_string_list_criteria type: object additionalProperties: false properties: values: type: array items: type: array items: type: string negated: type: boolean default: false required: - values CatalogsProductGroupPricingCriteria: title: catalogs_product_group_pricing_criteria type: object additionalProperties: false properties: inclusion: type: boolean default: true values: type: number minimum: 0 negated: type: boolean default: false required: - values CatalogsProductGroupProductCounts: title: catalogs_product_group_product_counts description: Product counts for a CatalogsProductGroup type: object properties: in_stock: type: number minimum: 0 out_of_stock: type: number minimum: 0 preorder: type: number minimum: 0 total: type: number minimum: 0 required: - in_stock - out_of_stock - preorder - total CatalogsProductGroupStatus: type: string enum: - ACTIVE - INACTIVE CatalogsProductGroupType: type: string title: product_group_type description: |-Catalog product group type
MERCHANT_CREATED: Product groups created by merchants.
ALL_PRODUCTS: Consists of every product in your latest successful feed upload.
BEST_DEALS: Consists of products with the deepest drop in price.
PINNER_FAVORITES: Consists of products that are resonating most with people on Pinterest, based on engagement.
TOP_SELLERS: Consists of products with the highest conversion rate, if you have the conversion tag installed.
BACK_IN_STOCK: Consists of products that were previously out of stock and are now in stock.
NEW_ARRIVALS: Consists of products that are new to your Catalog.
SHOPIFY_COLLECTION: Product groups created based on Shopify Product Collections.
I2PC: Product groups created based on predicted product category.
add_to_cart
checkout
\
\ custom
lead
page_visit
\
\ search
signup
view_category
\
\ watch_video
"
type: string
example: checkout
action_source:
description: The source indicating where the conversion event occurred.
app_android
app_ios
web
offline
type: string
example: app_ios
event_time:
description: The time when the event happened. Unix timestamp in seconds.
example: 1451431341
type: integer
format: int64
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_source_url:
description: URL of the web conversion event.
type: string
example: https://www.my-clothing-shop.org/
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
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 \u2018ss-shopify\u2019"
type: string
example: ss-partnername
nullable: true
user_data:
$ref: '#/components/schemas/ConversionEventsUserData'
custom_data:
description: Object containing other custom data.
type: object
additionalProperties: false
properties:
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.
example: USD
type: 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.
example: '72.39'
type: string
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:
- red-pinterest-shirt-logo-1
- purple-pinterest-shirt-logo-3
content_name:
description: The name of the page or product associated with the
event.
type: string
nullable: true
example: pinterest-themed-clothing
content_category:
description: The category of the content associated with the event.
type: string
nullable: true
example: shirts
content_brand:
description: The brand of the content associated with the event.
type: string
nullable: true
example: pinterest-brand
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).
example: red-pinterest-shirt-logo-1
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).
example: '1325.12'
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: 5
item_name:
description: The name of a product.
example: pinterest-clothing-shirt
type: string
item_category:
description: The category of a product.
example: pinterest-entertainment
type: string
item_brand:
description: The brand of a product.
example: pinterest
type: string
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: 2
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
nullable: true
example: my_order_id
search_string:
description: The search string related to the user conversion
event.
type: string
nullable: true
example: sample string
opt_out_type:
description: Flags for different privacy rights laws to opt out
users of sharing personal information. Values should be comma
separated. Please follow the Help Center and dev site for specific opt_out_type set up.
example: LDP
type: string
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
nullable: true
example: ss-company
app_id:
description: The app store app ID.
type: string
nullable: true
example: '429047995'
app_name:
description: Name of the app.
type: string
nullable: true
example: Pinterest
app_version:
description: Version of the app.
type: string
nullable: true
example: '7.9'
device_brand:
description: Brand of the user device.
type: string
nullable: true
example: Apple
device_carrier:
description: User device's mobile carrier.
type: string
nullable: true
example: T-Mobile
device_model:
description: Model of the user device.
type: string
nullable: true
example: iPhone X
device_type:
description: Type of the user device.
type: string
nullable: true
example: iPhone
os_version:
description: Version of the device operating system.
type: string
nullable: true
example: 12.1.4
wifi:
description: Whether the event occurred when the user device was connected
to wifi.
example: false
type: boolean
language:
description: Two-character ISO-639-1 language code indicating the
user's language.
example: en
type: string
nullable: true
required:
- event_name
- action_source
- event_time
- user_data
- event_id
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:
- properties:
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.
type: array
items:
type: string
example:
- 411e44ce1261728ffd2c0686e44e3fffe413c0e2c5adc498bc7da883d476b9c8
- 09831ea51bd1b7b32a836683a00a9ccaf3d05f59499f42d9883412ed79289969
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.
type: array
items:
type: string
example:
- 0192518eb84137ccfe82c8b6322d29631dae7e28ed9d0f6dd5f245d73a58c5f1
- 837b850ac46d62b2272a71de73c27801ff011ac1e36c5432620c8755cf90db46
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
example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
required:
- em
- properties:
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.
type: array
items:
type: string
example:
- 411e44ce1261728ffd2c0686e44e3fffe413c0e2c5adc498bc7da883d476b9c8
- 09831ea51bd1b7b32a836683a00a9ccaf3d05f59499f42d9883412ed79289969
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.
type: array
items:
type: string
example:
- 0192518eb84137ccfe82c8b6322d29631dae7e28ed9d0f6dd5f245d73a58c5f1
- 837b850ac46d62b2272a71de73c27801ff011ac1e36c5432620c8755cf90db46
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
example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
required:
- hashed_maids
- properties:
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.
type: array
items:
type: string
example:
- 411e44ce1261728ffd2c0686e44e3fffe413c0e2c5adc498bc7da883d476b9c8
- 09831ea51bd1b7b32a836683a00a9ccaf3d05f59499f42d9883412ed79289969
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.
type: array
items:
type: string
example:
- 0192518eb84137ccfe82c8b6322d29631dae7e28ed9d0f6dd5f245d73a58c5f1
- 837b850ac46d62b2272a71de73c27801ff011ac1e36c5432620c8755cf90db46
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
example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
required:
- client_ip_address
- client_user_agent
properties:
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.
type: array
items:
type: string
example:
- 45df139772a81b6011bdc1c9cc3d1cb408fc0b10ec0c5cb9d4d4e107f0ddc49d
ge:
description: Sha256 hashes of user's gender, in lowercase. Either "f" or
"m" or "n" for non-binary gender.
type: array
items:
type: string
example:
- 0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf
db:
description: Sha256 hashes of user's date of birthday, given as year, month,
and day.
type: array
items:
type: string
example:
- d4426a0086d10f12ad265539ae8d54221dc67786053d511407204b76e99d7739
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.
type: array
items:
type: string
example:
- 7e546b3aa43f989dd359672e6c3409d4f9d4e8f155ae1e9b90ee060985468c19
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.
type: array
items:
type: string
example:
- ec1e6a072231703f1bc41429052fff8c00a7e0c6aaec2e7107241ca8f3ceb6b2
ct:
description: Sha256 hashes of user's city, in lowercase, and without spaces
or punctuation. User residency city (mostly billing).
type: array
items:
type: string
example:
- 4ac01a129bfd10385c9278c2cf2c46fac5ab57350841234f587c8522a2e4ce36
st:
description: Sha256 hashes of user's state, given as a two-letter code in
lowercase. User residency state (mostly billing).
type: array
items:
type: string
example:
- 49a6d05b8e4b516656e464271d9dd38d0a7e0142f7f49546f4dabd2720cafc34
zp:
description: Sha256 hashes of user's zipcode, only digits. User residency
zipcode (mostly billing).
type: array
items:
type: string
example:
- fd5f56b40a79a385708428e7b32ab996a681080a166a2206e750eb4819186145
country:
description: Sha256 hashes of two-character ISO-3166 country code indicating
the user's country, in lowercase.
type: array
items:
type: string
example:
- 9b202ecbc6d45c6d8901d989a918878397a3eb9d00e8f48022fc051b19d21a1d
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.
type: array
items:
type: string
example:
- 6a7a73766627eb611720883d5a11cc62b5bfee237b00a6658d78c50032ec4aee
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
partner_id:
description: A unique identifier of visitors' information defined by third
party partners. e.g RampID
type: string
example: BUJrTlRRzGJmWhRXFZdkioV6wKPBve7Lom__GU9J74hq2NIQj4O3nOZJrp3mcUr5MptkXsI14juMOIM9mNZnM4zEUFT2JLVaFhcOfuuWz3IWEDtBf6I0DPc
nullable: true
ConversionReportAttributionType:
type: string
description: Attribution type. Refers to the Pinterest Tag endpoints
example: INDIVIDUAL
enum:
- INDIVIDUAL
- HOUSEHOLD
ConversionReportTimeType:
type: string
description: Conversion report time type
example: TIME_OF_AD_ACTION
enum:
- TIME_OF_AD_ACTION
- TIME_OF_CONVERSION
ConversionTagCommon:
type: object
properties:
ad_account_id:
description: Ad account ID.
example: '549755885175'
title: ad_account_id
type: string
code_snippet:
description: Tag code snippet.
example: