{
"openapi": "3.0.3",
"info": {
"version": "5.16.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.\n\n\nNote: If the current operation_user_account (defined by the access token)\nhas access to another user's Ad Accounts via\nPinterest Business Access,\nyou can modify your request to use the current operation_user_account's\npermissions to those Ad Accounts by including the ad_account_id in the path\nparameters for the request (e.g. .../?ad_account_id=12345&...)."
},
{
"name": "ad_groups",
"description": "View, create or update ad groups."
},
{
"name": "ads",
"description": "View, create or update ads."
},
{
"name": "advanced_auction",
"description": "View, create, or update advanced auction item bid options."
},
{
"name": "audience_insights",
"description": "View audience insights."
},
{
"name": "audience_sharing",
"description": "View, share, or revoke shared audiences.
\nAudience Sharing endpoints are not available to all apps,\nif you are interested in using them, reach out to us on our help center page.\nLearn more."
},
{
"name": "audiences",
"description": "View, create, or update audiences."
},
{
"name": "billing",
"description": "View, create, or update information related to billing."
},
{
"name": "boards",
"description": "View, create, update, or delete information about boards."
},
{
"name": "bulk",
"description": "Create, update, or download ads-related entities in bulk."
},
{
"name": "campaigns",
"description": "View, create or update campaigns."
},
{
"name": "catalog_feeds",
"description": "View and manage catalog feeds.",
"x-display-name": "feeds"
},
{
"name": "catalog_items",
"description": "View and manage catalog items directly without a feed.",
"x-display-name": "items"
},
{
"name": "catalog_product_groups",
"description": "View and manage catalog product groups using filters.",
"x-display-name": "product_groups"
},
{
"name": "catalog_regions",
"description": "View and manage catalog regions defined by sets of postal codes.",
"x-display-name": "regions"
},
{
"name": "catalog_reports",
"description": "View and manage reports about catalogs.",
"x-display-name": "reports"
},
{
"name": "catalogs",
"description": "Manage information about shopping product catalogs and items."
},
{
"name": "conversion_events",
"description": "Submit conversion events via the Pinterest API."
},
{
"name": "conversion_tags",
"description": "View, create, or update conversion tags."
},
{
"name": "customer_lists",
"description": "View, create, or update customer lists."
},
{
"name": "integrations",
"description": "View, create, or update commerce integrations."
},
{
"name": "keywords",
"description": "View, create or update keywords."
},
{
"name": "lead_ads",
"description": "View, create, or update lead ads."
},
{
"name": "lead_forms",
"description": "View lead forms."
},
{
"name": "leads_export",
"description": "Create and export leads information from lead ads."
},
{
"name": "media",
"description": "Register and manage media uploads."
},
{
"name": "msot_events",
"description": "Submit Measurement Source of Truth attributed conversion events via the Pinterest API."
},
{
"name": "oauth",
"description": "Generate and refresh OAuth access tokens."
},
{
"name": "order_lines",
"description": "View order lines."
},
{
"name": "pins",
"description": "View, create, update, or delete information about Pins."
},
{
"name": "product_group_promotions",
"description": "View, create, update, or delete information about promoted product groups."
},
{
"name": "promotions",
"description": "View, create, update, or delete promotions."
},
{
"name": "resources",
"description": "View metadata about available metrics and targeting options in the Pinterest API."
},
{
"name": "search",
"description": "Search for Pins and boards owned by the current user."
},
{
"name": "targeting_template",
"description": "View, create or update targeting templates."
},
{
"name": "terms",
"description": "View related and suggested terms for ads targeting."
},
{
"name": "terms_of_service",
"description": "View Advertising Terms Of Service."
},
{
"name": "user_account",
"description": "View user accounts associated with a given access token."
}
],
"x-tagGroups": [
{
"name": "Pin and Boards",
"tags": [
"pins",
"boards",
"media",
"aggregated_comments",
"aggregated_pin_data",
"user_account",
"entity_history"
]
},
{
"name": "Campaign Management",
"tags": [
"ad_accounts",
"campaigns",
"ad_groups",
"ads",
"product_group_promotions",
"bulk",
"labels"
]
},
{
"name": "Targeting",
"tags": [
"audiences",
"customer_lists",
"keywords",
"targeting_template",
"audience_insights",
"audience_sharing"
]
},
{
"name": "Ad Formats",
"tags": [
"lead_forms",
"lead_ads",
"leads_export",
"promotions"
]
},
{
"name": "Billing",
"tags": [
"billing",
"order_lines",
"terms_of_service"
]
},
{
"name": "Business Access",
"tags": [
"business_access_assets",
"business_access_invite",
"business_access_relationships"
]
},
{
"name": "Conversions",
"tags": [
"conversion_events",
"conversion_tags",
"msot_events"
]
},
{
"name": "Others",
"tags": [
"advanced_auction",
"integrations",
"oauth",
"resources",
"search",
"terms"
]
},
{
"name": "Shopping",
"tags": [
"catalogs",
"catalog_feeds",
"catalog_product_groups",
"catalog_reports",
"catalog_items",
"catalog_regions"
]
}
],
"paths": {
"/ad_accounts": {
"get": {
"summary": "List ad accounts",
"description": "Get a list of the ad_accounts that the \"operation user_account\" has access to.\n- This includes ad_accounts they own and ad_accounts that are owned by others who have granted them Business Access.",
"tags": [
"ad_accounts"
],
"operationId": "ad_accounts/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_include_shared_accounts"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"description": "Ad accounts",
"items": {
"$ref": "#/components/schemas/AdAccount"
}
}
}
}
]
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"post": {
"summary": "Create ad account",
"description": "Create a new ad account. Different ad accounts can support different currencies, payment methods, etc.\nAn ad account is needed to create campaigns, ad groups, and ads; other accounts (your employees or partners) can be assigned business access and appropriate roles to access an ad account.
Microcurrency is used to track very small transactions, based on the currency set in the advertiser’s profile.
\nA microcurrency unit is 10^(-6) of the standard unit of currency selected in the advertiser’s profile.
\nEquivalency equations, using dollars as an example currency:
\nTo convert between currency and microcurrency, using dollars as an example currency:
\nad_account_id, filtered by the specified options.\n- 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.\n- 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.\n- 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.\n\nDeprecation notice\nAs of March 31, 2025, requests to this endpoint have changed for the following parameters:\n- engagement_window_days: This parameter no longer returns new data. However, you can still access historic data for up to 25 weeks after the deprecation date.\n- granularity: The HOUR enum for this parameter no longer provides data for conversion metrics, but it still returns data for non-conversion metrics. All other enums remain available as usual.",
"operationId": "ad_groups/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_ad_group_ids_required"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
},
{
"$ref": "#/components/parameters/aggregate_report_rows"
},
{
"$ref": "#/components/parameters/query_reporting_timezone"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdGroupsAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account group analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account group analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_groups"
]
}
},
"/ad_accounts/{ad_account_id}/ad_groups/targeting_analytics": {
"get": {
"summary": "Get targeting analytics for ad groups",
"description": "Get targeting analytics for one or more ad groups.\nFor the requested ad group(s) and metrics, the response will include the requested metric information\n(e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. \"age_bucket\") for applicable values (e.g. \"45-49\"). \n- The token's user_account must either be the Owner of the specified ad account, or have one\nof the necessary roles granted to them via\nBusiness Access: Admin, Analyst, Campaign Manager.\n- 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.\n- 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.\n\nDeprecation notice\nAs of March 31, 2025, requests to this endpoint have changed for the following parameters:\n- engagement_window_days: This parameter no longer returns new data. However, you can still access historic data for up to 25 weeks after the deprecation date.\n- granularity: The HOUR enum for this parameter no longer provides data for conversion metrics, but it still returns data for non-conversion metrics. All other enums remain available as usual.",
"operationId": "ad_groups_targeting_analytics/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_ad_group_ids_required"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_ad_group_targeting_types"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
},
{
"$ref": "#/components/parameters/query_attribution_types"
},
{
"$ref": "#/components/parameters/query_reporting_timezone"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricsResponse"
}
}
},
"description": "Success"
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_groups"
]
}
},
"/ad_accounts/{ad_account_id}/ad_groups/audience_sizing": {
"post": {
"summary": "Get audience sizing",
"description": "Get potential audience size for an ad group with given targeting criteria. \nPotential audience size estimates the number of people you may be able to reach per month with your campaign. \nIt is based on historical advertising data and the targeting criteria you select.\nIt does not guarantee results or take into account factors such as bid, budget, schedule, seasonality or product experiments.",
"operationId": "ad_groups/audience_sizing",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdGroupAudienceSizingRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdGroupAudienceSizingResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad group audience sizing parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad group audience sizing parameters."
}
}
}
},
"403": {
"description": "No access to requested audience list or product group.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "You don't have access to the requested audience list or product group."
}
}
}
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"ad_groups"
]
}
},
"/ad_accounts/{ad_account_id}/ad_groups/{ad_group_id}": {
"get": {
"summary": "Get ad group",
"description": "Get a specific ad group given the ad group ID.",
"operationId": "ad_groups/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_ad_group_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdGroupResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"ad_groups"
]
}
},
"/ad_accounts/{ad_account_id}/ad_previews": {
"post": {
"summary": "Create ad preview with pin or image",
"description": "Create an ad preview given an ad account ID and either an existing organic pin ID or the URL for an image to be used to create the Pin and the ad. \nIf 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.) \nYou 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.\n\nCreating ad preview from catalog product group is currently in BETA and is not available to all users.",
"tags": [
"ads"
],
"operationId": "ad_previews/create",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"description": "Create ad preview with pin or image.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdPreviewRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful ad preview creation.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdPreviewURLResponse"
}
}
}
},
"400": {
"description": "Invalid Pin parameters response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidPinUrl": {
"value": {
"code": 1,
"message": "Whoops! It looks like you entered an invalid URL. Try creating a Pin again with a valid URL."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/ad_accounts/{ad_account_id}/ads": {
"get": {
"summary": "List ads",
"description": "List ads that meet the filters provided:\n - Listed campaign ids or ad group ids or ad ids\n - Listed entity statuses \nIf no filter is provided, all ads in the ad account are returned. \nNote:\nProvide only campaign_id or ad_group_id or ad_id. Do not provide more than one type. \nReview status is provided for each ad; if review_status is REJECTED, the rejected_reasons field will contain additional information.\nFor more, see Pinterest advertising standards.",
"operationId": "ads/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_campaign_ids"
},
{
"$ref": "#/components/parameters/query_ad_group_ids"
},
{
"$ref": "#/components/parameters/query_ad_ids"
},
{
"$ref": "#/components/parameters/query_entity_statuses"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_order"
},
{
"$ref": "#/components/parameters/query_bookmark"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdResponse"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account ads parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account ads parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ads"
]
},
"post": {
"description": "Create multiple new ads. Request must contain ad_group_id, creative_type, and the source Pin pin_id.",
"operationId": "ads/create",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/AdCreateRequest"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
}
}
},
"description": "List of ads to create, size limit [1, 30].",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdArrayResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Create ads",
"tags": [
"ads"
]
},
"patch": {
"description": "Update multiple existing ads",
"operationId": "ads/update",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/AdUpdateRequest"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
}
}
},
"description": "List of ads to update, size limit [1, 30]",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdArrayResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Update ads",
"tags": [
"ads"
]
}
},
"/ad_accounts/{ad_account_id}/ads/analytics": {
"get": {
"summary": "Get ad analytics",
"description": "Get analytics for the specified ads in the specified ad_account_id, filtered by the specified options.\n- 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.\n- The request must contain either ad_ids or both campaign_ids and pin_ids.\n- 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.\n- 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.\n\nDeprecation notice\nAs of March 31, 2025, requests to this endpoint have changed for the following parameters:\n- engagement_window_days: This parameter no longer returns new data. However, you can still access historic data for up to 25 weeks after the deprecation date.\n- granularity: The HOUR enum for this parameter no longer provides data for conversion metrics, but it still returns data for non-conversion metrics. All other enums remain available as usual.",
"operationId": "ads/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_ad_ids"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
},
{
"name": "pin_ids",
"description": "List of Pin IDs.",
"in": "query",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d+$"
},
"minItems": 1,
"maxItems": 100
}
},
{
"$ref": "#/components/parameters/query_campaign_ids"
},
{
"$ref": "#/components/parameters/query_reporting_timezone"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdsAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account ads analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account ads analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ads"
]
}
},
"/ad_accounts/{ad_account_id}/ads_credit/discounts": {
"get": {
"summary": "Get ads credit discounts",
"description": "Returns the list of discounts applied to the account.\n\nThis 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.\n\nThis 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,\nthe response will include the requested metric information (e.g. SPEND_IN_DOLLAR) for the requested target type\n(e.g. \"age_bucket\") for applicable values (e.g. \"45-49\"). \n- The token's user_account must either be the Owner of the specified ad account, or have one\nof the necessary roles granted to them via\nBusiness Access: Admin, Analyst, Campaign Manager.\n- 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.\n- 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.\n\nDeprecation notice\nAs of March 31, 2025, requests to this endpoint have changed for the following parameters:\n- engagement_window_days: This parameter no longer returns new data. However, you can still access historic data for up to 25 weeks after the deprecation date.\n- granularity: The HOUR enum for this parameter no longer provides data for conversion metrics, but it still returns data for non-conversion metrics. All other enums remain available as usual.",
"operationId": "ad_targeting_analytics/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_ad_ids_required"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_ad_targeting_types"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
},
{
"$ref": "#/components/parameters/query_attribution_types"
},
{
"$ref": "#/components/parameters/query_reporting_timezone"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricsResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"ads"
]
}
},
"/ad_accounts/{ad_account_id}/ads/{ad_id}": {
"get": {
"summary": "Get ad",
"description": "Get a specific ad given the ad ID. If your pin is rejected, rejected_reasons will\ncontain additional information from the Ad Review process.\nFor more information about our policies and rejection reasons see the Pinterest advertising standards.",
"operationId": "ads/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_ad_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"ads"
]
}
},
"/ad_accounts/{ad_account_id}/analytics": {
"get": {
"summary": "Get ad account analytics",
"description": "Get analytics for the specified ad_account_id, filtered by the specified options.\n- 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.\n- 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.\n- If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time.\n\nDeprecation notice\nAs of March 31, 2025, requests to this endpoint have changed for the following parameters:\n- engagement_window_days: This parameter no longer returns new data. However, you can still access historic data for up to 25 weeks after the deprecation date.\n- granularity: The HOUR enum for this parameter no longer provides data for conversion metrics, but it still returns data for non-conversion metrics. All other enums remain available as usual.",
"operationId": "ad_account/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
},
{
"$ref": "#/components/parameters/query_reporting_timezone"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdAccountAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_accounts"
]
}
},
"/ad_accounts/{ad_account_id}/audience_insights": {
"get": {
"summary": "Get audience insights",
"description": "Get Audience Insights for an ad account. The response will return insights for 3 types of audiences: the\nad account's engaged audience on Pinterest, the ad account's total audience on Pinterest and Pinterest's\ntotal audience.\nLearn more about Audience Insights.",
"operationId": "audience_insights/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_audience_insight_type"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AudienceInsightsResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"audience_insights"
]
}
},
"/ad_accounts/{ad_account_id}/audiences": {
"get": {
"summary": "List audiences",
"description": "Get list of audiences for the ad account.",
"operationId": "audiences/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"description": "The order in which to sort the items returned: “ASCENDING” or “DESCENDING” by ID.\nFor received audiences, it is sorted by sharing event time.\nNote that higher-value IDs are associated with more-recently added items.",
"in": "query",
"name": "order",
"required": false,
"schema": {
"type": "string",
"example": "ASCENDING",
"enum": [
"ASCENDING",
"DESCENDING"
]
}
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"description": "Filter audiences by ownership type.",
"in": "query",
"name": "ownership_type",
"required": false,
"example": "OWNED",
"schema": {
"type": "string",
"default": "OWNED",
"enum": [
"OWNED",
"RECEIVED"
]
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Audience"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account audience parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account audience parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"audiences"
]
},
"post": {
"description": "Create an audience you can use in targeting for specific ad groups. Targeting combines customer information with\nthe ways users interact with Pinterest to help you reach specific groups of users; you can include or exclude\nspecific audience_ids when you create an ad group. \nFor more, see Audience targeting.",
"operationId": "audiences/create",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AudienceCreateRequest"
}
}
},
"description": "List of ads to create, size limit [1, 30]",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Audience"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Create audience",
"tags": [
"audiences"
]
}
},
"/ad_accounts/{ad_account_id}/audiences/{audience_id}": {
"get": {
"summary": "Get audience",
"description": "Get a specific audience given the audience ID.",
"operationId": "audiences/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_audience_id"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Audience"
}
}
}
},
"404": {
"description": "Audience not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"audiences"
]
},
"patch": {
"summary": "Update audience",
"description": "Update (edit or remove) an existing targeting audience.",
"operationId": "audiences/update",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_audience_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AudienceUpdateRequest"
}
}
},
"description": "The audience to be updated."
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Audience"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"audiences"
]
}
},
"/ad_accounts/{ad_account_id}/audiences/custom": {
"post": {
"summary": "Create custom audience",
"description": "Create a custom audience and find the audiences you want your ads to reach.",
"operationId": "audiences/create_custom",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"description": "Custom audience to create.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AudienceCreateCustomRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Audience"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"audiences"
]
}
},
"/ad_accounts/{ad_account_id}/audiences/shared/accounts": {
"get": {
"summary": "List accounts with access to an audience owned by an ad account",
"description": "List all ad accounts and/or businesses that have access to a specific audience. The audience must be owned by the requesting ad account.",
"operationId": "ad_accounts_audiences_shared_accounts/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_audience_id"
},
{
"$ref": "#/components/parameters/query_account_type"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_bookmark"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SharedAudienceAccount"
}
}
}
}
]
}
}
}
},
"400": {
"description": "Invalid ad account audiences shared accounts parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account audiences shared accounts parameters."
}
}
}
},
"404": {
"description": "Shared accounts not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"audience_sharing"
]
}
},
"/ad_accounts/{ad_account_id}/audiences/ad_accounts/shared": {
"patch": {
"summary": "Update audience sharing between ad accounts",
"description": "From an ad account, share a specific audience with another ad account, or revoke access to a previously shared audience. Only the audience owner account can share the audience. The recipient ad account(s) must be in the same Pinterest Business Hierarchy as the business owner of the ad account.Microcurrency is used to track very small transactions, based on the currency set in the advertiser’s profile.
\nA microcurrency unit is 10^(-6) of the standard unit of currency selected in the advertiser’s profile.
\nEquivalency equations, using dollars as an example currency:
\nTo convert between currency and microcurrency, using dollars as an example currency:
\nrequest_id\nthat 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\nnew or updated entity data (campaigns, ad groups, product groups, ads, or keywords).",
"operationId": "bulk_request/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_bulk_request_id"
},
{
"$ref": "#/components/parameters/include_details"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BulkUpsertStatusResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Download advertiser entities in bulk",
"tags": [
"bulk"
]
}
},
"/ad_accounts/{ad_account_id}/campaigns": {
"get": {
"summary": "List campaigns",
"description": "Get a list of the campaigns in the specified ad_account_id, filtered by the specified options.\n- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.",
"operationId": "campaigns/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_campaign_ids"
},
{
"$ref": "#/components/parameters/query_entity_statuses"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_order"
},
{
"$ref": "#/components/parameters/query_bookmark"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CampaignResponse"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account campaign parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account campaign parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"campaigns"
]
},
"post": {
"summary": "Create campaigns",
"description": "Create multiple new campaigns. Every campaign has its own campaign_id and houses one or more ad groups, which contain one or more ads.\nFor more, see Set up your campaign. \nNote:\n- The values for 'lifetime_spend_cap' and 'daily_spend_cap' are microcurrency amounts based on the currency field set in the advertiser's profile. (e.g. USD) \nMicrocurrency is used to track very small transactions, based on the currency set in the advertiser’s profile.
\nA microcurrency unit is 10^(-6) of the standard unit of currency selected in the advertiser’s profile.
\nEquivalency equations, using dollars as an example currency:
\nTo 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’s profile.
\nA microcurrency unit is 10^(-6) of the standard unit of currency selected in the advertiser’s profile.
\nEquivalency equations, using dollars as an example currency:
\nTo convert between currency and microcurrency, using dollars as an example currency:
\nad_account_id, filtered by the specified options.\n- 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.\n- 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.\n- 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.\n\nDeprecation notice\nAs of March 31, 2025, requests to this endpoint have changed for the following parameters:\n- engagement_window_days: This parameter no longer returns new data. However, you can still access historic data for up to 25 weeks after the deprecation date.\n- granularity: The HOUR enum for this parameter no longer provides data for conversion metrics, but it still returns data for non-conversion metrics. All other enums remain available as usual.",
"operationId": "campaigns/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_campaign_ids_required"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
},
{
"$ref": "#/components/parameters/aggregate_report_rows"
},
{
"$ref": "#/components/parameters/query_reporting_timezone"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignsAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account campaign analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account campaign analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"campaigns"
]
}
},
"/ad_accounts/{ad_account_id}/campaigns/targeting_analytics": {
"get": {
"summary": "Get targeting analytics for campaigns",
"description": "Get targeting analytics for one or more campaigns.\nFor the requested account and metrics, the response will include the requested metric information\n(e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. \"age_bucket\") for applicable values (e.g. \"45-49\"). \n- The token's user_account must either be the Owner of the specified ad account, or have one\nof the necessary roles granted to them via\nBusiness Access: Admin, Analyst, Campaign Manager.\n- 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.\n- 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.\n\nDeprecation notice\nAs of March 31, 2025, requests to this endpoint have changed for the following parameters:\n- engagement_window_days: This parameter no longer returns new data. However, you can still access historic data for up to 25 weeks after the deprecation date.\n- granularity: The HOUR enum for this parameter no longer provides data for conversion metrics, but it still returns data for non-conversion metrics. All other enums remain available as usual.",
"operationId": "campaign_targeting_analytics/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_campaign_ids_required"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_campaign_targeting_types"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
},
{
"$ref": "#/components/parameters/query_attribution_types"
},
{
"$ref": "#/components/parameters/query_reporting_timezone"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricsResponse"
}
}
},
"description": "Success"
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"campaigns"
]
}
},
"/ad_accounts/{ad_account_id}/campaigns/{campaign_id}": {
"get": {
"summary": "Get campaign",
"description": "Get a specific campaign given the campaign ID.",
"operationId": "campaigns/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_campaign_id"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignResponse"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"campaigns"
]
}
},
"/ad_accounts/{ad_account_id}/conversion_tags": {
"get": {
"summary": "Get conversion tags",
"description": "List conversion tags associated with an ad account.",
"operationId": "conversion_tags/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_filter_deleted"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversionTagListResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"conversion_tags"
],
"x-sandbox": "disabled"
},
"post": {
"x-sandbox": "disabled",
"summary": "Create conversion tag",
"description": "Create a conversion tag, also known as Pinterest tag, with the option to enable enhanced match.\nThe Pinterest Tag tracks actions people take on the ad account’s website after they view the ad account's ad on Pinterest. The advertiser needs to customize this tag to track conversions.\nFor more information, see:\nSet up the Pinterest tag\nPinterest Tag\nEnhanced match",
"operationId": "conversion_tags/create",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversionTagCreate"
}
}
},
"description": "Conversion Tag to create",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversionTagResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"conversion_tags"
]
}
},
"/ad_accounts/{ad_account_id}/conversion_tags/ocpm_eligible": {
"get": {
"summary": "Get Ocpm eligible conversion tags",
"description": "Get Ocpm eligible conversion tag events for an ad account.",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"operationId": "ocpm_eligible_conversion_tags/get",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"x-sandbox": "disabled",
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversionTagsOcpmEligibleResponse"
}
}
}
},
"default": {
"description": "Unexpected errors",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"conversion_tags"
]
}
},
"/ad_accounts/{ad_account_id}/conversion_tags/page_visit": {
"get": {
"summary": "Get page visit conversion tags",
"description": "Get all page visit conversion tag events for an ad account.",
"operationId": "page_visit_conversion_tags/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_order"
},
{
"$ref": "#/components/parameters/query_bookmark"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ConversionEventResponse"
}
}
}
}
]
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"conversion_tags"
]
}
},
"/ad_accounts/{ad_account_id}/conversion_tags/{conversion_tag_id}": {
"get": {
"x-sandbox": "disabled",
"summary": "Get conversion tag",
"description": "Get information about an existing conversion tag.",
"operationId": "conversion_tags/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_conversion_tag_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversionTagResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"conversion_tags"
]
}
},
"/ad_accounts/{ad_account_id}/customer_lists": {
"post": {
"description": "Create a customer list from your records(hashed or plain-text email addresses, or hashed MAIDs or IDFAs).
\nA customer list is one of the four types of Pinterest audiences: for more information, see Audience targeting\nor the Audiences section of the ads management guide.
\nPlease 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 – containing only the Pinterest accounts that were included in your starting\nlist – 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 “CUSTOMER_LIST” 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.
\n(Customer lists are a type of audience.) For more information, see\nAudience targeting\n or the Audiences\nsection of the ads management guide.
", "operationId": "customer_lists/list", "security": [ { "pinterest_oauth2": [ "ads:read" ] } ], "x-ratelimit-category": "ads_read", "x-sandbox": "disabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "$ref": "#/components/parameters/query_page_size" }, { "$ref": "#/components/parameters/query_order" }, { "$ref": "#/components/parameters/query_bookmark" } ], "responses": { "200": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/Paginated" }, { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/CustomerList" } } } } ] } } }, "description": "Success" }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Unexpected error" } }, "summary": "Get customer lists", "tags": [ "customer_lists" ] } }, "/ad_accounts/{ad_account_id}/customer_lists/{customer_list_id}": { "get": { "summary": "Get customer list", "description": "Gets a specific customer list given the customer list ID.", "operationId": "customer_lists/get", "security": [ { "pinterest_oauth2": [ "ads:read" ] }, { "client_credentials": [ "ads:read" ] } ], "x-ratelimit-category": "ads_read", "x-sandbox": "disabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "$ref": "#/components/parameters/path_customer_list_id" } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomerList" } } }, "description": "Success" }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "customer_lists" ] }, "patch": { "description": "Append or remove records to/from an existing customer list. (A customer list is one of the four types of Pinterest audiences.)
\nWhen 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 “CUSTOMER_LIST” audience. Your original list of records\nto add will be deleted when the matching process is complete.
\nFor 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.\n- This endpoint requires an access_token be generated through Ads Manager. Review the Conversions Guide for more details. (Note that the authorization header required is Authorization: Bearer <access_token>).\n- 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.)\n- This endpoint has a rate limit of 5,000 calls per minute per ad account.\n- 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.\nWarning: 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\nof 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\nof the published rate limits within a short time window."
}
}
}
},
"503": {
"description": "The endpoint has been ramped down and is currently not accepting any traffic.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 4197,
"message": "The endpoint has been ramped down and is currently not accepting any traffic."
}
}
}
},
"default": {
"description": "Unexpected errors",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/ad_accounts/{ad_account_id}/msot/events": {
"post": {
"summary": "Send Measurement Source Of Truth (MSOT) attributed conversion events",
"description": "This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager.\nAdvertisers or their measurement partners can send attributed MSOT conversion events to Pinterest based on their ad_account_id. The request body should be a JSON object.
Get a list of keywords based on the filters provided. If no filter is provided, it will default to the ad_account_id filter, which means it will only return keywords that specifically have parent_id set to the ad_account_id. Note: Keywords can have ad_account_ids, campaign_ids, and ad_group_ids set as their parent_ids. Keywords created through Ads Manager will have their parent_id set to an ad_group_id, not ad_account_id.
\nFor more information, see Keyword targeting.
\nNotes:
For more information on match types, see match type enums.
\nReturns:
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.
\nNotes:
For more information on match types, see match type enums.
\nReturns:
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.\n(Definitions are available from the \"Get delivery metrics definitions\"\nAPI endpoint).", "operationId": "country_keywords_metrics/get", "security": [ { "pinterest_oauth2": [ "ads:read" ] }, { "client_credentials": [ "ads:read" ] } ], "x-ratelimit-category": "ads_read", "x-sandbox": "enabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "$ref": "#/components/parameters/query_country_code" }, { "$ref": "#/components/parameters/query_keywords" } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeywordsMetricsArrayResponse" } } }, "description": "Success" }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Unexpected error" } }, "tags": [ "keywords" ] } }, "/ad_accounts/{ad_account_id}/labels": { "post": { "summary": "Create labels", "description": "\nClosed beta\nThis endpoint is not available to all users.\n
\n\n Apply one or more labels to a campaign.\n Currently, you can apply brand labels. Future releases will provide more options.\n\n Note: You can only apply one brand label to a campaign.\n
", "operationId": "labels/create", "security": [ { "pinterest_oauth2": [ "ads:write" ] } ], "x-ratelimit-category": "ads_write", "x-sandbox": "enabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabelCreate" } } } }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabelsResponse" } } }, "description": "Success" }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "labels" ] }, "get": { "summary": "List labels", "description": "\n Closed beta\n This endpoint is not available to all users.\n
\n\n See a list of labels for assets that your account owns, and filter the list by different criteria.\n
", "operationId": "labels/list", "security": [ { "pinterest_oauth2": [ "ads:read" ] } ], "x-ratelimit-category": "ads_read", "x-sandbox": "enabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "$ref": "#/components/parameters/query_campaign_ids" }, { "description": "List of Label Ids to use to filter the results.", "in": "query", "name": "label_ids", "required": false, "schema": { "type": "array", "items": { "type": "string", "pattern": "^\\d+$", "maxLength": 18 }, "minItems": 1, "maxItems": 100 } }, { "$ref": "#/components/parameters/query_entity_statuses" }, { "$ref": "#/components/parameters/query_page_size" }, { "$ref": "#/components/parameters/query_bookmark" } ], "responses": { "200": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/Paginated" }, { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/LabelsResponse" } } } } ] } } }, "description": "Success" }, "400": { "description": "Invalid ad account ads parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 400, "message": "Invalid ad account ads parameters." } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "labels" ] }, "patch": { "summary": "Update labels", "description": "\n Closed beta\n This endpoint is not available to all users.\n
\n\n Change the properties of one or more labels.\n
", "operationId": "labels/update", "security": [ { "pinterest_oauth2": [ "ads:write" ] } ], "x-ratelimit-category": "ads_write", "x-sandbox": "enabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabelUpdate" } } } }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabelsResponse" } } }, "description": "Success" }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "labels" ] } }, "/ad_accounts/{ad_account_id}/lead_forms": { "get": { "summary": "List lead forms", "description": "This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager.\n\nList lead forms associated with an ad account ID.\n\nFor more, see Lead ads.", "operationId": "lead_forms/list", "security": [ { "pinterest_oauth2": [ "ads:read" ] } ], "x-ratelimit-category": "ads_read", "x-sandbox": "enabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "$ref": "#/components/parameters/query_page_size" }, { "$ref": "#/components/parameters/query_order" }, { "$ref": "#/components/parameters/query_bookmark" } ], "responses": { "200": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/Paginated" }, { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/LeadFormResponse" } } } } ] } } }, "description": "Success" }, "400": { "description": "Invalid ad account lead forms parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 400, "message": "Invalid ad account lead forms parameters." } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "lead_forms" ] }, "post": { "x-sandbox": "disabled", "description": "This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager.\n\nCreate lead forms. Lead forms are used in lead ads and allow you to control what text appears on the lead form’s description, questions and confirmation sections.\n\nFor more, see Lead ads.", "summary": "Create lead forms", "operationId": "lead_forms/create", "security": [ { "pinterest_oauth2": [ "ads:write" ] } ], "x-ratelimit-category": "ads_write", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" } ], "requestBody": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/LeadFormCreateRequest" }, "maxItems": 30, "minItems": 1, "type": "array" } } }, "description": "List of lead forms to create, size limit [1, 30].", "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadFormArrayResponse" } } }, "description": "Success" }, "400": { "description": "Invalid ad account lead forms parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 400, "message": "Invalid ad account lead forms parameters." } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "lead_forms" ] }, "patch": { "x-sandbox": "disabled", "description": "This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager.\n\nUpdate lead forms. Lead ads help you reach people who are actively looking for, and interested in, your goods and services. The lead form can be associated with an ad to allow people to fill out the form.\n\nFor more, see Lead ads.", "summary": "Update lead forms", "operationId": "lead_forms/update", "security": [ { "pinterest_oauth2": [ "ads:write" ] } ], "x-ratelimit-category": "ads_write", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" } ], "requestBody": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/LeadFormUpdateRequest" }, "maxItems": 30, "minItems": 1, "type": "array" } } }, "description": "List of lead forms to update, size limit [1, 30].", "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadFormArrayResponse" } } }, "description": "Success" }, "400": { "description": "Invalid ad account lead forms parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 400, "message": "Invalid ad account lead forms parameters." } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "lead_forms" ] } }, "/ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}": { "get": { "summary": "Get lead form by id", "description": "This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager.\n\nGets a lead form given it's ID. It must also be associated with the provided ad account ID.\n\nFor 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.\n- List of answers should follow the questions creation order.", "operationId": "lead_form_test/create", "security": [ { "pinterest_oauth2": [ "ads:write" ] } ], "x-ratelimit-category": "ads_write", "x-sandbox": "disabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "$ref": "#/components/parameters/path_lead_form_id" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadFormTestRequest" } } }, "description": "Subscription to create.", "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadFormTestResponse" } } }, "description": "Success" }, "400": { "description": "Invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 1, "message": "Invalid parameters." } } } }, "404": { "description": "Lead not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 4842, "message": "Lead not found." } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "lead_forms" ] } }, "/ad_accounts/{ad_account_id}/leads/subscriptions": { "get": { "operationId": "ad_accounts_subscriptions/get_list", "summary": "Get lead ads subscriptions", "description": "Get the advertiser's list of lead ads subscriptions. Only requests for the OWNER or ADMIN of the ad_account will be allowed.", "parameters": [ { "$ref": "#/components/parameters/AdAccountId" }, { "$ref": "#/components/parameters/Resource.BookmarkParams.bookmark" }, { "$ref": "#/components/parameters/Resource.BookmarkParams.page_size" } ], "responses": { "200": { "description": "The request has succeeded.", "content": { "application/json": { "schema": { "type": "object", "required": [ "items" ], "properties": { "bookmark": { "type": "string", "nullable": true }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/LeadSubscription" } } } } } } }, "400": { "description": "The request could not be understood by the server due to unexpected data.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "401": { "description": "Authentication is required and has either failed or not been provided.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "403": { "description": "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "404": { "description": "The requested resource could not be found on this server.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "429": { "description": "The user has sent too many requests in a given amount of time and is being rate limited.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } } }, "tags": [ "lead_ads" ], "security": [ { "pinterest_oauth2": [ "ads:read" ] } ], "x-sandbox": "disabled", "x-ratelimit-category": "ads_read" }, "post": { "operationId": "ad_accounts_subscriptions/post", "summary": "Create lead ads subscription", "description": "Create a lead ads webhook subscription.\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.", "parameters": [ { "$ref": "#/components/parameters/AdAccountId" } ], "responses": { "200": { "description": "The request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadSubscription" } } } }, "400": { "description": "The request could not be understood by the server due to unexpected data.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "403": { "description": "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } } }, "tags": [ "lead_ads" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadSubscriptionPostParamsCreate" } } } }, "security": [ { "pinterest_oauth2": [ "ads:write" ] } ], "x-sandbox": "enabled", "x-ratelimit-category": "ads_write" } }, "/ad_accounts/{ad_account_id}/leads/subscriptions/{subscription_id}": { "get": { "operationId": "ad_accounts_subscriptions/get_by_id", "summary": "Get lead ads subscription by ID", "description": "Get an existing lead ads webhook subscription by ID.\n - Only requests for the OWNER or ADMIN of the ad_account will be allowed.'", "parameters": [ { "$ref": "#/components/parameters/AdAccountId" }, { "$ref": "#/components/parameters/SubscriptionIdPathParam" } ], "responses": { "200": { "description": "The request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadSubscription" } } } }, "400": { "description": "The request could not be understood by the server due to unexpected data.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "401": { "description": "Authentication is required and has either failed or not been provided.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "403": { "description": "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "404": { "description": "The requested resource could not be found on this server.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "429": { "description": "The user has sent too many requests in a given amount of time and is being rate limited.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } } }, "tags": [ "lead_ads" ], "security": [ { "pinterest_oauth2": [ "ads:read" ] }, { "client_credentials": [ "ads:read" ] } ], "x-sandbox": "disabled", "x-ratelimit-category": "ads_read" }, "delete": { "operationId": "ad_accounts_subscriptions/del_by_id", "summary": "Delete lead ads subscription", "description": "Delete an existing lead ads webhook subscription by ID.\n - Only requests for the OWNER or ADMIN of the ad_account will be allowed.'", "parameters": [ { "$ref": "#/components/parameters/AdAccountId" }, { "$ref": "#/components/parameters/SubscriptionIdPathParam" } ], "responses": { "204": { "description": "Resource deleted successfully." }, "400": { "description": "The request could not be understood by the server due to unexpected data.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "401": { "description": "Authentication is required and has either failed or not been provided.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "403": { "description": "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "404": { "description": "The requested resource could not be found on this server.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "429": { "description": "The user has sent too many requests in a given amount of time and is being rate limited.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } }, "default": { "description": "An unexpected error response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Resource.Error" } } } } }, "tags": [ "lead_ads" ], "security": [ { "pinterest_oauth2": [ "ads:write" ] } ], "x-sandbox": "disabled", "x-ratelimit-category": "ads_write" } }, "/ad_accounts/{ad_account_id}/leads_export": { "post": { "x-sandbox": "disabled", "description": "This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager.\n\nCreate an export of leads collected from a lead ad. This returns a lead_export_id token that you can use to download the export when it is ready.\n\nNote: Lead ad data will be available up to 30 days after the lead has been submitted.\n\nFor more, see Lead ads.", "summary": "Create a request to export leads collected from a lead ad", "operationId": "leads_export/create", "security": [ { "pinterest_oauth2": [ "ads:write" ] } ], "x-ratelimit-category": "ads_write", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadsExportCreateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadsExportCreateResponse" } } }, "description": "Success" }, "400": { "description": "Invalid ad account parameter.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 400, "message": "Invalid ad account parameter." } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "leads_export" ] } }, "/ad_accounts/{ad_account_id}/leads_export/{leads_export_id}": { "get": { "x-sandbox": "disabled", "description": "This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager.\n\nGet the export of leads collected from a lead ad. This returns a URL to a list of lead export given a lead_export_id token returned from the create a lead export call. You can use the URL to download the report.\n\nNote: Lead ad data will be available up to 30 days after the lead has been submitted.\n\nFor more, see Lead ads.", "summary": "Get the lead export from the lead export create call", "operationId": "leads_export/get", "security": [ { "pinterest_oauth2": [ "ads:read" ] } ], "x-ratelimit-category": "ads_read", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "name": "leads_export_id", "in": "path", "description": "lead_export_id token returned from the create a lead export endpoint", "example": "123755885175", "required": true, "schema": { "type": "string", "pattern": "^\\d+$" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeadsExportResponseData" } } }, "description": "Success" }, "400": { "description": "Invalid ad account parameter.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 400, "message": "Invalid ad account parameter." } } } }, "404": { "description": "Invalid leads export id parameter.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 404, "message": "Invalid leads export id parameter." } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "leads_export" ] } }, "/ad_accounts/{ad_account_id}/mmm_reports": { "get": { "summary": "Get advertiser Marketing Mix Modeling (MMM) report.", "description": "Get an mmm report for an ad account. This returns a URL to an mmm metrics report given a token returned from the\ncreate 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\nthe report when it is ready. NOTE: An additional limit of 5 queries per minute per advertiser applies to this endpoint while it's in beta release.", "operationId": "analytics/create_mmm_report", "security": [ { "pinterest_oauth2": [ "ads:read" ] } ], "x-ratelimit-category": "ads_analytics", "x-sandbox": "disabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMMMReportRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMMMReportResponse" } } }, "description": "Success" }, "400": { "description": "Invalid ad account ads analytics mmm parameters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 400, "message": "Invalid ad account ads analytics mmm parameters" } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "ad_accounts" ] } }, "/ad_accounts/{ad_account_id}/order_lines": { "get": { "summary": "Get order lines", "description": "List existing order lines associated with an ad account.", "operationId": "order_lines/list", "security": [ { "pinterest_oauth2": [ "ads:read" ] } ], "x-ratelimit-category": "ads_read", "x-sandbox": "enabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "$ref": "#/components/parameters/query_page_size" }, { "$ref": "#/components/parameters/query_order" }, { "$ref": "#/components/parameters/query_bookmark" } ], "responses": { "200": { "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/Paginated" }, { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/OrderLine" } } } } ] } } }, "description": "Success" }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "order_lines" ] } }, "/ad_accounts/{ad_account_id}/order_lines/{order_line_id}": { "get": { "summary": "Get order line", "description": "Get a specific existing order line associated with an ad account.", "operationId": "order_lines/get", "security": [ { "pinterest_oauth2": [ "ads:read" ] } ], "x-ratelimit-category": "ads_read", "x-sandbox": "enabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "$ref": "#/components/parameters/path_order_line_id" } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrderLine" } } }, "description": "Success" }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "order_lines" ] } }, "/ad_accounts/{ad_account_id}/pins/analytics": { "get": { "summary": "Get pins analytics", "description": "Get analytics for the pins given a campaign and pins in the specifiedad_account_id, filtered by the specified options.\n- 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.\n- 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.\n- If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days. Data will not be provided for conversion metrics but will be available for non-conversion metrics.",
"operationId": "ad_pins/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_campaign_id_required"
},
{
"$ref": "#/components/parameters/query_required_pin_ids"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdPinsAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account pins analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account pins analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"campaigns"
]
}
},
"/ad_accounts/{ad_account_id}/product_group_promotions": {
"post": {
"description": "Add one or more product groups from your catalog to an existing ad group. (Product groups added to an ad group are a 'product group promotion.')",
"operationId": "product_group_promotions/create",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductGroupPromotionCreateRequest"
}
}
},
"description": "List of Product Group Promotions to create, size limit [1, 30].",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductGroupPromotionResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Create product group promotions",
"tags": [
"product_group_promotions"
]
},
"patch": {
"description": "Update multiple existing Product Group Promotions (by product_group_id)",
"operationId": "product_group_promotions/update",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductGroupPromotionUpdateRequest"
}
}
},
"description": "Parameters to update Product group promotions",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductGroupPromotionResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Update product group promotions",
"tags": [
"product_group_promotions"
]
},
"get": {
"description": "List existing product group promotions associated with an ad account.\n\nInclude either ad_group_id or product_group_promotion_ids in your request.\n\nNote: ad_group_ids and product_group_promotion_ids are mutually exclusive parameters.\nOnly provide one. If multiple options are provided, product_group_promotion_ids takes precedence over ad_group_ids. If none are provided, the endpoint returns an error.",
"operationId": "product_group_promotions/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_product_group_promotion_ids"
},
{
"$ref": "#/components/parameters/query_entity_statuses"
},
{
"$ref": "#/components/parameters/query_ad_group_id"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_order"
},
{
"$ref": "#/components/parameters/query_bookmark"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProductGroupPromotion"
}
}
}
}
]
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Get product group promotions",
"tags": [
"product_group_promotions"
]
}
},
"/ad_accounts/{ad_account_id}/product_group_promotions/{product_group_promotion_id}": {
"get": {
"description": "Get a product group promotion by id",
"operationId": "product_group_promotions/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_product_group_promotion_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductGroupPromotion"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Get a product group promotion by id",
"tags": [
"product_group_promotions"
]
}
},
"/ad_accounts/{ad_account_id}/product_groups/analytics": {
"get": {
"summary": "Get product group analytics",
"description": "Get analytics for the specified product groups in the specified ad_account_id, filtered by the specified options.\n- 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.\n- 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.\n- 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.\n\nDeprecation notice\nAs of March 31, 2025, requests to this endpoint have changed for the following parameters:\n- engagement_window_days: This parameter no longer returns new data. However, you can still access historic data for up to 25 weeks after the deprecation date.\n- granularity: The HOUR enum for this parameter no longer provides data for conversion metrics, but it still returns data for non-conversion metrics. All other enums remain available as usual.",
"operationId": "product_groups/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_product_group_ids_required"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
},
{
"$ref": "#/components/parameters/query_reporting_timezone"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductGroupAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account ads analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account ads analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"product_group_promotions"
]
}
},
"/ad_accounts/{ad_account_id}/promotions": {
"get": {
"summary": "Get promotions",
"description": "Gets all promotions associated with an ad account ID that can be applied to an ad group. Can be either internally-saved promotions or external promotions imported from a commerce integration.",
"operationId": "promotions/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_order"
},
{
"$ref": "#/components/parameters/query_bookmark"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PromotionResponse"
}
}
}
}
]
}
}
}
},
"400": {
"description": "Invalid ad account promotions parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account promotions parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"promotions"
]
},
"post": {
"description": "Create multiple new promotions.",
"operationId": "promotions/create",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"description": "List of promotions to create.",
"items": {
"$ref": "#/components/schemas/PromotionCreateRequest"
},
"maxItems": 30,
"minItems": 1
}
}
},
"description": "List of promotions to create, size limit [1, 30].",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromotionsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid create promotions request parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Platform type not supported for promotions."
}
}
}
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Create promotions",
"tags": [
"promotions"
]
},
"patch": {
"description": "Update multiple promotions.",
"operationId": "promotions/update",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"description": "List of promotion data updates keyed on promotion id.",
"items": {
"$ref": "#/components/schemas/PromotionUpdateRequest"
},
"maxItems": 30,
"minItems": 1
}
}
},
"description": "List of promotions to create, size limit [1, 30].",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromotionsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid create promotions request parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Platform type not supported for promotions."
}
}
}
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Update promotions",
"tags": [
"promotions"
]
}
},
"/ad_accounts/{ad_account_id}/promotions/{promotion_id}": {
"get": {
"summary": "Get promotion by id",
"description": "Get a promotion by its Pinterest-specific id. It must be associated with the provided ad account id.",
"operationId": "promotions/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_promotion_id"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromotionResponse"
}
}
}
},
"404": {
"description": "The promotion ID for the given ad account ID was not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 4997,
"message": "Promotion for that ID was not found"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"promotions"
]
},
"delete": {
"summary": "Delete promotion by id",
"description": "Delete a promotion within Pinterest.",
"operationId": "promotions/delete",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_promotion_id"
}
],
"responses": {
"204": {
"description": "Promotion deleted successfully"
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"promotions"
]
}
},
"/ad_accounts/{ad_account_id}/reports": {
"get": {
"summary": "Get the account analytics report created by the async call",
"description": "This returns a URL to an analytics report given a token returned from the post request report creation call. You can use the URL to download the report. The link is valid for five minutes and the report is valid for one hour.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n\nDeprecation notice\nAs of March 31, 2025, requests to this endpoint have changed for the following parameters:\n- engagement_window_days: This parameter no longer returns new data. However, you can still access historic data for up to 25 weeks after the deprecation date.\n- granularity: The HOUR enum for this parameter no longer provides data for conversion metrics, but it still returns data for non-conversion metrics. All other enums remain available as usual.",
"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 /docs/developer-tools/sandbox/ for more information.",
"operationId": "sandbox/delete",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "string",
"example": "Delete Success"
}
}
}
},
"400": {
"description": "Invalid ad account id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account id"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_accounts"
]
}
},
"/ad_accounts/{ad_account_id}/ssio/accounts": {
"get": {
"summary": "Get Salesforce account details including bill-to information.",
"description": "Get Salesforce account details including bill-to information to be used in insertion orders process for ad_account_id.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\n- 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.\nFor the requested account and metrics, the response will include the requested metric information\n(e.g. SPEND_IN_DOLLAR) for the requested target type (e.g. \"age_bucket\") for applicable values (e.g. \"45-49\"). \n- The token's user_account must either be the Owner of the specified ad account, or have one\nof the necessary roles granted to them via\nBusiness Access: Admin, Analyst, Campaign Manager.\n- 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.\n- 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.\n\nDeprecation notice\nAs of March 31, 2025, requests to this endpoint have changed for the following parameters:\n- engagement_window_days: This parameter no longer returns new data. However, you can still access historic data for up to 25 weeks after the deprecation date.\n- granularity: The HOUR enum for this parameter no longer provides data for conversion metrics, but it still returns data for non-conversion metrics. All other enums remain available as usual.",
"operationId": "ad_account_targeting_analytics/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_targeting_types"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
},
{
"$ref": "#/components/parameters/query_attribution_types"
},
{
"$ref": "#/components/parameters/query_reporting_timezone"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetricsResponse"
}
}
},
"description": "Success"
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_accounts"
]
}
},
"/ad_accounts/{ad_account_id}/targeting_templates": {
"get": {
"summary": "List targeting templates",
"description": "Get a list of the targeting templates in the specified ad_account_id",
"operationId": "targeting_template/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_order"
},
{
"in": "query",
"description": "Include audience sizing in result or not",
"name": "include_sizing",
"required": false,
"schema": {
"type": "boolean",
"default": false
}
},
{
"description": "Search keyword for targeting templates",
"in": "query",
"name": "search_query",
"example": "gaming",
"required": false,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_bookmark"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TargetingTemplateGetResponseData"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account id"
}
}
}
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"targeting_template"
]
},
"post": {
"summary": "Create targeting templates",
"description": "Targeting templates allow advertisers to save a set of targeting details including audience lists,\n keywords & interest, demographics, and placements to use more than once during the campaign creation process.
\nTemplates can be used to build out basic targeting criteria that you plan to use across campaigns and to reuse\n 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\ntemplate. It returns a token that you can use to download the report when it is ready.", "operationId": "analytics/create_template_report", "security": [ { "pinterest_oauth2": [ "ads:read" ] } ], "x-ratelimit-category": "ads_analytics", "x-sandbox": "disabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "$ref": "#/components/parameters/path_template_id" }, { "$ref": "#/components/parameters/query_start_date_async" }, { "$ref": "#/components/parameters/query_end_date_async" }, { "$ref": "#/components/parameters/query_granularity_async" } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdsAnalyticsCreateAsyncResponse" } } }, "description": "Success" }, "400": { "description": "Invalid ad account ads analytics template parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": { "code": 400, "message": "Invalid ad account analytics template parameters." } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "tags": [ "ad_accounts" ] } }, "/ad_accounts/{ad_account_id}/terms_of_service": { "get": { "description": "Get the text of the terms of service and see whether the advertiser has accepted the terms of service.", "operationId": "terms_of_service/get", "x-sandbox": "enabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { "$ref": "#/components/parameters/query_include_html" }, { "$ref": "#/components/parameters/query_tos_type" } ], "security": [ { "pinterest_oauth2": [ "ads:read" ] } ], "x-ratelimit-category": "ads_read", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TermsOfService" } } }, "description": "Success" }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Unexpected error" } }, "summary": "Get terms of service", "tags": [ "terms_of_service" ] } }, "/advanced_auction/items/get": { "post": { "summary": "Get item bid options (POST)", "description": "Get the bid options for a batch of retail catalog items.\n\nThe catalog must be owned by the \"operation user_account\". See detailed documentation here. By default, the \"operation user_account\" is the token user_account.\n\nOptional: Business Access: Specify anad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the \"operation user_account\". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: `Owner`, `Admin`.\n\nThis endpoint is not available to all users.",
"operationId": "advanced_auction_items_get/post",
"x-ratelimit-category": "advanced_auction_read",
"x-sandbox": "enabled",
"security": [
{
"pinterest_oauth2": [
"ads:read",
"catalogs:read"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Request object used to get bid options values for a batch of retail catalog items",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedAuctionItemsGetRequest"
}
}
}
},
"responses": {
"200": {
"description": "Response containing the bid option values for the requested retail catalog items. Items that don't exist or do not have bid options set won't be present in the response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedAuctionItems"
}
}
}
},
"400": {
"description": "Invalid request parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Invalid request: {'catalog_id': '1234'} list of retail catalog items not provided"
}
}
}
}
}
},
"401": {
"description": "Not authenticated to get item bid options",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthenticatedAccess": {
"value": {
"code": 2,
"message": "Authentication failed."
}
}
}
}
}
},
"403": {
"description": "Not authorized to get item bid options",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"advanced_auction"
]
}
},
"/advanced_auction/items/submit": {
"post": {
"summary": "Operate on item level bid options",
"description": "This endpoint supports multiple operations on a set of one or more bid options (bid price and bid adjustments for targeting categories) for retail catalog items. These advanced auction settings are applied in campaigns using objective_type `CATALOG_SALES` and ad groups using bid_strategy_type `MAX_BID`.\n\nThe catalog must be owned by the \"operation user_account\". See detailed documentation here. By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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`.\n\nThis endpoint is not available to all users.",
"operationId": "advanced_auction_items_submit/post",
"x-ratelimit-category": "advanced_auction_write",
"x-sandbox": "enabled",
"security": [
{
"pinterest_oauth2": [
"ads:write",
"catalogs:read"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Request object used to upsert or delete bid options for a batch of retail catalog items",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedAuctionItemsSubmitRequest"
}
}
}
},
"responses": {
"200": {
"description": "Response containing the results of the item bid options operations",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedAuctionProcessedItems"
}
}
}
},
"206": {
"description": "Response containing the results of the item bid options operations (where some/all operation results have errors)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedAuctionProcessedItems"
}
}
}
},
"400": {
"description": "Invalid request parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Invalid request: {'catalog_id': '1234'} list of item bid option operations not provided"
}
}
}
}
}
},
"401": {
"description": "Not authenticated to post item bid options",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthenticatedAccess": {
"value": {
"code": 2,
"message": "Authentication failed."
}
}
}
}
}
},
"403": {
"description": "Not authorized to post item bid options",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"advanced_auction"
]
}
},
"/boards": {
"get": {
"summary": "List boards",
"description": "Get a list of the boards owned by the \"operation user_account\" + group boards where this account is a collaborator\nOptional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the \"operation user_account\".\nOptional: Specify a privacy type (public, protected, or secret) to indicate which boards to return.\n- If no privacy is specified, all boards that can be returned (based on the scopes of the token and ad_account role if applicable) will be returned.",
"tags": [
"boards"
],
"operationId": "boards/list",
"security": [
{
"pinterest_oauth2": [
"boards:read"
]
},
{
"client_credentials": [
"boards:read"
]
}
],
"x-ratelimit-category": "org_read",
"x-sandbox": "enabled",
"x-codeSamples": [
{
"lang": "cURL",
"label": "curl",
"source": "curl --location --request GET 'https://api.pinterest.com/v5/boards' \\\n--header 'Authorization: Bearer ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the \"operation user_account\". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.\n\nLearn more",
"operationId": "catalogs/list",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Catalog"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Parameter 'page_size' was not numeric (was 3e)\""
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
},
"post": {
"x-ratelimit-category": "catalogs_write",
"summary": "Create catalog",
"description": "Create a new catalog owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nLearn more\n\nNote: this API only supports the catalog type of HOTEL for now.",
"operationId": "catalogs/create",
"security": [
{
"pinterest_oauth2": [
"catalogs:write"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Request object used to created a feed.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsCreateRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Catalog"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Invalid request: ..."
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/available_filter_values": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "List available filter values",
"description": "Get the available filter attributes and values associated with a given feed or catalog owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n- country, language, and feed_id are only used in retail catalogs.\n- Note: It is not guaranteed that all available filter values will be returned. Instead this endpoint will return values from a sample of up to 1000 items.\n\nOptional: 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.\n\nLearn more",
"operationId": "catalogs/available_filter_values",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"description": "Filter entities for a given catalog_id.",
"in": "query",
"required": true,
"name": "catalog_id",
"schema": {
"type": "string",
"pattern": "^\\d+$"
}
},
{
"$ref": "#/components/parameters/query_catalogs_feed_id"
},
{
"name": "country",
"in": "query",
"description": "Country for the Catalogs Items",
"example": "US",
"required": false,
"schema": {
"$ref": "#/components/schemas/Country"
}
},
{
"name": "language",
"in": "query",
"description": "Language for the Catalogs Items",
"example": "en-US",
"required": false,
"schema": {
"$ref": "#/components/schemas/CatalogsLocale"
}
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsAvailableFilterValues"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not authorized to access available filter values.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"404": {
"description": "Data feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"409": {
"description": "Can't access this feature without an existing catalog.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/feeds": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "List feeds",
"description": "Fetch feeds owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nFor Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.",
"operationId": "feeds/list",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
},
{
"client_credentials": [
"catalogs:read"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_catalogs_catalog_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CatalogsFeed"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Parameter 'page_size' was not numeric (was 3e)\""
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_feeds"
]
},
"post": {
"x-ratelimit-category": "catalogs_write",
"summary": "Create feed",
"description": "Create a new feed owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nPlease, be aware that \"default_country\"\nand \"default_locale\" are not required in the spec for forward compatibility\nbut for now the API will not accept requests without those fields.\n\nOptional: 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.\n\nFor Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.\n\nNote: Access to the Creative Assets catalog type is restricted to a specific group of users.\nIf you require access, please reach out to your partner manager.",
"operationId": "feeds/create",
"security": [
{
"pinterest_oauth2": [
"catalogs:read",
"catalogs:write"
]
},
{
"client_credentials": [
"catalogs:read",
"catalogs:write"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Request object used to created a feed.",
"required": true,
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/CatalogsVerticalFeedsCreateRequest"
},
{
"$ref": "#/components/schemas/CatalogsFeedsCreateRequest"
}
]
}
}
}
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsFeed"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Invalid request: ..."
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Business account required.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"BusinessAccountRequired": {
"value": {
"code": 654,
"message": "You must have a business account to operate as merchant."
}
},
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"409": {
"description": "User website required.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UserWebsiteRequired": {
"value": {
"code": 4168,
"message": "User does not have a website."
}
},
"UserWebsiteNotVerified": {
"value": {
"code": 4169,
"message": "User does not have a verified website."
}
}
}
}
}
},
"422": {
"description": "Unique feed name is required.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedDuplicatedName": {
"value": {
"code": 4170,
"message": "The feed name already exists."
}
}
}
}
}
},
"501": {
"description": "Not implemented (absent \"default_country\" or \"default_locale\").",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"NotImplemented": {
"value": {
"code": 4181,
"message": "Not implemented at the moment. Please, see documentation"
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_feeds"
]
}
},
"/catalogs/feeds/{feed_id}": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "Get feed",
"description": "Get a single feed owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nFor Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.",
"operationId": "feeds/get",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
},
{
"client_credentials": [
"catalogs:read"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_feed_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsFeed"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'feed_id' value '1511851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"404": {
"description": "Data feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_feeds"
]
},
"patch": {
"x-ratelimit-category": "catalogs_write",
"summary": "Update feed",
"description": "Update a feed owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nFor Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.\n\nNote: Access to the Creative Assets catalog type is restricted to a specific group of users.\nIf you require access, please reach out to your partner manager.",
"operationId": "feeds/update",
"security": [
{
"pinterest_oauth2": [
"catalogs:read",
"catalogs:write"
]
},
{
"client_credentials": [
"catalogs:read",
"catalogs:write"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_feed_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Request object used to update a feed.",
"required": true,
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/CatalogsVerticalFeedsUpdateRequest"
},
{
"$ref": "#/components/schemas/CatalogsFeedsUpdateRequest"
}
]
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsFeed"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Invalid request: ..."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for feed mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"404": {
"description": "Data feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_feeds"
]
},
"delete": {
"x-ratelimit-category": "catalogs_write",
"summary": "Delete feed",
"description": "Delete a feed owned by the \"operating user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nFor Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping.",
"operationId": "feeds/delete",
"security": [
{
"pinterest_oauth2": [
"catalogs:read",
"catalogs:write"
]
},
{
"client_credentials": [
"catalogs:read",
"catalogs:write"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_feed_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"204": {
"description": "Feed deleted successfully."
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'feed_id' value '1511851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for feed mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"404": {
"description": "Data feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't delete a feed with active promotions.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedHasActivePromotions": {
"value": {
"code": 4162,
"message": "We can't disable a Product Group with active promotions."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_feeds"
]
}
},
"/catalogs/feeds/{feed_id}/ingest": {
"post": {
"x-ratelimit-category": "catalogs_write",
"summary": "Ingest feed items",
"description": "Ingest items for a given feed owned by the \"operation user_account\".\n\nOptional: 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.\n\nLearn more\n\nNote: This endpoint is restricted to a specific group of users. If you require access, please reach out to your partner manager.",
"operationId": "feeds/ingest",
"security": [
{
"pinterest_oauth2": [
"catalogs:write"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_feed_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"description": "The ingestion process was successfully started.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsFeedIngestion"
}
}
}
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'feed_id' value '1511851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for feed mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"404": {
"description": "Data feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_feeds"
]
}
},
"/catalogs/feeds/{feed_id}/processing_results": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "List feed processing results",
"description": "Fetch a feed processing results owned by the \"operation user_account\". Please note that for now the bookmark parameter is not functional and only the first page will be available until it is implemented in some release in the near future.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nLearn more",
"operationId": "feed_processing_results/list",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_feed_id"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CatalogsFeedProcessingResult"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Parameter 'page_size' was not numeric (was 3e)\""
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"404": {
"description": "Feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_feeds"
]
}
},
"/catalogs/processing_results/{processing_result_id}/item_issues": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "List item issues",
"description": "List item validation issues for a given feed processing result owned by the \"operation user_account\". Up to 20 random samples of affected items are returned for each error and warning code. Please note that for now query parameters 'item_numbers' and 'item_validation_issue' cannot be used simultaneously until it is implemented in some release in the future.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nNote: To get a list of all affected items instead of sampled issues, please refer to Build catalogs report and Get catalogs report endpoints. Moreover, they support multiple types of catalogs.\n\nLearn more",
"operationId": "items_issues/list",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/path_catalogs_processing_result_id"
},
{
"$ref": "#/components/parameters/query_catalogs_item_numbers"
},
{
"$ref": "#/components/parameters/query_catalogs_item_validation_issue"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CatalogsItemValidationIssues"
}
}
}
}
]
}
}
},
"description": "Success"
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"404": {
"description": "Processing Result not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"ProcessingResultFound": {
"value": {
"code": 4184,
"message": "Sorry! We could not find your processing result."
}
}
}
}
}
},
"501": {
"description": "Not implemented.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"NotImplemented": {
"value": {
"code": 4181,
"message": "Not implemented at the moment. Please, see documentation."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_feeds"
]
}
},
"/catalogs/items": {
"post": {
"summary": "Get catalogs items (POST)",
"description": "Get the items of the catalog owned by the \"operation user_account\". See detailed documentation here.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nNote: Access to the Creative Assets catalog type is restricted to a specific group of users.\nIf you require access, please reach out to your partner manager.",
"operationId": "items/post",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-ratelimit-category": "catalogs_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Request object used to get catalogs items",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsItemsRequest"
}
}
}
},
"responses": {
"200": {
"description": "Response containing the requested catalogs items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsItems"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Invalid request: {'country': 'US', 'language': 'EN', 'filters': {'catalog_type': 'RETAIL', 'item_ids': 'test0'}} ('test0' is not of type array)"
}
}
}
}
}
},
"401": {
"description": "Not authorized to access catalogs items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 2,
"message": "Authentication failed."
}
}
}
}
}
},
"403": {
"description": "Not authorized to access catalogs items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_items"
]
}
},
"/catalogs/items/batch": {
"post": {
"summary": "Operate on item batch",
"description": "This endpoint supports multiple operations on a set of one or more catalog items owned by the \"operation user_account\". See detailed documentation here.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nNote:\n- Access to the Creative Assets catalog type is restricted to a specific group of users.\nIf you require access, please reach out to your partner manager.\n- The item UPSERT operation is restricted to users without a feed data source. If you plan to migrate item ingestion from feeds to the API, please reach out to your partner manager or via the Help Center to get assistance.",
"operationId": "items_batch/post",
"x-ratelimit-category": "catalogs_write",
"x-sandbox": "enabled",
"security": [
{
"pinterest_oauth2": [
"catalogs:read",
"catalogs:write"
]
},
{
"client_credentials": [
"catalogs:read",
"catalogs:write"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Request object used to create catalogs items in a batch",
"required": true,
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/CatalogsVerticalBatchRequest"
},
{
"$ref": "#/components/schemas/CatalogsItemsBatchRequest"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Response containing the requested catalogs items batch",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsItemsBatch"
}
}
}
},
"400": {
"description": "Invalid request parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Invalid request: {'country': 'US', 'language': 'EN', 'operation': 'CREATE', 'items': [{'item_id': 'RAY_01_', 'attributes': {'image_link': 'https://www.example.com/', 'title': 'My Product'}}]} ('https://www.example.com/' is not of type array)"
}
}
}
}
}
},
"401": {
"description": "Not authenticated to post catalogs items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthenticatedAccess": {
"value": {
"code": 2,
"message": "Authentication failed."
}
}
}
}
}
},
"403": {
"description": "Not authorized to post catalogs items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_items"
]
}
},
"/catalogs/items/batch/{batch_id}": {
"get": {
"summary": "Get item batch status",
"description": "Get a single catalogs items batch owned by the \"operating user_account\". See detailed documentation here.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the \"operation user_account\". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.",
"operationId": "items_batch/get",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
},
{
"client_credentials": [
"catalogs:read"
]
}
],
"x-ratelimit-category": "catalogs_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_items_batch_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"description": "Response containing the requested catalogs items batch",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsItemsBatch"
}
}
}
},
"401": {
"description": "Not authenticated to access catalogs items batch",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthenticatedAccess": {
"value": {
"code": 2,
"message": "Authentication failed."
}
}
}
}
}
},
"403": {
"description": "Not authorized to access catalogs items batch",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Catalogs items batch not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CannotFindBatch": {
"value": {
"code": 4331,
"message": "Sorry! We could not find your batch ID."
}
}
}
}
}
},
"405": {
"description": "Method Not Allowed.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MethodNotAllowed": {
"value": {
"status": "failure",
"code": 5,
"data": "405 Method Not Allowed: The method is not allowed for the requested URL.",
"message": "Method not allowed",
"endpoint_name": null
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_items"
]
}
},
"/catalogs/product_groups/multiple": {
"delete": {
"x-ratelimit-category": "catalogs_write",
"summary": "Delete product groups",
"description": "Delete product groups owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nLearn more",
"operationId": "catalogs_product_groups/delete_many",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_catalogs_product_group_ids_required"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"security": [
{
"pinterest_oauth2": [
"catalogs:write"
]
}
],
"responses": {
"204": {
"description": "Catalogs Product Groups deleted successfully."
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"404": {
"description": "Catalogs product group not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't delete this catalogs product group.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupHasActivePromotions": {
"value": {
"code": 4176,
"message": "We can't delete a Catalogs Product Group with active promotions."
}
},
"CannotAlterAutoGeneratedCatalogsProductGroup": {
"value": {
"code": 4177,
"message": "You cannot alter an auto generated catalogs product group."
}
},
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_product_groups"
]
},
"post": {
"x-ratelimit-category": "catalogs_write",
"summary": "Create product groups",
"description": "Create product group to use in Catalogs owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nLearn more\n\nNote: Access to the Creative Assets catalog type is restricted to a specific group of users.\nIf you require access, please reach out to your partner manager.",
"operationId": "catalogs_product_groups/create_many",
"security": [
{
"pinterest_oauth2": [
"catalogs:write"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Request object used to create one or more catalogs product groups.",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "array",
"title": "multiple product groups",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/CatalogsProductGroupCreateRequest"
},
{
"$ref": "#/components/schemas/CatalogsVerticalProductGroupCreateRequest"
}
]
}
},
"examples": {
"RetailFewFiltersUsingAllOf": {
"summary": "A simple retail example that applies \"all of the following filters\".",
"description": "The use of \"all_of\" creates a Product Group where all of the individual filters\nmust be satisfied by a product to be included in the Product Group.\n",
"value": [
{
"name": "Few Filters using \"all_of\"",
"feed_id": "2680059592705",
"filters": {
"all_of": [
{
"MIN_PRICE": {
"values": 999.99,
"inclusion": true
}
},
{
"CURRENCY": {
"values": "USD"
}
},
{
"CUSTOM_LABEL_0": {
"values": [
"Luxury Items"
]
}
}
]
}
}
]
},
"RetailManyFiltersUsingAnyOf": {
"summary": "A more complete retail example that applies \"any of the following filters\".",
"description": "The use of \"any_of\" creates a Product Group where any of the individual filters\ncan add products to the Product Group independently.\n",
"value": [
{
"name": "Many Filters using \"any_of\"",
"feed_id": "2680059592705",
"filters": {
"all_of": [
{
"MIN_PRICE": {
"values": 111.55,
"inclusion": false,
"negated": false
}
},
{
"CURRENCY": {
"values": "USD",
"negated": false
}
},
{
"AVAILABILITY": {
"values": [
"IN_STOCK",
"OUT_OF_STOCK",
"PREORDER"
],
"negated": false
}
},
{
"BRAND": {
"values": [
"avanti",
"beautyrest"
],
"negated": true
}
},
{
"GOOGLE_PRODUCT_CATEGORY_0": {
"values": [
[
"furniture",
"tables",
"accent tables",
"end tables"
],
[
"furniture",
"chairs",
"slipper chairs"
],
[
"home & garden"
]
],
"negated": false
}
},
{
"CONDITION": {
"values": [
"NEW",
"REFURBISHED",
"USED"
],
"negated": false
}
},
{
"CUSTOM_LABEL_0": {
"values": [
"004 - home furn leisure"
],
"negated": false
}
},
{
"CUSTOM_LABEL_1": {
"values": [
"clearance",
"original price"
],
"negated": false
}
},
{
"CUSTOM_LABEL_2": {
"values": [
"789 - table linens",
"794 - living room accents"
],
"negated": false
}
},
{
"GENDER": {
"values": [
"FEMALE",
"MALE",
"UNISEX"
],
"negated": false
}
},
{
"ITEM_ID": {
"values": [
"does not exists",
"this one neither",
"nope"
],
"negated": true
}
},
{
"ITEM_GROUP_ID": {
"values": [
"nonexistant group",
"another one",
"last one"
],
"negated": true
}
},
{
"PRODUCT_TYPE_0": {
"values": [
[
"accent chairs",
"club chairs"
],
[
"accent chairs",
"slipper chairs"
],
[
"accent tables",
"end tables"
],
[
"air mattresses",
"air mattresses"
],
[
"table linens"
]
],
"negated": false
}
}
]
}
}
]
},
"CatalogBasedRetailFewFiltersUsingAllOf": {
"summary": "A simple catalog based retail example that applies \"all of the following filters\".",
"description": "The use of \"all_of\" creates a Product Group where all of the individual filters\nmust be satisfied by a retail to be included in the Product Group.\n",
"value": [
{
"catalog_type": "RETAIL",
"name": "Few Filters using \"all_of\"",
"catalog_id": "4866935934774",
"country": "US",
"locale": "en-US",
"filters": {
"all_of": [
{
"ITEM_ID": {
"values": [
"item1",
"item2"
]
}
},
{
"CUSTOM_LABEL_1": {
"values": [
"shoes"
],
"negated": false
}
}
]
}
}
]
},
"HotelFewFiltersUsingAllOf": {
"summary": "A simple hotel example that applies \"all of the following filters\".",
"description": "The use of \"all_of\" creates a Product Group where all of the individual filters\nmust be satisfied by a hotel to be included in the Product Group.\n",
"value": [
{
"catalog_type": "HOTEL",
"name": "Few Filters using \"all_of\"",
"catalog_id": "4866935934774",
"filters": {
"all_of": [
{
"HOTEL_ID": {
"values": [
"hotel1",
"hotel2"
]
}
},
{
"CUSTOM_LABEL_1": {
"values": [
"big_hotels"
],
"negated": false
}
}
]
}
}
]
}
}
}
}
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"description": "ID of a created catalog product group.",
"example": "443727193917",
"type": "string",
"pattern": "^\\d+$"
}
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid body.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'feed_id' value '1511851494501_' must match the pattern: ^\\d+$\"}"
}
},
"CatalogsProductGroupMissingCountryAndLocale": {
"value": {
"code": 6136,
"message": "A catalog product group must have a country and locale specified."
}
},
"CatalogsIntlProductGroupCountryOrLocaleSpecified": {
"value": {
"code": 6137,
"message": "An international product group cannot have a country or locale specified."
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't create this catalogs product group with this value.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupFiltersAlreadyExist": {
"value": {
"code": 4178,
"message": "A catalogs product group with these filters already exists for this feed."
}
},
"CatalogsProductGroupNameAlreadyExist": {
"value": {
"code": 4179,
"message": "A catalogs product group with this name already exists for this feed."
}
},
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
},
"CatalogsProductGroupFiltersInvalid": {
"value": {
"code": 4183,
"message": "Catalog product group filters failed validation, please ensure all filters are set correctly."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_product_groups"
]
}
},
"/catalogs/product_groups": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "List product groups",
"description": "Get a list of product groups for a given Catalogs Feed Id owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nLearn more",
"operationId": "catalogs_product_groups/list",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_catalogs_product_group_ids"
},
{
"$ref": "#/components/parameters/query_catalogs_feed_id"
},
{
"$ref": "#/components/parameters/query_catalogs_catalog_id"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CatalogsVerticalProductGroup"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'feed_id' value '1511851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"404": {
"description": "Data feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't create this catalogs product group with this value.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_product_groups"
]
},
"post": {
"x-ratelimit-category": "catalogs_write",
"summary": "Create product group",
"description": "Create product group to use in Catalogs owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\"Catalog-based product groups\" can include items from all data sources (feeds and API) and are available to both non-retail catalogs with any data sources and retail catalogs with API-created items. If your catalog only contains retail items created via feeds, you should use the \"retail feed-based\" option.\nLearn more\n\nNote: Access to the Creative Assets catalog type is restricted to a specific group of users.\nIf you require access, please reach out to your partner manager.",
"operationId": "catalogs_product_groups/create",
"security": [
{
"pinterest_oauth2": [
"catalogs:write"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Request object used to create a single catalogs product groups.",
"required": true,
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/CatalogsProductGroupCreateRequest"
},
{
"$ref": "#/components/schemas/CatalogsVerticalProductGroupCreateRequest"
}
]
},
"examples": {
"RetailFewFiltersUsingAllOf": {
"summary": "A simple retail example that applies \"all of the following filters\".",
"description": "The use of \"all_of\" creates a Product Group where all of the individual filters\nmust be satisfied by a product to be included in the Product Group.\n",
"value": {
"name": "Few Filters using \"all_of\"",
"feed_id": "2680059592705",
"filters": {
"all_of": [
{
"MIN_PRICE": {
"values": 999.99,
"inclusion": true
}
},
{
"CURRENCY": {
"values": "USD"
}
},
{
"CUSTOM_LABEL_0": {
"values": [
"Luxury Items"
]
}
}
]
}
}
},
"RetailManyFiltersUsingAnyOf": {
"summary": "A more complete retail example that applies \"any of the following filters\".",
"description": "The use of \"any_of\" creates a Product Group where any of the individual filters\ncan add products to the Product Group independently.\n",
"value": {
"name": "Many Filters using \"any_of\"",
"feed_id": "2680059592705",
"filters": {
"all_of": [
{
"MIN_PRICE": {
"values": 111.55,
"inclusion": false,
"negated": false
}
},
{
"CURRENCY": {
"values": "USD",
"negated": false
}
},
{
"AVAILABILITY": {
"values": [
"IN_STOCK",
"OUT_OF_STOCK",
"PREORDER"
],
"negated": false
}
},
{
"BRAND": {
"values": [
"avanti",
"beautyrest"
],
"negated": true
}
},
{
"GOOGLE_PRODUCT_CATEGORY_0": {
"values": [
[
"furniture",
"tables",
"accent tables",
"end tables"
],
[
"furniture",
"chairs",
"slipper chairs"
],
[
"home & garden"
]
],
"negated": false
}
},
{
"CONDITION": {
"values": [
"NEW",
"REFURBISHED",
"USED"
],
"negated": false
}
},
{
"CUSTOM_LABEL_0": {
"values": [
"004 - home furn leisure"
],
"negated": false
}
},
{
"CUSTOM_LABEL_1": {
"values": [
"clearance",
"original price"
],
"negated": false
}
},
{
"CUSTOM_LABEL_2": {
"values": [
"789 - table linens",
"794 - living room accents"
],
"negated": false
}
},
{
"GENDER": {
"values": [
"FEMALE",
"MALE",
"UNISEX"
],
"negated": false
}
},
{
"ITEM_ID": {
"values": [
"does not exists",
"this one neither",
"nope"
],
"negated": true
}
},
{
"ITEM_GROUP_ID": {
"values": [
"nonexistant group",
"another one",
"last one"
],
"negated": true
}
},
{
"PRODUCT_TYPE_0": {
"values": [
[
"accent chairs",
"club chairs"
],
[
"accent chairs",
"slipper chairs"
],
[
"accent tables",
"end tables"
],
[
"air mattresses",
"air mattresses"
],
[
"table linens"
]
],
"negated": false
}
}
]
}
}
},
"HotelFewFiltersUsingAllOf": {
"summary": "A simple hotel example that applies \"all of the following filters\".",
"description": "The use of \"all_of\" creates a Product Group where all of the individual filters\nmust be satisfied by a hotel to be included in the Product Group.\n",
"value": {
"catalog_type": "HOTEL",
"name": "Few Filters using \"all_of\"",
"catalog_id": "4866935934774",
"filters": {
"all_of": [
{
"HOTEL_ID": {
"values": [
"hotel1",
"hotel2"
]
}
},
{
"CUSTOM_LABEL_1": {
"values": [
"big_hotels"
],
"negated": false
}
}
]
}
}
},
"CatalogBasedRetailFewFiltersUsingAllOf": {
"summary": "A simple catalog based retail example that applies \"all of the following filters\".",
"description": "The use of \"all_of\" creates a Product Group where all of the individual filters\nmust be satisfied by a retail to be included in the Product Group.\n",
"value": {
"catalog_type": "RETAIL",
"name": "Few Filters using \"all_of\"",
"catalog_id": "4866935934774",
"country": "US",
"locale": "en-US",
"filters": {
"all_of": [
{
"ITEM_ID": {
"values": [
"item1",
"item2"
]
}
},
{
"CUSTOM_LABEL_1": {
"values": [
"shoes"
],
"negated": false
}
}
]
}
}
}
}
}
}
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsVerticalProductGroup"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid body.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'feed_id' value '1511851494501_' must match the pattern: ^\\d+$\"}"
}
},
"CatalogsProductGroupMissingCountryAndLocale": {
"value": {
"code": 6136,
"message": "A catalog product group must have a country and locale specified."
}
},
"CatalogsIntlProductGroupCountryOrLocaleSpecified": {
"value": {
"code": 6137,
"message": "An international product group cannot have a country or locale specified."
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't create this catalogs product group with this value.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupFiltersAlreadyExist": {
"value": {
"code": 4178,
"message": "A catalogs product group with these filters already exists for this feed."
}
},
"CatalogsProductGroupNameAlreadyExist": {
"value": {
"code": 4179,
"message": "A catalogs product group with this name already exists for this feed."
}
},
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
},
"CatalogsProductGroupFiltersInvalid": {
"value": {
"code": 4183,
"message": "Catalog product group filters failed validation, please ensure all filters are set correctly."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_product_groups"
]
}
},
"/catalogs/product_groups/{product_group_id}": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "Get product group",
"description": "Get a singe product group for a given Catalogs Product Group Id owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nLearn more",
"operationId": "catalogs_product_groups/get",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_product_group_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsVerticalProductGroup"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid catalogs product group id parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'product_group_id' value '11851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"404": {
"description": "Catalogs product group not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't get a catalogs product group without an existing catalog.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't acccess this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_product_groups"
]
},
"delete": {
"x-ratelimit-category": "catalogs_write",
"summary": "Delete product group",
"description": "Delete a product group owned by the \"operation user_account\" from being in use in Catalogs.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nLearn more",
"operationId": "catalogs_product_groups/delete",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_product_group_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"security": [
{
"pinterest_oauth2": [
"catalogs:write"
]
}
],
"responses": {
"204": {
"description": "Catalogs Product Group deleted successfully."
},
"400": {
"description": "Invalid catalogs product group id parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'product_group_id' value '11851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"404": {
"description": "Catalogs product group not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't delete this catalogs product group.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupHasActivePromotions": {
"value": {
"code": 4176,
"message": "We can't delete a Catalogs Product Group with active promotions."
}
},
"CannotAlterAutoGeneratedCatalogsProductGroup": {
"value": {
"code": 4177,
"message": "You cannot alter an auto generated catalogs product group."
}
},
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_product_groups"
]
},
"patch": {
"x-ratelimit-category": "catalogs_write",
"summary": "Update single product group",
"description": "Update product group owned by the \"operation user_account\" to use in Catalogs.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\"Catalog-based product groups\" can include items from all data sources (feeds and API) and are available to both non-retail catalogs with any data sources and retail catalogs with API-created items. If your catalog only contains retail items created via feeds, you should use the \"retail feed-based\" option.\nLearn more\n\nNote: Access to the Creative Assets catalog type is restricted to a specific group of users.\nIf you require access, please reach out to your partner manager.",
"operationId": "catalogs_product_groups/update",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_product_group_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"security": [
{
"pinterest_oauth2": [
"catalogs:write"
]
}
],
"requestBody": {
"description": "Request object used to Update a catalogs product group.",
"required": true,
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/CatalogsProductGroupUpdateRequest"
},
{
"$ref": "#/components/schemas/CatalogsVerticalProductGroupUpdateRequest"
}
]
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsVerticalProductGroup"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'product_group_id' value '11851494501_' must match the pattern: ^\\d+$\"}"
}
},
"CatalogsIntlProductGroupCountryOrLocaleSpecified": {
"value": {
"code": 6137,
"message": "An international product group cannot have a country or locale specified."
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action as your account has been disapproved. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/"
}
}
}
}
}
},
"404": {
"description": "Catalogs product group not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't update this catalogs product group to this value.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CannotAlterAutoGeneratedCatalogsProductGroup": {
"value": {
"code": 4177,
"message": "You cannot alter an auto generated catalogs product group."
}
},
"CatalogsProductGroupFiltersAlreadyExist": {
"value": {
"code": 4178,
"message": "A catalogs product group with these filters already exists for this feed."
}
},
"CatalogsProductGroupNameAlreadyExist": {
"value": {
"code": 4179,
"message": "A catalogs product group with this name already exists for this feed."
}
},
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
},
"CatalogsProductGroupFiltersInvalid": {
"value": {
"code": 4183,
"message": "Catalog product group filters failed validation, please ensure all filters are set correctly."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_product_groups"
]
}
},
"/catalogs/product_groups/{product_group_id}/product_counts": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "Get product counts",
"description": "Get a product counts for a given Catalogs Product Group owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nLearn more",
"operationId": "catalogs_product_groups/product_counts_get",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_product_group_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsProductGroupProductCountsVertical"
}
}
},
"description": "Success"
},
"404": {
"description": "Product Group Not Found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"409": {
"description": "Can't access this feature without an existing catalog.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_product_groups"
]
}
},
"/catalogs/product_groups/{product_group_id}/products": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "List products by product group",
"description": "Get a list of product pins for a given Catalogs Product Group Id owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nLearn more",
"operationId": "catalogs_product_group_pins/list",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"catalogs:read",
"pins:read"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/path_catalogs_product_group_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
},
{
"$ref": "#/components/parameters/query_pin_metrics"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"description": "Pins",
"items": {
"$ref": "#/components/schemas/CatalogsProduct"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'product_group_id' value '11851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"404": {
"description": "Catalogs product group not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_product_groups"
]
}
},
"/catalogs/products/get_by_product_group_filters": {
"post": {
"x-ratelimit-category": "catalogs_read",
"summary": "List products by filter",
"description": "List products Pins owned by the \"operation user_account\" that meet the criteria specified in the Catalogs Product Group Filter given in the request.\n- This endpoint has been implemented in POST to allow for complex filters. This specific POST endpoint is designed to be idempotent.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nNote: This endpoint only supports RETAIL catalog at the moment.\n\nLearn more",
"operationId": "products_by_product_group_filter/list",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"catalogs:read",
"pins:read"
]
}
],
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
},
{
"$ref": "#/components/parameters/query_pin_metrics"
}
],
"requestBody": {
"description": "Object holding a group of filters for a catalog product group",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsListProductsByFilterRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"description": "Pins",
"items": {
"$ref": "#/components/schemas/CatalogsProduct"
}
}
}
}
]
}
}
},
"description": "Success"
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't get products.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't acccess this feature without an existing catalog."
}
},
"CatalogsProductGroupFiltersInvalid": {
"value": {
"code": 4183,
"message": "Catalog product group filters failed validation, please ensure all filters are set correctly."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_product_groups"
]
}
},
"/catalogs/reports": {
"post": {
"summary": "Build catalogs report",
"description": "Async request to create a report of the catalog owned by the \"operation user_account\". This endpoint generates a report upon receiving the first approved request of the day. Any following requests with identical parameters will yield the same report even if data has changed.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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.\n\nNote: Access to the All Items report type is restricted to a specific group of users.\nIf you require access, please reach out to your partner manager.",
"operationId": "reports/create",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-ratelimit-category": "catalogs_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Request object to asynchronously create a report.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsReportParameters"
}
}
}
},
"responses": {
"200": {
"description": "Response containing the report token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsCreateReportResponse"
}
}
}
},
"404": {
"description": "Entity (e.g., catalog, feed or processing_result) not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogNotFound": {
"value": {
"code": 678,
"message": "Sorry! We couldn't find that catalog. Please ensure you have access to a valid catalog id."
}
},
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
},
"CatalogsProcessingResultNotFound": {
"value": {
"code": 4184,
"message": "Sorry! We could not find your processing result"
}
}
}
}
}
},
"409": {
"description": "Can't access this feature without an existing catalog.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_reports"
]
},
"get": {
"summary": "Get catalogs report",
"description": "This returns a URL to a report given a token returned from Build catalogs report. You can use the URL to download the report.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the \"operation user_account\". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.",
"operationId": "reports/get",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-ratelimit-category": "catalogs_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
},
{
"$ref": "#/components/parameters/query_catalogs_report_token"
}
],
"responses": {
"200": {
"description": "Response that contains a link to download the report",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsReport"
}
}
}
},
"400": {
"description": "The token you provided is not valid or has expired.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidReportingToken": {
"value": {
"code": 1104,
"message": "The token you provided is not valid or has expired."
}
}
}
}
}
},
"409": {
"description": "Can't access this feature without an existing catalog.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_reports"
]
}
},
"/catalogs/reports/stats": {
"get": {
"summary": "List report stats",
"description": "List aggregated numbers of issues for a catalog owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the \"operation user_account\". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.",
"operationId": "reports/stats",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-ratelimit-category": "catalogs_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_catalogs_report_stats_parameters"
}
],
"responses": {
"200": {
"description": "Response containing the diagnostics aggregated counters",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CatalogsReportStats"
}
}
}
}
]
}
}
}
},
"401": {
"description": "Not authorized to access catalogs",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 2,
"message": "Authentication failed."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalog_reports"
]
}
},
"/integrations/commerce": {
"post": {
"summary": "Create commerce integration",
"description": "Create commerce integration metadata to link an external business ID with a Pinterest merchant & ad account.\nNote: 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.\nNote: 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.\nNote: 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.\nNote: 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.\nNote: If you're interested in joining the beta, please reach out to your Pinterest account manager.",
"tags": [
"integrations"
],
"operationId": "integrations_logs/post",
"x-ratelimit-category": "ads_write",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-sandbox": "enabled",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IntegrationLogsRequest"
}
}
},
"description": "Ingest log information from external integration application.",
"required": true
},
"responses": {
"200": {
"description": "Success.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IntegrationLogsSuccessResponse"
}
}
}
},
"400": {
"description": "Bad request.",
"content": {
"application/json": {
"schema": {
"anyOf": [
{
"$ref": "#/components/schemas/Error"
},
{
"$ref": "#/components/schemas/DetailedError"
}
]
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/integrations": {
"get": {
"summary": "Get integration metadata list",
"description": "Get integration metadata list.\nNote: 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.\nNote: 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.\n\nLearn 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\n\nThe response includes all of the information needed to upload the media\nto Pinterest.\n\nTo upload the media, make an HTTP POST request (using curl, for\nexample) to upload_url using the Content-Type header\nvalue. Send the media file's contents as the request's file\nparameter and also include all of the parameters from\nupload_parameters.\n\nLearn 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.\n\nLearn more about video Pin creation.",
"tags": [
"media"
],
"operationId": "media/get",
"security": [
{
"pinterest_oauth2": [
"pins:read"
]
}
],
"x-ratelimit-category": "org_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_media_id"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaUploadDetails"
}
}
}
},
"404": {
"description": "Media upload not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Media upload not found"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/notifications": {
"post": {
"summary": "Receive notifications from external partners.",
"description": "Used by third-party partners to send notifications to Pinterest. These notifications could be specific for your use-case or generic notification that are accepted by Pinterests' systems. This API is gated and you need to request access to this feature.",
"operationId": "notification/post",
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "enabled",
"requestBody": {
"description": "notification event.",
"required": true,
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"type": "array",
"minItems": 1,
"maxItems": 100,
"items": {
"type": "object",
"additionalProperties": true,
"description": "Any valid JSON object"
}
},
{
"type": "object"
}
],
"additionalProperties": true,
"description": "Any valid JSON object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"title": "NotificationResponse",
"type": "object",
"properties": {
"success": {
"description": "Returns true if the notification accepted.",
"type": "boolean",
"example": false
},
"received_at": {
"description": "Received time. Unix timestamp in seconds.",
"example": 1677003860,
"type": "integer"
},
"error_msg": {
"type": "string",
"description": "error message when success is false"
}
}
}
}
},
"description": "Successfully received notification"
},
"400": {
"description": "Invalid request parameter.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 6126,
"message": "Invalid request parameter."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"notification"
]
}
},
"/oauth/token": {
"post": {
"summary": "Generate OAuth access token",
"description": "Generate an OAuth access token by using an authorization code or a refresh token.\n\nIMPORTANT: You need to start the OAuth flow via www.pinterest.com/oauth before calling this endpoint (or have an existing refresh token).\n\nSee Authentication for more.\n\nParameter 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.\n\nUse Token Debugger to validate and inspect your access token.",
"tags": [
"oauth"
],
"operationId": "oauth/token",
"security": [
{
"basic": []
}
],
"x-ratelimit-category": "org_read",
"x-sandbox": "enabled",
"requestBody": {
"description": "Generate an OAuth access token.",
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/OauthAccessTokenRequest"
}
}
}
},
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OauthAccessTokenResponse"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/oauth/token/revoke": {
"post": {
"summary": "Revoke a token",
"description": "Revokes an access or refresh token. Only tokens issued for system users are currently supported. Revoked tokens become immediately invalid and unusable.",
"tags": [
"oauth"
],
"operationId": "token/revoke",
"security": [
{
"basic": []
}
],
"x-ratelimit-category": "org_write",
"x-sandbox": "enabled",
"requestBody": {
"description": "Body containing the token to revoke.",
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/TokenRevocationRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful token revocation. No content is returned."
},
"401": {
"description": "Client authentication error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 2,
"message": "Authentication failed."
}
}
}
},
"403": {
"description": "Client is not allowed to revoke token.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/pins": {
"get": {
"summary": "List Pins",
"description": "Get a list of the Pins owned by the \"operation user_account\".\n - By default, the \"operation user_account\" is the token user_account.\n - All Pins owned by the \"operation user_account\" are included, regardless of who owns the board they are on.\nOptional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the \"operation user_account\".\n\nDisclaimer: there are known performance issues when filtering by field creative_type and including protected pins. If your\nrequest 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"
]
},
{
"client_credentials": [
"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' \\\n--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:\n\n- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.\n- For Pins on secret boards: Owner, Admin.",
"tags": [
"pins"
],
"operationId": "pins/get",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"pins:read"
]
},
{
"client_credentials": [
"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\n\nfrom pinterest.organic.pins import Pin\n# Pin information can be fetched from profile page or from list pin method here:\n# /docs/api/v5/#operation/pins/list\nPIN_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:\n\n- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.\n- For Pins on secret boards: Owner, Admin.",
"tags": [
"pins"
],
"operationId": "pins/delete",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"boards:write",
"pins:read",
"pins:write"
]
},
{
"client_credentials": [
"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\n\nfrom pinterest.organic.pins import Pin\n# Pin information can be fetched from profile page or from create/list pin method here:\n# /docs/api/v5/#operation/pins/list\nPIN_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:\n\n- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.\n- For Pins on secret boards: Owner, Admin.\n\nThis 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"
]
},
{
"client_credentials": [
"boards:read",
"boards:write",
"pins:read",
"pins:write"
]
}
],
"x-ratelimit-category": "org_write",
"x-sandbox": "enabled",
"x-codeSamples": [
{
"lang": "cURL",
"label": "curl",
"source": "# Pin information can be fetched from profile page or from create/list pin method here:\n# /docs/api/v5/#operation/pins/list\n\ncurl --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:\n\n- For Pins on public or protected boards: Admin, Analyst.\n- For Pins on secret boards: Admin.\n\nIf Pin was created before 2023-03-20 lifetime metrics will only be available for Video and Idea Pin formats. Lifetime metrics are available for all Pin formats since then.",
"tags": [
"pins"
],
"operationId": "pins/analytics",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"pins:read"
]
},
{
"client_credentials": [
"boards:read",
"pins:read"
]
}
],
"x-ratelimit-category": "org_analytics",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/path_pin_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_app_types"
},
{
"$ref": "#/components/parameters/query_pin_analytics_metric_types"
},
{
"$ref": "#/components/parameters/query_split_field_pins"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PinAnalyticsResponse"
}
}
}
},
"400": {
"description": "Invalid pins analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid pins analytics parameters."
}
}
}
},
"403": {
"description": "Not authorized to access board or Pin.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access board or Pin."
}
}
}
},
"404": {
"description": "Pin not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Pin not found."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/pins/analytics": {
"get": {
"summary": "Get multiple Pin analytics",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nGet analytics for multiple pins owned by the \"operation user_account\" - or on a group board that has been shared with this account.\n- The maximum number of pins supported in a single request is 100.\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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:\n\n- For Pins on public or protected boards: Admin, Analyst.\n- For Pins on secret boards: Admin.\n\nIf Pin was created before 2023-03-20 lifetime metrics will only be available for Video and Idea Pin formats. Lifetime metrics are available for all Pin formats since then.",
"tags": [
"pins"
],
"operationId": "multi_pins/analytics",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"pins:read"
]
},
{
"client_credentials": [
"boards:read",
"pins:read"
]
}
],
"x-ratelimit-category": "org_analytics",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/query_required_pin_ids"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_app_types"
},
{
"description": "Pin metric types to get data for.",
"explode": false,
"in": "query",
"name": "metric_types",
"required": true,
"schema": {
"type": "array",
"items": {
"oneOf": [
{
"description": "Standard Pin metric types",
"type": "string",
"enum": [
"IMPRESSION",
"OUTBOUND_CLICK",
"PIN_CLICK",
"SAVE",
"SAVE_RATE",
"TOTAL_COMMENTS",
"TOTAL_REACTIONS",
"USER_FOLLOW",
"PROFILE_VISIT"
]
},
{
"description": "Video Pin metric types",
"type": "string",
"enum": [
"IMPRESSION",
"OUTBOUND_CLICK",
"PIN_CLICK",
"SAVE",
"SAVE_RATE",
"VIDEO_MRC_VIEW",
"VIDEO_10S_VIEW",
"QUARTILE_95_PERCENT_VIEW",
"VIDEO_V50_WATCH_TIME",
"VIDEO_START",
"VIDEO_AVG_WATCH_TIME",
"TOTAL_COMMENTS",
"TOTAL_REACTIONS"
]
}
]
}
},
"style": "form"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BulkPinAnalyticsResponse"
}
}
}
},
"400": {
"description": "Invalid pins analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 1,
"message": "Invalid multi_pins analytics parameters."
}
}
}
},
"401": {
"description": "Not authorized to access board or Pin.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 7,
"message": "Not authorized to access board or Pin."
}
}
}
},
"404": {
"description": "Pin not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 50,
"message": "Pin not found."
}
}
}
},
"429": {
"description": "This request exceeded a rate limit. This can happen if the client exceeds one\nof the published rate limits or if multiple write operations are applied to\nan 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\nof the published rate limits or if multiple write operations are applied to\nan 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\".\n- By default, the \"operation user_account\" is the token user_account.\nOptional: 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:\n\n- For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager.\n- For Pins on secret boards: Owner, Admin.\n\n- Any Pin type can be saved: image Pin, video Pin, Idea Pin, product Pin, etc.\n- 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\n\nfrom pinterest.organic.pins import Pin\n# Pin information can be fetched from profile page or from create/list pin method here:\n# /docs/api/v5/#operation/pins/list\nPIN_ID=\"Get details of a specific interest given interest ID.
Click here for a spreadsheet listing interests and their IDs.
", "operationId": "interest_targeting_options/get", "security": [ { "pinterest_oauth2": [ "ads:read" ] }, { "client_credentials": [ "ads:read" ] } ], "x-ratelimit-category": "ads_read", "x-sandbox": "enabled", "parameters": [ { "$ref": "#/components/parameters/path_interest_id" } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SingleInterestTargetingOptionResponse" } } }, "description": "Success" }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Unexpected error" } }, "tags": [ "resources" ] } }, "/resources/targeting/{targeting_type}": { "get": { "summary": "Get targeting options", "description": "You can use targeting values in ads placement to define your intended audience.
Targeting metrics are organized around targeting specifications.
For more information on ads targeting, see Audience targeting.
\nSample return:
[{"36313": "Australia: Moreton Bay - North", "124735": "Canada: North Battleford", "36109": "Australia: Murray", "36108": "Australia: Mid North Coast", "36101": "Australia: Capital Region", "811": "U.S.: Reno", "36103": "Australia: Central West", "36102": "Australia: Central Coast", "36105": "Australia: Far West and Orana", "36104": "Australia: Coffs Harbour - Grafton", "36107": "Australia: Illawarra", "36106": "Australia: Hunter Valley Exc Newcastle", "554017": "New Zealand: Wanganui", "554016": "New Zealand: Marlborough", "554015": "New Zealand: Gisborne", "554014": "New Zealand: Tararua", "554013": "New Zealand: Invercargill", "GR": "Greece", "554011": "New Zealand: Whangarei", "554010": "New Zealand: Far North", "717": "U.S.: Quincy-Hannibal-Keokuk", "716": "U.S.: Baton Rouge",...}] ",
"operationId": "targeting_options/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
},
{
"client_credentials": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_targeting_type"
},
{
"$ref": "#/components/parameters/query_client_id"
},
{
"$ref": "#/components/parameters/query_oauth_signature"
},
{
"$ref": "#/components/parameters/query_timestamp"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TargetingOptionResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"resources"
]
}
},
"/search/boards": {
"get": {
"summary": "Search user's boards",
"description": "Search for boards for the \"operation user_account\". This includes boards of all board types.\n- By default, the \"operation user_account\" is the token user_account.\n\nIf using Business Access: Specify an ad_account_id to use the owner of that ad_account as the \"operation user_account\". See Understanding Business Access for more information.",
"operationId": "search_user_boards/get",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"boards:read_secret"
]
},
{
"client_credentials": [
"boards:read",
"boards:read_secret"
]
}
],
"x-ratelimit-category": "org_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_query"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"description": "items",
"items": {
"$ref": "#/components/schemas/Board"
}
}
}
}
]
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"search"
]
}
},
"/search/pins": {
"get": {
"description": "Search for pins for the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.\n\nIf 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.\n\nGet 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' \\\n--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.\n",
"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.
\nIf 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\"\n- By default, the \"operation user_account\" is the token user_account.\n\nIf using Business Access: Specify an ad_account_id to use the owner of that ad_account as the \"operation user_account\". See Understanding Business Access for more information.",
"tags": [
"user_account"
],
"operationId": "user_account/get",
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
},
{
"client_credentials": [
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Account"
}
}
}
},
"403": {
"description": "Not authorized to access the user account.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access the user account."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/user_account/analytics": {
"get": {
"summary": "Get user account analytics",
"description": "Get analytics for the \"operation user_account\"\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: 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).\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the \"operation user_account\".",
"tags": [
"user_account"
],
"operationId": "user_account/analytics/top_pins",
"security": [
{
"pinterest_oauth2": [
"pins:read",
"user_accounts:read"
]
},
{
"client_credentials": [
"pins:read",
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_analytics",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_sort_by"
},
{
"$ref": "#/components/parameters/query_from_claimed_content"
},
{
"$ref": "#/components/parameters/query_pin_format"
},
{
"$ref": "#/components/parameters/query_app_types"
},
{
"$ref": "#/components/parameters/query_content_type"
},
{
"$ref": "#/components/parameters/query_source"
},
{
"$ref": "#/components/parameters/query_metric_types"
},
{
"$ref": "#/components/parameters/query_num_of_pins"
},
{
"$ref": "#/components/parameters/query_created_in_last_n_days"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TopPinsAnalyticsResponse"
}
}
},
"description": "Success"
},
"403": {
"description": "Not authorized to access the user account analytics.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access the user account analytics."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/user_account/analytics/top_video_pins": {
"get": {
"summary": "Get user account top video pins analytics",
"description": "Gets analytics data about a user's top video pins (limited to the top 50).\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the \"operation user_account\".",
"tags": [
"user_account"
],
"operationId": "user_account/analytics/top_video_pins",
"security": [
{
"pinterest_oauth2": [
"pins:read",
"user_accounts:read"
]
},
{
"client_credentials": [
"pins:read",
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_analytics",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_video_pin_sort_by"
},
{
"$ref": "#/components/parameters/query_from_claimed_content"
},
{
"$ref": "#/components/parameters/query_pin_format"
},
{
"$ref": "#/components/parameters/query_app_types"
},
{
"$ref": "#/components/parameters/query_content_type"
},
{
"$ref": "#/components/parameters/query_source"
},
{
"$ref": "#/components/parameters/query_video_pin_metric_types"
},
{
"$ref": "#/components/parameters/query_num_of_pins"
},
{
"$ref": "#/components/parameters/query_created_in_last_n_days"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TopVideoPinsAnalyticsResponse"
}
}
},
"description": "Success"
},
"403": {
"description": "Not authorized to access the user account analytics.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access the user account analytics."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/user_account/businesses": {
"get": {
"summary": "List linked businesses",
"description": "Get a list of your linked business accounts.",
"operationId": "linked_business_accounts/get",
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
},
{
"client_credentials": [
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_read",
"x-sandbox": "enabled",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LinkedBusiness"
}
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"user_account"
]
}
},
"/user_account/followers": {
"get": {
"summary": "List followers",
"description": "Get a list of your followers.",
"operationId": "followers/list",
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
},
{
"client_credentials": [
"user_accounts:read"
]
}
],
"x-ratelimit-category": "ads_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserSummary"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid user id",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid user id"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"user_account"
]
}
},
"/user_account/following": {
"get": {
"summary": "List following",
"description": "Get a list of who a certain user follows.",
"operationId": "user_following/get",
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
},
{
"client_credentials": [
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_read",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_user_following_feed_type"
},
{
"$ref": "#/components/parameters/query_explicit_following"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"description": "Users",
"items": {
"$ref": "#/components/schemas/UserSummary"
}
}
}
}
]
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"user_account"
]
}
},
"/user_account/following/boards": {
"get": {
"summary": "List following boards",
"description": "Get a list of the boards a user follows. The request returns a board summary object array.",
"operationId": "boards_user_follows/list",
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
},
{
"client_credentials": [
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_read",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_explicit_following"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Board"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid user id",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid user id"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"user_account"
]
}
},
"/user_account/following/{username}": {
"post": {
"summary": "Follow user",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nUse this request, as a signed-in user, to follow another user.",
"tags": [
"user_account"
],
"operationId": "follow_user/update",
"security": [
{
"pinterest_oauth2": [
"user_accounts:write"
]
}
],
"x-ratelimit-category": "org_write",
"x-sandbox": "enabled",
"parameters": [
{
"$ref": "#/components/parameters/path_username"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FollowUserRequest"
}
}
},
"description": "Follow a user.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserSummary"
}
}
},
"description": "Success"
},
"404": {
"description": "User not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UserNotFound": {
"value": {
"code": 30,
"message": "User not found."
}
}
}
}
}
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
}
}
},
"/user_account/websites": {
"post": {
"summary": "Verify website",
"description": "Verify a website as a signed-in user.",
"tags": [
"user_account"
],
"operationId": "verify_website/update",
"security": [
{
"pinterest_oauth2": [
"user_accounts:write"
]
}
],
"x-ratelimit-category": "org_write",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"requestBody": {
"description": "Verify a website.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserWebsiteVerifyRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserWebsiteSummary"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
}
},
"get": {
"summary": "Get user websites",
"description": "Get user websites, claimed or not",
"tags": [
"user_account"
],
"operationId": "user_websites/get",
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserWebsiteSummary"
}
}
}
}
]
}
}
}
},
"403": {
"description": "Not authorized to access the user website list.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access the user website list."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-ratelimit-category": "org_read",
"x-sandbox": "disabled"
},
"delete": {
"summary": "Unverify website",
"description": "Unverifu a website verified by the signed-in user.",
"tags": [
"user_account"
],
"operationId": "unverify_website/delete",
"security": [
{
"pinterest_oauth2": [
"user_accounts:write"
]
}
],
"x-ratelimit-category": "org_write",
"x-sandbox": "disabled",
"parameters": [
{
"$ref": "#/components/parameters/query_website"
}
],
"responses": {
"204": {
"description": "Successfully unverified website"
},
"404": {
"description": "Website not in user list.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Website not in user list."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/user_account/websites/verification": {
"get": {
"summary": "Get user verification code for website claiming",
"description": "Get verification code for user to install on the website to claim it.",
"tags": [
"user_account"
],
"operationId": "website_verification/get",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
},
{
"client_credentials": [
"user_accounts:read"
]
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserWebsiteVerificationCode"
}
}
},
"description": "Success"
},
"403": {
"description": "Not authorized to access the user verification code for website claiming.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access the user verification code for website claiming."
}
}
}
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"x-ratelimit-category": "org_read",
"x-sandbox": "disabled"
}
},
"/users/{username}/interests/follow": {
"get": {
"summary": "List following interests",
"description": "Get a list of a user's following interests in one place.",
"tags": [
"user_account"
],
"operationId": "user_account/followed_interests",
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
},
{
"client_credentials": [
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_read",
"parameters": [
{
"$ref": "#/components/parameters/path_username"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Interest"
}
}
}
}
]
}
}
}
},
"400": {
"description": "Invalid parameters",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Authorization failed",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "User not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"x-sandbox": "enabled"
}
}
},
"components": {
"securitySchemes": {
"pinterest_oauth2": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://www.pinterest.com/oauth/",
"tokenUrl": "https://api.pinterest.com/v5/oauth/token",
"scopes": {
"ads:read": "See all of your advertising data, including ads, ad groups, campaigns etc.",
"ads:write": "Create, update, or delete ads, ad groups, campaigns etc.",
"billing:read": "See all of your billing data, billing profile, etc.",
"billing:write": "Create, update, or delete billing data, billing profiles, etc.",
"biz_access:read": "See business access data",
"biz_access:write": "Create, update, or delete business access data",
"boards:read": "See your public boards, including group boards you join",
"boards:read_secret": "See your secret boards",
"boards:write": "Create, update, or delete your public boards",
"boards:write_secret": "Create, update, or delete your secret boards",
"catalogs:read": "See all of your catalogs data",
"catalogs:write": "Create, update, or delete your catalogs data",
"msot:write": "Create measurement source of truth events",
"pins:read": "See your public Pins",
"pins:read_secret": "See your secret Pins",
"pins:write": "Create, update, or delete your public Pins",
"pins:write_secret": "Create, update, or delete your secret Pins",
"user_accounts:read": "See your user accounts and followers",
"user_accounts:write": "Update your user accounts and followers"
}
}
}
},
"conversion_token": {
"type": "http",
"scheme": "bearer",
"description": "This security scheme only applies to the conversion events endpoint (POST /ad_accounts/{ad_account_id}/events). This endpoint requires a bearer token generated via Ads Manager (ads.pinterest.com)."
},
"basic": {
"type": "http",
"scheme": "basic"
},
"client_credentials": {
"flows": {
"clientCredentials": {
"scopes": {
"ads:read": "See all of your advertising data, including ads, ad groups, campaigns etc.",
"ads:write": "Create, update, or delete ads, ad groups, campaigns etc.",
"billing:read": "See all of your billing data, billing profile, etc.",
"billing:write": "Create, update, or delete billing data, billing profiles, etc.",
"biz_access:read": "See business access data",
"biz_access:write": "Create, update, or delete business access data",
"boards:read": "See your public boards, including group boards you join",
"boards:read_secret": "See your secret boards",
"boards:write": "Create, update, or delete your public boards",
"boards:write_secret": "Create, update, or delete your secret boards",
"catalogs:read": "See all of your catalogs data",
"catalogs:write": "Create, update, or delete your catalogs data",
"msot:write": "Create measurement source of truth events",
"pins:read": "See your public Pins",
"pins:read_secret": "See your secret Pins",
"pins:write": "Create, update, or delete your public Pins",
"pins:write_secret": "Create, update, or delete your secret Pins",
"user_accounts:read": "See your user accounts and followers",
"user_accounts:write": "Update your user accounts and followers"
},
"tokenUrl": "https://api.pinterest.com/v3/oauth/access_token/"
}
},
"type": "oauth2"
}
},
"schemas": {
"Account": {
"type": "object",
"readOnly": true,
"properties": {
"account_type": {
"description": "Type of account",
"type": "string",
"enum": [
"PINNER",
"BUSINESS"
]
},
"id": {
"description": "User account ID.",
"type": "string",
"pattern": "^\\d+$",
"example": "2783136121146311751"
},
"profile_image": {
"type": "string"
},
"website_url": {
"type": "string"
},
"username": {
"type": "string"
},
"about": {
"description": "Profile about description.",
"type": "string"
},
"business_name": {
"type": "string",
"nullable": true
},
"board_count": {
"type": "integer",
"readOnly": true,
"nullable": true,
"example": 14,
"description": "User account board count.
**Note**: Board count on user account level may differ from counts found elsewhere due to attribution of collaborative Boards."
},
"pin_count": {
"type": "integer",
"readOnly": true,
"nullable": true,
"example": 339,
"description": "User account pin count. This includes both created and saved pins."
},
"follower_count": {
"type": "integer",
"readOnly": true,
"nullable": true,
"example": 10,
"description": "User account follower count."
},
"following_count": {
"type": "integer",
"readOnly": true,
"nullable": true,
"example": 347,
"description": "User account following count."
},
"monthly_views": {
"type": "integer",
"readOnly": true,
"nullable": true,
"example": 163,
"description": "User account monthly views."
}
}
},
"ActionType": {
"type": "string",
"description": "Ad group billable event type. For update, only draft ad groups may update billable event.",
"example": "CLICKTHROUGH",
"enum": [
"CLICKTHROUGH",
"IMPRESSION",
"VIDEO_V_50_MRC"
]
},
"AdAccount": {
"type": "object",
"readOnly": true,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"owner": {
"title": "Ad account owner",
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Public username for the user account"
},
"id": {
"type": "string",
"description": "The owning account's user ID."
}
}
},
"country": {
"$ref": "#/components/schemas/Country"
},
"currency": {
"$ref": "#/components/schemas/Currency"
},
"permissions": {
"title": "permissions",
"type": "array",
"items": {
"$ref": "#/components/schemas/BusinessAccessRole",
"nullable": true
}
},
"created_time": {
"description": "Creation time. Unix timestamp in seconds.",
"example": 1451431341,
"nullable": true,
"title": "created_time",
"type": "integer"
},
"updated_time": {
"description": "Last update time. Unix timestamp in seconds.",
"example": 1451431341,
"nullable": true,
"title": "updated_time",
"type": "integer"
}
}
},
"AdAccountAnalyticsResponse": {
"type": "array",
"items": {
"type": "object",
"properties": {
"AD_ACCOUNT_ID": {
"description": "The ID of the advertiser that this metrics belongs to.",
"type": "string",
"pattern": "^\\d+$"
},
"DATE": {
"description": "Current metrics date. Only returned when granularity is a time-based value (`DAY`, `HOUR`, `WEEK`, `MONTH`)",
"type": "string",
"format": "date"
}
},
"required": [
"AD_ACCOUNT_ID"
],
"additionalProperties": true,
"example": {
"DATE": "2021-04-01",
"AD_ACCOUNT_ID": "547602124502",
"SPEND_IN_DOLLAR": 30,
"TOTAL_CLICKTHROUGH": 216
}
}
},
"AdAccountCreateRequest": {
"title": "AdAccountCreate",
"type": "object",
"example": {
"country": "US",
"currency": "USD",
"owner_user_id": "383791336903426391",
"name": "ACME Tools"
},
"properties": {
"country": {
"$ref": "#/components/schemas/Country"
},
"currency": {
"$ref": "#/components/schemas/Currency"
},
"name": {
"description": "Ad Account name.",
"example": "ACME Tools",
"maxLength": 256,
"title": "name",
"type": "string"
},
"owner_user_id": {
"description": "Advertiser's owning user ID.",
"example": "383791336903426391",
"pattern": "^\\d+$",
"title": "owner_user_id",
"type": "string"
}
}
},
"AdAccountCreateSubscriptionRequest": {
"title": "AdAccountCreateSubscriptionRequest",
"type": "object",
"example": {
"webhook_url": "https://webhook.example.com/xyz",
"lead_form_id": "383791336903426390"
},
"properties": {
"webhook_url": {
"description": "Standard HTTPS webhook URL.",
"example": "https://webhook.example.com/xyz",
"title": "webhook_url",
"type": "string"
},
"lead_form_id": {
"description": "Lead form ID.",
"example": "383791336903426390",
"title": "Lead form ID",
"type": "string",
"pattern": "^\\d+$"
},
"partner_access_token": {
"description": "Partner access token. Only for clients that requires authentication. We recommend to avoid this param.",
"type": "string"
},
"partner_refresh_token": {
"description": "Partner refresh token. Only for clients that requires authentication. We recommend to avoid this param.",
"type": "string"
},
"partner_metadata": {
"description": "Partner metadata. Only for clients that requires special handling. We recommend to avoid this param.",
"type": "object",
"properties": {
"subscriber_key": {
"description": "Text field value that uniquely identifies a subscriber.",
"type": "string"
}
}
}
},
"required": [
"webhook_url"
]
},
"AdAccountCreateSubscriptionResponse": {
"title": "AdAccountCreateSubscriptionResponse",
"type": "object",
"properties": {
"id": {
"description": "Subscription ID.",
"example": "8078432025948590686",
"type": "string",
"pattern": "^\\d+$"
},
"cryptographic_key": {
"description": "Base64 encoded key for client to decrypt lead data.",
"example": "ucvxbV2Tdss0vNeYsdh4Qfa/1Khm2b0PqXvXeTTZh54",
"type": "string",
"nullable": true
},
"cryptographic_algorithm": {
"description": "Lead data encryption algorithm.",
"example": "AES-256-GCM",
"type": "string",
"nullable": true
},
"created_time": {
"description": "Subscription creation time. Unix timestamp in milliseconds.",
"example": 1699209842000,
"type": "integer"
},
"user_account_id": {
"description": "User account used to subscribe lead data.",
"example": "549755885175",
"type": "string",
"pattern": "^\\d+$"
},
"ad_account_id": {
"description": "The Ad Account ID that this lead form belongs to.",
"example": "549755885176",
"type": "string",
"pattern": "^\\d+$"
},
"api_version": {
"description": "API version.",
"example": "v5",
"type": "string"
},
"lead_form_id": {
"description": "Lead form ID.",
"example": "383791336903426390",
"type": "string",
"pattern": "^\\d+$",
"nullable": true
},
"webhook_url": {
"description": "Standard HTTPS webhook URL.",
"example": "https://webhook.example.com/xyz",
"type": "string"
}
}
},
"AdAccountGetSubscriptionResponse": {
"title": "AdAccountGetSubscriptionsResponse",
"type": "object",
"allOf": [
{
"type": "object",
"description": "Lead ads subscription response common fields.",
"properties": {
"lead_form_id": {
"description": "Lead form ID.",
"example": "383791336903426390",
"type": "string",
"pattern": "^\\d+$",
"nullable": true
},
"webhook_url": {
"description": "Standard HTTPS webhook URL.",
"example": "https://webhook.example.com/xyz",
"type": "string"
}
}
},
{
"type": "object",
"properties": {
"id": {
"description": "Subscription ID.",
"example": "8078432025948590686",
"type": "string",
"pattern": "^\\d+$"
},
"user_account_id": {
"description": "User account used to subscribe lead data.",
"example": "549755885175",
"type": "string",
"pattern": "^\\d+$"
},
"ad_account_id": {
"description": "The Ad Account ID that this lead form belongs to.",
"example": "549755885176",
"type": "string",
"pattern": "^\\d+$"
},
"api_version": {
"description": "API version.",
"example": "v5",
"type": "string"
},
"cryptographic_key": {
"description": "Base64 encoded key for client to decrypt lead data.",
"example": "ucvxbV2Tdss0vNeYsdh4Qfa/1Khm2b0PqXvXeTTZh54",
"type": "string",
"nullable": true
},
"cryptographic_algorithm": {
"description": "Lead data encryption algorithm.",
"example": "AES-256-GCM",
"type": "string",
"nullable": true
},
"created_time": {
"description": "Lead subscription creation time. Unix timestamp in milliseconds.",
"example": 1699209842000,
"type": "integer"
}
}
}
]
},
"AdAccountsCountryResponse": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdAccountsCountryResponseData"
}
}
}
},
"AdAccountsCountryResponseData": {
"type": "object",
"properties": {
"code": {
"$ref": "#/components/schemas/AdCountry",
"type": "string"
},
"currency": {
"description": "Country currency.",
"example": "Dollars",
"type": "string"
},
"index": {
"type": "number",
"description": "Country index",
"example": 1
},
"name": {
"type": "string",
"description": "Country name",
"example": "United States of America"
}
}
},
"AdArrayResponse": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdArrayResponseElement"
}
}
},
"title": "AdArrayResponse"
},
"AdArrayResponseElement": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AdResponse"
},
"exceptions": {
"$ref": "#/components/schemas/Exception"
}
}
},
"AdCommon": {
"type": "object",
"description": "Creation fields",
"properties": {
"ad_group_id": {
"description": "ID of the ad group that contains the ad.",
"example": "2680059592705",
"type": "string",
"pattern": "^(AG)?\\d+$"
},
"android_deep_link": {
"description": "Deep link URL for Android devices.",
"nullable": true,
"type": "string"
},
"carousel_android_deep_links": {
"description": "Comma-separated deep links for the carousel pin on Android.",
"type": "array",
"nullable": true,
"items": {
"type": "string"
}
},
"carousel_destination_urls": {
"description": "Comma-separated destination URLs for the carousel pin to promote.",
"type": "array",
"nullable": true,
"items": {
"type": "string"
}
},
"carousel_ios_deep_links": {
"description": "Comma-separated deep links for the carousel pin on iOS.",
"type": "array",
"nullable": true,
"items": {
"type": "string"
}
},
"click_tracking_url": {
"description": "Tracking url for the ad clicks.",
"type": "string",
"nullable": true
},
"creative_type": {
"$ref": "#/components/schemas/CreativeType"
},
"destination_url": {
"description": "Destination URL.",
"type": "string",
"nullable": true
},
"ios_deep_link": {
"description": "Deep link URL for iOS devices.",
"type": "string",
"nullable": true
},
"is_pin_deleted": {
"description": "Is original pin deleted?",
"example": false,
"type": "boolean"
},
"is_removable": {
"description": "Is pin repinnable?",
"example": false,
"type": "boolean"
},
"name": {
"description": "Name of the ad - 255 chars max.",
"type": "string",
"nullable": true
},
"status": {
"$ref": "#/components/schemas/EntityStatus"
},
"tracking_urls": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/TrackingUrls"
}
],
"nullable": true
},
"view_tracking_url": {
"description": "Tracking URL for ad impressions.",
"type": "string",
"nullable": true
},
"lead_form_id": {
"description": "Lead form ID for lead ad generation.",
"type": "string",
"pattern": "^(AG)?\\d+$",
"nullable": true
},
"grid_click_type": {
"$ref": "#/components/schemas/GridClickType"
},
"customizable_cta_type": {
"type": "string",
"description": "Select a call to action (CTA) to display below your ad. Available only for ads with direct links enabled. CTA options for consideration and conversion campaigns are LEARN_MORE, SHOP_NOW, BOOK_NOW, SIGN_UP, VISIT_SITE, BUY_NOW, GET_OFFER, ORDER_NOW, ADD_TO_CART (for conversion campaigns with add to cart conversion events only)",
"example": "LEARN_MORE",
"nullable": true,
"enum": [
"GET_OFFER",
"LEARN_MORE",
"ORDER_NOW",
"SHOP_NOW",
"SIGN_UP",
"SUBSCRIBE",
"BUY_NOW",
"CONTACT_US",
"GET_QUOTE",
"VISIT_SITE",
"APPLY_NOW",
"BOOK_NOW",
"REQUEST_DEMO",
"REGISTER_NOW",
"FIND_A_DEALER",
"ADD_TO_CART",
"WATCH_NOW",
"READ_MORE",
"BUY_TICKETS",
"DONATE_NOW",
"DOWNLOAD",
"EXPLORE_MORE",
"FIND_A_LOCATION",
"GET_DEAL",
"GET_RECIPE",
"GET_SHOWTIMES",
"ON_SALE",
"PLAY_GAME",
"TRY_IT",
null
]
},
"quiz_pin_data": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/QuizPinData"
}
],
"description": "Before creating a quiz ad, you must create an organic Pin using POST/Create Pin for each result in the quiz. Quiz ads cannot be saved by a Pinner. Quiz ad results can be saved.",
"nullable": true
}
}
},
"AdCountry": {
"type": "string",
"description": "Country ID from ISO 3166-1 alpha-2.",
"example": "US",
"enum": [
"AD",
"AE",
"AF",
"AG",
"AI",
"AL",
"AM",
"AO",
"AQ",
"AR",
"AS",
"AT",
"AU",
"AW",
"AX",
"AZ",
"BA",
"BB",
"BD",
"BE",
"BF",
"BG",
"BH",
"BI",
"BJ",
"BL",
"BM",
"BN",
"BO",
"BQ",
"BR",
"BS",
"BT",
"BV",
"BW",
"BY",
"BZ",
"CA",
"CC",
"CD",
"CF",
"CG",
"CH",
"CI",
"CK",
"CL",
"CM",
"CN",
"CO",
"CR",
"CU",
"CV",
"CW",
"CX",
"CY",
"CZ",
"DE",
"DJ",
"DK",
"DM",
"DO",
"DZ",
"EC",
"EE",
"EG",
"EH",
"ER",
"ES",
"ET",
"FI",
"FJ",
"FK",
"FM",
"FO",
"FR",
"GA",
"GB",
"GD",
"GE",
"GF",
"GG",
"GH",
"GI",
"GL",
"GM",
"GN",
"GP",
"GQ",
"GR",
"GS",
"GT",
"GU",
"GW",
"GY",
"HK",
"HM",
"HN",
"HR",
"HT",
"HU",
"ID",
"IE",
"IL",
"IM",
"IN",
"IO",
"IQ",
"IR",
"IS",
"IT",
"JE",
"JM",
"JO",
"JP",
"KE",
"KG",
"KH",
"KI",
"KM",
"KN",
"KR",
"KW",
"KY",
"KZ",
"LA",
"LB",
"LC",
"LI",
"LK",
"LR",
"LS",
"LT",
"LU",
"LV",
"LY",
"MA",
"MC",
"MD",
"ME",
"MF",
"MG",
"MH",
"MK",
"ML",
"MM",
"MN",
"MO",
"MP",
"MQ",
"MR",
"MS",
"MT",
"MU",
"MV",
"MW",
"MX",
"MY",
"MZ",
"NA",
"NC",
"NE",
"NF",
"NG",
"NI",
"NL",
"NO",
"NP",
"NR",
"NU",
"NZ",
"OM",
"PA",
"PE",
"PF",
"PG",
"PH",
"PK",
"PL",
"PM",
"PN",
"PR",
"PS",
"PT",
"PW",
"PY",
"QA",
"RE",
"RO",
"RS",
"RU",
"RW",
"SA",
"SB",
"SC",
"SD",
"SE",
"SG",
"SH",
"SI",
"SJ",
"SK",
"SL",
"SM",
"SN",
"SO",
"SR",
"SS",
"ST",
"SV",
"SX",
"SY",
"SZ",
"TC",
"TD",
"TF",
"TG",
"TH",
"TJ",
"TK",
"TL",
"TM",
"TN",
"TO",
"TR",
"TT",
"TV",
"TW",
"TZ",
"UA",
"UG",
"UM",
"US",
"UY",
"UZ",
"VA",
"VC",
"VE",
"VG",
"VI",
"VN",
"VU",
"WF",
"WS",
"YE",
"YT",
"ZA",
"ZM",
"ZW"
]
},
"AdCreateRequest": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AdCommon"
},
{
"$ref": "#/components/schemas/AdPinId"
},
{
"type": "object",
"title": "Request schema for creating ads",
"required": [
"ad_group_id",
"pin_id",
"creative_type"
]
}
]
},
"AdPinAnalytics": {
"type": "object",
"properties": {
"PIN_ID": {
"description": "The ID of the pin that the metric belongs to.",
"type": "string",
"pattern": "^\\d+$"
},
"DATE": {
"description": "Current metrics date. Only returned when granularity is a time-based value (`DAY`, `HOUR`, `WEEK`, `MONTH`)",
"type": "string",
"format": "date"
}
},
"required": [
"PIN_ID"
],
"additionalProperties": true,
"example": {
"DATE": "2021-04-01",
"PIN_ID": "217861700718936379",
"SPEND_IN_DOLLAR": 30,
"TOTAL_CLICKTHROUGH": 216
}
},
"AdPinsAnalyticsResponse": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdPinAnalytics"
}
},
"AdvancedAuctionItemsGetRequest": {
"type": "object",
"description": "Request object used to get bid options values for a batch of retail catalog items",
"additionalProperties": false,
"properties": {
"catalog_id": {
"description": "Catalog id pertaining to the retail item",
"example": "2680059592705",
"type": "string",
"pattern": "^\\d+$"
},
"items": {
"type": "array",
"minItems": 1,
"maxItems": 10000,
"description": "A list of retail catalog items to fetch bid options for",
"items": {
"$ref": "#/components/schemas/AdvancedAuctionItemsGetRecord"
}
}
},
"required": [
"catalog_id",
"items"
]
},
"AdvancedAuctionItemsGetRecord": {
"description": "Object uniquely identifying a retail catalog item",
"allOf": [
{
"$ref": "#/components/schemas/AdvancedAuctionKey"
}
]
},
"AdvancedAuctionItems": {
"type": "object",
"description": "Response object containing item bid options",
"properties": {
"catalog_id": {
"description": "Response object of item bid options",
"example": "2680059592705",
"type": "string",
"pattern": "^\\d+$"
},
"items": {
"type": "array",
"description": "Array with item bid options",
"items": {
"$ref": "#/components/schemas/AdvancedAuctionItem"
}
}
}
},
"AdvancedAuctionItemsSubmitRequest": {
"type": "object",
"description": "Request containing operations to perform on bid prices and bid multipliers for a batch of retail catalog items",
"additionalProperties": false,
"properties": {
"catalog_id": {
"description": "Catalog id pertaining to all items",
"example": "2680059592705",
"type": "string",
"pattern": "^\\d+$"
},
"items": {
"type": "array",
"minItems": 1,
"maxItems": 10000,
"description": "Array of item bid option operations",
"items": {
"$ref": "#/components/schemas/AdvancedAuctionItemsSubmitRecord"
}
}
},
"required": [
"catalog_id",
"items"
]
},
"AdvancedAuctionItemsSubmitRecord": {
"type": "object",
"description": "Object describing an item bid option operation",
"oneOf": [
{
"$ref": "#/components/schemas/AdvancedAuctionItemsSubmitUpsertRecord"
},
{
"$ref": "#/components/schemas/AdvancedAuctionItemsSubmitDeleteRecord"
}
],
"discriminator": {
"propertyName": "operation",
"mapping": {
"UPSERT": "#/components/schemas/AdvancedAuctionItemsSubmitUpsertRecord",
"DELETE": "#/components/schemas/AdvancedAuctionItemsSubmitDeleteRecord"
}
},
"properties": {
"operation": {
"$ref": "#/components/schemas/AdvancedAuctionOperation"
}
},
"required": [
"operation"
]
},
"AdvancedAuctionItemsSubmitUpsertRecord": {
"description": "Object describing an item bid option upsert operation",
"example": {
"item_id": "DS0294-M",
"country": "US",
"language": "EN",
"operation": "UPSERT",
"bid_options": {
"bid_in_micro_currency": 5000000,
"app_type_multipliers": {
"android_mobile": 1.1,
"android_tablet": 1.1,
"ipad": 1.2,
"iphone": 1.2,
"web": 0.9,
"web_mobile": 0.8
}
},
"update_mask": [
"BID",
"APP_TYPE_BID_MULTIPLIER_SET"
]
},
"allOf": [
{
"$ref": "#/components/schemas/AdvancedAuctionItem"
},
{
"type": "object",
"properties": {
"update_mask": {
"type": "array",
"description": "The list of item bid option fields to be set or updated. Fields specified in the updated mask without a value specified in the `bid_options` object in the body will be set to `null`. If an item bid option record is being created, fields not specified in the update mask will be initialized to `null`.",
"example": [
"BID",
"APP_TYPE_BID_MULTIPLIER_SET"
],
"nullable": true,
"items": {
"$ref": "#/components/schemas/UpdateMaskBidOptionField"
}
}
},
"required": [
"update_mask"
]
}
]
},
"AdvancedAuctionItemsSubmitDeleteRecord": {
"description": "Object describing an item bid option deletion operation",
"example": {
"item_id": "DS0294-M",
"country": "US",
"language": "EN",
"operation": "DELETE"
},
"allOf": [
{
"$ref": "#/components/schemas/AdvancedAuctionKey"
}
]
},
"AdvancedAuctionProcessedItems": {
"type": "object",
"description": "Response object containing the results of an operation on an item bid option",
"properties": {
"catalog_id": {
"description": "Catalog id pertaining to all items",
"example": "2680059592705",
"type": "string",
"pattern": "^\\d+$"
},
"items": {
"type": "array",
"description": "Array of advanced auction processed items",
"items": {
"$ref": "#/components/schemas/AdvancedAuctionProcessedItem"
}
}
}
},
"AdvancedAuctionProcessedItem": {
"description": "Object describing the result of an operation on an item bid option",
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AdvancedAuctionItemsSubmitRecord"
},
{
"type": "object",
"properties": {
"errors": {
"type": "array",
"description": "Array with validation errors for the supplied item bid option modification operation.\nA non empty errors list means this single item operation was not applied.",
"items": {
"$ref": "#/components/schemas/AdvancedAuctionOperationError"
}
}
}
}
]
},
"AdvancedAuctionItem": {
"title": "Advanced Auction Item",
"allOf": [
{
"$ref": "#/components/schemas/AdvancedAuctionKey"
},
{
"type": "object",
"properties": {
"bid_options": {
"$ref": "#/components/schemas/AdvancedAuctionBidOptions"
}
},
"required": [
"bid_options"
]
}
]
},
"AdvancedAuctionKey": {
"type": "object",
"description": "Object uniquely identifying a retail catalog item",
"properties": {
"item_id": {
"description": "The catalog retail item id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"country": {
"$ref": "#/components/schemas/Country"
},
"language": {
"$ref": "#/components/schemas/Language"
}
},
"required": [
"item_id",
"country",
"language"
]
},
"AdvancedAuctionOperation": {
"type": "string",
"enum": [
"UPSERT",
"DELETE"
]
},
"AdvancedAuctionBidOptions": {
"type": "object",
"description": "Object describing a retail catalog item's bid options (bid price and bid multipliers).",
"properties": {
"bid_in_micro_currency": {
"$ref": "#/components/schemas/BidInMicroCurrency"
},
"app_type_multipliers": {
"$ref": "#/components/schemas/AppTypeMultipliers"
},
"placement_multipliers": {
"$ref": "#/components/schemas/PlacementMultipliers"
}
}
},
"AdvancedAuctionOperationError": {
"description": "Error which occurred when applying a bid options operation to a specific item.",
"type": "object",
"properties": {
"code": {
"description": "The error code for the item bid option operation validation error",
"type": "integer",
"example": 6
},
"message": {
"description": "Message describing the item bid option operation validation error",
"type": "string",
"example": "Bid in micro currency should be non-negative"
}
}
},
"BidInMicroCurrency": {
"type": "integer",
"format": "int64",
"description": "Bid price in micro currency. A value of 0 will stop distribution for this item in `MAX_BID` ad groups in `CATALOG_SALES` campaigns. A value of `null` will fallback to the ad group's `bid_in_micro_currency`.",
"example": 5000000,
"nullable": true
},
"AppTypeMultipliers": {
"type": "object",
"description": "This represents a mapping from app type targeting criteria to a bid price adjustment.\n\nMultiplier values must be between 0 and 10. A value of 10 represents a 900% increase in bid price (from $1 to $10 for example). A value of 0 will stop distribution for this item on the specified app type in `MAX_BID` ad groups in `CATALOG_SALES` campaigns. All app type multipliers must be set at the same time. If a multiplier is not provided it is assumed to be 1 (no bid adjustment).",
"example": {
"android_mobile": 1.1,
"android_tablet": 1.1,
"ipad": 1.2,
"iphone": 1.2,
"web": 0.9,
"web_mobile": 0.8
},
"properties": {
"APP_TYPE": {
"$ref": "#/components/schemas/TargetingSpecAppType"
}
},
"additionalProperties": {
"type": "number",
"format": "double"
},
"nullable": true
},
"TargetingSpecAppType": {
"type": "string",
"enum": [
"android_mobile",
"android_tablet",
"ipad",
"iphone",
"web",
"web_mobile"
]
},
"PlacementMultipliers": {
"type": "object",
"description": "This represents a mapping from placement to a bid price adjustment.\n\nMultiplier values must be between 0 and 10. A value of 10 represents a 900% increase in bid price (from $1 to $10 for example). A value of 0 will stop distribution for this item on the specified placement in `MAX_BID` ad groups in `CATALOG_SALES` campaigns. All placement multipliers must be set at the same time. If a multiplier is not provided it is assumed to be 1 (no bid adjustment).",
"example": {
"browse": 0.9,
"search": 1.2,
"related_pins": 1.1
},
"properties": {
"PLACEMENT": {
"type": "string",
"enum": [
"SEARCH",
"BROWSE",
"RELATED_PINS"
]
}
},
"additionalProperties": {
"type": "number",
"format": "double"
},
"nullable": true
},
"UpdateMaskBidOptionField": {
"type": "string",
"description": "bid option field to apply operation updates to",
"example": "BID",
"enum": [
"BID",
"APP_TYPE_BID_MULTIPLIER_SET",
"PLACEMENT_BID_MULTIPLIER_SET"
]
},
"AdGroupArrayResponse": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdGroupArrayResponseElement"
}
}
}
},
"AdGroupArrayResponseElement": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AdGroupResponse"
},
"exceptions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Exception"
}
}
}
},
"AdGroupCommon": {
"type": "object",
"properties": {
"name": {
"description": "Ad group name.",
"type": "string",
"example": "Ad Group For Pin: 687195905986"
},
"status": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/EntityStatus"
}
],
"description": "Ad group/entity status."
},
"budget_in_micro_currency": {
"description": "Budget in micro currency. This field is **REQUIRED** for non-CBO (campaign budget optimization) campaigns. A CBO campaign automatically generates ad group budgets from its campaign budget to maximize campaign outcome. A CBO campaign is limited to 70 or less ad groups.",
"type": "integer",
"example": 5000000,
"nullable": true
},
"bid_in_micro_currency": {
"description": "Bid price in micro currency. This field is **REQUIRED** for the following campaign objective_type/billable_event combinations: AWARENESS/IMPRESSION, CONSIDERATION/CLICKTHROUGH, CATALOG_SALES/CLICKTHROUGH.",
"type": "integer",
"example": 5000000,
"nullable": true
},
"optimization_goal_metadata": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/OptimizationGoalMetadata"
}
],
"description": "Optimization goals for objective-based performance campaigns. **REQUIRED** when campaign's `objective_type` is set to `\"WEB_CONVERSION\"`.",
"nullable": true
},
"budget_type": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/BudgetType"
}
]
},
"start_time": {
"description": "Timestamp in Unix format for scheduling when ads in the ad group start to appear. If not specified, ads appear during parent campaign's `start_time`. Cannot precede `start_time` for parent campaign (if specified). Learn about scheduling ads.\nFor certain organizations (Closed beta): Supported for campaigns with Campaign Budget Optimization (CBO).\nFor all organizations: Supported for campaigns without CBO.",
"type": "integer",
"example": 5686848000,
"nullable": true
},
"end_time": {
"description": "Timestamp in Unix format for scheduling when ads in the ad group stop appearing. If not specified, ads run indefinitely unless you update the ad group by changing their status to `paused`. Cannot occur after `end_time` for parent campaign (if specified). Learn about scheduling ads.\nFor certain organizations (Closed beta): Supported for campaigns with Campaign Budget Optimization (CBO).\nFor all organizations: Supported for campaigns without CBO.",
"type": "integer",
"example": 5705424000,
"nullable": true
},
"targeting_spec": {
"$ref": "#/components/schemas/TargetingSpec"
},
"lifetime_frequency_cap": {
"description": "Set a limit to the number of times a promoted pin from this campaign can be impressed by a pinner within the past rolling 30 days. Only available for CPM (cost per mille (1000 impressions)) ad groups. A CPM ad group has an IMPRESSION billable_event value. This field **REQUIRES** the `end_time` field.",
"type": "integer",
"example": 100
},
"tracking_urls": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/TrackingUrls"
}
],
"description": "Third-party tracking URLs.
JSON object with the format: {\"Tracking event enum\":[URL string array],...}
For example: {\"impression\": [\"URL1\", \"URL2\"], \"click\": [\"URL1\", \"URL2\", \"URL3\"]}.
Up to three tracking URLs are supported for each event type. Tracking URLs set at the ad group or ad level can override those set at the campaign level. May be null. Pass in an empty object - {} - to remove tracking URLs.
For more information, see Third-party and dynamic tracking.",
"nullable": true
},
"auto_targeting_enabled": {
"type": "boolean",
"description": "Enable auto-targeting for ad group. Default value is True. Also known as \"Pinterest Performance+ targeting\".",
"example": true,
"nullable": true
},
"placement_group": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/PlacementGroupType"
}
],
"description": "Placement group."
},
"pacing_delivery_type": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/PacingDeliveryType"
}
]
},
"campaign_id": {
"description": "Campaign ID of the ad group.",
"type": "string",
"pattern": "^[C]?\\d+$",
"example": "626736533506"
},
"billable_event": {
"$ref": "#/components/schemas/ActionType"
},
"bid_strategy_type": {
"nullable": true,
"description": "Bid strategy type. For Campaigns with Video Completion objectives, the only supported bid strategy type is AUTOMATIC_BID, also known as \"Pinterest Performance+ bidding\".",
"enum": [
"AUTOMATIC_BID",
"MAX_BID",
"TARGET_AVG",
null
],
"example": "MAX_BID",
"title": "BidStrategyType",
"type": "string"
},
"targeting_template_ids": {
"type": "array",
"description": "Targeting template IDs applied to the ad group. We currently only support 1 targeting template per ad group. To use targeting templates, do not set any other targeting fields: targeting_spec, tracking_urls, auto_targeting_enabled, placement_group. To clear all targeting template IDs, set this field to ['0'].",
"items": {
"description": "Targeting template ID.",
"type": "string",
"pattern": "^\\d+$",
"example": "643"
},
"maxItems": 1,
"nullable": true
},
"is_creative_optimization": {
"type": "boolean",
"description": "Enable creative optimization for the ad group, default value is FALSE. When enabled, you allow Pinterest to automatically turn your product Pins into ads in different formats (collections and shopping) and deliver those ads to users at scale.",
"example": true,
"nullable": true
},
"promotion_id": {
"type": "string",
"description": "Promotion ID. To clear this field, set to null.",
"pattern": "^\\d+$",
"example": "7834020347906",
"nullable": true,
"default": "0"
},
"promotion_application_level": {
"type": "string",
"description": "Specify if the promotion is applied at ad group or item level",
"nullable": true,
"example": "ITEM",
"enum": [
"NONE",
"ITEM",
"AD_GROUP",
null
]
}
}
},
"AdGroupCreateRequest": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AdGroupCommon"
},
{
"type": "object",
"properties": {
"pacing_delivery_type": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/PacingDeliveryType"
}
],
"default": "STANDARD"
},
"auto_targeting_enabled": {
"type": "boolean",
"allOf": [
{
"type": "boolean",
"description": "Enable auto-targeting for ad group. Default value is True. Also known as \"Pinterest Performance+ targeting\".",
"example": true
}
]
},
"budget_type": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/BudgetType"
}
],
"default": "DAILY"
},
"bid_multiplier": {
"description": "Open beta\nBid multiplier for ad group. This value is a double between 0.1\nand 10.0. Enter 0 to remove the bid multiplier.\n- Make sure the `bid_strategy` type for your ad group is set to `AUTOMATIC_BID`.\n- Not currently supported for Pinterest Performance+ campaigns.",
"type": "number",
"example": 1,
"minimum": 0,
"maximum": 10
}
},
"required": [
"billable_event",
"campaign_id",
"name"
]
}
]
},
"AdGroupResponse": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AdGroupCommon"
},
{
"type": "object",
"properties": {
"id": {
"description": "Ad group ID.",
"type": "string",
"pattern": "^\\d+$",
"example": "2680060704746"
},
"ad_account_id": {
"description": "Advertiser ID.",
"type": "string",
"pattern": "^\\d+$",
"example": "549755885175"
},
"created_time": {
"description": "Ad group creation time. Unix timestamp in seconds.",
"type": "integer",
"example": 1476477189
},
"updated_time": {
"description": "Ad group last update time. Unix timestamp in seconds.",
"type": "integer",
"example": 1476477189
},
"type": {
"description": "Always \"adgroup\".",
"type": "string",
"default": "adgroup"
},
"conversion_learning_mode_type": {
"type": "string",
"description": "oCPM learn mode",
"example": "ACTIVE",
"nullable": true,
"enum": [
"NOT_ACTIVE",
"ACTIVE",
null
]
},
"summary_status": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/AdGroupSummaryStatus"
}
],
"description": "Ad group summary status."
},
"feed_profile_id": {
"description": "Feed Profile ID associated to the adgroup.",
"type": "string",
"example": "626736533506"
},
"dca_assets": {
"description": "[DCA] The Dynamic creative assets to use for DCA. Dynamic Creative Assembly (DCA) accepts basic creative assets of an ad (image, video, title, call to action, logo etc). Then it automatically generates optimized ad combinations based on these assets."
},
"bid_multiplier": {
"description": "Open beta\nBid multiplier for ad group. This value is a double between 0.1\nand 10.0. Enter 0 to remove the bid multiplier.\n- Not currently supported for Pinterest Performance+ campaigns.",
"type": "number",
"example": 1,
"minimum": 0,
"maximum": 10,
"nullable": true
}
}
}
]
},
"AdGroupSummaryStatus": {
"type": "string",
"description": "Summary status for ad group",
"example": "RUNNING",
"enum": [
"RUNNING",
"PAUSED",
"NOT_STARTED",
"COMPLETED",
"ADVERTISER_DISABLED",
"ARCHIVED",
"DRAFT",
"DELETED_DRAFT"
]
},
"AdGroupUpdateRequest": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AdGroupCommon"
},
{
"type": "object",
"properties": {
"id": {
"description": "Ad group ID.",
"type": "string",
"pattern": "^\\d+$",
"example": "2680060704746"
},
"bid_multiplier": {
"description": "Open beta\nBid multiplier for ad group. This value is a double between 0.1\nand 10.0. Enter 0 to remove the bid multiplier.\n- Make sure the `bid_strategy` type for your ad group is set to `AUTOMATIC_BID`.\n- Not currently supported for Pinterest Performance+ campaigns.",
"type": "number",
"example": 1,
"minimum": 0,
"maximum": 10
}
},
"required": [
"id"
]
}
]
},
"AdGroupsAnalyticsResponse": {
"type": "array",
"items": {
"type": "object",
"properties": {
"AD_GROUP_ID": {
"description": "The ID of the ad group that this metrics belongs to. Returned as long as aggregate_report_rows is not true.",
"type": "string",
"pattern": "^\\d+$"
},
"DATE": {
"description": "Current metrics date. Only returned when granularity is a time-based value (`DAY`, `HOUR`, `WEEK`, `MONTH`)",
"type": "string",
"format": "date"
}
},
"additionalProperties": true,
"example": {
"DATE": "2021-04-01",
"AD_GROUP_ID": "547602124502",
"SPEND_IN_DOLLAR": 30,
"TOTAL_CLICKTHROUGH": 216
}
}
},
"AdGroupAudienceSizingRequest": {
"type": "object",
"properties": {
"auto_targeting_enabled": {
"type": "boolean",
"description": "Enable auto-targeting for ad group. Default value is True. Also known as \"Pinterest Performance+ targeting\".",
"example": true,
"default": true
},
"placement_group": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/PlacementGroupType"
}
],
"default": "ALL",
"description": "Placement group."
},
"creative_types": {
"description": "Pin creative types filter.
review_status is \"REJECTED\".",
"type": "array",
"items": {
"type": "string",
"description": "ad disapproval reasons",
"enum": [
"HASHTAGS",
"PROMOTIONS_AND_PRICES",
"TARGETING",
"LANDING_PAGE",
"CAPS_AND_SYMBOLS",
"SHOCKING",
"WEIGHT_LOSS",
"PROHIBITED_PRODUCT",
"AUTHENTICITY",
"NUDITY",
"CONFUSING_DESIGN",
"URGENCY",
"RATINGS",
"APP",
"ALCOHOL",
"CONTESTS",
"POLITICAL",
"OTHER",
"IMAGE",
"NAR",
"INCONSISTENT",
"CLICKBAIT",
"NO_DESCRIPTION",
"LOW_QUALITY",
"EXAGGERATED_CLAIMS",
"PINTEREST_BRAND",
"ALCOHOL_NO_SALE",
"LANDING_PAGE_SPEED",
"LANDING_PAGE_HARDWALL",
"LANDING_PAGE_BROKEN",
"LANDING_PAGE_QUALITY",
"OUT_OF_STOCK",
"IMAGE_LOW_QUALITY",
"IMAGE_BUSY",
"IMAGE_POORLY_EDITED",
"IMAGE_BEFORE_AFTER",
"UGC",
"FAKE_BUTTONS",
"WEAPONS",
"SENSITIVE",
"UNACCEPTABLE_BUSINESS",
"SUSPICIOUS_CLAIMS",
"PHARMA",
"SUSPICIOUS_SUPPLEMENTS",
"ILLEGAL_RECREATIONAL_DRUG",
"LOW_QUALITY_LANDING_PAGE",
"RESTRICTED_HEALTHCARE",
"INCONSISTENT_LANG_FR"
]
}
},
"rejection_labels": {
"description": "Text reason why the pin was rejected. Returned if review_status is \"REJECTED\".",
"type": "array",
"items": {
"type": "string"
}
},
"review_status": {
"type": "string",
"description": "Ad review status",
"example": "PENDING",
"enum": [
"OTHER",
"PENDING",
"REJECTED",
"APPROVED"
]
},
"type": {
"description": "Always \"ad\".",
"example": "pinpromotion",
"type": "string"
},
"updated_time": {
"description": "Last update time. Unix timestamp in seconds.",
"example": 1451431341,
"type": "integer"
},
"summary_status": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/PinPromotionSummaryStatus"
}
],
"description": "Ad summary status"
}
}
}
]
},
"AdUpdateRequest": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AdCommon"
},
{
"type": "object",
"title": "AdUpdateRequest",
"properties": {
"id": {
"type": "string",
"example": "687195134316",
"pattern": "^\\d+$",
"description": "The ID of this ad.",
"title": "id"
},
"pin_id": {
"type": "string",
"description": "Pin ID. This field may only be updated for draft ads.",
"example": "394205773611545468",
"pattern": "^\\d+$",
"nullable": true
}
},
"required": [
"id"
]
}
]
},
"AdsAnalyticsAdGroupTargetingType": {
"type": "string",
"description": "Reporting targeting type for ad groups",
"example": "APPTYPE",
"enum": [
"KEYWORD",
"APPTYPE",
"GENDER",
"LOCATION",
"PLACEMENT",
"COUNTRY",
"TARGETED_INTEREST",
"PINNER_INTEREST",
"AUDIENCE_INCLUDE",
"GEO",
"AGE_BUCKET",
"REGION",
"AGE_BUCKET_AND_GENDER",
"CREATIVE_ENHANCEMENTS"
]
},
"AdsAnalyticsAdTargetingType": {
"type": "string",
"description": "Reporting targeting type for ads",
"example": "APPTYPE",
"enum": [
"KEYWORD",
"APPTYPE",
"GENDER",
"LOCATION",
"PLACEMENT",
"COUNTRY",
"TARGETED_INTEREST",
"PINNER_INTEREST",
"AUDIENCE_INCLUDE",
"GEO",
"AGE_BUCKET",
"REGION",
"QUIZ_RESULT",
"AGE_BUCKET_AND_GENDER"
]
},
"AdsAnalyticsCampaignTargetingType": {
"type": "string",
"description": "Reporting targeting type for campaigns",
"example": "APPTYPE",
"enum": [
"KEYWORD",
"APPTYPE",
"GENDER",
"LOCATION",
"PLACEMENT",
"COUNTRY",
"TARGETED_INTEREST",
"PINNER_INTEREST",
"AUDIENCE_INCLUDE",
"GEO",
"AGE_BUCKET",
"REGION",
"CREATIVE_TYPE",
"AGE_BUCKET_AND_GENDER",
"AUDIENCE_MULTIPLIER"
]
},
"AdsAnalyticsCreateAsyncRequest": {
"type": "object",
"allOf": [
{
"type": "object",
"properties": {
"start_date": {
"description": "Metric report start date (UTC). Format: YYYY-MM-DD",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"example": "2020-12-20"
},
"end_date": {
"description": "Metric report end date (UTC). Format: YYYY-MM-DD",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"example": "2020-12-20"
},
"granularity": {
"description": "TOTAL - metrics are aggregated over the specified date range.<= 2000 characters
\nThe link to the main hotel image. Image should be at least\n75x75 pixels to avoid errors. Use the additional_image_link field to add\nmore images of your hotel. The URL of your main_image.link must be accessible\nby the Pinterest user-agent, and send the accurate image. Please make\nsure there is no template or placeholder image at the link. Must start\nwith 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
\nThe links to additional images for your hotel. Up to ten\nadditional images can be used to show a hotel from different angles.\nMust 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" }, "status": { "type": "string", "allOf": [ { "$ref": "#/components/schemas/CatalogsStatus" }, { "default": "ACTIVE" } ] } }, "required": [ "format", "location", "name", "catalog_type", "default_country", "default_locale" ] }, "CatalogsRetailItemsFilter": { "type": "object", "properties": { "catalog_type": { "type": "string", "enum": [ "RETAIL" ] }, "item_ids": { "type": "array", "minItems": 1, "maxItems": 100, "items": { "type": "string" } }, "catalog_id": { "type": "string", "pattern": "^\\d+$", "description": "Catalog id pertaining to the retail item. If not provided, default to oldest retail catalog" } }, "required": [ "catalog_type", "item_ids" ] }, "CatalogsRetailItemsPostFilter": { "type": "object", "properties": { "catalog_type": { "type": "string", "enum": [ "RETAIL" ] }, "item_ids": { "type": "array", "minItems": 1, "maxItems": 1000, "items": { "type": "string" } }, "catalog_id": { "type": "string", "pattern": "^\\d+$", "description": "Catalog id pertaining to the retail item. If not provided, default to oldest retail catalog" } }, "required": [ "catalog_type", "item_ids" ] }, "CatalogsHotelFeedsCreateRequest": { "type": "object", "title": "feeds_hotel_create_request", "description": "Request object for creating a feed. Please, be aware that \"default_country\" and \"default_locale\" are not required in the spec for forward compatibility but for now the API will not accept requests without those fields.", "additionalProperties": false, "properties": { "default_currency": { "$ref": "#/components/schemas/NullableCurrency" }, "name": { "description": "A human-friendly name associated to a given feed.", "type": "string" }, "format": { "$ref": "#/components/schemas/CatalogsFormat" }, "default_locale": { "description": "The locale used within a feed for product descriptions.", "example": "en-US", "anyOf": [ { "description": "The locale used within a feed for product descriptions.", "$ref": "#/components/schemas/CatalogsLocale" }, { "description": "The locale used within a feed for product descriptions. This free text string version is deprecated in favor of official list of supported locales defined by CatalogsLocale.", "type": "string", "deprecated": true } ] }, "credentials": { "$ref": "#/components/schemas/CatalogsFeedCredentials" }, "location": { "description": "The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing.", "pattern": "^(http|https|ftp|sftp)://", "type": "string" }, "preferred_processing_schedule": { "$ref": "#/components/schemas/CatalogsFeedProcessingSchedule" }, "catalog_type": { "$ref": "#/components/schemas/CatalogsType" }, "catalog_id": { "description": "Catalog id pertaining to the feed. If not provided, feed will use a default catalog based on type. At the moment a catalog can not have multiple hotel feeds but this will change in the future.", "nullable": true, "type": "string", "pattern": "^\\d+$" }, "status": { "type": "string", "allOf": [ { "$ref": "#/components/schemas/CatalogsStatus" }, { "default": "ACTIVE" } ] } }, "required": [ "format", "location", "name", "catalog_type", "default_locale" ] }, "CatalogsHotelItemsFilter": { "type": "object", "properties": { "catalog_type": { "type": "string", "enum": [ "HOTEL" ] }, "hotel_ids": { "type": "array", "minItems": 1, "maxItems": 100, "items": { "type": "string" } }, "catalog_id": { "type": "string", "pattern": "^\\d+$", "description": "Catalog id pertaining to the hotel item. If not provided, default to oldest hotel catalog" } }, "required": [ "catalog_type", "hotel_ids" ] }, "CatalogsHotelItemsPostFilter": { "type": "object", "properties": { "catalog_type": { "type": "string", "enum": [ "HOTEL" ] }, "hotel_ids": { "type": "array", "minItems": 1, "maxItems": 1000, "items": { "type": "string" } }, "catalog_id": { "type": "string", "pattern": "^\\d+$", "description": "Catalog id pertaining to the hotel item. If not provided, default to oldest hotel catalog" } }, "required": [ "catalog_type", "hotel_ids" ] }, "CatalogsCreativeAssetsItemsFilter": { "type": "object", "properties": { "catalog_type": { "type": "string", "enum": [ "CREATIVE_ASSETS" ] }, "creative_assets_ids": { "type": "array", "minItems": 1, "maxItems": 100, "items": { "type": "string" } }, "catalog_id": { "type": "string", "pattern": "^\\d+$", "description": "Catalog id pertaining to the creative assets item. If not provided, default to oldest creative assets catalog" } }, "required": [ "catalog_type", "creative_assets_ids" ] }, "CatalogsCreativeAssetsItemsPostFilter": { "type": "object", "properties": { "catalog_type": { "type": "string", "enum": [ "CREATIVE_ASSETS" ] }, "creative_assets_ids": { "type": "array", "minItems": 1, "maxItems": 1000, "items": { "type": "string" } }, "catalog_id": { "type": "string", "pattern": "^\\d+$", "description": "Catalog id pertaining to the creative assets item. If not provided, default to oldest creative assets catalog" } }, "required": [ "catalog_type", "creative_assets_ids" ] }, "CatalogsCreativeAssetsFeedsCreateRequest": { "type": "object", "title": "feeds_creative_assets_create_request", "description": "Request object for creating a feed.", "additionalProperties": false, "properties": { "default_currency": { "$ref": "#/components/schemas/NullableCurrency" }, "name": { "description": "A human-friendly name associated to a given feed.", "type": "string" }, "format": { "$ref": "#/components/schemas/CatalogsFormat" }, "default_locale": { "description": "The locale used within a feed for product descriptions.", "example": "en-US", "anyOf": [ { "description": "The locale used within a feed for product descriptions.", "$ref": "#/components/schemas/CatalogsLocale" }, { "description": "The locale used within a feed for product descriptions. This free text string version is deprecated in favor of official list of supported locales defined by CatalogsLocale.", "type": "string", "deprecated": true } ] }, "default_country": { "$ref": "#/components/schemas/Country" }, "credentials": { "$ref": "#/components/schemas/CatalogsFeedCredentials" }, "location": { "description": "The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing.", "pattern": "^(http|https|ftp|sftp)://", "type": "string" }, "preferred_processing_schedule": { "$ref": "#/components/schemas/CatalogsFeedProcessingSchedule" }, "catalog_type": { "$ref": "#/components/schemas/CatalogsType" }, "catalog_id": { "description": "Catalog id pertaining to the feed. If not provided, feed will use a default catalog based on type. At the moment a catalog can not have multiple creative assets feeds but this will change in the future.", "nullable": true, "type": "string", "pattern": "^\\d+$" }, "status": { "type": "string", "allOf": [ { "$ref": "#/components/schemas/CatalogsStatus" }, { "default": "ACTIVE" } ] } }, "required": [ "format", "location", "name", "catalog_type", "default_country", "default_locale" ] }, "CatalogsVerticalFeedsCreateRequest": { "type": "object", "title": "feeds_create_request", "description": "Request object for creating a feed.", "oneOf": [ { "$ref": "#/components/schemas/CatalogsRetailFeedsCreateRequest" }, { "$ref": "#/components/schemas/CatalogsHotelFeedsCreateRequest" }, { "$ref": "#/components/schemas/CatalogsCreativeAssetsFeedsCreateRequest" } ], "discriminator": { "propertyName": "catalog_type", "mapping": { "RETAIL": "#/components/schemas/CatalogsRetailFeedsCreateRequest", "HOTEL": "#/components/schemas/CatalogsHotelFeedsCreateRequest", "CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsFeedsCreateRequest" } } }, "CatalogsCreativeAssetsFeedsUpdateRequest": { "type": "object", "title": "catalogs_feeds_update_request", "description": "Request object for updating a feed.", "additionalProperties": false, "properties": { "default_currency": { "$ref": "#/components/schemas/NullableCurrency" }, "name": { "description": "A human-friendly name associated to a given feed.", "type": "string" }, "format": { "$ref": "#/components/schemas/CatalogsFormat" }, "credentials": { "$ref": "#/components/schemas/CatalogsFeedCredentials" }, "location": { "type": "string", "pattern": "^(http|https|ftp|sftp)://", "description": "The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing." }, "preferred_processing_schedule": { "$ref": "#/components/schemas/CatalogsFeedProcessingSchedule" }, "status": { "$ref": "#/components/schemas/CatalogsStatus" }, "catalog_type": { "$ref": "#/components/schemas/CatalogsType" } }, "required": [ "catalog_type" ] }, "CatalogsRetailFeedsUpdateRequest": { "type": "object", "title": "catalogs_feeds_update_request", "description": "Request object for updating a feed.", "additionalProperties": false, "properties": { "default_currency": { "$ref": "#/components/schemas/NullableCurrency" }, "name": { "description": "A human-friendly name associated to a given feed.", "type": "string" }, "format": { "$ref": "#/components/schemas/CatalogsFormat" }, "credentials": { "$ref": "#/components/schemas/CatalogsFeedCredentials" }, "location": { "type": "string", "pattern": "^(http|https|ftp|sftp)://", "description": "The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing." }, "preferred_processing_schedule": { "$ref": "#/components/schemas/CatalogsFeedProcessingSchedule" }, "status": { "$ref": "#/components/schemas/CatalogsStatus" }, "catalog_type": { "$ref": "#/components/schemas/CatalogsType" }, "default_availability": { "$ref": "#/components/schemas/ProductAvailabilityType" } }, "required": [ "catalog_type" ] }, "CatalogsHotelFeedsUpdateRequest": { "type": "object", "title": "catalogs_feeds_update_request", "description": "Request object for updating a feed.", "additionalProperties": false, "properties": { "default_currency": { "$ref": "#/components/schemas/NullableCurrency" }, "name": { "description": "A human-friendly name associated to a given feed.", "type": "string" }, "format": { "$ref": "#/components/schemas/CatalogsFormat" }, "credentials": { "$ref": "#/components/schemas/CatalogsFeedCredentials" }, "location": { "type": "string", "pattern": "^(http|https|ftp|sftp)://", "description": "The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing." }, "preferred_processing_schedule": { "$ref": "#/components/schemas/CatalogsFeedProcessingSchedule" }, "status": { "$ref": "#/components/schemas/CatalogsStatus" }, "catalog_type": { "$ref": "#/components/schemas/CatalogsType" } }, "required": [ "catalog_type" ] }, "CatalogsVerticalFeedsUpdateRequest": { "type": "object", "title": "feeds_update_request", "description": "Request object for updating a feed.", "oneOf": [ { "$ref": "#/components/schemas/CatalogsRetailFeedsUpdateRequest" }, { "$ref": "#/components/schemas/CatalogsHotelFeedsUpdateRequest" }, { "$ref": "#/components/schemas/CatalogsCreativeAssetsFeedsUpdateRequest" } ], "discriminator": { "propertyName": "catalog_type", "mapping": { "RETAIL": "#/components/schemas/CatalogsRetailFeedsUpdateRequest", "HOTEL": "#/components/schemas/CatalogsHotelFeedsUpdateRequest", "CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsFeedsUpdateRequest" } } }, "CatalogsFeedsUpdateRequest": { "type": "object", "title": "legacy_retail_only", "description": "Request object for updating a feed.", "additionalProperties": false, "properties": { "default_availability": { "$ref": "#/components/schemas/ProductAvailabilityType" }, "default_currency": { "$ref": "#/components/schemas/NullableCurrency" }, "name": { "description": "A human-friendly name associated to a given feed.", "type": "string" }, "format": { "$ref": "#/components/schemas/CatalogsFormat" }, "credentials": { "$ref": "#/components/schemas/CatalogsFeedCredentials" }, "location": { "type": "string", "pattern": "^(http|https|ftp|sftp)://", "description": "The URL where a feed is available for download. This URL is what Pinterest will use to download a feed for processing." }, "preferred_processing_schedule": { "$ref": "#/components/schemas/CatalogsFeedProcessingSchedule" }, "status": { "$ref": "#/components/schemas/CatalogsStatus" } } }, "CatalogsFormat": { "description": "The file format of a feed.", "type": "string", "enum": [ "TSV", "CSV", "XML" ] }, "CatalogsItemValidationDetails": { "type": "object", "properties": { "attribute_name": { "$ref": "#/components/schemas/NullableCatalogsItemFieldType", "description": "Attribute that has a validation issue." }, "provided_value": { "type": "string", "nullable": true, "description": "Provided value that caused the validation issue." } }, "required": [ "attribute_name", "provided_value" ] }, "CatalogsItemValidationErrors": { "type": "object", "properties": { "ADULT_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an invalid adult value." }, "ADWORDS_FORMAT_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Adword link contains too many characters." }, "AVAILABILITY_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item is missing availability value in its product metadata, this item will not be published." }, "BLOCKLISTED_IMAGE_SIGNATURE": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item will not be published because it doesn't meet Pinterest's Merchant Guidelines." }, "DESCRIPTION_MISSING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item is missing description in its product metadata, this item will not be published." }, "DUPLICATE_PRODUCTS": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "This product is duplicated. The duplicate entry will not be published." }, "IMAGE_LINK_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Image link is invalid." }, "IMAGE_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has image_link URL that contains too many characters, so the item will not be published." }, "IMAGE_LINK_MISSING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item is missing an image link URL in its product metadata, this item will not be published." }, "INVALID_DOMAIN": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Product link value doesn't match the verified domain associated with this account." }, "ITEMID_MISSING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item is missing item id in its product metadata, this item will not be published." }, "ITEM_MAIN_IMAGE_DOWNLOAD_FAILURE": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Main image can't be found." }, "LINK_FORMAT_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Link is invalid." }, "LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Product link contains too many characters, this item will not be published." }, "LIST_PRICE_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a list price formatting error, this item will not be published." }, "MAX_ITEMS_PER_ITEM_GROUP_EXCEEDED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item exceed the maximum number of items per item group, this item will not be published." }, "PARSE_LINE_ERROR": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item contains formating errors." }, "PINJOIN_CONTENT_UNSAFE": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item will not be published because it doesn't meet Pinterest's Merchant Guidelines." }, "PRICE_CANNOT_BE_DETERMINED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item price cannot be determined because the price, list price, and sale price are all different." }, "PRICE_MISSING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Product is missing a price, this item will not be published." }, "PRODUCT_LINK_MISSING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item is missing a link URL in its product metadata, this item will not be published." }, "PRODUCT_PRICE_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a price formatting error in its product metadata, this item will not be published." }, "TITLE_MISSING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item is missing title in its product metadata, this item will not be published." } } }, "CatalogsItemValidationIssue": { "type": "string", "enum": [ "AD_IMAGE_0_LINK_LENGTH_TOO_LONG", "AD_IMAGE_1_LINK_LENGTH_TOO_LONG", "AD_IMAGE_2_LINK_LENGTH_TOO_LONG", "AD_IMAGE_3_LINK_LENGTH_TOO_LONG", "AD_IMAGE_4_LINK_LENGTH_TOO_LONG", "AD_IMAGE_5_LINK_LENGTH_TOO_LONG", "AD_IMAGE_6_LINK_LENGTH_TOO_LONG", "AD_IMAGE_7_LINK_LENGTH_TOO_LONG", "AD_IMAGE_8_LINK_LENGTH_TOO_LONG", "AD_IMAGE_9_LINK_LENGTH_TOO_LONG", "AD_IMAGE_10_LINK_LENGTH_TOO_LONG", "AD_IMAGE_11_LINK_LENGTH_TOO_LONG", "AD_IMAGE_12_LINK_LENGTH_TOO_LONG", "AD_IMAGE_13_LINK_LENGTH_TOO_LONG", "AD_IMAGE_14_LINK_LENGTH_TOO_LONG", "AD_IMAGE_15_LINK_LENGTH_TOO_LONG", "AD_IMAGE_16_LINK_LENGTH_TOO_LONG", "AD_IMAGE_17_LINK_LENGTH_TOO_LONG", "AD_IMAGE_18_LINK_LENGTH_TOO_LONG", "AD_IMAGE_19_LINK_LENGTH_TOO_LONG", "AD_IMAGE_0_LINK_WARNING", "AD_IMAGE_1_LINK_WARNING", "AD_IMAGE_2_LINK_WARNING", "AD_IMAGE_3_LINK_WARNING", "AD_IMAGE_4_LINK_WARNING", "AD_IMAGE_5_LINK_WARNING", "AD_IMAGE_6_LINK_WARNING", "AD_IMAGE_7_LINK_WARNING", "AD_IMAGE_8_LINK_WARNING", "AD_IMAGE_9_LINK_WARNING", "AD_IMAGE_10_LINK_WARNING", "AD_IMAGE_11_LINK_WARNING", "AD_IMAGE_12_LINK_WARNING", "AD_IMAGE_13_LINK_WARNING", "AD_IMAGE_14_LINK_WARNING", "AD_IMAGE_15_LINK_WARNING", "AD_IMAGE_16_LINK_WARNING", "AD_IMAGE_17_LINK_WARNING", "AD_IMAGE_18_LINK_WARNING", "AD_IMAGE_19_LINK_WARNING", "AD_IMAGE_0_LINK_REQUIRED", "AD_IMAGE_1_LINK_REQUIRED", "AD_IMAGE_2_LINK_REQUIRED", "AD_IMAGE_3_LINK_REQUIRED", "AD_IMAGE_4_LINK_REQUIRED", "AD_IMAGE_5_LINK_REQUIRED", "AD_IMAGE_6_LINK_REQUIRED", "AD_IMAGE_7_LINK_REQUIRED", "AD_IMAGE_8_LINK_REQUIRED", "AD_IMAGE_9_LINK_REQUIRED", "AD_IMAGE_10_LINK_REQUIRED", "AD_IMAGE_11_LINK_REQUIRED", "AD_IMAGE_12_LINK_REQUIRED", "AD_IMAGE_13_LINK_REQUIRED", "AD_IMAGE_14_LINK_REQUIRED", "AD_IMAGE_15_LINK_REQUIRED", "AD_IMAGE_16_LINK_REQUIRED", "AD_IMAGE_17_LINK_REQUIRED", "AD_IMAGE_18_LINK_REQUIRED", "AD_IMAGE_19_LINK_REQUIRED", "AD_IMAGE_0_TAG_LENGTH_TOO_LONG", "AD_IMAGE_1_TAG_LENGTH_TOO_LONG", "AD_IMAGE_2_TAG_LENGTH_TOO_LONG", "AD_IMAGE_3_TAG_LENGTH_TOO_LONG", "AD_IMAGE_4_TAG_LENGTH_TOO_LONG", "AD_IMAGE_5_TAG_LENGTH_TOO_LONG", "AD_IMAGE_6_TAG_LENGTH_TOO_LONG", "AD_IMAGE_7_TAG_LENGTH_TOO_LONG", "AD_IMAGE_8_TAG_LENGTH_TOO_LONG", "AD_IMAGE_9_TAG_LENGTH_TOO_LONG", "AD_IMAGE_10_TAG_LENGTH_TOO_LONG", "AD_IMAGE_11_TAG_LENGTH_TOO_LONG", "AD_IMAGE_12_TAG_LENGTH_TOO_LONG", "AD_IMAGE_13_TAG_LENGTH_TOO_LONG", "AD_IMAGE_14_TAG_LENGTH_TOO_LONG", "AD_IMAGE_15_TAG_LENGTH_TOO_LONG", "AD_IMAGE_16_TAG_LENGTH_TOO_LONG", "AD_IMAGE_17_TAG_LENGTH_TOO_LONG", "AD_IMAGE_18_TAG_LENGTH_TOO_LONG", "AD_IMAGE_19_TAG_LENGTH_TOO_LONG", "AD_IMAGE_0_TAG_REQUIRED", "AD_IMAGE_1_TAG_REQUIRED", "AD_IMAGE_2_TAG_REQUIRED", "AD_IMAGE_3_TAG_REQUIRED", "AD_IMAGE_4_TAG_REQUIRED", "AD_IMAGE_5_TAG_REQUIRED", "AD_IMAGE_6_TAG_REQUIRED", "AD_IMAGE_7_TAG_REQUIRED", "AD_IMAGE_8_TAG_REQUIRED", "AD_IMAGE_9_TAG_REQUIRED", "AD_IMAGE_10_TAG_REQUIRED", "AD_IMAGE_11_TAG_REQUIRED", "AD_IMAGE_12_TAG_REQUIRED", "AD_IMAGE_13_TAG_REQUIRED", "AD_IMAGE_14_TAG_REQUIRED", "AD_IMAGE_15_TAG_REQUIRED", "AD_IMAGE_16_TAG_REQUIRED", "AD_IMAGE_17_TAG_REQUIRED", "AD_IMAGE_18_TAG_REQUIRED", "AD_IMAGE_19_TAG_REQUIRED", "AD_IMAGE_0_LINK_DUPLICATED", "AD_IMAGE_1_LINK_DUPLICATED", "AD_IMAGE_2_LINK_DUPLICATED", "AD_IMAGE_3_LINK_DUPLICATED", "AD_IMAGE_4_LINK_DUPLICATED", "AD_IMAGE_5_LINK_DUPLICATED", "AD_IMAGE_6_LINK_DUPLICATED", "AD_IMAGE_7_LINK_DUPLICATED", "AD_IMAGE_8_LINK_DUPLICATED", "AD_IMAGE_9_LINK_DUPLICATED", "AD_IMAGE_10_LINK_DUPLICATED", "AD_IMAGE_11_LINK_DUPLICATED", "AD_IMAGE_12_LINK_DUPLICATED", "AD_IMAGE_13_LINK_DUPLICATED", "AD_IMAGE_14_LINK_DUPLICATED", "AD_IMAGE_15_LINK_DUPLICATED", "AD_IMAGE_16_LINK_DUPLICATED", "AD_IMAGE_17_LINK_DUPLICATED", "AD_IMAGE_18_LINK_DUPLICATED", "AD_IMAGE_19_LINK_DUPLICATED", "AD_IMAGE_0_TAG_DUPLICATED", "AD_IMAGE_1_TAG_DUPLICATED", "AD_IMAGE_2_TAG_DUPLICATED", "AD_IMAGE_3_TAG_DUPLICATED", "AD_IMAGE_4_TAG_DUPLICATED", "AD_IMAGE_5_TAG_DUPLICATED", "AD_IMAGE_6_TAG_DUPLICATED", "AD_IMAGE_7_TAG_DUPLICATED", "AD_IMAGE_8_TAG_DUPLICATED", "AD_IMAGE_9_TAG_DUPLICATED", "AD_IMAGE_10_TAG_DUPLICATED", "AD_IMAGE_11_TAG_DUPLICATED", "AD_IMAGE_12_TAG_DUPLICATED", "AD_IMAGE_13_TAG_DUPLICATED", "AD_IMAGE_14_TAG_DUPLICATED", "AD_IMAGE_15_TAG_DUPLICATED", "AD_IMAGE_16_TAG_DUPLICATED", "AD_IMAGE_17_TAG_DUPLICATED", "AD_IMAGE_18_TAG_DUPLICATED", "AD_IMAGE_19_TAG_DUPLICATED", "AD_VIDEO_0_LINK_LENGTH_TOO_LONG", "AD_VIDEO_1_LINK_LENGTH_TOO_LONG", "AD_VIDEO_2_LINK_LENGTH_TOO_LONG", "AD_VIDEO_0_LINK_WARNING", "AD_VIDEO_1_LINK_WARNING", "AD_VIDEO_2_LINK_WARNING", "AD_VIDEO_0_LINK_REQUIRED", "AD_VIDEO_1_LINK_REQUIRED", "AD_VIDEO_2_LINK_REQUIRED", "AD_VIDEO_0_LINK_DUPLICATED", "AD_VIDEO_1_LINK_DUPLICATED", "AD_VIDEO_2_LINK_DUPLICATED", "AD_VIDEO_0_TAG_LENGTH_TOO_LONG", "AD_VIDEO_1_TAG_LENGTH_TOO_LONG", "AD_VIDEO_2_TAG_LENGTH_TOO_LONG", "AD_VIDEO_0_TAG_REQUIRED", "AD_VIDEO_1_TAG_REQUIRED", "AD_VIDEO_2_TAG_REQUIRED", "AD_VIDEO_0_TAG_DUPLICATED", "AD_VIDEO_1_TAG_DUPLICATED", "AD_VIDEO_2_TAG_DUPLICATED", "VIDEO_REQUIRED_WHEN_AD_VIDEO_PROVIDED", "AD_LINK_FORMAT_WARNING", "AD_LINK_SAME_AS_LINK", "ADDITIONAL_IMAGE_LINK_LENGTH_TOO_LONG", "ADDITIONAL_IMAGE_LINK_WARNING", "ADULT_INVALID", "ADWORDS_FORMAT_INVALID", "ADWORDS_FORMAT_WARNING", "ADWORDS_SAME_AS_LINK", "AGE_GROUP_INVALID", "ANDROID_DEEP_LINK_INVALID", "AVAILABILITY_DATE_INVALID", "AVAILABILITY_INVALID", "BLOCKLISTED_IMAGE_SIGNATURE", "COUNTRY_DOES_NOT_MAP_TO_CURRENCY", "CUSTOM_LABEL_LENGTH_TOO_LONG", "DESCRIPTION_LENGTH_TOO_LONG", "DESCRIPTION_MISSING", "DUPLICATE_PRODUCTS", "EXPIRATION_DATE_INVALID", "GENDER_INVALID", "GTIN_INVALID", "IMAGE_LINK_INVALID", "IMAGE_LINK_LENGTH_TOO_LONG", "IMAGE_LINK_MISSING", "IMAGE_LINK_WARNING", "INVALID_DOMAIN", "IOS_DEEP_LINK_INVALID", "IS_BUNDLE_INVALID", "ITEM_ADDITIONAL_IMAGE_DOWNLOAD_FAILURE", "ITEM_MAIN_IMAGE_DOWNLOAD_FAILURE", "ITEMID_MISSING", "LINK_FORMAT_INVALID", "LINK_FORMAT_WARNING", "LINK_LENGTH_TOO_LONG", "LIST_PRICE_INVALID", "MAX_ITEMS_PER_ITEM_GROUP_EXCEEDED", "MIN_AD_PRICE_INVALID", "MPN_INVALID", "MULTIPACK_INVALID", "OPTIONAL_CONDITION_INVALID", "OPTIONAL_CONDITION_MISSING", "OPTIONAL_PRODUCT_CATEGORY_INVALID", "OPTIONAL_PRODUCT_CATEGORY_MISSING", "PARSE_LINE_ERROR", "PINJOIN_CONTENT_UNSAFE", "PRICE_CANNOT_BE_DETERMINED", "PRICE_MISSING", "PRODUCT_CATEGORY_DEPTH_WARNING", "PRODUCT_LINK_MISSING", "PRODUCT_PRICE_INVALID", "PRODUCT_TYPE_LENGTH_TOO_LONG", "SALE_DATE_INVALID", "SALES_PRICE_INVALID", "SALES_PRICE_TOO_HIGH", "SALES_PRICE_TOO_LOW", "SHIPPING_INVALID", "SHIPPING_HEIGHT_INVALID", "SHIPPING_WEIGHT_INVALID", "SHIPPING_WIDTH_INVALID", "SIZE_SYSTEM_INVALID", "SIZE_TYPE_INVALID", "TAX_INVALID", "TITLE_LENGTH_TOO_LONG", "TITLE_MISSING", "TOO_MANY_ADDITIONAL_IMAGE_LINKS", "UTM_SOURCE_AUTO_CORRECTED", "WEIGHT_UNIT_INVALID" ] }, "CatalogsItemValidationIssues": { "type": "object", "properties": { "item_number": { "description": "Item number based on order of appearance in the Catalogs Feed. For example, '0' refers to first item found in a feed that was downloaded from a 'location' specified during feed creation.", "example": 0, "type": "integer" }, "item_id": { "description": "The merchant-created unique ID that represents the product.", "example": "DS0294-L", "type": "string", "nullable": true }, "errors": { "$ref": "#/components/schemas/CatalogsItemValidationErrors" }, "warnings": { "$ref": "#/components/schemas/CatalogsItemValidationWarnings" } }, "required": [ "item_number", "item_id", "errors", "warnings" ] }, "CatalogsItemValidationWarnings": { "type": "object", "properties": { "AD_IMAGE_0_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 0 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_1_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 1 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_2_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 2 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_3_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 3 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_4_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 4 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_5_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 5 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_6_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 6 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_7_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 7 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_8_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 8 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_9_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 9 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_10_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 10 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_11_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 11 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_12_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 12 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_13_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 13 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_14_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 14 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_15_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 15 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_16_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 16 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_17_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 17 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_18_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 18 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_19_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 19 length is too long. The maximum length is 2047 characters." }, "AD_IMAGE_0_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 0 format is unsupported." }, "AD_IMAGE_1_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 1 format is unsupported." }, "AD_IMAGE_2_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 2 format is unsupported." }, "AD_IMAGE_3_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 3 format is unsupported." }, "AD_IMAGE_4_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 4 format is unsupported." }, "AD_IMAGE_5_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 5 format is unsupported." }, "AD_IMAGE_6_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 6 format is unsupported." }, "AD_IMAGE_7_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 7 format is unsupported." }, "AD_IMAGE_8_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 8 format is unsupported." }, "AD_IMAGE_9_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 9 format is unsupported." }, "AD_IMAGE_10_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 10 format is unsupported." }, "AD_IMAGE_11_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 11 format is unsupported." }, "AD_IMAGE_12_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 12 format is unsupported." }, "AD_IMAGE_13_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 13 format is unsupported." }, "AD_IMAGE_14_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 14 format is unsupported." }, "AD_IMAGE_15_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 15 format is unsupported." }, "AD_IMAGE_16_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 16 format is unsupported." }, "AD_IMAGE_17_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 17 format is unsupported." }, "AD_IMAGE_18_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 18 format is unsupported." }, "AD_IMAGE_19_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 19 format is unsupported." }, "AD_IMAGE_0_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 0 is required because an image tag was provided." }, "AD_IMAGE_1_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 1 is required because an image tag was provided." }, "AD_IMAGE_2_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 2 is required because an image tag was provided." }, "AD_IMAGE_3_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 3 is required because an image tag was provided." }, "AD_IMAGE_4_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 4 is required because an image tag was provided." }, "AD_IMAGE_5_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 5 is required because an image tag was provided." }, "AD_IMAGE_6_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 6 is required because an image tag was provided." }, "AD_IMAGE_7_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 7 is required because an image tag was provided." }, "AD_IMAGE_8_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 8 is required because an image tag was provided." }, "AD_IMAGE_9_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 9 is required because an image tag was provided." }, "AD_IMAGE_10_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 10 is required because an image tag was provided." }, "AD_IMAGE_11_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 11 is required because an image tag was provided." }, "AD_IMAGE_12_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 12 is required because an image tag was provided." }, "AD_IMAGE_13_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 13 is required because an image tag was provided." }, "AD_IMAGE_14_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 14 is required because an image tag was provided." }, "AD_IMAGE_15_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 15 is required because an image tag was provided." }, "AD_IMAGE_16_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 16 is required because an image tag was provided." }, "AD_IMAGE_17_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 17 is required because an image tag was provided." }, "AD_IMAGE_18_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 18 is required because an image tag was provided." }, "AD_IMAGE_19_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image link 19 is required because an image tag was provided." }, "AD_IMAGE_0_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 0 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_1_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 1 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_2_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 2 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_3_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 3 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_4_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 4 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_5_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 5 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_6_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 6 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_7_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 7 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_8_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 8 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_9_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 9 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_10_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 10 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_11_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 11 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_12_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 12 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_13_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 13 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_14_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 14 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_15_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 15 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_16_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 16 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_17_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 17 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_18_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 18 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_19_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 19 length is too long. The maximum length is 511 characters." }, "AD_IMAGE_0_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 0 is required because an image link was provided." }, "AD_IMAGE_1_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 1 is required because an image link was provided." }, "AD_IMAGE_2_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 2 is required because an image link was provided." }, "AD_IMAGE_3_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 3 is required because an image link was provided." }, "AD_IMAGE_4_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 4 is required because an image link was provided." }, "AD_IMAGE_5_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 5 is required because an image link was provided." }, "AD_IMAGE_6_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 6 is required because an image link was provided." }, "AD_IMAGE_7_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 7 is required because an image link was provided." }, "AD_IMAGE_8_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 8 is required because an image link was provided." }, "AD_IMAGE_9_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 9 is required because an image link was provided." }, "AD_IMAGE_10_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 10 is required because an image link was provided." }, "AD_IMAGE_11_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 11 is required because an image link was provided." }, "AD_IMAGE_12_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 12 is required because an image link was provided." }, "AD_IMAGE_13_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 13 is required because an image link was provided." }, "AD_IMAGE_14_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 14 is required because an image link was provided." }, "AD_IMAGE_15_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 15 is required because an image link was provided." }, "AD_IMAGE_16_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 16 is required because an image link was provided." }, "AD_IMAGE_17_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 17 is required because an image link was provided." }, "AD_IMAGE_18_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 18 is required because an image link was provided." }, "AD_IMAGE_19_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Ad image tag 19 is required because an image link was provided." }, "AD_IMAGE_0_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_0_link is duplicated with another ad image link." }, "AD_IMAGE_1_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_1_link is duplicated with another ad image link." }, "AD_IMAGE_2_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_2_link is duplicated with another ad image link." }, "AD_IMAGE_3_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_3_link is duplicated with another ad image link." }, "AD_IMAGE_4_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_4_link is duplicated with another ad image link." }, "AD_IMAGE_5_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_5_link is duplicated with another ad image link." }, "AD_IMAGE_6_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_6_link is duplicated with another ad image link." }, "AD_IMAGE_7_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_7_link is duplicated with another ad image link." }, "AD_IMAGE_8_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_8_link is duplicated with another ad image link." }, "AD_IMAGE_9_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_9_link is duplicated with another ad image link." }, "AD_IMAGE_10_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_10_link is duplicated with another ad image link." }, "AD_IMAGE_11_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_11_link is duplicated with another ad image link." }, "AD_IMAGE_12_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_12_link is duplicated with another ad image link." }, "AD_IMAGE_13_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_13_link is duplicated with another ad image link." }, "AD_IMAGE_14_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_14_link is duplicated with another ad image link." }, "AD_IMAGE_15_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_15_link is duplicated with another ad image link." }, "AD_IMAGE_16_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_16_link is duplicated with another ad image link." }, "AD_IMAGE_17_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_17_link is duplicated with another ad image link." }, "AD_IMAGE_18_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_18_link is duplicated with another ad image link." }, "AD_IMAGE_19_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_19_link is duplicated with another ad image link." }, "AD_IMAGE_0_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_0_tag is duplicated with another ad image tag." }, "AD_IMAGE_1_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_1_tag is duplicated with another ad image tag." }, "AD_IMAGE_2_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_2_tag is duplicated with another ad image tag." }, "AD_IMAGE_3_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_3_tag is duplicated with another ad image tag." }, "AD_IMAGE_4_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_4_tag is duplicated with another ad image tag." }, "AD_IMAGE_5_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_5_tag is duplicated with another ad image tag." }, "AD_IMAGE_6_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_6_tag is duplicated with another ad image tag." }, "AD_IMAGE_7_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_7_tag is duplicated with another ad image tag." }, "AD_IMAGE_8_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_8_tag is duplicated with another ad image tag." }, "AD_IMAGE_9_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_9_tag is duplicated with another ad image tag." }, "AD_IMAGE_10_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_10_tag is duplicated with another ad image tag." }, "AD_IMAGE_11_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_11_tag is duplicated with another ad image tag." }, "AD_IMAGE_12_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_12_tag is duplicated with another ad image tag." }, "AD_IMAGE_13_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_13_tag is duplicated with another ad image tag." }, "AD_IMAGE_14_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_14_tag is duplicated with another ad image tag." }, "AD_IMAGE_15_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_15_tag is duplicated with another ad image tag." }, "AD_IMAGE_16_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_16_tag is duplicated with another ad image tag." }, "AD_IMAGE_17_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_17_tag is duplicated with another ad image tag." }, "AD_IMAGE_18_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_18_tag is duplicated with another ad image tag." }, "AD_IMAGE_19_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_image_19_tag is duplicated with another ad image tag." }, "AD_VIDEO_0_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_0_link length is too long. The maximum length is 511 characters." }, "AD_VIDEO_1_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_1_link length is too long. The maximum length is 511 characters." }, "AD_VIDEO_2_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_2_link length is too long. The maximum length is 511 characters." }, "AD_VIDEO_0_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_0_link is formatted incorrectly and will not be published with your items." }, "AD_VIDEO_1_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_1_link is formatted incorrectly and will not be published with your items." }, "AD_VIDEO_2_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_2_link is formatted incorrectly and will not be published with your items." }, "AD_VIDEO_0_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_0_link is required for this item because ad_video_0_tag was provided." }, "AD_VIDEO_1_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_1_link is required for this item because ad_video_1_tag was provided." }, "AD_VIDEO_2_LINK_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_2_link is required for this item because ad_video_2_tag was provided." }, "AD_VIDEO_0_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_0_link is duplicated with another ad video link." }, "AD_VIDEO_1_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_1_link is duplicated with another ad video link." }, "AD_VIDEO_2_LINK_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_2_link is duplicated with another ad video link." }, "AD_VIDEO_0_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_0_tag length is too long. The maximum length is 511 characters." }, "AD_VIDEO_1_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_1_tag length is too long. The maximum length is 511 characters." }, "AD_VIDEO_2_TAG_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_2_tag length is too long. The maximum length is 511 characters." }, "AD_VIDEO_0_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_0_tag is required because ad_video_0_link was provided." }, "AD_VIDEO_1_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_1_tag is required because ad_video_1_link was provided." }, "AD_VIDEO_2_TAG_REQUIRED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_2_tag is required because ad_video_2_link was provided." }, "AD_VIDEO_0_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_0_tag is duplicated with another ad video tag." }, "AD_VIDEO_1_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_1_tag is duplicated with another ad video tag." }, "AD_VIDEO_2_TAG_DUPLICATED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "ad_video_2_tag is duplicated with another ad video tag." }, "VIDEO_REQUIRED_WHEN_AD_VIDEO_PROVIDED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "A video is required in the item when ad_video fields are provided." }, "AD_LINK_FORMAT_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an ad link that is formatted incorrectly." }, "AD_LINK_SAME_AS_LINK": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an ad link URL that is duplicate of the link URL." }, "ADDITIONAL_IMAGE_LINK_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an additional_image_link URL that contains too many characters, so the item will not be published." }, "ADDITIONAL_IMAGE_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has additional_image_link URLs that are formatted incorrectly and will not be published with your items." }, "ADWORDS_FORMAT_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an adwords_redirect link that is formatted incorrectly." }, "ADWORDS_SAME_AS_LINK": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an adwords_redirect URL that is duplicate of the link URL." }, "AGE_GROUP_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an age group value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences." }, "SIZE_SYSTEM_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Some items have size system values which are not one of the supported size systems." }, "ANDROID_DEEP_LINK_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item includes an invalid android_deep_link." }, "AVAILABILITY_DATE_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an availability_date value that is formatted incorrectly, this item will be published without an availability date." }, "COUNTRY_DOES_NOT_MAP_TO_CURRENCY": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item includes a currency that doesn't match the usual currency for the location where the product is sold or shipped." }, "CUSTOM_LABEL_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a custom_label value that is too long, this item will be published without that custom label." }, "DESCRIPTION_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "The description for this item was truncated because it contains too many characters." }, "EXPIRATION_DATE_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an expiration_date value that is formatted incorrectly, this item will be published without an expiration date." }, "GENDER_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a gender value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences." }, "GTIN_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a GTIN value that is formatted incorrectly." }, "IMAGE_LINK_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an image_link URL that is formatted incorrectly and will not be published." }, "IOS_DEEP_LINK_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item includes an invalid ios_deep_link value." }, "IS_BUNDLE_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an is_bundle value that is formatted incorrectly, this item will be published without being bundled with other products." }, "ITEM_ADDITIONAL_IMAGE_DOWNLOAD_FAILURE": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item includes additional_image_links that can't be found." }, "LINK_FORMAT_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an invalid product link which contains invalid UTM tracking paramaters." }, "MIN_AD_PRICE_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item includes a min_ad_price value that is formatted incorrectly." }, "MPN_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a MPN value that is formatted incorrectly." }, "MULTIPACK_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an invalid multipack value." }, "OPTIONAL_CONDITION_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item includes a condition value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences." }, "OPTIONAL_CONDITION_MISSING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item is missing condition value, which may limit visibility in recommendations, search results and shopping experiences." }, "OPTIONAL_PRODUCT_CATEGORY_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item includes a google_product_category value that is not formatted correctly according to the GPC taxonomy." }, "OPTIONAL_PRODUCT_CATEGORY_MISSING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item is missing google_product_category." }, "PRODUCT_CATEGORY_DEPTH_WARNING": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item only has 1 or 2 levels of google_product_category value, which may limit visibility in recommendations, search results and shopping experiences." }, "PRODUCT_TYPE_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a product_type value that is too long, this item will be published without that product type." }, "SALES_PRICE_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an incorrectly formatted sales price." }, "SALES_PRICE_TOO_LOW": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a sale price value that is discounted very low compared to the price." }, "SALES_PRICE_TOO_HIGH": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a sale price value that is higher than the original price of the item." }, "SALE_DATE_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a sale_price_effective_date value that is formatted incorrectly, this item will be published without a sale date." }, "SHIPPING_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a shipping value that is formatted incorrectly." }, "SHIPPING_HEIGHT_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an incorrectly formatted shipping_height value. The value must first contain a numeric value then a valid dimension unit type." }, "SHIPPING_WEIGHT_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an invalid shipping_weight value." }, "SHIPPING_WIDTH_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has an incorrectly formatted shipping_width value. The value must first contain a numeric value then a valid dimension unit type." }, "SIZE_TYPE_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a size type value that is formatted incorrectly, which may limit visibility in recommendations, search results and shopping experiences." }, "TAX_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a tax value that is formatted incorrectly." }, "TITLE_LENGTH_TOO_LONG": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "The title for the item was truncated because it contains too many characters." }, "TOO_MANY_ADDITIONAL_IMAGE_LINKS": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a additional_image_link value that exceed the limit for additional images, this item will be published without some of your images." }, "UTM_SOURCE_AUTO_CORRECTED": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item includes an utm_source value that is formatted incorrectly and has been automatically corrected." }, "WEIGHT_UNIT_INVALID": { "$ref": "#/components/schemas/CatalogsItemValidationDetails", "description": "Item has a weight_unit value that is formatted incorrectly, this item will be published without a weight unit." } } }, "CatalogsItems": { "type": "object", "description": "Response object of catalogs items", "properties": { "items": { "type": "array", "description": "Array with catalogs items", "items": { "$ref": "#/components/schemas/ItemResponse" } } } }, "CatalogsItemsBatch": { "type": "object", "description": "Object describing the catalogs items batch", "properties": { "catalog_type": { "$ref": "#/components/schemas/CatalogsType" } }, "required": [ "catalog_type" ], "oneOf": [ { "$ref": "#/components/schemas/CatalogsRetailItemsBatch" }, { "$ref": "#/components/schemas/CatalogsHotelItemsBatch" }, { "$ref": "#/components/schemas/CatalogsCreativeAssetsItemsBatch" } ], "discriminator": { "propertyName": "catalog_type", "mapping": { "RETAIL": "#/components/schemas/CatalogsRetailItemsBatch", "HOTEL": "#/components/schemas/CatalogsHotelItemsBatch", "CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsItemsBatch" } } }, "CatalogsItemsFilters": { "type": "object", "properties": { "catalog_type": { "$ref": "#/components/schemas/CatalogsType" } }, "required": [ "catalog_type" ], "oneOf": [ { "$ref": "#/components/schemas/CatalogsRetailItemsFilter" }, { "$ref": "#/components/schemas/CatalogsHotelItemsFilter" }, { "$ref": "#/components/schemas/CatalogsCreativeAssetsItemsFilter" } ], "discriminator": { "propertyName": "catalog_type", "mapping": { "RETAIL": "#/components/schemas/CatalogsRetailItemsFilter", "HOTEL": "#/components/schemas/CatalogsHotelItemsFilter", "CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsItemsFilter" } } }, "CatalogsItemsPostFilters": { "type": "object", "properties": { "catalog_type": { "$ref": "#/components/schemas/CatalogsType" } }, "required": [ "catalog_type" ], "oneOf": [ { "$ref": "#/components/schemas/CatalogsRetailItemsPostFilter" }, { "$ref": "#/components/schemas/CatalogsHotelItemsPostFilter" }, { "$ref": "#/components/schemas/CatalogsCreativeAssetsItemsPostFilter" } ], "discriminator": { "propertyName": "catalog_type", "mapping": { "RETAIL": "#/components/schemas/CatalogsRetailItemsPostFilter", "HOTEL": "#/components/schemas/CatalogsHotelItemsPostFilter", "CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsItemsPostFilter" } } }, "CatalogsCreativeAssetsItemsBatch": { "type": "object", "description": "Object describing the catalogs creative assets items batch", "properties": { "batch_id": { "description": "Id of the catalogs items batch", "example": "595953100599279259-66753b9bb65c46c49bd8503b27fecf9e", "type": "string" }, "created_time": { "description": "Date and time (UTC) of the batch creation: YYYY-MM-DD'T'hh:mm:ss", "example": "2024-01-01T20:10:40", "type": "string", "format": "date-time", "readOnly": true }, "completed_time": { "description": "Date and time (UTC) of the batch completion: YYYY-MM-DD'T'hh:mm:ss", "example": "2024-01-01T20:20:00", "type": "string", "format": "date-time", "readOnly": true, "nullable": true }, "status": { "$ref": "#/components/schemas/BatchOperationStatus" }, "catalog_type": { "$ref": "#/components/schemas/CatalogsType" }, "items": { "description": "Array with the catalogs items processing records part of the catalogs items batch", "items": { "$ref": "#/components/schemas/CreativeAssetsProcessingRecord" }, "type": "array" } }, "required": [ "catalog_type" ] }, "CatalogsHotelItemsBatch": { "type": "object", "description": "Object describing the catalogs hotel items batch", "properties": { "batch_id": { "description": "Id of the catalogs items batch", "example": "595953100599279259-66753b9bb65c46c49bd8503b27fecf9e", "type": "string" }, "created_time": { "description": "Date and time (UTC) of the batch creation: YYYY-MM-DD'T'hh:mm:ss", "example": "2024-01-01T20:10:40", "type": "string", "format": "date-time", "readOnly": true }, "completed_time": { "description": "Date and time (UTC) of the batch completion: YYYY-MM-DD'T'hh:mm:ss", "example": "2024-01-01T20:20:00", "type": "string", "format": "date-time", "readOnly": true, "nullable": true }, "status": { "$ref": "#/components/schemas/BatchOperationStatus" }, "catalog_type": { "$ref": "#/components/schemas/CatalogsType" }, "items": { "description": "Array with the catalogs items processing records part of the catalogs items batch", "items": { "$ref": "#/components/schemas/HotelProcessingRecord" }, "type": "array" } }, "required": [ "catalog_type" ] }, "CatalogsRetailItemsBatch": { "type": "object", "description": "Object describing the catalogs retail items batch", "properties": { "batch_id": { "description": "Id of the catalogs items batch", "example": "595953100599279259-66753b9bb65c46c49bd8503b27fecf9e", "type": "string" }, "created_time": { "description": "Date and time (UTC) of the batch creation: YYYY-MM-DD'T'hh:mm:ss", "example": "2024-01-01T20:10:40", "type": "string", "format": "date-time", "readOnly": true }, "completed_time": { "description": "Date and time (UTC) of the batch completion: YYYY-MM-DD'T'hh:mm:ss", "example": "2024-01-01T20:20:00", "type": "string", "format": "date-time", "readOnly": true, "nullable": true }, "status": { "$ref": "#/components/schemas/BatchOperationStatus" }, "catalog_type": { "$ref": "#/components/schemas/CatalogsType" }, "items": { "description": "Array with the catalogs items processing records part of the catalogs items batch", "items": { "$ref": "#/components/schemas/ItemProcessingRecord" }, "type": "array" } }, "required": [ "catalog_type" ] }, "CatalogsItemsRequest": { "type": "object", "additionalProperties": false, "description": "Request object of catalogs items", "properties": { "country": { "$ref": "#/components/schemas/Country" }, "language": { "description": "We recommend using the CatalogsLocale values.", "anyOf": [ { "$ref": "#/components/schemas/CatalogsLocale" }, { "$ref": "#/components/schemas/Language" } ] }, "filters": { "$ref": "#/components/schemas/CatalogsItemsPostFilters" } }, "required": [ "country", "language", "filters" ] }, "CatalogsItemsBatchRequest": { "type": "object", "title": "legacy_retail_only", "description": "Request object of catalogs items batch", "oneOf": [ { "$ref": "#/components/schemas/CatalogsItemsUpdateBatchRequest" }, { "$ref": "#/components/schemas/CatalogsItemsUpsertBatchRequest" }, { "$ref": "#/components/schemas/CatalogsItemsCreateBatchRequest" }, { "$ref": "#/components/schemas/CatalogsItemsDeleteDiscontinuedBatchRequest" }, { "$ref": "#/components/schemas/CatalogsItemsDeleteBatchRequest" } ], "discriminator": { "propertyName": "operation", "mapping": { "UPDATE": "#/components/schemas/CatalogsItemsUpdateBatchRequest", "UPSERT": "#/components/schemas/CatalogsItemsUpsertBatchRequest", "CREATE": "#/components/schemas/CatalogsItemsCreateBatchRequest", "DELETE_DISCONTINUED": "#/components/schemas/CatalogsItemsDeleteDiscontinuedBatchRequest", "DELETE": "#/components/schemas/CatalogsItemsDeleteBatchRequest" } } }, "CatalogsItemsCreateBatchRequest": { "description": "Request object to create catalogs items", "type": "object", "additionalProperties": false, "properties": { "country": { "$ref": "#/components/schemas/Country" }, "language": { "description": "We recommend using the CatalogsLocale values.", "anyOf": [ { "$ref": "#/components/schemas/CatalogsLocale" }, { "$ref": "#/components/schemas/Language" } ] }, "operation": { "$ref": "#/components/schemas/BatchOperation" }, "items": { "type": "array", "description": "Array with catalogs items", "items": { "$ref": "#/components/schemas/ItemCreateBatchRecord" }, "minItems": 1, "maxItems": 1000 } }, "required": [ "country", "language", "operation", "items" ] }, "CatalogsItemsDeleteBatchRequest": { "description": "Request object to delete catalogs items", "type": "object", "additionalProperties": false, "properties": { "country": { "$ref": "#/components/schemas/Country" }, "language": { "description": "We recommend using the CatalogsLocale values.", "anyOf": [ { "$ref": "#/components/schemas/CatalogsLocale" }, { "$ref": "#/components/schemas/Language" } ] }, "operation": { "$ref": "#/components/schemas/BatchOperation" }, "items": { "type": "array", "description": "Array with catalogs items", "items": { "$ref": "#/components/schemas/ItemDeleteBatchRecord" } } }, "required": [ "country", "language", "operation", "items" ] }, "CatalogsItemsDeleteDiscontinuedBatchRequest": { "description": "Request object to discontinue catalogs items", "type": "object", "additionalProperties": false, "properties": { "country": { "$ref": "#/components/schemas/Country" }, "language": { "description": "We recommend using the CatalogsLocale values.", "anyOf": [ { "$ref": "#/components/schemas/CatalogsLocale" }, { "$ref": "#/components/schemas/Language" } ] }, "operation": { "$ref": "#/components/schemas/BatchOperation" }, "items": { "type": "array", "description": "Array with catalogs items", "items": { "$ref": "#/components/schemas/ItemDeleteDiscontinuedBatchRecord" } } }, "required": [ "country", "language", "operation", "items" ] }, "CatalogsItemsUpdateBatchRequest": { "description": "Request object to update catalogs items", "type": "object", "additionalProperties": false, "properties": { "country": { "$ref": "#/components/schemas/Country" }, "language": { "description": "We recommend using the CatalogsLocale values.", "anyOf": [ { "$ref": "#/components/schemas/CatalogsLocale" }, { "$ref": "#/components/schemas/Language" } ] }, "operation": { "$ref": "#/components/schemas/BatchOperation" }, "items": { "type": "array", "description": "Array with catalogs items", "items": { "$ref": "#/components/schemas/ItemUpdateBatchRecord" }, "minItems": 1, "maxItems": 1000 } }, "required": [ "country", "language", "operation", "items" ] }, "CatalogsItemsUpsertBatchRequest": { "description": "Request object to upsert catalogs items", "type": "object", "properties": { "country": { "$ref": "#/components/schemas/Country" }, "language": { "description": "We recommend using the CatalogsLocale values.", "anyOf": [ { "$ref": "#/components/schemas/CatalogsLocale" }, { "$ref": "#/components/schemas/Language" } ] }, "operation": { "$ref": "#/components/schemas/BatchOperation" }, "items": { "type": "array", "description": "Array with catalogs items", "items": { "$ref": "#/components/schemas/ItemUpsertBatchRecord" }, "minItems": 1, "maxItems": 1000 } }, "required": [ "country", "language", "operation", "items" ] }, "CatalogsListProductsByFilterRequest": { "description": "Request object to list products for a given product group filter.", "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CatalogsListProductsByFeedBasedFilter" }, { "$ref": "#/components/schemas/CatalogsVerticalsListProductsByCatalogBasedFilterRequest" } ] }, "CatalogsListProductsByFeedBasedFilter": { "title": "feed based product group", "description": "Request object to list products for a given feed_id and product group filter.", "type": "object", "additionalProperties": false, "properties": { "feed_id": { "description": "Catalog Feed id pertaining to the catalog product group filter.", "example": "2680059592705", "type": "string", "pattern": "^\\d+$" }, "filters": { "$ref": "#/components/schemas/CatalogsProductGroupFilters" } }, "required": [ "feed_id", "filters" ] }, "CatalogsVerticalsListProductsByCatalogBasedFilterRequest": { "type": "object", "title": "catalog based product group", "description": "Request object to list products for a given catalog_id and product group filter.", "oneOf": [ { "$ref": "#/components/schemas/CatalogsRetailListProductsByCatalogBasedFilterRequest" }, { "$ref": "#/components/schemas/CatalogsHotelListProductsByCatalogBasedFilterRequest" }, { "$ref": "#/components/schemas/CatalogsCreativeAssetsListProductsByCatalogBasedFilterRequest" } ], "discriminator": { "propertyName": "catalog_type", "mapping": { "RETAIL": "#/components/schemas/CatalogsRetailListProductsByCatalogBasedFilterRequest", "HOTEL": "#/components/schemas/CatalogsHotelListProductsByCatalogBasedFilterRequest", "CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsListProductsByCatalogBasedFilterRequest" } } }, "CatalogsRetailListProductsByCatalogBasedFilterRequest": { "type": "object", "title": "retail_list_products_by_catalog_based_filter_request", "additionalProperties": false, "description": "Request object to list products for a given retail catalog_id and product group filter.", "properties": { "catalog_type": { "type": "string", "enum": [ "RETAIL" ], "description": "Retail catalog based product group is available only for selected partners at the moment. If you are not eligible, please use feed based one." }, "catalog_id": { "description": "Catalog id pertaining to the retail product group.", "example": "2680059592705", "type": "string", "pattern": "^\\d+$" }, "filters": { "$ref": "#/components/schemas/CatalogsProductGroupFilters" }, "country": { "$ref": "#/components/schemas/Country" }, "locale": { "$ref": "#/components/schemas/CatalogsLocale" } }, "required": [ "catalog_type", "catalog_id", "filters", "country", "locale" ] }, "CatalogsHotelListProductsByCatalogBasedFilterRequest": { "type": "object", "title": "hotel_list_products_by_catalog_based_filter_request", "additionalProperties": false, "description": "Request object to list products for a given hotel catalog_id and product group filter.", "properties": { "catalog_type": { "type": "string", "enum": [ "HOTEL" ] }, "catalog_id": { "description": "Catalog id pertaining to the hotel product group.", "example": "2680059592705", "type": "string", "pattern": "^\\d+$" }, "filters": { "$ref": "#/components/schemas/CatalogsHotelProductGroupFilters" } }, "required": [ "catalog_type", "catalog_id", "filters" ] }, "CatalogsCreativeAssetsListProductsByCatalogBasedFilterRequest": { "type": "object", "title": "creative_assets_list_products_by_catalog_based_filter_request", "additionalProperties": false, "description": "Request object to list products for a given creative assets catalog_id and product group filter.", "properties": { "catalog_type": { "type": "string", "enum": [ "CREATIVE_ASSETS" ] }, "catalog_id": { "description": "Catalog id pertaining to the creative assets product group.", "example": "2680059592705", "type": "string", "pattern": "^\\d+$" }, "filters": { "$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupFilters" } }, "required": [ "catalog_type", "catalog_id", "filters" ] }, "CatalogsLocale": { "type": "string", "enum": [ "af-ZA", "ar-SA", "bg-BG", "bn-IN", "cs-CZ", "da-DK", "de", "el-GR", "en-AU", "en-CA", "en-GB", "en-IN", "en-US", "es-419", "es-AR", "es-ES", "es-MX", "fi-FI", "fr", "fr-CA", "he-IL", "hi-IN", "hr-HR", "hu-HU", "id-ID", "it", "ja", "ko-KR", "ms-MY", "nb-NO", "nl", "pl-PL", "pt-BR", "pt-PT", "ro-RO", "ru-RU", "sk-SK", "sv-SE", "te-IN", "th-TH", "tl-PH", "tr", "uk-UA", "vi-VN", "zh-CN", "zh-TW" ] }, "CatalogsProduct": { "type": "object", "description": "Catalogs product for all verticals", "properties": { "catalog_type": { "$ref": "#/components/schemas/CatalogsType" } }, "required": [ "catalog_type" ], "oneOf": [ { "$ref": "#/components/schemas/CatalogsRetailProduct" }, { "$ref": "#/components/schemas/CatalogsHotelProduct" }, { "$ref": "#/components/schemas/CatalogsCreativeAssetsProduct" } ], "discriminator": { "propertyName": "catalog_type", "mapping": { "RETAIL": "#/components/schemas/CatalogsRetailProduct", "HOTEL": "#/components/schemas/CatalogsHotelProduct", "CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsProduct" } } }, "CatalogsVerticalProductGroup": { "type": "object", "title": "product_group", "oneOf": [ { "$ref": "#/components/schemas/CatalogsRetailProductGroup" }, { "$ref": "#/components/schemas/CatalogsHotelProductGroup" }, { "$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroup" } ], "discriminator": { "propertyName": "catalog_type", "mapping": { "RETAIL": "#/components/schemas/CatalogsRetailProductGroup", "HOTEL": "#/components/schemas/CatalogsHotelProductGroup", "CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsProductGroup" } } }, "CatalogsCreativeAssetsProductGroup": { "type": "object", "title": "creative_assets_product_group", "properties": { "catalog_type": { "type": "string", "enum": [ "CREATIVE_ASSETS" ] }, "id": { "description": "ID of the creative assets product group.", "example": "443727193917", "type": "string", "pattern": "^\\d+$" }, "name": { "description": "Name of creative assets product group", "example": "Most Popular", "type": "string" }, "description": { "type": "string", "nullable": true }, "filters": { "$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupFilters" }, "created_at": { "description": "Unix timestamp in seconds of when catalog product group was created.", "example": 1621350033000, "type": "integer" }, "updated_at": { "description": "Unix timestamp in seconds of last time catalog product group was updated.", "example": 1622742155000, "type": "integer" }, "catalog_id": { "description": "Catalog id pertaining to the creative assets product group.", "type": "string", "pattern": "^\\d+$" } }, "required": [ "id", "filters", "catalog_type", "catalog_id" ] }, "CatalogsCreativeAssetsProductGroupFilters": { "description": "Object holding a group of filters for a creative assets product group", "title": "catalogs_product_group_filters", "type": "object", "anyOf": [ { "$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupFiltersAnyOf" }, { "$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupFiltersAllOf" } ] }, "CatalogsCreativeAssetsProductGroupFiltersAllOf": { "type": "object", "title": "all_of", "additionalProperties": false, "properties": { "all_of": { "type": "array", "items": { "type": "object", "$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupFilterKeys" } } }, "required": [ "all_of" ] }, "CatalogsCreativeAssetsProductGroupFiltersAnyOf": { "type": "object", "title": "any_of", "additionalProperties": false, "properties": { "any_of": { "type": "array", "items": { "type": "object", "$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupFilterKeys" } } }, "required": [ "any_of" ] }, "CatalogsCreativeAssetsProductGroupFilterKeys": { "title": "catalogs_product_group_keys", "anyOf": [ { "$ref": "#/components/schemas/CreativeAssetsIdFilter" }, { "$ref": "#/components/schemas/CustomLabel0Filter" }, { "$ref": "#/components/schemas/CustomLabel1Filter" }, { "$ref": "#/components/schemas/CustomLabel2Filter" }, { "$ref": "#/components/schemas/CustomLabel3Filter" }, { "$ref": "#/components/schemas/CustomLabel4Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory6Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory5Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory4Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory3Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory2Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory1Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory0Filter" }, { "$ref": "#/components/schemas/MediaTypeFilter" }, { "$ref": "#/components/schemas/TitleKeywordsFilter" } ] }, "CatalogsCreativeAssetsProductGroupCreateRequest": { "type": "object", "title": "creative_assets_product_groups_create_request", "additionalProperties": false, "description": "Request object for creating a creative assets product group.", "properties": { "catalog_type": { "type": "string", "enum": [ "CREATIVE_ASSETS" ] }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "filters": { "$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupFilters" }, "catalog_id": { "description": "Catalog id pertaining to the creative assets product group.", "example": "2680059592705", "type": "string", "pattern": "^\\d+$" } }, "required": [ "name", "filters", "catalog_id", "catalog_type" ] }, "CatalogsCreativeAssetsProductGroupUpdateRequest": { "type": "object", "title": "creative_assets_product_groups_update_request", "additionalProperties": false, "description": "Request object for updating a creative assets product group.", "properties": { "catalog_type": { "type": "string", "enum": [ "CREATIVE_ASSETS" ] }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "filters": { "$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupFilters" } } }, "CatalogsHotelProductGroup": { "type": "object", "title": "hotel_product_group", "properties": { "catalog_type": { "type": "string", "enum": [ "HOTEL" ] }, "id": { "description": "ID of the hotel product group.", "example": "443727193917", "type": "string", "pattern": "^\\d+$" }, "name": { "description": "Name of hotel product group", "example": "Most Popular", "type": "string" }, "description": { "type": "string", "nullable": true }, "filters": { "$ref": "#/components/schemas/CatalogsHotelProductGroupFilters" }, "type": { "$ref": "#/components/schemas/CatalogsHotelProductGroupType" }, "created_at": { "description": "Unix timestamp in seconds of when catalog product group was created.", "example": 1621350033000, "type": "integer" }, "updated_at": { "description": "Unix timestamp in seconds of last time catalog product group was updated.", "example": 1622742155000, "type": "integer" }, "catalog_id": { "description": "Catalog id pertaining to the hotel product group.", "type": "string", "pattern": "^\\d+$" } }, "required": [ "id", "filters", "catalog_type", "catalog_id", "type" ] }, "CatalogsHotelProductGroupFilterKeys": { "title": "catalogs_product_group_keys", "anyOf": [ { "$ref": "#/components/schemas/PriceFilter" }, { "$ref": "#/components/schemas/HotelIdFilter" }, { "$ref": "#/components/schemas/BrandFilter" }, { "$ref": "#/components/schemas/CustomLabel0Filter" }, { "$ref": "#/components/schemas/CustomLabel1Filter" }, { "$ref": "#/components/schemas/CustomLabel2Filter" }, { "$ref": "#/components/schemas/CustomLabel3Filter" }, { "$ref": "#/components/schemas/CustomLabel4Filter" }, { "$ref": "#/components/schemas/CountryFilter" }, { "$ref": "#/components/schemas/TitleKeywordsFilter" } ] }, "CatalogsHotelProductGroupFilters": { "description": "Object holding a group of filters for a hotel product group", "title": "catalogs_product_group_filters", "type": "object", "anyOf": [ { "$ref": "#/components/schemas/CatalogsHotelProductGroupFiltersAnyOf" }, { "$ref": "#/components/schemas/CatalogsHotelProductGroupFiltersAllOf" } ] }, "CatalogsHotelProductGroupFiltersAllOf": { "type": "object", "title": "all_of", "additionalProperties": false, "properties": { "all_of": { "type": "array", "items": { "type": "object", "$ref": "#/components/schemas/CatalogsHotelProductGroupFilterKeys" } } }, "required": [ "all_of" ] }, "CatalogsHotelProductGroupFiltersAnyOf": { "type": "object", "title": "any_of", "additionalProperties": false, "properties": { "any_of": { "type": "array", "items": { "type": "object", "$ref": "#/components/schemas/CatalogsHotelProductGroupFilterKeys" } } }, "required": [ "any_of" ] }, "CatalogsRetailProductGroup": { "type": "object", "title": "retail_product_group", "properties": { "catalog_type": { "type": "string", "enum": [ "RETAIL" ] }, "id": { "description": "ID of the catalog product group.", "example": "443727193917", "type": "string", "pattern": "^\\d+$" }, "name": { "description": "Name of catalog product group", "example": "Most Popular", "type": "string" }, "description": { "type": "string", "nullable": true }, "filters": { "$ref": "#/components/schemas/CatalogsProductGroupFilters" }, "is_featured": { "deprecated": true, "description": "boolean indicator of whether the product group is being featured or not", "type": "boolean" }, "type": { "$ref": "#/components/schemas/CatalogsProductGroupType" }, "status": { "$ref": "#/components/schemas/CatalogsProductGroupStatus" }, "created_at": { "description": "Unix timestamp in seconds of when catalog product group was created.", "example": 1621350033000, "type": "integer" }, "updated_at": { "description": "Unix timestamp in seconds of last time catalog product group was updated.", "example": 1622742155000, "type": "integer" }, "catalog_id": { "description": "Catalog id pertaining to the retail product group.", "type": "string", "pattern": "^\\d+$" }, "feed_id": { "description": "id of the catalogs feed belonging to this catalog product group", "example": "2680059592705", "type": "string", "pattern": "^\\d+$", "nullable": true }, "country": { "type": "string", "nullable": true }, "locale": { "type": "string", "nullable": true } }, "required": [ "filters", "id", "catalog_id", "feed_id", "catalog_type", "type" ] }, "CatalogsHotelProductGroupCreateRequest": { "type": "object", "title": "hotel_product_groups_create_request", "additionalProperties": false, "description": "Request object for creating a hotel product group.", "properties": { "catalog_type": { "type": "string", "enum": [ "HOTEL" ] }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "filters": { "$ref": "#/components/schemas/CatalogsHotelProductGroupFilters" }, "catalog_id": { "description": "Catalog id pertaining to the hotel product group.", "example": "2680059592705", "type": "string", "pattern": "^\\d+$" } }, "required": [ "name", "filters", "catalog_id", "catalog_type" ] }, "CatalogsRetailProductGroupCreateRequest": { "type": "object", "title": "retail_product_groups_create_request", "additionalProperties": false, "description": "Request object for creating a product group.", "properties": { "catalog_type": { "type": "string", "enum": [ "RETAIL" ], "description": "Retail catalog based product group is available only for selected partners at the moment. If you are not eligible, please use feed based one." }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "filters": { "$ref": "#/components/schemas/CatalogsProductGroupFiltersRequest" }, "catalog_id": { "description": "Catalog id pertaining to the retail product group.", "example": "2680059592705", "type": "string", "pattern": "^\\d+$" }, "country": { "$ref": "#/components/schemas/Country" }, "locale": { "$ref": "#/components/schemas/CatalogsLocale" } }, "required": [ "name", "filters", "catalog_id", "catalog_type" ] }, "CatalogsHotelProductGroupUpdateRequest": { "type": "object", "title": "hotel_product_groups_update_request", "additionalProperties": false, "description": "Request object for updating a hotel product group.", "properties": { "catalog_type": { "type": "string", "enum": [ "HOTEL" ] }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "filters": { "$ref": "#/components/schemas/CatalogsHotelProductGroupFilters" } } }, "CatalogsRetailProductGroupUpdateRequest": { "type": "object", "title": "retail_product_groups_update_request", "additionalProperties": false, "description": "Request object for updating a retail product group.", "properties": { "catalog_type": { "type": "string", "enum": [ "RETAIL" ], "description": "Retail catalog based product group is available only for selected partners at the moment. If you are not eligible, please use feed based one." }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "filters": { "$ref": "#/components/schemas/CatalogsProductGroupFiltersRequest" }, "country": { "$ref": "#/components/schemas/Country" }, "locale": { "$ref": "#/components/schemas/CatalogsLocale" } } }, "CatalogsProductGroupCreateRequest": { "type": "object", "title": "retail feed based", "description": "Request object for creating a product group.", "properties": { "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "is_featured": { "deprecated": true, "description": "boolean indicator of whether the product group is being featured or not", "type": "boolean", "default": false }, "filters": { "$ref": "#/components/schemas/CatalogsProductGroupFiltersRequest" }, "feed_id": { "description": "Catalog Feed id pertaining to the catalog product group.", "example": "2680059592705", "type": "string", "pattern": "^\\d+$" } }, "required": [ "name", "filters", "feed_id" ] }, "CatalogsProductGroupCurrencyCriteria": { "title": "catalogs_product_group_currency_criteria", "type": "object", "description": "A currency filter. This filter cannot be negated", "additionalProperties": false, "properties": { "values": { "$ref": "#/components/schemas/NonNullableCatalogsCurrency" }, "negated": { "type": "boolean", "default": false, "enum": [ false ] } }, "required": [ "values" ] }, "CatalogsProductGroupFilterKeys": { "title": "catalogs_product_group_keys", "anyOf": [ { "$ref": "#/components/schemas/MinPriceFilter" }, { "$ref": "#/components/schemas/MaxPriceFilter" }, { "$ref": "#/components/schemas/CurrencyFilter" }, { "$ref": "#/components/schemas/ItemIdFilter" }, { "$ref": "#/components/schemas/AvailabilityFilter" }, { "$ref": "#/components/schemas/BrandFilter" }, { "$ref": "#/components/schemas/ConditionFilter" }, { "$ref": "#/components/schemas/CustomLabel0Filter" }, { "$ref": "#/components/schemas/CustomLabel1Filter" }, { "$ref": "#/components/schemas/CustomLabel2Filter" }, { "$ref": "#/components/schemas/CustomLabel3Filter" }, { "$ref": "#/components/schemas/CustomLabel4Filter" }, { "$ref": "#/components/schemas/ItemGroupIdFilter" }, { "$ref": "#/components/schemas/GenderFilter" }, { "$ref": "#/components/schemas/MediaTypeFilter" }, { "$ref": "#/components/schemas/ProductType4Filter" }, { "$ref": "#/components/schemas/ProductType3Filter" }, { "$ref": "#/components/schemas/ProductType2Filter" }, { "$ref": "#/components/schemas/ProductType1Filter" }, { "$ref": "#/components/schemas/ProductType0Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory6Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory5Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory4Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory3Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory2Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory1Filter" }, { "$ref": "#/components/schemas/GoogleProductCategory0Filter" }, { "$ref": "#/components/schemas/ProductGroupReferenceFilter" }, { "$ref": "#/components/schemas/CustomNumber0Filter" }, { "$ref": "#/components/schemas/CustomNumber1Filter" }, { "$ref": "#/components/schemas/CustomNumber2Filter" }, { "$ref": "#/components/schemas/CustomNumber3Filter" }, { "$ref": "#/components/schemas/CustomNumber4Filter" }, { "$ref": "#/components/schemas/TitleKeywordsFilter" } ] }, "CatalogsProductGroupFilters": { "description": "Object holding a group of filters for a catalog product group", "title": "catalogs_product_group_filters", "type": "object", "anyOf": [ { "$ref": "#/components/schemas/CatalogsProductGroupFiltersAnyOf" }, { "$ref": "#/components/schemas/CatalogsProductGroupFiltersAllOf" } ] }, "CatalogsProductGroupFiltersAllOf": { "type": "object", "title": "all_of", "additionalProperties": false, "properties": { "all_of": { "type": "array", "items": { "type": "object", "$ref": "#/components/schemas/CatalogsProductGroupFilterKeys" } } }, "required": [ "all_of" ] }, "CatalogsProductGroupFiltersRequest": { "description": "Object holding a group of filters for request on catalog product group. This is a distinct schema It is not possible to create or update a Product Group with empty filters. But some automatically generated Product Groups might have empty filters.", "title": "catalogs_product_group_filters", "type": "object", "anyOf": [ { "type": "object", "title": "any_of", "additionalProperties": false, "properties": { "any_of": { "type": "array", "items": { "type": "object", "$ref": "#/components/schemas/CatalogsProductGroupFilterKeys" }, "minItems": 1 } }, "required": [ "any_of" ] }, { "type": "object", "title": "all_of", "additionalProperties": false, "properties": { "all_of": { "type": "array", "items": { "type": "object", "$ref": "#/components/schemas/CatalogsProductGroupFilterKeys" }, "minItems": 1 } }, "required": [ "all_of" ] } ] }, "CatalogsProductGroupFiltersAnyOf": { "type": "object", "title": "any_of", "additionalProperties": false, "properties": { "any_of": { "type": "array", "items": { "type": "object", "$ref": "#/components/schemas/CatalogsProductGroupFilterKeys" } } }, "required": [ "any_of" ] }, "CatalogsProductGroupMultipleCountriesCriteria": { "title": "catalogs_product_group_multiple_country_criteria", "type": "object", "additionalProperties": false, "properties": { "values": { "type": "array", "items": { "$ref": "#/components/schemas/Country" } }, "negated": { "type": "boolean", "default": false } }, "required": [ "values" ] }, "CatalogsProductGroupMultipleGenderCriteria": { "title": "catalogs_product_group_multiple_gender_criteria", "type": "object", "additionalProperties": false, "properties": { "values": { "type": "array", "items": { "$ref": "#/components/schemas/Gender" } }, "negated": { "type": "boolean", "default": false } }, "required": [ "values" ] }, "CatalogsProductGroupMultipleMediaTypesCriteria": { "title": "catalogs_product_group_multiple_media_type_criteria", "type": "object", "additionalProperties": false, "properties": { "values": { "type": "array", "items": { "$ref": "#/components/schemas/MediaType" } }, "negated": { "type": "boolean", "default": false } }, "required": [ "values" ] }, "CatalogsProductGroupMultipleStringCriteria": { "title": "catalogs_product_group_multiple_string_criteria", "type": "object", "additionalProperties": false, "properties": { "values": { "type": "array", "items": { "type": "string" } }, "negated": { "type": "boolean", "default": false } }, "required": [ "values" ] }, "CatalogsProductGroupFilterOperatorTypeCriteria": { "title": "catalogs_product_group_filter_operator_type_criteria", "type": "object", "additionalProperties": false, "properties": { "values": { "type": "array", "items": { "type": "string" } }, "negated": { "type": "boolean", "default": false }, "filter_operator_type": { "default": "IS", "type": "string", "enum": [ "IS", "CONTAINS" ] } }, "required": [ "values" ] }, "CatalogsProductGroupMultipleStringListCriteria": { "title": "catalogs_product_group_multiple_string_list_criteria", "type": "object", "additionalProperties": false, "properties": { "values": { "type": "array", "items": { "type": "array", "items": { "type": "string" } } }, "negated": { "type": "boolean", "default": false } }, "required": [ "values" ] }, "CatalogsProductGroupPricingCriteria": { "title": "catalogs_product_group_pricing_criteria", "type": "object", "additionalProperties": false, "properties": { "inclusion": { "type": "boolean", "default": true }, "values": { "type": "number", "minimum": 0 }, "negated": { "type": "boolean", "default": false } }, "required": [ "values" ] }, "CatalogsProductGroupUint32Criteria": { "title": "catalogs_product_group_uint32_criteria", "type": "object", "additionalProperties": false, "properties": { "operator": { "type": "string", "enum": [ "GREATER_THAN", "GREATER_THAN_OR_EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUALS" ] }, "value": { "type": "integer", "minimum": 0, "maximum": 4294967295 }, "negated": { "type": "boolean", "default": false } }, "required": [ "operator", "value" ] }, "CatalogsProductGroupProductCountsVertical": { "type": "object", "description": "Product counts for a CatalogsProductGroup", "properties": { "catalog_type": { "$ref": "#/components/schemas/CatalogsType" } }, "required": [ "catalog_type" ], "oneOf": [ { "$ref": "#/components/schemas/CatalogsRetailProductGroupProductCounts" }, { "$ref": "#/components/schemas/CatalogsHotelProductGroupProductCounts" }, { "$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupProductCounts" } ], "discriminator": { "propertyName": "catalog_type", "mapping": { "RETAIL": "#/components/schemas/CatalogsRetailProductGroupProductCounts", "HOTEL": "#/components/schemas/CatalogsHotelProductGroupProductCounts", "CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsProductGroupProductCounts" } } }, "CatalogsHotelProductGroupProductCounts": { "title": "catalogs_hotel_product_group_product_counts", "description": "Product counts for a Hotel CatalogsProductGroup", "type": "object", "properties": { "catalog_type": { "type": "string", "enum": [ "HOTEL" ] }, "total": { "type": "number", "minimum": 0 } }, "required": [ "catalog_type", "total" ] }, "CatalogsCreativeAssetsProductGroupProductCounts": { "title": "catalogs_creative_assets_product_group_product_counts", "description": "Product counts for a Creative Assets CatalogsProductGroup", "type": "object", "properties": { "catalog_type": { "type": "string", "enum": [ "CREATIVE_ASSETS" ] }, "total": { "type": "number", "minimum": 0 }, "videos": { "type": "number", "minimum": 0 } }, "required": [ "catalog_type", "total", "videos" ] }, "CatalogsRetailProductGroupProductCounts": { "title": "catalogs_retail_product_group_product_counts", "description": "Product counts for a Retail CatalogsProductGroup", "type": "object", "properties": { "catalog_type": { "type": "string", "enum": [ "RETAIL" ] }, "in_stock": { "type": "number", "minimum": 0 }, "out_of_stock": { "type": "number", "minimum": 0 }, "preorder": { "type": "number", "minimum": 0 }, "total": { "type": "number", "minimum": 0 }, "videos": { "type": "number", "minimum": 0 } }, "required": [ "catalog_type", "in_stock", "out_of_stock", "preorder", "total" ] }, "CatalogsProductGroupStatus": { "type": "string", "enum": [ "ACTIVE", "INACTIVE" ] }, "CatalogsProductGroupType": { "type": "string", "title": "product_group_type", "description": "Catalog product group type
\nMERCHANT_CREATED: Product groups created by merchants.\n
ALL_PRODUCTS: Consists of every product in your latest successful feed upload.\n
BEST_DEALS: Consists of products with the deepest drop in price.\n
PINNER_FAVORITES: Consists of products that are resonating most with people on Pinterest, based on engagement.\n
TOP_SELLERS: Consists of products with the highest conversion rate, if you have the conversion tag installed.\n
BACK_IN_STOCK: Consists of products that were previously out of stock and are now in stock.\n
NEW_ARRIVALS: Consists of products that are new to your Catalog.\n
SHOPIFY_COLLECTION: Product groups created based on Shopify Product Collections.\n
I2PC: Product groups created based on predicted product category.
Catalog hotel product group type
\nMERCHANT_CREATED: Product groups created by merchants.\n
ALL_LISTINGS: Includes every hotel item in your catalog.",
"enum": [
"MERCHANT_CREATED",
"ALL_LISTINGS"
],
"example": "MERCHANT_CREATED"
},
"CatalogsProductGroupUpdateRequest": {
"type": "object",
"title": "retail feed based",
"additionalProperties": false,
"description": "Request object for updating a product group.",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string",
"nullable": true
},
"is_featured": {
"deprecated": true,
"description": "boolean indicator of whether the product group is being featured or not",
"type": "boolean"
},
"filters": {
"$ref": "#/components/schemas/CatalogsProductGroupFiltersRequest"
}
}
},
"CatalogsRetailProduct": {
"type": "object",
"properties": {
"catalog_type": {
"type": "string",
"enum": [
"RETAIL"
]
},
"metadata": {
"$ref": "#/components/schemas/CatalogsRetailProductMetadata"
},
"pin": {
"$ref": "#/components/schemas/Pin"
}
},
"required": [
"catalog_type",
"metadata",
"pin"
]
},
"CatalogsRetailProductMetadata": {
"type": "object",
"description": "Retail product metadata entity",
"properties": {
"item_id": {
"description": "The user-created unique ID that represents the product.",
"example": "DS0294-L",
"type": "string"
},
"item_group_id": {
"description": "The parent ID of the product.",
"example": "DS0294",
"type": "string",
"nullable": true
},
"availability": {
"$ref": "#/components/schemas/NonNullableProductAvailabilityType"
},
"price": {
"description": "The price of the product.",
"example": 24.99,
"type": "number"
},
"sale_price": {
"description": "The discounted price of the product.",
"example": 14.99,
"type": "number",
"nullable": true
},
"currency": {
"$ref": "#/components/schemas/NonNullableCatalogsCurrency"
}
},
"required": [
"item_id",
"item_group_id",
"availability",
"price",
"sale_price",
"currency"
]
},
"CatalogsStatus": {
"type": "string",
"description": "Status for catalogs entities. Present in catalogs_feed values. When a feed is deleted, the response will inform DELETED as status.",
"enum": [
"ACTIVE",
"INACTIVE"
]
},
"CatalogsType": {
"description": "Type of the catalog entity.",
"type": "string",
"enum": [
"RETAIL",
"HOTEL",
"CREATIVE_ASSETS"
]
},
"CatalogsVerticalBatchRequest": {
"type": "object",
"title": "operate on item batch",
"description": "A request object that can have multiple operations on a single batch",
"oneOf": [
{
"$ref": "#/components/schemas/CatalogsRetailBatchRequest"
},
{
"$ref": "#/components/schemas/CatalogsHotelBatchRequest"
},
{
"$ref": "#/components/schemas/CatalogsCreativeAssetsBatchRequest"
}
],
"discriminator": {
"propertyName": "catalog_type",
"mapping": {
"RETAIL": "#/components/schemas/CatalogsRetailBatchRequest",
"HOTEL": "#/components/schemas/CatalogsHotelBatchRequest",
"CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsBatchRequest"
}
}
},
"CatalogsHotelGuestRatings": {
"type": "object",
"description": "If specified, you must provide all properties",
"properties": {
"score": {
"description": "Your hotel's rating.",
"type": "number"
},
"number_of_reviewers": {
"description": "Total number of people who have rated this hotel.",
"type": "integer"
},
"max_score": {
"description": "Max value for the hotel rating score.",
"type": "number"
},
"rating_system": {
"description": "System you use for guest reviews.",
"type": "string"
}
}
},
"CatalogsHotelItemErrorResponse": {
"type": "object",
"description": "Object describing a hotel item error",
"properties": {
"catalog_type": {
"$ref": "#/components/schemas/CatalogsType"
},
"hotel_id": {
"description": "The catalog hotel id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"errors": {
"description": "Array with the errors for the item id requested",
"items": {
"$ref": "#/components/schemas/ItemValidationEvent"
},
"type": "array"
}
},
"required": [
"catalog_type"
]
},
"CatalogsHotelItemResponse": {
"type": "object",
"description": "Object describing a hotel record",
"properties": {
"catalog_type": {
"$ref": "#/components/schemas/CatalogsType"
},
"hotel_id": {
"description": "The catalog hotel id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"pins": {
"description": "The pins mapped to the item",
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/Pin"
},
"maxItems": 11
},
"attributes": {
"$ref": "#/components/schemas/CatalogsHotelAttributes"
}
},
"required": [
"catalog_type"
]
},
"CatalogsCreativeAssetsItemErrorResponse": {
"type": "object",
"description": "Object describing a creative assets item error",
"properties": {
"catalog_type": {
"$ref": "#/components/schemas/CatalogsType"
},
"creative_assets_id": {
"description": "The catalog creative assets id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"errors": {
"description": "Array with the errors for the item id requested",
"items": {
"$ref": "#/components/schemas/ItemValidationEvent"
},
"type": "array"
}
},
"required": [
"catalog_type"
]
},
"CatalogsCreativeAssetsItemResponse": {
"type": "object",
"description": "Object describing a hotel record",
"properties": {
"catalog_type": {
"$ref": "#/components/schemas/CatalogsType"
},
"creative_assets_id": {
"description": "The catalog creative assets id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"pins": {
"description": "The pins mapped to the item",
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/Pin"
},
"maxItems": 11
},
"attributes": {
"$ref": "#/components/schemas/CatalogsCreativeAssetsAttributes"
}
},
"required": [
"catalog_type"
]
},
"CreativeAssetsProcessingRecord": {
"type": "object",
"description": "Object describing an item processing record",
"properties": {
"creative_assets_id": {
"description": "The catalog creative assets id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"errors": {
"description": "Array with the validation errors for the item processing record.\nA non empty errors list causes the item processing to fail.",
"items": {
"$ref": "#/components/schemas/ItemValidationEvent"
},
"type": "array"
},
"warnings": {
"description": "Array with the validation warnings for the item processing record",
"items": {
"$ref": "#/components/schemas/ItemValidationEvent"
},
"type": "array"
},
"status": {
"$ref": "#/components/schemas/ItemProcessingStatus"
}
}
},
"CatalogsRetailBatchRequest": {
"type": "object",
"description": "A request object that can have multiple operations on a single retail batch",
"additionalProperties": false,
"properties": {
"catalog_type": {
"type": "string",
"enum": [
"RETAIL"
]
},
"country": {
"$ref": "#/components/schemas/Country"
},
"language": {
"description": "We recommend using the CatalogsLocale values.",
"anyOf": [
{
"$ref": "#/components/schemas/CatalogsLocale"
},
{
"$ref": "#/components/schemas/Language"
}
]
},
"items": {
"minItems": 1,
"maxItems": 1000,
"type": "array",
"description": "Array with catalogs item operations",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/CatalogsCreateRetailItem"
},
{
"$ref": "#/components/schemas/CatalogsUpdateRetailItem"
},
{
"$ref": "#/components/schemas/CatalogsUpsertRetailItem"
},
{
"$ref": "#/components/schemas/CatalogsDeleteRetailItem"
}
],
"discriminator": {
"propertyName": "operation",
"mapping": {
"CREATE": "#/components/schemas/CatalogsCreateRetailItem",
"UPDATE": "#/components/schemas/CatalogsUpdateRetailItem",
"UPSERT": "#/components/schemas/CatalogsUpsertRetailItem",
"DELETE": "#/components/schemas/CatalogsDeleteRetailItem"
}
}
}
}
},
"required": [
"catalog_type",
"country",
"language",
"items"
]
},
"CatalogsRetailItemErrorResponse": {
"type": "object",
"description": "Object describing a retail item error",
"properties": {
"catalog_type": {
"$ref": "#/components/schemas/CatalogsType"
},
"item_id": {
"description": "The catalog item id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"errors": {
"description": "Array with the errors for the item id requested",
"items": {
"$ref": "#/components/schemas/ItemValidationEvent"
},
"type": "array"
}
},
"required": [
"catalog_type"
]
},
"CatalogsRetailItemResponse": {
"type": "object",
"description": "Object describing a retail item record",
"properties": {
"catalog_type": {
"$ref": "#/components/schemas/CatalogsType"
},
"item_id": {
"description": "The catalog retail item id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"pins": {
"description": "The pins mapped to the item",
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/Pin"
},
"maxItems": 11
},
"attributes": {
"$ref": "#/components/schemas/ItemAttributes"
}
},
"required": [
"catalog_type"
]
},
"CatalogsCreateRetailItem": {
"type": "object",
"description": "An item to be created",
"properties": {
"item_id": {
"description": "The catalog item id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"CREATE"
]
},
"attributes": {
"$ref": "#/components/schemas/ItemAttributesRequest"
}
},
"required": [
"item_id",
"operation",
"attributes"
]
},
"CatalogsUpdateRetailItem": {
"type": "object",
"description": "An item to be updated",
"properties": {
"item_id": {
"description": "The catalog item id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"UPDATE"
]
},
"attributes": {
"$ref": "#/components/schemas/UpdatableItemAttributes"
},
"update_mask": {
"description": "The list of product attributes to be updated. Attributes specified in the update mask without a value specified in the body will be deleted from the product item.",
"example": [
"ad_link",
"adult",
"age_group",
"availability",
"average_review_rating",
"brand",
"checkout_enabled",
"color",
"condition",
"custom_label_0",
"custom_label_1",
"custom_label_2",
"custom_label_3",
"custom_label_4",
"description",
"free_shipping_label",
"free_shipping_limit",
"gender",
"google_product_category",
"gtin",
"item_group_id",
"last_updated_time",
"link",
"material",
"min_ad_price",
"mpn",
"number_of_ratings",
"number_of_reviews",
"pattern",
"price",
"product_type",
"sale_price",
"shipping",
"shipping_height",
"shipping_weight",
"shipping_width",
"size",
"size_system",
"size_type",
"tax",
"title",
"variant_names",
"variant_values"
],
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/UpdateMaskFieldType"
}
}
},
"required": [
"item_id",
"operation",
"attributes"
]
},
"CatalogsUpsertRetailItem": {
"type": "object",
"description": "An item to be upserted",
"properties": {
"item_id": {
"description": "The catalog item id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"UPSERT"
]
},
"attributes": {
"$ref": "#/components/schemas/ItemAttributesRequest"
}
},
"required": [
"item_id",
"operation",
"attributes"
]
},
"CatalogsDeleteRetailItem": {
"type": "object",
"description": "An item to be deleted",
"properties": {
"item_id": {
"description": "The catalog item id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"DELETE"
]
}
},
"required": [
"item_id",
"operation"
]
},
"CatalogsHotelBatchRequest": {
"description": "Request object to update catalogs hotel items",
"type": "object",
"additionalProperties": false,
"properties": {
"catalog_type": {
"type": "string",
"enum": [
"HOTEL"
]
},
"country": {
"$ref": "#/components/schemas/Country"
},
"language": {
"description": "We recommend using the CatalogsLocale values.",
"anyOf": [
{
"$ref": "#/components/schemas/CatalogsLocale"
},
{
"$ref": "#/components/schemas/Language"
}
]
},
"items": {
"minItems": 1,
"maxItems": 1000,
"type": "array",
"description": "Array with catalogs item operations",
"items": {
"$ref": "#/components/schemas/CatalogsHotelBatchItem"
}
},
"catalog_id": {
"description": "Catalog id pertaining to the hotel item. If not provided, default to oldest hotel catalog",
"example": "2680059592705",
"type": "string",
"pattern": "^\\d+$"
}
},
"required": [
"catalog_type",
"country",
"language",
"items"
]
},
"CatalogsDeleteHotelItem": {
"type": "object",
"description": "A hotel item to be deleted",
"properties": {
"hotel_id": {
"description": "The catalog hotel id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"DELETE"
]
}
},
"required": [
"hotel_id",
"operation"
]
},
"CatalogsCreateHotelItem": {
"type": "object",
"description": "A hotel item to be created.",
"properties": {
"hotel_id": {
"description": "The catalog hotel id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"CREATE"
]
},
"attributes": {
"$ref": "#/components/schemas/CatalogsHotelAttributes"
}
},
"required": [
"hotel_id",
"operation",
"attributes"
]
},
"CatalogsUpdateHotelItem": {
"type": "object",
"description": "Object describing an hotel item batch record",
"properties": {
"hotel_id": {
"description": "The catalog hotel item id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"UPDATE"
]
},
"attributes": {
"$ref": "#/components/schemas/CatalogsUpdatableHotelAttributes"
}
},
"required": [
"hotel_id",
"operation",
"attributes"
]
},
"CatalogsUpsertHotelItem": {
"type": "object",
"description": "A hotel item to be upserted.",
"properties": {
"hotel_id": {
"description": "The catalog hotel id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"UPSERT"
]
},
"attributes": {
"$ref": "#/components/schemas/CatalogsHotelAttributes"
}
},
"required": [
"hotel_id",
"operation",
"attributes"
]
},
"CatalogsHotelAddress": {
"type": "object",
"properties": {
"addr1": {
"description": "Primary street address of hotel.",
"type": "string"
},
"city": {
"description": "City where the hotel is located.",
"type": "string"
},
"region": {
"description": "State, county, province, where the hotel is located.",
"type": "string"
},
"country": {
"description": "Country where the hotel is located.",
"type": "string"
},
"postal_code": {
"description": "Required for countries with a postal code system. Postal or zip code of the hotel.",
"type": "string"
}
}
},
"CatalogsHotelProduct": {
"type": "object",
"properties": {
"catalog_type": {
"type": "string",
"enum": [
"HOTEL"
]
},
"metadata": {
"$ref": "#/components/schemas/CatalogsHotelProductMetadata"
},
"pin": {
"$ref": "#/components/schemas/Pin"
}
},
"required": [
"catalog_type",
"metadata",
"pin"
]
},
"CatalogsHotelProductMetadata": {
"type": "object",
"description": "Hotel product metadata entity",
"properties": {
"hotel_id": {
"description": "The user-created unique ID that represents the hotel item.",
"example": "123abc",
"type": "string"
}
},
"required": [
"hotel_id"
]
},
"CatalogsUpdatableHotelAttributes": {
"type": "object",
"properties": {
"name": {
"description": "The hotel's name.",
"type": "string",
"nullable": true
},
"link": {
"description": "Link to the product page",
"type": "string",
"nullable": true
},
"description": {
"description": "Brief description of the hotel.",
"type": "string",
"nullable": true
},
"brand": {
"description": "The brand to which this hotel belongs to.",
"type": "string",
"nullable": true
},
"latitude": {
"description": "Latitude of the hotel.",
"type": "number"
},
"longitude": {
"description": "Longitude of the hotel.",
"type": "number",
"nullable": true
},
"neighborhood": {
"description": "A list of neighborhoods where the hotel is located",
"type": "array",
"nullable": true,
"items": {
"type": "string"
}
},
"address": {
"description": "Hotel address",
"$ref": "#/components/schemas/CatalogsHotelAddress"
},
"custom_label_0": {
"description": "Custom grouping of hotels",
"type": "string",
"nullable": true
},
"custom_label_1": {
"description": "Custom grouping of hotels",
"type": "string",
"nullable": true
},
"custom_label_2": {
"description": "Custom grouping of hotels",
"type": "string",
"nullable": true
},
"custom_label_3": {
"description": "Custom grouping of hotels",
"type": "string",
"nullable": true
},
"custom_label_4": {
"description": "Custom grouping of hotels",
"type": "string",
"nullable": true
},
"category": {
"description": "The type of property. The category can be any type of internal description desired.",
"type": "string",
"nullable": true
},
"base_price": {
"description": "Base price of the hotel room per night followed by the ISO currency code",
"type": "string",
"nullable": true,
"example": "100 USD"
},
"sale_price": {
"description": "Sale price of a hotel room per night. Used to advertise discounts off the regular price of the hotel.",
"type": "string",
"nullable": true,
"example": "90 USD"
},
"guest_ratings": {
"description": "If specified, you must provide all properties",
"$ref": "#/components/schemas/CatalogsHotelGuestRatings"
}
}
},
"CatalogsCreativeAssetsProductMetadata": {
"type": "object",
"description": "Creative assets product metadata entity",
"properties": {
"creative_assets_id": {
"description": "The user-created unique ID that represents the creative assets item.",
"example": "123abc",
"type": "string"
},
"visibility": {
"$ref": "#/components/schemas/CreativeAssetsVisibilityType"
}
},
"required": [
"creative_assets_id",
"visibility"
]
},
"CatalogsCreativeAssetsProduct": {
"type": "object",
"properties": {
"catalog_type": {
"type": "string",
"enum": [
"CREATIVE_ASSETS"
]
},
"metadata": {
"$ref": "#/components/schemas/CatalogsCreativeAssetsProductMetadata"
},
"pin": {
"$ref": "#/components/schemas/Pin"
}
},
"required": [
"catalog_type",
"metadata",
"pin"
]
},
"CreativeAssetsVisibilityType": {
"description": "Creative assets visibility.",
"nullable": false,
"type": "string",
"enum": [
"VISIBLE",
"HIDDEN"
]
},
"CatalogsCreativeAssetsBatchRequest": {
"description": "Request object to update catalogs creative assets items",
"type": "object",
"additionalProperties": false,
"properties": {
"catalog_type": {
"type": "string",
"enum": [
"CREATIVE_ASSETS"
]
},
"country": {
"$ref": "#/components/schemas/Country"
},
"language": {
"description": "We recommend using the CatalogsLocale values.",
"anyOf": [
{
"$ref": "#/components/schemas/CatalogsLocale"
},
{
"$ref": "#/components/schemas/Language"
}
]
},
"items": {
"minItems": 1,
"maxItems": 1000,
"type": "array",
"description": "Array with creative assets item operations",
"items": {
"$ref": "#/components/schemas/CatalogsCreativeAssetsBatchItem"
}
},
"catalog_id": {
"description": "Catalog id pertaining to the creative assets item. If not provided, default to oldest creative assets catalog",
"example": "2680059592705",
"type": "string",
"pattern": "^\\d+$"
}
},
"required": [
"catalog_type",
"country",
"language",
"items"
]
},
"CatalogsCreativeAssetsBatchItem": {
"description": "Creative assets batch item",
"type": "object",
"anyOf": [
{
"$ref": "#/components/schemas/CatalogsCreateCreativeAssetsItem"
},
{
"$ref": "#/components/schemas/CatalogsUpsertCreativeAssetsItem"
},
{
"$ref": "#/components/schemas/CatalogsUpdateCreativeAssetsItem"
},
{
"$ref": "#/components/schemas/CatalogsDeleteCreativeAssetsItem"
}
],
"discriminator": {
"propertyName": "operation",
"mapping": {
"CREATE": "#/components/schemas/CatalogsCreateCreativeAssetsItem",
"UPSERT": "#/components/schemas/CatalogsUpsertCreativeAssetsItem",
"UPDATE": "#/components/schemas/CatalogsUpdateCreativeAssetsItem",
"DELETE": "#/components/schemas/CatalogsDeleteCreativeAssetsItem"
}
}
},
"CatalogsCreateCreativeAssetsItem": {
"type": "object",
"description": "A creative assets item to be created.",
"properties": {
"creative_assets_id": {
"description": "The catalog creative assets id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"CREATE"
]
},
"attributes": {
"$ref": "#/components/schemas/CatalogsCreativeAssetsAttributes"
}
},
"required": [
"creative_assets_id",
"operation",
"attributes"
]
},
"CatalogsUpdateCreativeAssetsItem": {
"type": "object",
"description": "A creative assets item to be updated.",
"properties": {
"creative_assets_id": {
"description": "The catalog creative assets item id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"UPDATE"
]
},
"attributes": {
"$ref": "#/components/schemas/CatalogsUpdatableCreativeAssetsAttributes"
}
},
"required": [
"creative_assets_id",
"operation",
"attributes"
]
},
"CatalogsUpsertCreativeAssetsItem": {
"type": "object",
"description": "A creative assets item to be upserted.",
"properties": {
"creative_assets_id": {
"description": "The catalog creative assets id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"UPSERT"
]
},
"attributes": {
"$ref": "#/components/schemas/CatalogsCreativeAssetsAttributes"
}
},
"required": [
"creative_assets_id",
"operation",
"attributes"
]
},
"CatalogsDeleteCreativeAssetsItem": {
"type": "object",
"description": "A creative assets item to be deleted",
"properties": {
"creative_assets_id": {
"description": "The catalog creative assets id in the merchant namespace",
"example": "DS0294-M",
"type": "string"
},
"operation": {
"type": "string",
"enum": [
"DELETE"
]
}
},
"required": [
"creative_assets_id",
"operation"
]
},
"CatalogsUpdatableCreativeAssetsAttributes": {
"type": "object",
"properties": {
"title": {
"description": "The name of the creative assets.",
"type": "string"
},
"description": {
"description": "Brief description of the creative assets.",
"type": "string"
},
"link": {
"description": "Link to the creative assets page.",
"type": "string"
},
"ios_deep_link": {
"description": "IOS deep link to the creative assets page.",
"type": "string",
"nullable": true
},
"android_deep_link": {
"description": "Link to the creative assets page.",
"type": "string",
"nullable": true
},
"google_product_category": {
"description": "The categorization of the product based on the standardized Google Product Taxonomy. This is a set taxonomy. Both the text values and numeric codes are accepted.",
"type": "string",
"nullable": true
},
"custom_label_0": {
"description": "Custom grouping of creative assets.",
"type": "string",
"nullable": true
},
"custom_label_1": {
"description": "Custom grouping of creative assets.",
"type": "string",
"nullable": true
},
"custom_label_2": {
"description": "Custom grouping of creative assets.",
"type": "string",
"nullable": true
},
"custom_label_3": {
"description": "Custom grouping of creative assets.",
"type": "string",
"nullable": true
},
"custom_label_4": {
"description": "Custom grouping of creative assets.",
"type": "string",
"nullable": true
},
"visibility": {
"description": "Visibility of the creative assets. Must be one of the following values (upper or lowercase): ‘visible’, ‘hidden’.",
"type": "string",
"nullable": true
}
}
},
"CatalogsCreativeAssetsAttributes": {
"type": "object",
"allOf": [
{
"type": "object",
"properties": {
"image_link": {
"type": "string",
"description": "The creative assets image.",
"example": "https://scene.example.com/image/image_v2.jpg"
},
"video_link": {
"type": "string",
"description": "The creative assets video.",
"example": "https://scene.example.com/image/image_v2.mp4"
}
}
},
{
"$ref": "#/components/schemas/CatalogsUpdatableCreativeAssetsAttributes"
}
]
},
"CatalogsVerticalProductGroupCreateRequest": {
"type": "object",
"title": "catalog based",
"description": "Request object for creating a catalog based product group.",
"oneOf": [
{
"$ref": "#/components/schemas/CatalogsRetailProductGroupCreateRequest"
},
{
"$ref": "#/components/schemas/CatalogsHotelProductGroupCreateRequest"
},
{
"$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupCreateRequest"
}
],
"discriminator": {
"propertyName": "catalog_type",
"mapping": {
"RETAIL": "#/components/schemas/CatalogsRetailProductGroupCreateRequest",
"HOTEL": "#/components/schemas/CatalogsHotelProductGroupCreateRequest",
"CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsProductGroupCreateRequest"
}
}
},
"CatalogsVerticalProductGroupUpdateRequest": {
"type": "object",
"title": "catalog based",
"description": "Request object for updating a catalog based product group.",
"oneOf": [
{
"$ref": "#/components/schemas/CatalogsRetailProductGroupUpdateRequest"
},
{
"$ref": "#/components/schemas/CatalogsHotelProductGroupUpdateRequest"
},
{
"$ref": "#/components/schemas/CatalogsCreativeAssetsProductGroupUpdateRequest"
}
],
"discriminator": {
"propertyName": "catalog_type",
"mapping": {
"RETAIL": "#/components/schemas/CatalogsRetailProductGroupUpdateRequest",
"HOTEL": "#/components/schemas/CatalogsHotelProductGroupUpdateRequest",
"CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsProductGroupUpdateRequest"
}
}
},
"CatalogsAvailableFilterValues": {
"description": "Object holding available filter values for each filter key",
"title": "catalogs_available_filter_values",
"type": "object",
"oneOf": [
{
"$ref": "#/components/schemas/CatalogsRetailAvailableFilterValues"
},
{
"$ref": "#/components/schemas/CatalogsHotelAvailableFilterValues"
},
{
"$ref": "#/components/schemas/CatalogsCreativeAssetsAvailableFilterValues"
}
],
"discriminator": {
"propertyName": "catalog_type",
"mapping": {
"RETAIL": "#/components/schemas/CatalogsRetailAvailableFilterValues",
"HOTEL": "#/components/schemas/CatalogsHotelAvailableFilterValues",
"CREATIVE_ASSETS": "#/components/schemas/CatalogsCreativeAssetsAvailableFilterValues"
}
}
},
"CatalogsRetailAvailableFilterValues": {
"title": "catalogs_retail_available_filter_values",
"type": "object",
"properties": {
"catalog_type": {
"type": "string",
"enum": [
"RETAIL"
]
},
"filter_values": {
"type": "object",
"title": "catalogs_retail_filter_values_map",
"description": "A map of filter attributes to their available values.",
"properties": {
"ad_image_tags": {
"type": "array",
"items": {
"type": "string"
}
},
"ad_video_tags": {
"type": "array",
"items": {
"type": "string"
}
},
"brand": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_0": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_1": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_2": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_3": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_4": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_0": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_1": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_2": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_3": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_4": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_5": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_6": {
"type": "array",
"items": {
"type": "string"
}
},
"product_type_0": {
"type": "array",
"items": {
"type": "string"
}
},
"product_type_1": {
"type": "array",
"items": {
"type": "string"
}
},
"product_type_2": {
"type": "array",
"items": {
"type": "string"
}
},
"product_type_3": {
"type": "array",
"items": {
"type": "string"
}
},
"product_type_4": {
"type": "array",
"items": {
"type": "string"
}
},
"gender": {
"type": "array",
"items": {
"type": "string",
"enum": [
"FEMALE",
"MALE",
"UNISEX"
]
}
},
"availability": {
"type": "array",
"items": {
"type": "string",
"enum": [
"IN_STOCK",
"OUT_OF_STOCK",
"PREORDER",
"UNAVAILABLE"
]
}
},
"media_type": {
"type": "array",
"items": {
"type": "string",
"enum": [
"IMAGE",
"VIDEO"
]
}
},
"condition": {
"type": "array",
"items": {
"type": "string",
"enum": [
"NEW",
"USED",
"REFURBISHED"
]
}
}
}
}
},
"required": [
"catalog_type",
"filter_values"
]
},
"CatalogsHotelAvailableFilterValues": {
"title": "catalogs_hotel_available_filter_values",
"type": "object",
"properties": {
"catalog_type": {
"type": "string",
"enum": [
"HOTEL"
]
},
"filter_values": {
"type": "object",
"title": "catalogs_hotel_filter_values_map",
"description": "A map of filter attributes to their available values.",
"properties": {
"brand": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_0": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_1": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_2": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_3": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_4": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"required": [
"catalog_type",
"filter_values"
]
},
"CatalogsCreativeAssetsAvailableFilterValues": {
"title": "catalogs_creative_assets_available_filter_values",
"type": "object",
"properties": {
"catalog_type": {
"type": "string",
"enum": [
"CREATIVE_ASSETS"
]
},
"filter_values": {
"type": "object",
"title": "catalogs_creative_assets_filter_values_map",
"description": "A map of filter attributes to their available values.",
"properties": {
"custom_label_0": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_1": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_2": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_3": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_label_4": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_0": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_1": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_2": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_3": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_4": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_5": {
"type": "array",
"items": {
"type": "string"
}
},
"google_product_category_6": {
"type": "array",
"items": {
"type": "string"
}
},
"media_type": {
"type": "array",
"items": {
"type": "string",
"enum": [
"IMAGE",
"VIDEO"
]
}
}
}
}
},
"required": [
"catalog_type",
"filter_values"
]
},
"ConditionFilter": {
"type": "object",
"title": "CONDITION",
"additionalProperties": false,
"properties": {
"CONDITION": {
"type": "object",
"$ref": "#/components/schemas/CatalogsProductGroupMultipleStringCriteria"
}
},
"required": [
"CONDITION"
]
},
"ConversionApiResponse": {
"description": "Schema describing the object in the response, which contains information about the events that were received and processed.",
"type": "object",
"properties": {
"num_events_received": {
"description": "Total number of events received in the request.",
"type": "integer"
},
"num_events_processed": {
"description": "Number of events that were successfully processed from the events.",
"type": "integer"
},
"events": {
"description": "Specific messages for each event received. The order will match the order in which the events were received in the request.",
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"description": "Whether the event was processed successfully.",
"type": "string",
"example": "processed",
"enum": [
"failed",
"processed"
]
},
"error_message": {
"description": "Error message containing more information about why the event failed to be processed.",
"type": "string",
"nullable": true
},
"warning_message": {
"description": "Warning messages about any fields in the event which are not standard. These are not critical to event processing.",
"type": "string",
"nullable": true
}
},
"required": [
"status"
]
}
}
},
"required": [
"num_events_received",
"num_events_processed",
"events"
]
},
"ConversionAttributionWindowDays": {
"type": "integer",
"enum": [
0,
1,
7,
14,
30,
60
]
},
"ConversionEventResponse": {
"title": "ConversionEventResponse",
"type": "object",
"properties": {
"conversion_event": {
"type": "string",
"$ref": "#/components/schemas/ConversionTagType"
},
"conversion_tag_id": {
"title": "conversion_tag_id",
"description": "Id of the tag.",
"type": "string",
"pattern": "^\\d+$",
"example": "2614324385652"
},
"ad_account_id": {
"title": "ad_account_id",
"description": "Id of the ad account.",
"type": "string",
"pattern": "^\\d+$",
"example": "549757463328"
},
"created_time": {
"title": "created_time",
"description": "Creation date in epoch format.",
"type": "integer",
"example": 1564768710
}
}
},
"ConversionEvents": {
"description": "A list of events (one or more) encapsulated by a data object.",
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"minItems": 1,
"maxItems": 1000,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"event_name": {
"description": "
The type of the user event. Please use the right event_name; otherwise the event will not be accepted and show up correctly in reports.\n
add_payment_infoadd_to_cartadd_to_wishlistcheckoutcustominitiate_checkoutleadpage_visitsearchsignupsubscribeview_categoryview_contentwatch_video\n The source indicating where the conversion event occurred.\n
app_androidapp_ioswebofflineevent_name is 'add_to_cart' or 'checkout'.",
"type": "number",
"format": "double",
"example": 123.45
},
"currency": {
"allOf": [
{
"$ref": "#/components/schemas/Currency"
},
{
"type": "string",
"description": "Currency code for the value field, required if value is present. Currency Codes should be in ISO 4217 standard."
}
]
},
"campaign_id": {
"description": "The ID of the campaign that was attributed to the conversion event.",
"type": "string",
"pattern": "^\\d+$",
"example": "626736533506"
},
"action_timestamps": {
"description": "Timestamp(s) when the ad action(s) happened. Unix timestamp in seconds.",
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1451410040
]
},
"attribution_model": {
"description": "The attribution model used to attribute the conversion event.",
"type": "string",
"enum": [
"first_touch",
"last_touch",
"multi_touch"
],
"example": "multi_touch"
},
"attribution_score": {
"description": "Credit given to the attributed ad actions. Allowed values are > 0 and <= 1.",
"type": "number",
"format": "double",
"minimum": 0,
"exclusiveMinimum": true,
"maximum": 1,
"example": 0.5
},
"total_events": {
"description": "Total number of conversion events that are reported in one API call.\nIf you are sending one API request for one attributed conversion event then this value should be 1.
\nIf you are sending multiple attributed conversion events in one API request then this value should be the total number of attributed conversion events in the request.
", "type": "integer", "minimum": 1, "example": 2 }, "total_event_touchpoints": { "description": "Total number of ad events including other non-Pinterest ad platforms.", "type": "integer", "minimum": 1, "example": 2 } }, "required": [ "event_id", "event_name", "event_timestamp", "ad_group_id", "attribution_scope" ] }, "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": "