diff --git a/v5/openapi.json b/v5/openapi.json index 0813b18..a38d2bf 100644 --- a/v5/openapi.json +++ b/v5/openapi.json @@ -1,7 +1,7 @@ { "openapi": "3.0.3", "info": { - "version": "5.13.0", + "version": "5.14.0", "title": "Pinterest REST API", "description": "Pinterest's REST API", "contact": { @@ -22,7 +22,7 @@ "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&...)." + "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", @@ -32,10 +32,18 @@ "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." @@ -112,10 +120,6 @@ "name": "product_group_promotions", "description": "View, create, update, or delete information about promoted product groups." }, - { - "name": "product_groups", - "description": "View, create, update, or delete information about product groups." - }, { "name": "resources", "description": "View metadata about available metrics and targeting options in the Pinterest API." @@ -209,6 +213,7 @@ { "name": "Others", "tags": [ + "advanced_auction", "integrations", "oauth", "resources", @@ -221,12 +226,6 @@ "tags": [ "catalogs" ] - }, - { - "name": "Deprecated", - "tags": [ - "product_groups" - ] } ], "paths": { @@ -861,7 +860,7 @@ "/ad_accounts/{ad_account_id}/ad_groups/{ad_group_id}": { "get": { "summary": "Get ad group", - "description": "Get a specific ad given the ad ID. If your pin is rejected, rejected_reasons will\ncontain additional information from the Ad Review process.\nFor more information about our policies and rejection reasons see the Pinterest advertising standards.", + "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": "ad_groups/get", "security": [ { @@ -1201,7 +1200,7 @@ "/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- 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.", + "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.", "operationId": "ads/analytics", "security": [ { @@ -1223,7 +1222,7 @@ "$ref": "#/components/parameters/query_end_date" }, { - "$ref": "#/components/parameters/query_ad_ids_required" + "$ref": "#/components/parameters/query_ad_ids" }, { "$ref": "#/components/parameters/query_columns" @@ -1242,6 +1241,24 @@ }, { "$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" } ], "responses": { @@ -1288,7 +1305,7 @@ "/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.", + "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": [ { @@ -1356,7 +1373,7 @@ "/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.", + "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" ], @@ -1457,7 +1474,7 @@ "$ref": "#/components/parameters/query_end_date" }, { - "$ref": "#/components/parameters/query_targeting_types" + "$ref": "#/components/parameters/query_ad_targeting_types" }, { "$ref": "#/components/parameters/query_columns" @@ -1511,7 +1528,7 @@ "/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.", + "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": [ { @@ -1729,7 +1746,7 @@ "$ref": "#/components/parameters/query_page_size" }, { - "description": "This feature is currently in beta and not available to all apps.\nFilter audiences by ownership type.", + "description": "Filter audiences by ownership type.", "in": "query", "name": "ownership_type", "required": false, @@ -2028,6 +2045,243 @@ ] } }, + "/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" + ] + } + ], + "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.
This endpoint is not available to all apps.Learn more.", + "operationId": "update_ad_account_to_ad_account_shared_audience", + "security": [ + { + "pinterest_oauth2": [ + "ads:write" + ] + } + ], + "x-ratelimit-category": "ads_write", + "x-sandbox": "disabled", + "parameters": [ + { + "$ref": "#/components/parameters/path_ad_account_id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SharedAudience" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SharedAudienceResponse" + } + } + }, + "description": "Success" + }, + "400": { + "description": "Invalid ad account id.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "example": { + "code": 400, + "message": "Invalid ad account id" + } + } + } + }, + "default": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "audience_sharing" + ] + } + }, + "/ad_accounts/{ad_account_id}/audiences/businesses/shared": { + "patch": { + "summary": "Update audience sharing from an ad account to businesses", + "description": "From an ad account, share a specific audience with a business account, or revoke access to a previously shared audience. Only the audience owner account can share the audience. The recipient business account must be in the same business hierarchy as the business owner of the ad account.
This endpoint is not available to all apps.Learn more.", + "operationId": "update_ad_account_to_business_shared_audience", + "security": [ + { + "pinterest_oauth2": [ + "ads:write" + ] + } + ], + "x-ratelimit-category": "ads_write", + "x-sandbox": "disabled", + "parameters": [ + { + "$ref": "#/components/parameters/path_ad_account_id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BusinessSharedAudience" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BusinessSharedAudienceResponse" + } + } + }, + "description": "Success" + }, + "400": { + "description": "Invalid ad account id.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "example": { + "code": 400, + "message": "Invalid ad account id" + } + } + } + }, + "default": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "audience_sharing" + ] + } + }, "/ad_accounts/{ad_account_id}/bid_floor": { "post": { "description": "List bid floors for your campaign configuration. Bid floors are given in microcurrency values based on the currency in the bid floor specification.

\n

Microcurrency is used to track very small transactions, based on the currency set in the advertiser’s profile.

\n

A microcurrency unit is 10^(-6) of the standard unit of currency selected in the advertiser’ s profile.

\n

Equivalency equations, using dollars as an example currency:

\n\n

To convert between currency and microcurrency, using dollars as an example currency:

\n\nFor more on bid floors see Set your bid.", @@ -2088,7 +2342,7 @@ "/ad_accounts/{ad_account_id}/billing_profiles": { "get": { "summary": "Get billing profiles", - "description": "Get billing profiles in the advertiser account.\n\nThis endpoint might not be available to all apps. Learn more.", + "description": "Get billing profiles in the advertiser account.\n\nThis endpoint might not be available to all apps. Learn more.", "operationId": "billing_profiles/get", "security": [ { @@ -2653,7 +2907,7 @@ "$ref": "#/components/parameters/query_end_date" }, { - "$ref": "#/components/parameters/query_targeting_types" + "$ref": "#/components/parameters/query_campaign_targeting_types" }, { "$ref": "#/components/parameters/query_columns" @@ -2804,7 +3058,7 @@ "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", + "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": [ { @@ -3024,7 +3278,7 @@ }, "/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).

\n

A customer list is one of the four types of Pinterest audiences: for more information, see Audience targeting\nor the Audiences section of the ads management guide.

\n

Please review our requirements for what type of information is allowed when uploading a customer list.

\n

When 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.

\n

Note 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.

", + "description": "

Create a customer list from your records(hashed or plain-text email addresses, or hashed MAIDs or IDFAs).

\n

A customer list is one of the four types of Pinterest audiences: for more information, see Audience targeting\nor the Audiences section of the ads management guide.

\n

Please review our requirements for what type of information is allowed when uploading a customer list.

\n

When 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.

\n

Note 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": [ { @@ -3079,7 +3333,7 @@ ] }, "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.

", + "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": [ { @@ -3196,7 +3450,7 @@ ] }, "patch": { - "description": "

Append or remove records to/from an existing customer list. (A customer list is one of the four types of Pinterest audiences.)

\n

When you add records to an existing customer list, the system scans the additions for existing Pinterest\naccounts; those are the records that will be added to your “CUSTOMER_LIST” audience. Your original list of records\n to add will be deleted when the matching process is complete.

\n

For more information, see Audience targeting\nor the Audiences\nsection of the ads management guide.

", + "description": "

Append or remove records to/from an existing customer list. (A customer list is one of the four types of Pinterest audiences.)

\n

When you add records to an existing customer list, the system scans the additions for existing Pinterest\naccounts; those are the records that will be added to your “CUSTOMER_LIST” audience. Your original list of records\n to add will be deleted when the matching process is complete.

\n

For more information, see Audience targeting\nor the Audiences\nsection of the ads management guide.

", "operationId": "customer_lists/update", "security": [ { @@ -3256,7 +3510,7 @@ "/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 their ad_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.\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.)", + "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 their ad_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" @@ -3459,7 +3713,7 @@ "/ad_accounts/{ad_account_id}/keywords": { "get": { "summary": "Get keywords", - "description": "

Get a list of keywords based on the filters provided. If no filter is provided, it will default to the ad_account_id filter, which means it will only return keywords that specifically have parent_id set to the ad_account_id. Note: Keywords can have ad_account_ids, campaign_ids, and ad_group_ids set as their parent_ids. Keywords created through Ads Manager will have their parent_id set to an ad_group_id, not ad_account_id.

\n

For more information, see Keyword targeting.

\n

Notes:

For more information on match types, see match type enums.

\n

Returns:

", + "description": "

Get a list of keywords based on the filters provided. If no filter is provided, it will default to the ad_account_id filter, which means it will only return keywords that specifically have parent_id set to the ad_account_id. Note: Keywords can have ad_account_ids, campaign_ids, and ad_group_ids set as their parent_ids. Keywords created through Ads Manager will have their parent_id set to an ad_group_id, not ad_account_id.

\n

For more information, see Keyword targeting.

\n

Notes:

For more information on match types, see match type enums.

\n

Returns:

", "operationId": "keywords/get", "security": [ { @@ -3533,7 +3787,7 @@ }, "post": { "summary": "Create keywords", - "description": "

Create keywords for following entity types(advertiser, campaign, ad group or ad).

For more information, see Keyword targeting.

\n

Notes:

For more information on match types, see match type enums.

\n

Returns:

\n

Rate limit: WRITE.

", + "description": "

Create keywords for following entity types(advertiser, campaign, ad group or ad).

For more information, see Keyword targeting.

\n

Notes:

For more information on match types, see match type enums.

\n

Returns:

\n

Rate limit: WRITE.

", "operationId": "keywords/create", "security": [ { @@ -3694,8 +3948,8 @@ }, "/ad_accounts/{ad_account_id}/lead_forms": { "get": { - "summary": "Get lead forms", - "description": "This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager.\n\nGets all Lead Forms associated with an ad account ID.\n\nFor more, see Lead ads.", + "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": [ { @@ -3774,6 +4028,154 @@ "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}": { @@ -3856,7 +4258,7 @@ "/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.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", + "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.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", "operationId": "lead_form_test/create", "security": [ { @@ -3944,7 +4346,7 @@ "/ad_accounts/{ad_account_id}/leads/subscriptions": { "post": { "summary": "Create lead ads subscription", - "description": "Create a lead ads webhook subscription.\nSubscriptions allow Pinterest to deliver lead data from Ads Manager directly to the subscriber. Subscriptions can exist for a specific lead form or at ad account level. \n- Only requests for the OWNER or ADMIN of the ad_account will be allowed.\n- Advertisers can set up multiple integrations using ad_account_id + lead_form_id but only one integration per unique records.\n- For data security, egress lead data is encrypted with AES-256-GCM.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", + "description": "Create a lead ads webhook subscription.\nSubscriptions allow Pinterest to deliver lead data from Ads Manager directly to the subscriber. Subscriptions can exist for a specific lead form or at ad account level.\n- Only requests for the OWNER or ADMIN of the ad_account will be allowed.\n- Advertisers can set up multiple integrations using ad_account_id + lead_form_id but only one integration per unique records.\n- For data security, egress lead data is encrypted with AES-256-GCM.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", "tags": [ "lead_ads" ], @@ -4031,7 +4433,7 @@ }, "get": { "summary": "Get lead ads subscriptions", - "description": "Get the advertiser's list of lead ads subscriptions.\n- Only requests for the OWNER or ADMIN of the ad_account will be allowed.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", + "description": "Get the advertiser's list of lead ads subscriptions.\n- Only requests for the OWNER or ADMIN of the ad_account will be allowed.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", "operationId": "ad_accounts_subscriptions/get_list", "security": [ { @@ -4116,7 +4518,7 @@ "/ad_accounts/{ad_account_id}/leads/subscriptions/{subscription_id}": { "get": { "summary": "Get lead ads subscription", - "description": "Get a specific lead ads subscription record.\n- Only requests for the OWNER or ADMIN of the ad_account will be allowed.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", + "description": "Get a specific lead ads subscription record.\n- Only requests for the OWNER or ADMIN of the ad_account will be allowed.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", "operationId": "ad_accounts_subscriptions/get_by_id", "security": [ { @@ -4213,7 +4615,7 @@ }, "delete": { "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.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", + "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.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", "operationId": "ad_accounts_subscriptions/del_by_id", "security": [ { @@ -4302,6 +4704,161 @@ ] } }, + "/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.", @@ -4877,26 +5434,26 @@ ] } }, - "/ad_accounts/{ad_account_id}/product_groups/catalogs": { + "/ad_accounts/{ad_account_id}/reports": { "get": { - "deprecated": true, - "description": "This endpoint is completely deprecated. Please use List product groups from Catalogs API instead.", - "operationId": "ad_accounts_catalogs_product_groups/list", + "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:write" + "ads:read" ] } ], - "x-ratelimit-category": "ads_write", + "x-ratelimit-category": "ads_analytics", "x-sandbox": "disabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" }, { - "$ref": "#/components/parameters/query_feed_profile_id" + "$ref": "#/components/parameters/query_token_required" } ], "responses": { @@ -4904,29 +5461,14 @@ "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Paginated" - }, - { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CatalogProductGroup" - } - } - } - } - ] + "$ref": "#/components/schemas/AdsAnalyticsGetAsyncResponse" } } }, "description": "Success" }, "400": { - "description": "Invalid ad account ads parameters.", + "description": "Invalid ad account ads analytics parameters.", "content": { "application/json": { "schema": { @@ -4934,27 +5476,136 @@ }, "example": { "code": 400, - "message": "Invalid ad account ads parameters." + "message": "Invalid ad account ads analytics parameters." } } } }, - "401": { - "description": "Access Denied. This can happen if account is not yet approved to operate as Merchant on Pinterest.", + "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.", + "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." } } } }, - "404": { - "description": "Merchant data not found.", + "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" } } } @@ -4970,17 +5621,16 @@ } } }, - "summary": "Get catalog product groups", "tags": [ - "product_groups" + "ad_accounts" ] } }, - "/ad_accounts/{ad_account_id}/reports": { + "/ad_accounts/{ad_account_id}/ssio/accounts": { "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", + "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": [ @@ -4988,14 +5638,11 @@ ] } ], - "x-ratelimit-category": "ads_analytics", - "x-sandbox": "disabled", + "x-ratelimit-category": "ads_read", + "x-sandbox": "enabled", "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" - }, - { - "$ref": "#/components/parameters/query_token_required" } ], "responses": { @@ -5003,14 +5650,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AdsAnalyticsGetAsyncResponse" + "$ref": "#/components/schemas/SSIOAccountResponse" } } }, "description": "Success" }, "400": { - "description": "Invalid ad account ads analytics parameters.", + "description": "Invalid request parameter.", "content": { "application/json": { "schema": { @@ -5018,7 +5665,7 @@ }, "example": { "code": 400, - "message": "Invalid ad account ads analytics parameters." + "message": "Invalid request parameter." } } } @@ -5035,50 +5682,53 @@ } }, "tags": [ - "ad_accounts" + "billing" ] - }, + } + }, + "/ad_accounts/{ad_account_id}/ssio/insertion_orders": { "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.", - "operationId": "analytics/create_report", + "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:read" + "ads:write" ] } ], - "x-ratelimit-category": "ads_analytics", - "x-sandbox": "disabled", + "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/AdsAnalyticsCreateAsyncRequest" + "$ref": "#/components/schemas/SSIOCreateInsertionOrderRequest" } } - } + }, + "description": "Order line to create.", + "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AdsAnalyticsCreateAsyncResponse" + "$ref": "#/components/schemas/SSIOCreateInsertionOrderResponse" } } }, "description": "Success" }, "400": { - "description": "Invalid ad account ads analytics parameters.", + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -5086,7 +5736,7 @@ }, "example": { "code": 400, - "message": "Invalid ad account ads analytics parameters." + "message": "Invalid request." } } } @@ -5103,15 +5753,13 @@ } }, "tags": [ - "ad_accounts" + "billing" ] - } - }, - "/ad_accounts/{ad_account_id}/sandbox": { - "delete": { - "summary": "Delete ads data for ad account in API Sandbox", - "description": "Delete an ad account and all the ads data associated with that account. \nA string message is returned indicating the status of the delete operation.\n\nNote: This endpoint is only allowed in the Pinterest API Sandbox (https://api-sandbox.pinterest.com/v5). \nGo to https://developers.pinterest.com/docs/dev-tools/sandbox/ for more information.", - "operationId": "sandbox/delete", + }, + "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": [ @@ -5126,20 +5774,30 @@ "$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": { - "description": "OK", "content": { "application/json": { "schema": { - "type": "string", - "example": "Delete Success" + "$ref": "#/components/schemas/SSIOEditInsertionOrderResponse" } } - } + }, + "description": "Success" }, "400": { - "description": "Invalid ad account id.", + "description": "Invalid request.", "content": { "application/json": { "schema": { @@ -5147,7 +5805,7 @@ }, "example": { "code": 400, - "message": "Invalid ad account id" + "message": "Invalid request." } } } @@ -5164,15 +5822,15 @@ } }, "tags": [ - "ad_accounts" + "billing" ] } }, - "/ad_accounts/{ad_account_id}/ssio/accounts": { + "/ad_accounts/{ad_account_id}/ssio/insertion_orders/status": { "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", + "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": [ @@ -5185,6 +5843,12 @@ "parameters": [ { "$ref": "#/components/parameters/path_ad_account_id" + }, + { + "$ref": "#/components/parameters/query_bookmark" + }, + { + "$ref": "#/components/parameters/query_page_size" } ], "responses": { @@ -5192,228 +5856,22 @@ "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" - } - } - } - } - ] + "allOf": [ + { + "$ref": "#/components/schemas/Paginated" + }, + { + "type": "object", + "properties": { + "items": { + "description": "Insertion orders status by ad acount id", + "items": { + "$ref": "#/components/schemas/SSIOInsertionOrderStatus" + } + } + } + } + ] } } }, @@ -6115,6 +6573,234 @@ ] } }, + "/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 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_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" + } + } + } + }, + "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", @@ -6128,6 +6814,11 @@ "pinterest_oauth2": [ "boards:read" ] + }, + { + "client_credentials": [ + "boards:read" + ] } ], "x-ratelimit-category": "org_read", @@ -6310,6 +7001,11 @@ "pinterest_oauth2": [ "boards:read" ] + }, + { + "client_credentials": [ + "boards:read" + ] } ], "x-ratelimit-category": "org_read", @@ -6318,17 +7014,17 @@ { "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.boards import Board\n# Board information can be fetched from profile page or from create/list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\nBOARD_ID=\"\"\n\nboard_get = Board(board_id=BOARD_ID)\nprint(\"Board Id: %s, Board name:%s\"%(board_get.id, board_get.name))\n" + "source": "# Follow this link for initial setup: https://github.com/pinterest/pinterest-python-sdk#getting-started\n\nfrom pinterest.organic.boards import Board\n# Board information can be fetched from profile page or from create/list board method here:\n# /docs/api/v5/#operation/boards/list\nBOARD_ID=\"\"\n\nboard_get = Board(board_id=BOARD_ID)\nprint(\"Board Id: %s, Board name:%s\"%(board_get.id, board_get.name))\n" }, { "lang": "cURL", "label": "curl", - "source": "# Board information can be fetched from profile page or from create/list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --location --request GET 'https://api.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" + "source": "# Board information can be fetched from profile page or from create/list board method here:\n# /docs/api/v5/#operation/boards/list\n\ncurl --location --request GET 'https://api.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" }, { "lang": "cURL", "label": "curl (Sandbox)", - "source": "# Board information can be fetched from profile page or from create/ist board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --location --request GET 'https://api-sandbox.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" + "source": "# Board information can be fetched from profile page or from create/ist board method here:\n# /docs/api/v5/#operation/boards/list\n\ncurl --location --request GET 'https://api-sandbox.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" } ], "parameters": [ @@ -6397,17 +7093,17 @@ { "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.boards import Board\n# Board information can be fetched from profile page or from create/list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\nBOARD_ID=\"\"\nNEW_DESCRIPTION=\"Updated summer recipes!\"\nNEW_PRIVACY=\"SECRET\"\n\nboard_update = Board(board_id=BOARD_ID)\nboard_update.update_fields(\n description=NEW_DESCRIPTION,\n privacy=NEW_PRIVACY\n)\nprint(\"Board Id: %s, Board description:%s, Board privacy:%s\" %(board_update.id, board_update.description, board_update.privacy))\n" + "source": "# Follow this link for initial setup: https://github.com/pinterest/pinterest-python-sdk#getting-started\n\nfrom pinterest.organic.boards import Board\n# Board information can be fetched from profile page or from create/list board method here:\n# /docs/api/v5/#operation/boards/list\nBOARD_ID=\"\"\nNEW_DESCRIPTION=\"Updated summer recipes!\"\nNEW_PRIVACY=\"SECRET\"\n\nboard_update = Board(board_id=BOARD_ID)\nboard_update.update_fields(\n description=NEW_DESCRIPTION,\n privacy=NEW_PRIVACY\n)\nprint(\"Board Id: %s, Board description:%s, Board privacy:%s\" %(board_update.id, board_update.description, board_update.privacy))\n" }, { "lang": "cURL", "label": "curl", - "source": "# Board information can be fetched from profile page or from create/list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --location --request PATCH 'https://api.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"New Summer Recipes\",\n \"description\": \"Updated summer recipes!\",\n \"privacy\": \"SECRET\"\n}'\n" + "source": "# Board information can be fetched from profile page or from create/list board method here:\n# /docs/api/v5/#operation/boards/list\n\ncurl --location --request PATCH 'https://api.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"New Summer Recipes\",\n \"description\": \"Updated summer recipes!\",\n \"privacy\": \"SECRET\"\n}'\n" }, { "lang": "cURL", "label": "curl (Sandbox)", - "source": "# Board information can be fetched from profile page or from create/list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --location --request PATCH 'https://api-sandbox.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"New Summer Recipes\",\n \"description\": \"Updated summer recipes!\",\n \"privacy\": \"SECRET\"\n}'\n" + "source": "# Board information can be fetched from profile page or from create/list board method here:\n# /docs/api/v5/#operation/boards/list\n\ncurl --location --request PATCH 'https://api-sandbox.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"New Summer Recipes\",\n \"description\": \"Updated summer recipes!\",\n \"privacy\": \"SECRET\"\n}'\n" } ], "parameters": [ @@ -6515,17 +7211,17 @@ { "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.boards import Board\n# Board information can be fetched from profile page or from create/list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\nBOARD_ID=\"\"\n\nboard_delete=Board.delete(board_id=BOARD_ID)\nprint(\"Board was deleted? %s\" % (board_delete))\n" + "source": "# Follow this link for initial setup: https://github.com/pinterest/pinterest-python-sdk#getting-started\n\nfrom pinterest.organic.boards import Board\n# Board information can be fetched from profile page or from create/list board method here:\n# /docs/api/v5/#operation/boards/list\nBOARD_ID=\"\"\n\nboard_delete=Board.delete(board_id=BOARD_ID)\nprint(\"Board was deleted? %s\" % (board_delete))\n" }, { "lang": "cURL", "label": "curl", - "source": "# Board information can be fetched from profile page or create/from list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --request DELETE 'https://api.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n" + "source": "# Board information can be fetched from profile page or create/from list board method here:\n# /docs/api/v5/#operation/boards/list\n\ncurl --request DELETE 'https://api.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n" }, { "lang": "cURL", "label": "curl (Sandbox)", - "source": "# Board information can be fetched from profile page or from create/list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --request DELETE 'https://api-sandbox.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n" + "source": "# Board information can be fetched from profile page or from create/list board method here:\n# /docs/api/v5/#operation/boards/list\n\ncurl --request DELETE 'https://api-sandbox.pinterest.com/v5/boards/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n" } ], "parameters": [ @@ -6623,6 +7319,12 @@ "boards:read", "pins:read" ] + }, + { + "client_credentials": [ + "boards:read", + "pins:read" + ] } ], "x-ratelimit-category": "org_read", @@ -6713,6 +7415,11 @@ "pinterest_oauth2": [ "boards:read" ] + }, + { + "client_credentials": [ + "boards:read" + ] } ], "x-ratelimit-category": "org_read", @@ -7091,6 +7798,12 @@ "boards:read", "pins:read" ] + }, + { + "client_credentials": [ + "boards:read", + "pins:read" + ] } ], "x-ratelimit-category": "org_read", @@ -7815,6 +8528,32 @@ } } }, + { + "name": "child_asset_id", + "in": "query", + "description": "A child asset unique identifier. Used to fetch asset groups that contain the asset id as a child.", + "required": false, + "schema": { + "type": "string", + "pattern": "^\\d+$", + "example": "549764894835", + "minLength": 1, + "maxLength": 20 + } + }, + { + "name": "asset_group_id", + "in": "query", + "description": "An asset group unique identifier. Used to fetch assets contained within the specified asset group.", + "required": false, + "schema": { + "type": "string", + "pattern": "^\\d+$", + "example": "7078106104032", + "minLength": 1, + "maxLength": 20 + } + }, { "$ref": "#/components/parameters/query_resource_type" }, @@ -8639,11 +9378,541 @@ ] } }, + "/businesses/{business_id}/audiences": { + "get": { + "summary": "List received audiences for a business", + "description": "Get a list of received audiences for the given business.", + "operationId": "shared_audiences_for_business/list", + "security": [ + { + "pinterest_oauth2": [ + "biz_access:read" + ] + } + ], + "x-ratelimit-category": "ads_read", + "x-sandbox": "disabled", + "parameters": [ + { + "$ref": "#/components/parameters/path_business_user" + }, + { + "$ref": "#/components/parameters/query_bookmark" + }, + { + "$ref": "#/components/parameters/query_order" + }, + { + "$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/Audience" + } + } + } + } + ] + } + } + }, + "description": "Success" + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "example": { + "code": 400, + "message": "Invalid parameters." + } + } + } + }, + "default": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "audience_sharing" + ] + } + }, + "/businesses/{business_id}/audiences/shared/accounts": { + "get": { + "summary": "List accounts with access to an audience owned by a business", + "description": "List all ad accounts and/or businesses that have access to a specific audience.\nThe audience must either be owned by an ad account in the requesting business, or it must have been shared with the requesting business.\nIf the requesting business is not the owner of the audience, only ad accounts owned by the requesting business will be returned.", + "operationId": "business_account_audiences_shared_accounts/list", + "security": [ + { + "pinterest_oauth2": [ + "biz_access:read" + ] + } + ], + "x-ratelimit-category": "ads_read", + "x-sandbox": "disabled", + "parameters": [ + { + "$ref": "#/components/parameters/path_business_user" + }, + { + "$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 business audiences shared accounts parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "example": { + "code": 400, + "message": "Invalid business 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" + ] + } + }, + "/businesses/{business_id}/audiences/ad_accounts/shared": { + "patch": { + "summary": "Update audience sharing from a business to ad accounts", + "description": "From a business, share a specific audience with other ad account(s), or revoke access to a previously shared audience.
  • If the business is the owner of the audience, it can share with any ad account within the same business hierarchy.
  • If the business is the recipient of the audience, it can share with any of its owned ad accounts.
This endpoint is not available to all apps.Learn more.", + "operationId": "update_business_to_ad_account_shared_audience", + "security": [ + { + "pinterest_oauth2": [ + "biz_access:write" + ] + } + ], + "x-ratelimit-category": "ads_write", + "x-sandbox": "disabled", + "parameters": [ + { + "$ref": "#/components/parameters/path_business_user" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SharedAudience" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SharedAudienceResponse" + } + } + }, + "description": "Success" + }, + "400": { + "description": "Invalid parameters.", + "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": [ + "audience_sharing" + ] + } + }, + "/businesses/{business_id}/audiences/businesses/shared": { + "patch": { + "summary": "Update audience sharing between businesses", + "description": "From a business, share a specific audience with another business account, or revoke access to a previously shared audience. Only the audience owner can share the audience with other businesses, and the recipient business must be within the same business hierarchy.
This endpoint is not available to all apps.Learn more.", + "operationId": "update_business_to_business_shared_audience", + "security": [ + { + "pinterest_oauth2": [ + "biz_access:write" + ] + } + ], + "x-ratelimit-category": "ads_write", + "x-sandbox": "disabled", + "parameters": [ + { + "$ref": "#/components/parameters/path_business_user" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BusinessSharedAudience" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BusinessSharedAudienceResponse" + } + } + }, + "description": "Success" + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "example": { + "code": 400, + "message": "Invalid business id" + } + } + } + }, + "default": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "tags": [ + "audience_sharing" + ] + } + }, + "/businesses/{business_id}/asset_groups": { + "post": { + "summary": "Create a new asset group.", + "description": "Create a new asset group with the specified parameters.\n- An asset group is a custom group of assets based on how you’d like to manage your accounts.", + "operationId": "asset_group/create", + "security": [ + { + "pinterest_oauth2": [ + "biz_access:read", + "biz_access:write" + ] + } + ], + "x-ratelimit-category": "ads_write", + "x-sandbox": "disabled", + "parameters": [ + { + "$ref": "#/components/parameters/path_business_user" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAssetGroupBody" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAssetGroupResponse" + } + } + }, + "description": "Success" + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "example": { + "code": 400, + "message": "Invalid parameters." + } + } + } + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Unexpected error" + } + }, + "tags": [ + "business_access_assets" + ] + }, + "patch": { + "summary": "Update asset groups.", + "description": "Update a batch of asset groups with the specified parameters.", + "operationId": "asset_group/update", + "security": [ + { + "pinterest_oauth2": [ + "biz_access:read", + "biz_access:write" + ] + } + ], + "x-ratelimit-category": "ads_write", + "x-sandbox": "disabled", + "parameters": [ + { + "$ref": "#/components/parameters/path_business_user" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateAssetGroupBody" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateAssetGroupResponse" + } + } + }, + "description": "Success" + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "example": { + "code": 400, + "message": "Invalid parameters." + } + } + } + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Unexpected error" + } + }, + "tags": [ + "business_access_assets" + ] + }, + "delete": { + "summary": "Delete asset groups.", + "description": "Delete a batch of asset groups.", + "operationId": "asset_group/delete", + "security": [ + { + "pinterest_oauth2": [ + "biz_access:read", + "biz_access:write" + ] + } + ], + "x-ratelimit-category": "ads_write", + "x-sandbox": "disabled", + "parameters": [ + { + "$ref": "#/components/parameters/path_business_user" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteAssetGroupBody" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteAssetGroupResponse" + } + } + }, + "description": "Success" + }, + "400": { + "description": "Invalid parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "example": { + "code": 400, + "message": "Invalid parameters." + } + } + } + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "description": "Unexpected error" + } + }, + "tags": [ + "business_access_assets" + ] + } + }, "/catalogs": { "get": { "x-ratelimit-category": "catalogs_read", "summary": "List catalogs", - "description": "Fetch 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", + "description": "Fetch 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", "operationId": "catalogs/list", "security": [ { @@ -8740,19 +10009,115 @@ "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/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.", + "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", @@ -8850,7 +10215,7 @@ "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: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.\nIf access is required, please contact your partner manager.", + "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": [ { @@ -8858,6 +10223,12 @@ "catalogs:read", "catalogs:write" ] + }, + { + "client_credentials": [ + "catalogs:read", + "catalogs:write" + ] } ], "x-sandbox": "enabled", @@ -8948,7 +10319,7 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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/" } } } @@ -9035,13 +10406,18 @@ "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.", + "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", @@ -9136,7 +10512,7 @@ "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: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.\nIf access is required, please contact your partner manager.", + "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": [ { @@ -9144,6 +10520,12 @@ "catalogs:read", "catalogs:write" ] + }, + { + "client_credentials": [ + "catalogs:read", + "catalogs:write" + ] } ], "x-sandbox": "enabled", @@ -9213,13 +10595,13 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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": "Sorry, you cannot perform this action. Account is under review." + "message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/" } } } @@ -9262,7 +10644,7 @@ "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.", + "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": [ { @@ -9270,6 +10652,12 @@ "catalogs:read", "catalogs:write" ] + }, + { + "client_credentials": [ + "catalogs:read", + "catalogs:write" + ] } ], "x-sandbox": "enabled", @@ -9314,13 +10702,13 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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": "Sorry, you cannot perform this action. Account is under review." + "message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/" } } } @@ -9382,8 +10770,8 @@ "/catalogs/feeds/{feed_id}/ingest": { "post": { "x-ratelimit-category": "catalogs_write", - "summary": "Ingest items for a given feed", - "description": "Ingest items for a given feed owned by the \"operation user_account\".\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 only allowed in the Pinterest API Sandbox (https://api-sandbox.pinterest.com/v5).\nGo to https://developers.pinterest.com/docs/dev-tools/sandbox/ for more information.", + "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": [ { @@ -9402,8 +10790,15 @@ } ], "responses": { - "204": { - "description": "The ingestion process was successfully started." + "200": { + "description": "The ingestion process was successfully started.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CatalogsFeedIngestion" + } + } + } }, "400": { "description": "Invalid feed parameters.", @@ -9434,13 +10829,13 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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": "Sorry, you cannot perform this action. Account is under review." + "message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/" } } } @@ -9484,8 +10879,8 @@ "/catalogs/feeds/{feed_id}/processing_results": { "get": { "x-ratelimit-category": "catalogs_read", - "summary": "List processing results for a given feed", - "description": "Fetch a feed processing results owned by the \"operation user_account\". Please note that for now the bookmark parameter is not functional and only the first page will be available until it is implemented in some release in the near future.\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", + "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": [ { @@ -9608,8 +11003,8 @@ "/catalogs/processing_results/{processing_result_id}/item_issues": { "get": { "x-ratelimit-category": "catalogs_read", - "summary": "List item issues for a given processing result", - "description": "List item validation issues for a given feed processing result owned by the \"operation user_account\". Up to 20 random samples of affected items are returned for each error and warning code. Please note that for now query parameters 'item_numbers' and 'item_validation_issue' cannot be used simultaneously until it is implemented in some release in the future.\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", + "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": [ { @@ -9737,8 +11132,9 @@ }, "/catalogs/items": { "get": { + "deprecated": true, "summary": "Get catalogs items", - "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: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.\nIf access is required, please contact your partner manager.", + "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: this endpoint is deprecated and will be deleted soon. Please use Get catalogs items (POST) instead.", "operationId": "items/get", "security": [ { @@ -9840,7 +11236,7 @@ }, "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: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.\nIf access is required, please contact your partner manager.", + "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": [ { @@ -9943,7 +11339,7 @@ "/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: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.\nIf access is required, please contact your partner manager.", + "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 to get assistance.", "operationId": "items_batch/post", "x-ratelimit-category": "catalogs_write", "x-sandbox": "enabled", @@ -9953,6 +11349,12 @@ "catalogs:read", "catalogs:write" ] + }, + { + "client_credentials": [ + "catalogs:read", + "catalogs:write" + ] } ], "parameters": [ @@ -10053,14 +11455,19 @@ }, "/catalogs/items/batch/{batch_id}": { "get": { - "summary": "Get catalogs item batch status", - "description": "Get a single catalogs items batch owned by the \"operating user_account\". See detailed documentation here.\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.", + "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", @@ -10170,8 +11577,8 @@ "/catalogs/product_groups/multiple": { "delete": { "x-ratelimit-category": "catalogs_write", - "summary": "Delete multiple product groups", - "description": "Delete product groups owned by the \"operation user_account\".\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", + "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": [ @@ -10222,13 +11629,13 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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": "Sorry, you cannot perform this action. Account is under review." + "message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/" } } } @@ -10300,8 +11707,8 @@ }, "post": { "x-ratelimit-category": "catalogs_write", - "summary": "Create multiple product group", - "description": "Create product group to use in Catalogs owned by the \"operation user_account\".\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: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.\nIf access is required, please contact your partner manager.", + "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": [ { @@ -10343,7 +11750,6 @@ { "name": "Few Filters using \"all_of\"", "feed_id": "2680059592705", - "featured": false, "filters": { "all_of": [ { @@ -10375,7 +11781,6 @@ "value": [ { "name": "Many Filters using \"any_of\"", - "featured": false, "feed_id": "2680059592705", "filters": { "all_of": [ @@ -10529,6 +11934,39 @@ } ] }, + "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", @@ -10628,13 +12066,13 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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": "Sorry, you cannot perform this action. Account is under review." + "message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/" } } } @@ -10697,7 +12135,7 @@ "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", + "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": [ { @@ -10800,13 +12238,13 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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": "Sorry, you cannot perform this action. Account is under review." + "message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/" } } } @@ -10866,8 +12304,8 @@ }, "post": { "x-ratelimit-category": "catalogs_write", - "summary": "Create single product group", - "description": "Create product group to use in Catalogs owned by the \"operation user_account\".\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: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.\nIf access is required, please contact your partner manager.", + "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\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": [ { @@ -10904,7 +12342,6 @@ "value": { "name": "Few Filters using \"all_of\"", "feed_id": "2680059592705", - "featured": false, "filters": { "all_of": [ { @@ -10934,7 +12371,6 @@ "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\"", - "featured": false, "feed_id": "2680059592705", "filters": { "all_of": [ @@ -11115,6 +12551,37 @@ ] } } + }, + "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 + } + } + ] + } + } } } } @@ -11178,13 +12645,13 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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": "Sorry, you cannot perform this action. Account is under review." + "message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/" } } } @@ -11246,8 +12713,8 @@ "/catalogs/product_groups/{product_group_id}": { "get": { "x-ratelimit-category": "catalogs_read", - "summary": "Get single product group", - "description": "Get a singe product group for a given Catalogs Product Group Id owned by the \"operation user_account\".\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", + "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": [ @@ -11323,13 +12790,13 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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": "Sorry, you cannot perform this action. Account is under review." + "message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/" } } } @@ -11389,8 +12856,8 @@ }, "delete": { "x-ratelimit-category": "catalogs_write", - "summary": "Delete single product group", - "description": "Delete a product group owned by the \"operation user_account\" from being in use in Catalogs.\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", + "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": [ @@ -11459,13 +12926,13 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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": "Sorry, you cannot perform this action. Account is under review." + "message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/" } } } @@ -11538,7 +13005,7 @@ "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\nLearn more\n\nNote: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox.\nIf access is required, please contact your partner manager.", + "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\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": [ @@ -11632,13 +13099,13 @@ "MerchantDisapproved": { "value": { "code": 2625, - "message": "Sorry, you cannot perform this action. Account is disapproved." + "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": "Sorry, you cannot perform this action. Account is under review." + "message": "We are reviewing your account. Please see business hub for more details. https://www.pinterest.com/business/hub/" } } } @@ -11724,8 +13191,8 @@ "/catalogs/product_groups/{product_group_id}/product_counts": { "get": { "x-ratelimit-category": "catalogs_read", - "summary": "Get product counts for a Product Group", - "description": "Get a product counts for a given Catalogs Product Group owned by the \"operation user_account\".\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", + "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": [ { @@ -11748,7 +13215,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CatalogsProductGroupProductCounts" + "$ref": "#/components/schemas/CatalogsProductGroupProductCountsVertical" } } }, @@ -11809,8 +13276,8 @@ "/catalogs/product_groups/{product_group_id}/products": { "get": { "x-ratelimit-category": "catalogs_read", - "summary": "List products for a Product Group", - "description": "Get a list of product pins for a given Catalogs Product Group Id owned by the \"operation user_account\".\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", + "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": [ { @@ -11834,6 +13301,9 @@ }, { "$ref": "#/components/parameters/query_ad_account_id" + }, + { + "$ref": "#/components/parameters/query_pin_metrics" } ], "responses": { @@ -11935,8 +13405,8 @@ "/catalogs/products/get_by_product_group_filters": { "post": { "x-ratelimit-category": "catalogs_read", - "summary": "List products for Product Group Filters", - "description": "List products Pins owned by the \"operation user_account\" that meet the criteria specified in the Catalogs Product Group Filter given in the request.\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", + "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": [ { @@ -11957,6 +13427,9 @@ }, { "$ref": "#/components/parameters/query_ad_account_id" + }, + { + "$ref": "#/components/parameters/query_pin_metrics" } ], "requestBody": { @@ -12825,7 +14298,7 @@ "/media": { "get": { "summary": "List media uploads", - "description": "List media uploads filtered by given parameters.\n\nLearn more about video Pin creation.", + "description": "List media uploads filtered by given parameters.\n\nLearn more about video Pin creation.", "tags": [ "media" ], @@ -12887,7 +14360,7 @@ }, "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.", + "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" ], @@ -12940,7 +14413,7 @@ "/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.", + "description": "Get details for a registered media upload, including its current status.\n\nLearn more about video Pin creation.", "tags": [ "media" ], @@ -13000,7 +14473,7 @@ "/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.", + "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\nGrant type client_credentials and its corresponding response type are not fully available. You will likely get a default error if you attempt to use this grant_type.", "tags": [ "oauth" ], @@ -13058,6 +14531,12 @@ "boards:read", "pins:read" ] + }, + { + "client_credentials": [ + "boards:read", + "pins:read" + ] } ], "x-ratelimit-category": "org_read", @@ -13157,7 +14636,7 @@ }, "post": { "summary": "Create Pin", - "description": "Create a Pin on a board or board section owned by the \"operation user_account\".\n\nNote: If the current \"operation user_account\" (defined by the access token) has access to another user's Ad Accounts via Pinterest Business Access, you can modify your request to make use of the current operation_user_account's permissions to those Ad Accounts by including the ad_account_id in the path parameters for the request (e.g. .../?ad_account_id=12345&...).\n\n- This function is intended solely for publishing new content created by the user. If you are interested in saving content created by others to your Pinterest boards, sometimes called 'curated content', please use our Save button instead. For more tips on creating fresh content for Pinterest, review our Content App Solutions Guide.\n\nLearn more about video Pin creation.", + "description": "Create a Pin on a board or board section owned by the \"operation user_account\".\n\nNote: If the current \"operation user_account\" (defined by the access token) has access to another user's Ad Accounts via Pinterest Business Access, you can modify your request to make use of the current operation_user_account's permissions to those Ad Accounts by including the ad_account_id in the path parameters for the request (e.g. .../?ad_account_id=12345&...).\n\n- This function is intended solely for publishing new content created by the user. If you are interested in saving content created by others to your Pinterest boards, sometimes called 'curated content', please use our Save button instead. For more tips on creating fresh content for Pinterest, review our Content App Solutions Guide.\n\nLearn more about video Pin creation.", "tags": [ "pins" ], @@ -13178,17 +14657,17 @@ { "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# Board information can be fetched from profile page or from create/list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\nBOARD_ID=\"\"\n\npin_create = Pin.create(\n board_id=BOARD_ID,\n title=\"My Pin\",\n description=\"Pin Description\",\n media_source={\n \"source_type\": \"image_url\",\n \"content_type\": \"image/jpeg\",\n \"data\": \"string\",\n 'url':'https://i.pinimg.com/564x/28/75/e9/2875e94f8055227e72d514b837adb271.jpg'\n }\n )\nprint(\"Pin Id: %s, Pin Title:%s\" %(pin_create.id, pin_create.title))\n" + "source": "# Follow this link for initial setup: https://github.com/pinterest/pinterest-python-sdk#getting-started\n\nfrom pinterest.organic.pins import Pin\n# Board information can be fetched from profile page or from create/list board method here:\n# /docs/api/v5/#operation/boards/list\nBOARD_ID=\"\"\n\npin_create = Pin.create(\n board_id=BOARD_ID,\n title=\"My Pin\",\n description=\"Pin Description\",\n media_source={\n \"source_type\": \"image_url\",\n \"content_type\": \"image/jpeg\",\n \"data\": \"string\",\n 'url':'https://i.pinimg.com/564x/28/75/e9/2875e94f8055227e72d514b837adb271.jpg'\n }\n )\nprint(\"Pin Id: %s, Pin Title:%s\" %(pin_create.id, pin_create.title))\n" }, { "lang": "cURL", "label": "curl", - "source": "# Board information can be fetched from profile page or from create/list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --location --request POST 'https://api.pinterest.com/v5/pins' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"My Pin\",\n \"description\": \"Pin Description\",\n \"board_id\": \",\n \"media_source\": {\n \"source_type\": \"image_url\",\n \"url\": \"https://i.pinimg.com/564x/28/75/e9/2875e94f8055227e72d514b837adb271.jpg\"\n }\n }'\n" + "source": "# Board information can be fetched from profile page or from create/list board method here:\n# /docs/api/v5/#operation/boards/list\n\ncurl --location --request POST 'https://api.pinterest.com/v5/pins' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"My Pin\",\n \"description\": \"Pin Description\",\n \"board_id\": \",\n \"media_source\": {\n \"source_type\": \"image_url\",\n \"url\": \"https://i.pinimg.com/564x/28/75/e9/2875e94f8055227e72d514b837adb271.jpg\"\n }\n }'\n" }, { "lang": "cURL", "label": "curl (Sandbox)", - "source": "# Board information can be fetched from profile page or from create/list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --location --request POST 'https://api-sandbox.pinterest.com/v5/pins' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"My Pin\",\n \"description\": \"Pin Description\",\n \"board_id\": \",\n \"media_source\": {\n \"source_type\": \"image_url\",\n \"url\": \"https://i.pinimg.com/564x/28/75/e9/2875e94f8055227e72d514b837adb271.jpg\"\n }\n }'\n" + "source": "# Board information can be fetched from profile page or from create/list board method here:\n# /docs/api/v5/#operation/boards/list\n\ncurl --location --request POST 'https://api-sandbox.pinterest.com/v5/pins' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"My Pin\",\n \"description\": \"Pin Description\",\n \"board_id\": \",\n \"media_source\": {\n \"source_type\": \"image_url\",\n \"url\": \"https://i.pinimg.com/564x/28/75/e9/2875e94f8055227e72d514b837adb271.jpg\"\n }\n }'\n" } ], "parameters": [ @@ -13325,6 +14804,12 @@ "boards:read", "pins:read" ] + }, + { + "client_credentials": [ + "boards:read", + "pins:read" + ] } ], "x-ratelimit-category": "org_read", @@ -13333,17 +14818,17 @@ { "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# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\nPIN_ID=\"\"\n\npin_get = Pin(pin_id=PIN_ID)\nprint(\"Pin Id: %s, Pin Title:%s\" %(pin_get.id, pin_get.title))\n" + "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=\"\"\n\npin_get = Pin(pin_id=PIN_ID)\nprint(\"Pin Id: %s, Pin Title:%s\" %(pin_get.id, pin_get.title))\n" }, { "lang": "cURL", "label": "curl", - "source": "# Pin information can be fetched from profile page or from list pin method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\n\ncurl --location --request GET 'https://api.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" + "source": "# Pin information can be fetched from profile page or from list pin method here:\n# /docs/api/v5/#operation/pins/list\n\ncurl --location --request GET 'https://api.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" }, { "lang": "cURL", "label": "curl (Sandbox)", - "source": "# Pin information can be fetched from profile page or from list pin method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\n\ncurl --location --request GET 'https://api-sandbox.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" + "source": "# Pin information can be fetched from profile page or from list pin method here:\n# /docs/api/v5/#operation/pins/list\n\ncurl --location --request GET 'https://api-sandbox.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" } ], "parameters": [ @@ -13431,17 +14916,17 @@ { "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# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\nPIN_ID=\"\"\n\npin_delete=Pin.delete(pin_id=PIN_ID)\n\nprint(\"Pin was deleted? %s\" % (pin_delete))\n" + "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=\"\"\n\npin_delete=Pin.delete(pin_id=PIN_ID)\n\nprint(\"Pin was deleted? %s\" % (pin_delete))\n" }, { "lang": "cURL", "label": "curl", - "source": "# Pin information can be fetched from profile page or from create/list pin method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\n\ncurl --request DELETE 'https://api.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" + "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 --request DELETE 'https://api.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" }, { "lang": "cURL", "label": "curl (Sandbox)", - "source": "# Pin information can be fetched from profile page or from create/list pin method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\n\ncurl --request DELETE 'https://api-sandbox.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" + "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 --request DELETE 'https://api-sandbox.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json'\n" } ], "parameters": [ @@ -13498,7 +14983,7 @@ }, "patch": { "summary": "Update Pin", - "description": "Update a pin 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:\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.", + "description": "Update a pin 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:\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" ], @@ -13519,12 +15004,12 @@ { "lang": "cURL", "label": "curl", - "source": "# Pin information can be fetched from profile page or from create/list pin method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\n\ncurl --location --request PATCH 'https://api.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"My updated Pin title\"\n}'\n" + "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/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"My updated Pin title\"\n}'\n" }, { "lang": "cURL", "label": "curl (Sandbox)", - "source": "# Pin information can be fetched from profile page or from create/list pin method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\n\ncurl --location --request GET 'https://api-sandbox.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"My updated Pin title\"\n}'\n" + "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 GET 'https://api-sandbox.pinterest.com/v5/pins/' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"title\": \"My updated Pin title\"\n}'\n" } ], "parameters": [ @@ -13614,7 +15099,7 @@ "/pins/{pin_id}/analytics": { "get": { "summary": "Get Pin analytics", - "description": "Get analytics for a Pin owned by the \"operation user_account\" - or on a group board that has been shared with this account.\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.", + "description": "Get analytics for a Pin owned by the \"operation user_account\" - or on a group board that has been shared with this 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:\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" ], @@ -13625,6 +15110,12 @@ "boards:read", "pins:read" ] + }, + { + "client_credentials": [ + "boards:read", + "pins:read" + ] } ], "x-ratelimit-category": "org_analytics", @@ -13721,7 +15212,7 @@ "/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.", + "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" ], @@ -13732,24 +15223,19 @@ "boards:read", "pins:read" ] + }, + { + "client_credentials": [ + "boards:read", + "pins:read" + ] } ], "x-ratelimit-category": "org_analytics", "x-sandbox": "disabled", "parameters": [ { - "name": "pin_ids", - "description": "List of Pin IDs.", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "pattern": "^\\d+$" - }, - "minItems": 1, - "maxItems": 100 - } + "$ref": "#/components/parameters/query_required_pin_ids" }, { "$ref": "#/components/parameters/query_start_date" @@ -13780,7 +15266,9 @@ "SAVE", "SAVE_RATE", "TOTAL_COMMENTS", - "TOTAL_REACTIONS" + "TOTAL_REACTIONS", + "USER_FOLLOW", + "PROFILE_VISIT" ] }, { @@ -13915,17 +15403,17 @@ { "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# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\nPIN_ID=\"\"\n\n# Board information can be fetched from profile page or from list board method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\nNEW_BOARD_ID=\"\"\n\npin_save = Pin(pin_id=PIN_ID)\npin_save.save(board_id=NEW_BOARD_ID)\nprint(\"Pin Id: %s, Board Id:%s\" %(pin_save.id, pin_save.board_id))\n" + "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=\"\"\n\n# Board information can be fetched from profile page or from list board method here:\n# /docs/api/v5/#operation/boards/list\nNEW_BOARD_ID=\"\"\n\npin_save = Pin(pin_id=PIN_ID)\npin_save.save(board_id=NEW_BOARD_ID)\nprint(\"Pin Id: %s, Board Id:%s\" %(pin_save.id, pin_save.board_id))\n" }, { "lang": "cURL", "label": "curl", - "source": "# Pin and Board information can be fetched from profile page or from create/list pin method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --request DELETE 'https://api.pinterest.com/v5/pins//save' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"board_id\": \n}'\n" + "source": "# Pin and Board information can be fetched from profile page or from create/list pin method here:\n# /docs/api/v5/#operation/pins/list\n# /docs/api/v5/#operation/boards/list\n\ncurl --request DELETE 'https://api.pinterest.com/v5/pins//save' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"board_id\": \n}'\n" }, { "lang": "cURL", "label": "curl (Sandbox)", - "source": "# Pin and Board information can be fetched from profile page or from create/list pin method here:\n# https://developers.pinterest.com/docs/api/v5/#operation/pins/list\n# https://developers.pinterest.com/docs/api/v5/#operation/boards/list\n\ncurl --request DELETE 'https://api-sandbox.pinterest.com/v5/pins//save' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"board_id\": \n}'\n" + "source": "# Pin and Board information can be fetched from profile page or from create/list pin method here:\n# /docs/api/v5/#operation/pins/list\n# /docs/api/v5/#operation/boards/list\n\ncurl --request DELETE 'https://api-sandbox.pinterest.com/v5/pins//save' \\\n--header 'Authorization: Bearer ' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"board_id\": \n}'\n" } ], "parameters": [ @@ -14073,7 +15561,7 @@ "/resources/delivery_metrics": { "get": { "summary": "Get available metrics' definitions", - "description": "Get the definitions for ads and organic metrics available across both synchronous and asynchronous report endpoints.\nThe `display_name` attribute will match how the metric is named in our native tools like Ads Manager.\nSee Organic Analytics and Ads Analytics for more information.", + "description": "Get the definitions for ads and organic metrics available across both synchronous and asynchronous report endpoints.\nThe `display_name` attribute will match how the metric is named in our native tools like Ads Manager.\nSee Organic Analytics and Ads Analytics for more information.", "operationId": "delivery_metrics/get", "security": [ { @@ -14121,7 +15609,7 @@ "/resources/lead_form_questions": { "get": { "summary": "Get lead form questions", - "description": "Get a list of all lead form question type names. Some questions might not be used.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", + "description": "Get a list of all lead form question type names. Some questions might not be used.\n\nThis endpoint is currently in beta and not available to all apps. Learn more.", "operationId": "lead_form_questions/get", "security": [ { @@ -14279,6 +15767,9 @@ }, { "$ref": "#/components/parameters/query_timestamp" + }, + { + "$ref": "#/components/parameters/query_ad_account_id" } ], "responses": { @@ -14311,7 +15802,7 @@ "/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.", + "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": [ { @@ -14319,6 +15810,12 @@ "boards:read", "boards:read_secret" ] + }, + { + "client_credentials": [ + "boards:read", + "boards:read_secret" + ] } ], "x-ratelimit-category": "org_read", @@ -14381,7 +15878,7 @@ }, "/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.", + "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": [ { @@ -14470,7 +15967,7 @@ "/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.", + "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": [ { @@ -14700,7 +16197,7 @@ "/trends/keywords/{region}/top/{trend_type}": { "get": { "summary": "List trending keywords", - "description": "

Get the top trending search keywords among the Pinterest user audience.

\n

Trending keywords can be used to inform ad targeting, budget strategy, and creative decisions about which products and Pins will resonate with your audience.

\n

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.

\n

For an interactive way to explore this data, please visit trends.pinterest.com.", + "description": "

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": [ { @@ -14791,7 +16288,7 @@ "/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.", + "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" ], @@ -14801,6 +16298,11 @@ "pinterest_oauth2": [ "user_accounts:read" ] + }, + { + "client_credentials": [ + "user_accounts:read" + ] } ], "x-ratelimit-category": "org_read", @@ -14963,6 +16465,12 @@ "pins:read", "user_accounts:read" ] + }, + { + "client_credentials": [ + "pins:read", + "user_accounts:read" + ] } ], "x-ratelimit-category": "org_analytics", @@ -15057,6 +16565,12 @@ "pins:read", "user_accounts:read" ] + }, + { + "client_credentials": [ + "pins:read", + "user_accounts:read" + ] } ], "x-ratelimit-category": "org_analytics", @@ -15147,6 +16661,11 @@ "pinterest_oauth2": [ "user_accounts:read" ] + }, + { + "client_credentials": [ + "user_accounts:read" + ] } ], "x-ratelimit-category": "org_read", @@ -15191,6 +16710,11 @@ "pinterest_oauth2": [ "user_accounts:read" ] + }, + { + "client_credentials": [ + "user_accounts:read" + ] } ], "x-ratelimit-category": "ads_read", @@ -15269,6 +16793,11 @@ "pinterest_oauth2": [ "user_accounts:read" ] + }, + { + "client_credentials": [ + "user_accounts:read" + ] } ], "x-ratelimit-category": "org_read", @@ -15342,6 +16871,11 @@ "pinterest_oauth2": [ "user_accounts:read" ] + }, + { + "client_credentials": [ + "user_accounts:read" + ] } ], "x-ratelimit-category": "org_read", @@ -15419,7 +16953,7 @@ "/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.", + "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" ], @@ -15508,6 +17042,11 @@ ], "x-ratelimit-category": "org_write", "x-sandbox": "disabled", + "parameters": [ + { + "$ref": "#/components/parameters/query_ad_account_id" + } + ], "requestBody": { "description": "Verify a website.", "required": true, @@ -15678,11 +17217,21 @@ "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": { @@ -15738,6 +17287,11 @@ "pinterest_oauth2": [ "user_accounts:read" ] + }, + { + "client_credentials": [ + "user_accounts:read" + ] } ], "x-ratelimit-category": "org_read", @@ -15862,6 +17416,34 @@ "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", + "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": { @@ -16114,12 +17696,14 @@ "cryptographic_key": { "description": "Base64 encoded key for client to decrypt lead data.", "example": "ucvxbV2Tdss0vNeYsdh4Qfa/1Khm2b0PqXvXeTTZh54", - "type": "string" + "type": "string", + "nullable": true }, "cryptographic_algorithm": { "description": "Lead data encryption algorithm.", "example": "AES-256-GCM", - "type": "string" + "type": "string", + "nullable": true }, "created_time": { "description": "Subscription creation time. Unix timestamp in milliseconds.", @@ -16179,12 +17763,14 @@ "cryptographic_key": { "description": "Base64 encoded key for client to decrypt lead data.", "example": "ucvxbV2Tdss0vNeYsdh4Qfa/1Khm2b0PqXvXeTTZh54", - "type": "string" + "type": "string", + "nullable": true }, "cryptographic_algorithm": { "description": "Lead data encryption algorithm.", "example": "AES-256-GCM", - "type": "string" + "type": "string", + "nullable": true }, "created_time": { "description": "Lead form creation time. Unix timestamp in milliseconds.", @@ -16264,7 +17850,7 @@ "pattern": "^(AG)?\\d+$" }, "android_deep_link": { - "description": "Deep link URL for Android devices. Not currently available. Using this field will generate an error.", + "description": "Deep link URL for Android devices.", "nullable": true, "type": "string" }, @@ -16306,7 +17892,7 @@ "nullable": true }, "ios_deep_link": { - "description": "Deep link URL for iOS devices. Not currently available. Using this field will generate an error.", + "description": "Deep link URL for iOS devices.", "type": "string", "nullable": true }, @@ -16353,7 +17939,7 @@ }, "customizable_cta_type": { "type": "string", - "description": "Select a call to action (CTA) to display below your ad. Available only for ads with direct links enabled. CTA options for consideration and conversion campaigns are LEARN_MORE, SHOP_NOW, BOOK_NOW, SIGN_UP, VISIT_WEBSITE, BUY_NOW, GET_OFFER, ORDER_NOW, ADD_TO_CART (for conversion campaigns with add to cart conversion events only)", + "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": [ @@ -16366,7 +17952,7 @@ "BUY_NOW", "CONTACT_US", "GET_QUOTE", - "VISIT_WEBSITE", + "VISIT_SITE", "APPLY_NOW", "BOOK_NOW", "REQUEST_DEMO", @@ -16665,6 +18251,366 @@ } ] }, + "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 + }, + "properties": { + "PLACEMENT": { + "type": "string", + "enum": [ + "SEARCH", + "BROWSE" + ] + } + }, + "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": { @@ -16753,7 +18699,7 @@ "$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.", + "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 }, @@ -16764,7 +18710,7 @@ "$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.", + "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": { @@ -16780,7 +18726,7 @@ "$ref": "#/components/schemas/PlacementGroupType" } ], - "description": "Placement group." + "description": "Placement group." }, "pacing_delivery_type": { "type": "string", @@ -16801,7 +18747,7 @@ }, "bid_strategy_type": { "nullable": true, - "description": "Bid strategy type", + "description": "Bid strategy type. For Campaigns with Video Completion objectives, the only supported bid strategy type is AUTOMATIC_BID.", "enum": [ "AUTOMATIC_BID", "MAX_BID", @@ -17338,6 +19284,48 @@ } ] }, + "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" + ] + }, "AdsAnalyticsCreateAsyncRequest": { "type": "object", "allOf": [ @@ -17471,7 +19459,7 @@ "items": { "$ref": "#/components/schemas/ObjectiveType" }, - "maxItems": 6, + "maxItems": 7, "minItems": 1 } } @@ -17659,7 +19647,7 @@ "allOf": [ { "type": "string", - "description": "Whether to first sort the report by date or by ID. BY_DATE is recommended for large requests. BY_DATE for JSON format is currently not supported.", + "description": "Whether to first sort the report by date or by entity ID of the reporting entity level. Date will be used as the first level key for JSON reports that use BY_DATE. BY_DATE is recommended for large requests.", "example": "BY_ID", "enum": [ "BY_ID", @@ -17668,6 +19656,18 @@ } ], "default": "BY_ID" + }, + "start_hour": { + "description": "Which hour of the start date to begin the report. The entire day will be included if no start hour is provided. Only allowed for hourly reports.", + "type": "integer", + "minimum": 0, + "maximum": 23 + }, + "end_hour": { + "description": "Which hour of the end date to stop the report (inclusive). For example, with an end_date of '2020-01-01' and end_hour of '15', the report will contain metrics up to '2020-01-01 14:59:59'. The entire day will be included if no end hour is provided. Only allowed for hourly reports.", + "type": "integer", + "minimum": 0, + "maximum": 23 } } } @@ -18012,6 +20012,11 @@ }, "permissions": { "$ref": "#/components/schemas/PermissionsResponse" + }, + "asset_group_info": { + "nullable": true, + "description": "An object containing all the information specific to the provided asset group. This field will be populated only if asset_type equals 'ASSET_GROUP'.", + "$ref": "#/components/schemas/AssetGroupBinding" } } }, @@ -18041,7 +20046,7 @@ } }, "AssetTypeResponse": { - "description": "Type of asset. Currently we only support AD_ACCOUNT and PROFILE.", + "description": "Type of asset. Currently we only support AD_ACCOUNT and PROFILE, and ASSET_GROUP.", "example": "AD_ACCOUNT", "type": "string" }, @@ -18520,7 +20525,7 @@ } }, "AudienceRule": { - "description": "JSON object defining targeted audience users. Example rule formats per audience type:
CUSTOMER_LIST: { \"customer_list_id\": \"<customer list ID>\"}
ACTALIKE: { \"seed_id\": [\"<audience ID>\"], \"country\": \"US\", \"percentage\": \"10\" }
(Valid countries include: \"US\", \"CA\", and \"GB\". Percentage should be 1-10.
The targeted audience should be this % size across Pinterest.)
VISITOR: { \"visitor_source_id\": [\"<conversion tag ID>\"], \"retention_days\": \"180\", \"event_source\": {\"=\": [\"web\", \"mobile\"]}, \"ingestion_source\": {\"=\": [\"tag\"]}}
(Retention days should be 1-540. Retention applies to specific customers.)
ENGAGEMENT: {\"engagement_domain\": [\"www.entomi.com\"], \"engager_type\": 1}
For more details on engagement audiences, see November 2021 changelog.", + "description": "JSON object defining targeted audience users. Example rule formats per audience type:
CUSTOMER_LIST: { \"customer_list_id\": \"<customer list ID>\"}
ACTALIKE: { \"seed_id\": [\"<audience ID>\"], \"country\": \"US\", \"percentage\": \"10\" }
(Valid countries include: \"US\", \"CA\", and \"GB\". Percentage should be 1-10.
The targeted audience should be this % size across Pinterest.)
VISITOR: { \"visitor_source_id\": [\"<conversion tag ID>\"], \"retention_days\": \"180\", \"event_source\": {\"=\": [\"web\", \"mobile\"]}, \"ingestion_source\": {\"=\": [\"tag\"]}}
(Retention days should be 1-540. Retention applies to specific customers.)
ENGAGEMENT: {\"engagement_domain\": [\"www.entomi.com\"], \"engager_type\": 1}
For more details on engagement audiences, see November 2021 changelog.", "properties": { "country": { "description": "Valid countries include: \"US\", \"CA\", and \"GB\".", @@ -18807,6 +20812,22 @@ "title": "Rule", "type": "object" }, + "AudienceShareType": { + "type": "string", + "default": "SHARED", + "enum": [ + "SHARED", + "RECEIVED" + ] + }, + "AudienceAccountType": { + "type": "string", + "default": "AD_ACCOUNT", + "enum": [ + "AD_ACCOUNT", + "BUSINESS_ACCOUNT" + ] + }, "AudienceSharingType": { "description": "Audience sharing type: [\"CUSTOM\", \"SYNDICATED\"]", "type": "string", @@ -20166,13 +22187,8 @@ "example": 1644023526, "nullable": true }, - "summary_status": { - "type": "string", - "allOf": [ - { - "$ref": "#/components/schemas/CampaignSummaryStatus" - } - ] + "is_flexible_daily_budgets": { + "$ref": "#/components/schemas/CampaignIsFlexibleDailyBudgets" } } }, @@ -20185,24 +22201,6 @@ { "type": "object", "properties": { - "status": { - "type": "string", - "default": "ACTIVE", - "allOf": [ - { - "$ref": "#/components/schemas/EntityStatus" - } - ] - }, - "is_flexible_daily_budgets": { - "type": "boolean", - "default": false, - "allOf": [ - { - "$ref": "#/components/schemas/CampaignIsFlexibleDailyBudgets" - } - ] - }, "default_ad_group_budget_in_micro_currency": { "type": "integer", "description": "When transitioning from campaign budget optimization to non-campaign budget optimization, the default_ad_group_budget_in_micro_currency will propagate to each child ad groups daily budget. Unit is micro currency of the associated advertiser account.", @@ -20210,13 +22208,7 @@ "nullable": true }, "is_automated_campaign": { - "type": "boolean", - "default": false, - "allOf": [ - { - "$ref": "#/components/schemas/CampaignIsAutomatedCampaign" - } - ] + "$ref": "#/components/schemas/CampaignIsAutomatedCampaign" } } } @@ -20231,6 +22223,33 @@ { "type": "object", "properties": { + "is_flexible_daily_budgets": { + "type": "boolean", + "default": false, + "allOf": [ + { + "$ref": "#/components/schemas/CampaignIsFlexibleDailyBudgets" + } + ] + }, + "is_automated_campaign": { + "type": "boolean", + "default": false, + "allOf": [ + { + "$ref": "#/components/schemas/CampaignIsAutomatedCampaign" + } + ] + }, + "status": { + "type": "string", + "default": "ACTIVE", + "allOf": [ + { + "$ref": "#/components/schemas/EntityStatus" + } + ] + }, "objective_type": { "$ref": "#/components/schemas/ObjectiveType" } @@ -20302,19 +22321,19 @@ "type": "boolean", "description": "Specifies whether the campaign was created in the automated campaign flow", "example": true, - "default": false + "nullable": true }, "CampaignIsCampaignBudgetOptimization": { "type": "boolean", "description": "Determines if a campaign automatically generate ad-group level budgets given a campaign budget to maximize campaign outcome. When transitioning from non-cbo to cbo, all previous child ad group budget will be cleared.", "example": true, - "default": false + "nullable": true }, "CampaignIsFlexibleDailyBudgets": { "type": "boolean", "description": "Determine if a campaign has flexible daily budgets setup.", "example": true, - "default": false + "nullable": true }, "CampaignResponse": { "type": "object", @@ -20346,17 +22365,11 @@ "description": "Always \"campaign\".", "example": "campaign" }, - "is_flexible_daily_budgets": { - "type": "boolean", - "description": "Determines if a campaign has flexible daily budgets setup.", - "example": true, - "nullable": true - }, "is_campaign_budget_optimization": { - "type": "boolean", - "description": "Determines if a campaign automatically generate ad-group level budgets given a campaign budget to maximize campaign outcome. When transitioning from non-cbo to cbo, all previous child ad group budget will be cleared.", - "example": true, - "nullable": true + "$ref": "#/components/schemas/CampaignIsCampaignBudgetOptimization" + }, + "summary_status": { + "$ref": "#/components/schemas/CampaignSummaryStatus" } } } @@ -20383,9 +22396,6 @@ { "$ref": "#/components/schemas/CampaignId" }, - { - "$ref": "#/components/schemas/CampaignCommon" - }, { "$ref": "#/components/schemas/CampaignCreateCommon" }, @@ -20393,40 +22403,7 @@ "type": "object", "properties": { "is_campaign_budget_optimization": { - "type": "boolean", - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/CampaignIsCampaignBudgetOptimization" - } - ] - }, - "is_flexible_daily_budgets": { - "type": "boolean", - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/CampaignIsFlexibleDailyBudgets" - } - ] - }, - "is_automated_campaign": { - "type": "boolean", - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/CampaignIsAutomatedCampaign" - } - ] - }, - "status": { - "type": "string", - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/EntityStatus" - } - ] + "$ref": "#/components/schemas/CampaignIsCampaignBudgetOptimization" }, "objective_type": { "type": "string", @@ -20539,87 +22516,28 @@ } ] }, - "CatalogProductGroup": { - "description": "non-promoted catalog product group entity", + "CatalogsCreateRequest": { + "type": "object", + "title": "catalogs_create_request", + "description": "Request object for creating a catalog.", + "additionalProperties": false, "properties": { - "id": { - "description": "ID of the catalog product group.", - "example": "2680059592705", - "title": "id", - "type": "string" - }, - "merchant_id": { - "description": "Merchant ID pertaining to the owner of the catalog product group.", - "example": "2680059592705", - "pattern": "^\\d+$", - "title": "merchant_id", - "type": "string" + "catalog_type": { + "description": "Type of the catalog entity.", + "type": "string", + "enum": [ + "HOTEL" + ] }, "name": { - "description": "Name of catalog product group", - "example": "Most Popular", - "title": "name", + "description": "A human-friendly name associated to a given catalog.", "type": "string" - }, - "filters": { - "description": "Object holding a list of filters", - "example": { - "1": [ - "123chars_title" - ] - }, - "title": "filters", - "type": "object" - }, - "filter_v2": { - "description": "Object holding a list of filters", - "example": { - "1": [ - "123chars_title" - ] - }, - "title": "filters", - "type": "object" - }, - "type": { - "$ref": "#/components/schemas/Board" - }, - "status": { - "$ref": "#/components/schemas/EntityStatus" - }, - "feed_profile_id": { - "description": "id of the feed profile belonging to this catalog product group", - "pattern": "^\\d+$", - "title": "feed_profile_id", - "type": "string" - }, - "created_at": { - "description": "Unix timestamp in seconds of when catalog product group was created.", - "example": 1621350033000, - "title": "created_at", - "type": "integer" - }, - "last_update": { - "description": "Unix timestamp in seconds of last time catalog product group was updated.", - "example": 1622742155000, - "title": "last_update", - "type": "integer" - }, - "product_count": { - "description": "Amount of products in the catalog product group", - "example": 6, - "title": "product_count", - "type": "integer" - }, - "featured_position": { - "description": "index of the featured position of the catalog product group", - "example": 2, - "title": "featured_position", - "type": "integer" } }, - "title": "CatalogProductGroup", - "type": "object" + "required": [ + "catalog_type", + "name" + ] }, "CatalogsDbItem": { "type": "object", @@ -20638,7 +22556,12 @@ "format": "date-time", "example": "2022-03-14T15:16:34Z" } - } + }, + "required": [ + "id", + "created_at", + "updated_at" + ] }, "CatalogsCreateReportResponse": { "type": "object", @@ -20920,7 +22843,7 @@ "processing_result_id": { "type": "string", "pattern": "^\\d+$", - "description": "Unique identifier of a feed processing result. It can be acquired from the \"id\" field of the \"items\" array within the response of the [List processing results for a given feed](https://developers.pinterest.com/docs/api/v5/#operation/feed_processing_results/list). If not provided, default to most recent completed processing result." + "description": "Unique identifier of a feed processing result. It can be acquired from the \"id\" field of the \"items\" array within the response of the [List processing results for a given feed](/docs/api/v5/#operation/feed_processing_results/list). If not provided, default to most recent completed processing result." } }, "required": [ @@ -21298,6 +23221,33 @@ } } }, + "CatalogsFeedIngestion": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "01234" + }, + "feed_id": { + "type": "string", + "example": "56789" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-03-14T15:16:34Z" + }, + "status": { + "$ref": "#/components/schemas/CatalogsFeedProcessingStatus" + } + }, + "required": [ + "id", + "feed_id", + "created_at", + "status" + ] + }, "CatalogsFeedIngestionWarnings": { "type": "object", "properties": { @@ -21776,13 +23726,8 @@ "type": "string", "enum": [ "COMPLETED", - "COMPLETED_EARLY", - "DISAPPROVED", "FAILED", - "PROCESSING", - "QUEUED_FOR_PROCESSING", - "UNDER_APPEAL", - "UNDER_REVIEW" + "PROCESSING" ] }, "CatalogsFeedProductCounts": { @@ -22203,6 +24148,17 @@ }, "default_availability": { "$ref": "#/components/schemas/ProductAvailabilityType" + }, + "status": { + "type": "string", + "allOf": [ + { + "$ref": "#/components/schemas/CatalogsStatus" + }, + { + "default": "ACTIVE" + } + ] } }, "required": [ @@ -22304,6 +24260,17 @@ }, "default_availability": { "$ref": "#/components/schemas/ProductAvailabilityType" + }, + "status": { + "type": "string", + "allOf": [ + { + "$ref": "#/components/schemas/CatalogsStatus" + }, + { + "default": "ACTIVE" + } + ] } }, "required": [ @@ -22421,6 +24388,17 @@ "nullable": true, "type": "string", "pattern": "^\\d+$" + }, + "status": { + "type": "string", + "allOf": [ + { + "$ref": "#/components/schemas/CatalogsStatus" + }, + { + "default": "ACTIVE" + } + ] } }, "required": [ @@ -22596,6 +24574,17 @@ "nullable": true, "type": "string", "pattern": "^\\d+$" + }, + "status": { + "type": "string", + "allOf": [ + { + "$ref": "#/components/schemas/CatalogsStatus" + }, + { + "default": "ACTIVE" + } + ] } }, "required": [ @@ -23326,15 +25315,15 @@ "type": "string" }, "created_time": { - "description": "Time of the batch creation: YYYY-MM-DD'T'hh:mm:ssTZD", - "example": "2020-01-01T20:10:40-00:00", + "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": "Time of the batch completion: YYYY-MM-DD'T'hh:mm:ssTZD", - "example": "2022-03-10T15:37:10-00:00", + "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, @@ -23368,15 +25357,15 @@ "type": "string" }, "created_time": { - "description": "Time of the batch creation: YYYY-MM-DD'T'hh:mm:ssTZD", - "example": "2020-01-01T20:10:40-00:00", + "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": "Time of the batch completion: YYYY-MM-DD'T'hh:mm:ssTZD", - "example": "2022-03-10T15:37:10-00:00", + "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, @@ -23410,15 +25399,15 @@ "type": "string" }, "created_time": { - "description": "Time of the batch creation: YYYY-MM-DD'T'hh:mm:ssTZD", - "example": "2020-01-01T20:10:40-00:00", + "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": "Time of the batch completion: YYYY-MM-DD'T'hh:mm:ssTZD", - "example": "2022-03-10T15:37:10-00:00", + "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, @@ -23451,7 +25440,15 @@ "$ref": "#/components/schemas/Country" }, "language": { - "$ref": "#/components/schemas/Language" + "description": "We recommend using the CatalogsLocale values.", + "anyOf": [ + { + "$ref": "#/components/schemas/CatalogsLocale" + }, + { + "$ref": "#/components/schemas/Language" + } + ] }, "filters": { "$ref": "#/components/schemas/CatalogsItemsPostFilters" @@ -23504,7 +25501,15 @@ "$ref": "#/components/schemas/Country" }, "language": { - "$ref": "#/components/schemas/Language" + "description": "We recommend using the CatalogsLocale values.", + "anyOf": [ + { + "$ref": "#/components/schemas/CatalogsLocale" + }, + { + "$ref": "#/components/schemas/Language" + } + ] }, "operation": { "$ref": "#/components/schemas/BatchOperation" @@ -23535,7 +25540,15 @@ "$ref": "#/components/schemas/Country" }, "language": { - "$ref": "#/components/schemas/Language" + "description": "We recommend using the CatalogsLocale values.", + "anyOf": [ + { + "$ref": "#/components/schemas/CatalogsLocale" + }, + { + "$ref": "#/components/schemas/Language" + } + ] }, "operation": { "$ref": "#/components/schemas/BatchOperation" @@ -23564,7 +25577,15 @@ "$ref": "#/components/schemas/Country" }, "language": { - "$ref": "#/components/schemas/Language" + "description": "We recommend using the CatalogsLocale values.", + "anyOf": [ + { + "$ref": "#/components/schemas/CatalogsLocale" + }, + { + "$ref": "#/components/schemas/Language" + } + ] }, "operation": { "$ref": "#/components/schemas/BatchOperation" @@ -23593,7 +25614,15 @@ "$ref": "#/components/schemas/Country" }, "language": { - "$ref": "#/components/schemas/Language" + "description": "We recommend using the CatalogsLocale values.", + "anyOf": [ + { + "$ref": "#/components/schemas/CatalogsLocale" + }, + { + "$ref": "#/components/schemas/Language" + } + ] }, "operation": { "$ref": "#/components/schemas/BatchOperation" @@ -23623,7 +25652,15 @@ "$ref": "#/components/schemas/Country" }, "language": { - "$ref": "#/components/schemas/Language" + "description": "We recommend using the CatalogsLocale values.", + "anyOf": [ + { + "$ref": "#/components/schemas/CatalogsLocale" + }, + { + "$ref": "#/components/schemas/Language" + } + ] }, "operation": { "$ref": "#/components/schemas/BatchOperation" @@ -23650,25 +25687,149 @@ "type": "object", "oneOf": [ { - "description": "Request object to list products for a given feed_id and product group filter.", - "type": "object", - "additionalProperties": false, - "properties": { - "feed_id": { - "description": "Catalog Feed id pertaining to the catalog product group filter.", - "example": "2680059592705", - "type": "string", - "pattern": "^\\d+$" - }, - "filters": { - "$ref": "#/components/schemas/CatalogsProductGroupFilters" - } - }, - "required": [ - "feed_id", - "filters" + "$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": { @@ -23724,18 +25885,34 @@ }, "CatalogsProduct": { "type": "object", + "description": "Catalogs product for all verticals", "properties": { - "metadata": { - "$ref": "#/components/schemas/CatalogsProductMetadata" - }, - "pin": { - "$ref": "#/components/schemas/Pin" + "catalog_type": { + "$ref": "#/components/schemas/CatalogsType" } }, "required": [ - "metadata", - "pin" - ] + "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", @@ -24120,6 +26297,7 @@ "$ref": "#/components/schemas/CatalogsProductGroupFilters" }, "is_featured": { + "deprecated": true, "description": "boolean indicator of whether the product group is being featured or not", "type": "boolean" }, @@ -24150,6 +26328,14 @@ "type": "string", "pattern": "^\\d+$", "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "locale": { + "type": "string", + "nullable": true } }, "required": [ @@ -24309,6 +26495,7 @@ "nullable": true }, "is_featured": { + "deprecated": true, "description": "boolean indicator of whether the product group is being featured or not", "type": "boolean", "default": false @@ -24395,6 +26582,9 @@ { "$ref": "#/components/schemas/GenderFilter" }, + { + "$ref": "#/components/schemas/MediaTypeFilter" + }, { "$ref": "#/components/schemas/ProductType4Filter" }, @@ -24647,11 +26837,95 @@ "values" ] }, - "CatalogsProductGroupProductCounts": { - "title": "catalogs_product_group_product_counts", + "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 @@ -24667,9 +26941,14 @@ "total": { "type": "number", "minimum": 0 + }, + "videos": { + "type": "number", + "minimum": 0 } }, "required": [ + "catalog_type", "in_stock", "out_of_stock", "preorder", @@ -24714,6 +26993,7 @@ "nullable": true }, "is_featured": { + "deprecated": true, "description": "boolean indicator of whether the product group is being featured or not", "type": "boolean" }, @@ -24722,9 +27002,31 @@ } } }, - "CatalogsProductMetadata": { + "CatalogsRetailProduct": { "type": "object", - "description": "Product metadata entity", + "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.", @@ -24967,13 +27269,24 @@ "additionalProperties": false, "properties": { "catalog_type": { - "$ref": "#/components/schemas/CatalogsType" + "type": "string", + "enum": [ + "RETAIL" + ] }, "country": { "$ref": "#/components/schemas/Country" }, "language": { - "$ref": "#/components/schemas/Language" + "description": "We recommend using the CatalogsLocale values.", + "anyOf": [ + { + "$ref": "#/components/schemas/CatalogsLocale" + }, + { + "$ref": "#/components/schemas/Language" + } + ] }, "items": { "minItems": 1, @@ -25079,10 +27392,7 @@ "operation": { "type": "string", "enum": [ - "CREATE", - "UPDATE", - "UPSERT", - "DELETE" + "CREATE" ] }, "attributes": { @@ -25107,10 +27417,7 @@ "operation": { "type": "string", "enum": [ - "CREATE", - "UPDATE", - "UPSERT", - "DELETE" + "UPDATE" ] }, "attributes": { @@ -25188,10 +27495,7 @@ "operation": { "type": "string", "enum": [ - "CREATE", - "UPDATE", - "UPSERT", - "DELETE" + "UPSERT" ] }, "attributes": { @@ -25216,9 +27520,6 @@ "operation": { "type": "string", "enum": [ - "CREATE", - "UPDATE", - "UPSERT", "DELETE" ] } @@ -25234,13 +27535,24 @@ "additionalProperties": false, "properties": { "catalog_type": { - "$ref": "#/components/schemas/CatalogsType" + "type": "string", + "enum": [ + "HOTEL" + ] }, "country": { "$ref": "#/components/schemas/Country" }, "language": { - "$ref": "#/components/schemas/Language" + "description": "We recommend using the CatalogsLocale values.", + "anyOf": [ + { + "$ref": "#/components/schemas/CatalogsLocale" + }, + { + "$ref": "#/components/schemas/Language" + } + ] }, "items": { "minItems": 1, @@ -25386,6 +27698,42 @@ } } }, + "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": { @@ -25478,19 +27826,79 @@ } } }, + "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": { - "$ref": "#/components/schemas/CatalogsType" + "type": "string", + "enum": [ + "CREATIVE_ASSETS" + ] }, "country": { "$ref": "#/components/schemas/Country" }, "language": { - "$ref": "#/components/schemas/Language" + "description": "We recommend using the CatalogsLocale values.", + "anyOf": [ + { + "$ref": "#/components/schemas/CatalogsLocale" + }, + { + "$ref": "#/components/schemas/Language" + } + ] }, "items": { "minItems": 1, @@ -25889,12 +28297,12 @@ "additionalProperties": false, "properties": { "event_name": { - "description": "The type of the user event. Please use the right event_name otherwise the event won’t be accepted and show up correctly in reports.

  • add_to_cart
  • checkout
  • custom
  • lead
  • page_visit
  • search
  • signup
  • view_category
  • watch_video", + "description": "

    The type of the user event. Please use the right event_name otherwise the event won't be accepted and show up correctly in reports.\n

      \n
    • add_to_cart
    • \n
    • checkout
    • \n
    • custom
    • \n
    • lead
    • \n
    • page_visit
    • \n
    • search
    • \n
    • signup
    • \n
    • view_category
    • \n
    • watch_video
    • \n
    \n

    \n", "type": "string", "example": "checkout" }, "action_source": { - "description": "The source indicating where the conversion event occurred.
  • app_android
  • app_ios
  • web
  • offline", + "description": "

    \n The source indicating where the conversion event occurred.\n

      \n
    • app_android
    • \n
    • app_ios
    • \n
    • web
    • \n
    • offline
    • \n
    \n

    \n", "type": "string", "example": "app_ios" }, @@ -26035,7 +28443,7 @@ "example": "sample string" }, "opt_out_type": { - "description": "Flags for different privacy rights laws to opt out users of sharing personal information. Values should be comma separated. Please follow the Help Center and dev site for specific opt_out_type set up.", + "description": "Flags for different privacy rights laws to opt out users of sharing personal information. Values should be comma separated. Please follow the Help Center and dev site for specific opt_out_type set up.", "example": "LDP", "type": "string", "nullable": true @@ -26129,7 +28537,7 @@ { "properties": { "em": { - "description": "Sha256 hashes of lowercase version of user's email addresses. Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA.", + "description": "Sha256 hashes of lowercase version of user's email addresses. Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26140,7 +28548,7 @@ ] }, "hashed_maids": { - "description": "Sha256 hashes of user's \"Google Advertising IDs\" (GAIDs) or \"Apple's Identifier for Advertisers\" (IDFAs). Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA.", + "description": "Sha256 hashes of user's \"Google Advertising IDs\" (GAIDs) or \"Apple's Identifier for Advertisers\" (IDFAs). Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26168,7 +28576,7 @@ { "properties": { "em": { - "description": "Sha256 hashes of lowercase version of user's email addresses. Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA.", + "description": "Sha256 hashes of lowercase version of user's email addresses. Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26179,7 +28587,7 @@ ] }, "hashed_maids": { - "description": "Sha256 hashes of user's \"Google Advertising IDs\" (GAIDs) or \"Apple's Identifier for Advertisers\" (IDFAs). Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA.", + "description": "Sha256 hashes of user's \"Google Advertising IDs\" (GAIDs) or \"Apple's Identifier for Advertisers\" (IDFAs). Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26207,7 +28615,7 @@ { "properties": { "em": { - "description": "Sha256 hashes of lowercase version of user's email addresses. Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA.", + "description": "Sha256 hashes of lowercase version of user's email addresses. Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26218,7 +28626,7 @@ ] }, "hashed_maids": { - "description": "Sha256 hashes of user's \"Google Advertising IDs\" (GAIDs) or \"Apple's Identifier for Advertisers\" (IDFAs). Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA.", + "description": "Sha256 hashes of user's \"Google Advertising IDs\" (GAIDs) or \"Apple's Identifier for Advertisers\" (IDFAs). Used for matching. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26247,7 +28655,7 @@ ], "properties": { "ph": { - "description": "Sha256 hashes of user's phone numbers, only digits with country code, area code, and number. Remove any symbols, letters, spaces and leading zeros. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA.", + "description": "Sha256 hashes of user's phone numbers, only digits with country code, area code, and number. Remove any symbols, letters, spaces and leading zeros. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26257,7 +28665,7 @@ ] }, "ge": { - "description": "Sha256 hashes of user's gender, in lowercase. Either \"f\" or \"m\" or \"n\" for non-binary gender.", + "description": "Sha256 hashes of user's gender, in lowercase. Either \"f\" or \"m\" or \"n\" for non-binary gender. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26267,7 +28675,7 @@ ] }, "db": { - "description": "Sha256 hashes of user's date of birthday, given as year, month, and day.", + "description": "Sha256 hashes of user's date of birthday, given as year, month, and day. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26277,7 +28685,7 @@ ] }, "ln": { - "description": "Sha256 hashes of user's last name, in lowercase. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA.", + "description": "Sha256 hashes of user's last name, in lowercase. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26287,7 +28695,7 @@ ] }, "fn": { - "description": "Sha256 hashes of user's first name, in lowercase. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA.", + "description": "Sha256 hashes of user's first name, in lowercase. We highly recommend this on checkout events at least. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26297,7 +28705,7 @@ ] }, "ct": { - "description": "Sha256 hashes of user's city, in lowercase, and without spaces or punctuation. User residency city (mostly billing).", + "description": "Sha256 hashes of user's city, in lowercase, and without spaces or punctuation. User residency city (mostly billing). The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26307,7 +28715,7 @@ ] }, "st": { - "description": "Sha256 hashes of user's state, given as a two-letter code in lowercase. User residency state (mostly billing).", + "description": "Sha256 hashes of user's state, given as a two-letter code in lowercase. User residency state (mostly billing). The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26317,7 +28725,7 @@ ] }, "zp": { - "description": "Sha256 hashes of user's zipcode, only digits. User residency zipcode (mostly billing).", + "description": "Sha256 hashes of user's zipcode, only digits. User residency zipcode (mostly billing). The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26327,7 +28735,7 @@ ] }, "country": { - "description": "Sha256 hashes of two-character ISO-3166 country code indicating the user's country, in lowercase.", + "description": "Sha256 hashes of two-character ISO-3166 country code indicating the user's country, in lowercase. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26337,7 +28745,7 @@ ] }, "external_id": { - "description": "Sha256 hashes of the unique id from the advertiser that identifies a user in their space, e.g. user id, loyalty id, etc. We highly recommend this on all events. It may improve reporting performance such as ROAS/CPA.", + "description": "Sha256 hashes of the unique id from the advertiser that identifies a user in their space, e.g. user id, loyalty id, etc. We highly recommend this on all events. It may improve reporting performance such as ROAS/CPA. The string should be in the UTF-8 format.", "type": "array", "items": { "type": "string" @@ -26929,6 +29337,37 @@ } } }, + "CreateAssetGroupBody": { + "type": "object", + "properties": { + "asset_group_name": { + "description": "Asset Group name", + "example": "Canada Ad Accounts", + "type": "string" + }, + "asset_group_description": { + "description": "Asset group description", + "example": "Asset groups that has ad accounts shared in Canada", + "type": "string" + }, + "asset_group_types": { + "$ref": "#/components/schemas/AssetGroupTypes" + } + }, + "required": [ + "asset_group_types", + "asset_group_description", + "asset_group_name" + ] + }, + "CreateAssetGroupResponse": { + "type": "object", + "properties": { + "asset_group": { + "$ref": "#/components/schemas/AssetGroupBinding" + } + } + }, "CreateInvitesResultsResponseArray": { "type": "object", "properties": { @@ -27181,7 +29620,9 @@ "MXN", "ARS", "CLP", - "COP" + "COP", + "INR", + "TRY" ] }, "CurrencyFilter": { @@ -27800,6 +30241,11 @@ }, "asset_type": { "$ref": "#/components/schemas/AssetTypeResponse" + }, + "asset_group_info": { + "nullable": true, + "description": "An object containing all the information specific to the provided asset group. This field will be populated only if asset_type equals 'ASSET_GROUP'.", + "$ref": "#/components/schemas/AssetGroupBinding" } } }, @@ -27884,6 +30330,11 @@ "example": "FINANCE_MANAGER", "type": "string" } + }, + "asset_group_info": { + "nullable": true, + "description": "An object containing all the information specific to the provided asset group. This field will be populated only if asset_type equals 'ASSET_GROUP'.", + "$ref": "#/components/schemas/AssetGroupBinding" } } }, @@ -28359,6 +30810,8 @@ "properties": { "logs": { "type": "array", + "minItems": 1, + "maxItems": 250, "items": { "$ref": "#/components/schemas/IntegrationLog" } @@ -28827,6 +31280,125 @@ ], "type": "string" }, + "AssetGroupBinding": { + "type": "object", + "properties": { + "id": { + "description": "Asset Group ID.", + "example": "666791336903426391", + "type": "string", + "pattern": "^\\d+$" + }, + "asset_group_name": { + "type": "string", + "description": "Asset Group name", + "example": "Canada Ad Accounts", + "nullable": true + }, + "asset_group_description": { + "type": "string", + "description": "Asset group description", + "example": "Asset group that has ad accounts used in Canada", + "nullable": true + }, + "asset_group_types": { + "type": "array", + "description": "Asset group types", + "example": [ + "LOCATION_OR_LANGUAGE" + ], + "items": { + "description": "The types of the asset group.", + "example": "LOCATION_OR_LANGUAGE", + "type": "string" + } + }, + "ad_accounts_ids": { + "description": "A list of ad account IDs under the asset group", + "example": [ + "549755885175" + ], + "type": "array", + "nullable": true, + "items": { + "description": "The ID of an ad account in the asset group.", + "example": "549755885175", + "type": "string", + "pattern": "^\\d+$" + } + }, + "profiles_ids": { + "description": "A list of profile IDs under asset group", + "example": [ + "630433785246278264" + ], + "type": "array", + "nullable": true, + "items": { + "description": "The ID of a profile in an asset group.", + "example": "630433785246278264", + "type": "string", + "pattern": "^\\d+$" + } + }, + "created_time": { + "description": "The creation time of the asset group", + "example": 1646767577816, + "nullable": true, + "type": "integer" + }, + "updated_time": { + "description": "The last update time of the asset group", + "example": 1646767577816, + "nullable": true, + "type": "integer" + }, + "owner": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/BusinessAccessUserSummary" + } + ], + "description": "The data of the business that owns the asset group.", + "nullable": true + }, + "created_by": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/BusinessAccessUserSummary" + } + ], + "description": "The data of the user that created the asset group.", + "nullable": true + } + } + }, + "AssetGroupType": { + "description": "Asset group type", + "enum": [ + "BRAND", + "LOCATION_OR_LANGUAGE", + "PRODUCT_LINE", + "OTHER" + ], + "example": "BRAND", + "type": "string" + }, + "AssetGroupTypes": { + "description": "Asset Group Types. Note: The asset group types are used for user reference and categorization purposes only and do not impact the functionality of the asset group.", + "example": [ + "BRAND", + "LOCATION_OR_LANGUAGE", + "PRODUCT_LINE", + "OTHER" + ], + "type": "array", + "items": { + "$ref": "#/components/schemas/AssetGroupType" + } + }, "ItemAttributes": { "type": "object", "allOf": [ @@ -28855,6 +31427,12 @@ "items": { "type": "string" } + }, + "video_link": { + "description": "

    <= 2,000 characters

    \n

    Hosted link to the product video.

    \n

    File types for linked videos must be .mp4, .mov or .m4v.

    \n

    File size cannot exceed 2GB.

    ", + "example": "https://www.example.com/cat/womens-clothing/denim-shirt-0294.mp4", + "type": "string", + "nullable": true } } }, @@ -28901,6 +31479,12 @@ "nullable": false } ] + }, + "video_link": { + "description": "

    <= 2,000 characters

    \n

    Hosted link to the product video.

    \n

    File types for linked videos must be .mp4, .mov or .m4v.

    \n

    File size cannot exceed 2GB.

    ", + "example": "https://www.example.com/cat/womens-clothing/denim-shirt-0294.mp4", + "type": "string", + "nullable": true } } }, @@ -29321,9 +31905,8 @@ }, "bid": { "type": "integer", - "minimum": 1, - "description": "Keyword custom bid in microcurrency - null if inherited from parent ad group.", - "example": 200000, + "description": "

    Note: bid field has been deprecated. Input will not be set and field will return null. Keyword custom bid in microcurrency - null if inherited from parent ad group.", + "example": null, "nullable": true, "title": "bid" } @@ -29336,7 +31919,7 @@ "type": "object", "properties": { "keywords": { - "description": "Keywords to update. Object array. Each object has 3 possible fields:
    1. \"id\": (required) keyword ID
    2. \"archived\": boolean. Should keyword be archived?
    3. \"bid\": number
    For example: [{\"id\":\"2886610576653\", \"archived\": false, \"bid\": 20000}, {\"id\":\"2886610576654\", \"archived\": true, \"bid\": 20000}, ...]", + "description": "Keywords to update. Object array. Each object has 2 possible fields:
    1. \"id\": (required) keyword ID
    2. \"archived\": boolean. Should keyword be archived?
    For example: [{\"id\":\"2886610576653\", \"archived\": false}, {\"id\":\"2886610576654\", \"archived\": true}, ...]", "type": "array", "items": { "$ref": "#/components/schemas/KeywordUpdate" @@ -29353,8 +31936,8 @@ "properties": { "bid": { "type": "integer", - "description": "Keyword custom bid in microcurrency - null if inherited from parent ad group.", - "example": 200000, + "description": "

    Note: bid field has been deprecated. Input will not be set and field will return null. Keyword custom bid in microcurrency - null if inherited from parent ad group.", + "example": null, "nullable": true }, "match_type": { @@ -29544,7 +32127,7 @@ "nullable": true }, "has_accepted_terms": { - "description": "Whether the advertiser has accepted Pinterest's terms of service for creating a lead ad.", + "description": "Whether the advertiser has accepted Pinterest's terms of service for creating a lead ad.\n\nBy sending us TRUE for this parameter, you agree that (i) you will use any personal information received in\ncompliance with the privacy policy you share with Pinterest, and (ii) you will comply with Pinterest's Lead Ad Terms. As a reminder, all advertising on Pinterest is subject to the Pinterest Advertising Services Agreement or an equivalent agreement as set forth on an IO", "example": false, "type": "boolean" }, @@ -29584,6 +32167,33 @@ "items": { "$ref": "#/components/schemas/LeadFormQuestion" } + }, + "policy_links": { + "description": "List of additional policy links to be displayed on the lead form.", + "example": [ + { + "label": "Copyright", + "link": "https://policy.pinterest.com/en/copyright" + } + ], + "type": "array", + "minItems": 0, + "maxItems": 3, + "items": { + "type": "object", + "properties": { + "label": { + "description": "Policy label for an additional policy link.", + "nullable": false, + "type": "string" + }, + "link": { + "description": "Policy link for an additional policy link.", + "nullable": false, + "type": "string" + } + } + } } } }, @@ -29638,14 +32248,13 @@ "EMAIL", "PHONE_NUMBER", "ZIP_CODE", - "AGE", "GENDER", "CITY", "COUNTRY", - "PREFERRED_CONTACT_METHOD", "STATE_PROVINCE", "ADDRESS", - "DATE_OF_BIRTH" + "DATE_OF_BIRTH", + "AGE" ] }, "LeadFormTestRequest": { @@ -29728,6 +32337,131 @@ "ACTIVE" ] }, + "LeadFormArrayResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/LeadFormResponse" + }, + "exceptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Exception" + } + } + } + } + } + } + }, + "LeadFormCreateRequest": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/LeadFormCommon" + }, + { + "required": [ + "name", + "questions", + "privacy_policy_link", + "has_accepted_terms", + "completion_message" + ] + } + ] + }, + "LeadFormUpdateRequest": { + "type": "object", + "allOf": [ + { + "type": "object" + }, + { + "$ref": "#/components/schemas/LeadFormCommon" + }, + { + "required": [ + "id" + ], + "properties": { + "id": { + "title": "id", + "description": "The ID of this lead form to be updated", + "type": "string", + "example": "7765300871171", + "pattern": "^\\d+$" + } + } + } + ] + }, + "LeadsExportCreateRequest": { + "type": "object", + "properties": { + "start_date": { + "description": "Export leads collected on and after start date (UTC). Format: YYYY-MM-DD", + "type": "string", + "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$", + "example": "2020-12-20" + }, + "end_date": { + "description": "Export leads collected on and before end date (UTC). Format: YYYY-MM-DD", + "type": "string", + "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$", + "example": "2020-12-20" + }, + "ad_id": { + "description": "ID for the ad collecting leads", + "type": "string", + "pattern": "^\\d+$", + "example": "687201361754" + } + }, + "required": [ + "start_date", + "end_date", + "ad_id" + ] + }, + "LeadsExportCreateResponse": { + "type": "object", + "properties": { + "leads_export_id": { + "example": "123456789012", + "description": "ID for the leads export job", + "type": "string", + "pattern": "^\\d+$" + } + } + }, + "LeadsExportStatus": { + "type": "string", + "description": "Status of a leads export job", + "example": "IN_PROGRESS", + "enum": [ + "IN_PROGRESS", + "FINISHED", + "FAILED" + ] + }, + "LeadsExportResponseData": { + "type": "object", + "properties": { + "export_status": { + "$ref": "#/components/schemas/LeadsExportStatus" + }, + "download_url": { + "type": "string", + "nullable": true + } + } + }, "LinkedBusiness": { "title": "LinkedBusiness", "type": "object", @@ -30036,7 +32770,8 @@ "KEYWORD", "PRODUCT_GROUP", "PRODUCT_GROUP_TARGETING", - "PRODUCT_ITEM" + "PRODUCT_ITEM", + "PRODUCT_ITEM_TARGETING" ] }, "MetricsResponse": { @@ -30724,7 +33459,8 @@ "propertyName": "grant_type", "mapping": { "authorization_code": "#/components/schemas/OauthAccessTokenRequestCode", - "refresh_token": "#/components/schemas/OauthAccessTokenRequestRefresh" + "refresh_token": "#/components/schemas/OauthAccessTokenRequestRefresh", + "client_credentials": "#/components/schemas/OauthAccessTokenRequestClientCredentials" } }, "properties": { @@ -30732,7 +33468,8 @@ "type": "string", "enum": [ "authorization_code", - "refresh_token" + "refresh_token", + "client_credentials" ] } }, @@ -30745,9 +33482,6 @@ "title": "authorization_code", "description": "A request to exchange an authorization code for an access token.", "allOf": [ - { - "$ref": "#/components/schemas/OauthAccessTokenRequest" - }, { "type": "object", "properties": { @@ -30763,6 +33497,19 @@ "redirect_uri" ] } + ], + "properties": { + "grant_type": { + "type": "string", + "enum": [ + "authorization_code", + "refresh_token", + "client_credentials" + ] + } + }, + "required": [ + "grant_type" ] }, "OauthAccessTokenRequestRefresh": { @@ -30770,9 +33517,6 @@ "description": "A request to exchange a refresh token for a new access token.", "type": "object", "allOf": [ - { - "$ref": "#/components/schemas/OauthAccessTokenRequest" - }, { "type": "object", "properties": { @@ -30791,18 +33535,73 @@ "refresh_token" ] } + ], + "properties": { + "grant_type": { + "type": "string", + "enum": [ + "authorization_code", + "refresh_token", + "client_credentials" + ] + } + }, + "required": [ + "grant_type" + ] + }, + "OauthAccessTokenRequestClientCredentials": { + "title": "client_credentials", + "description": "A request to receive a client token.", + "type": "object", + "allOf": [ + { + "type": "object", + "properties": { + "scope": { + "type": "string" + } + }, + "required": [ + "scope" + ] + } + ], + "properties": { + "grant_type": { + "type": "string", + "enum": [ + "authorization_code", + "refresh_token", + "client_credentials" + ] + } + }, + "required": [ + "grant_type" ] }, "OauthAccessTokenResponse": { "title": "OAuth access token response", "description": "A successful OAuth access token response.", "type": "object", + "discriminator": { + "propertyName": "response_type", + "mapping": { + "authorization_code": "#/components/schemas/OauthAccessTokenResponseCode", + "refresh_token": "#/components/schemas/OauthAccessTokenResponseRefresh", + "client_credentials": "#/components/schemas/OauthAccessTokenResponseClientCredentials", + "integration_refresh": "#/components/schemas/OauthAccessTokenResponseIntegrationRefresh", + "everlasting_refresh": "#/components/schemas/OauthAccessTokenResponseEverlastingRefresh" + } + }, "properties": { "response_type": { "type": "string", "enum": [ "authorization_code", - "refresh_token" + "refresh_token", + "client_credentials" ] }, "access_token": { @@ -30819,15 +33618,6 @@ "type": "string" } }, - "discriminator": { - "propertyName": "response_type", - "mapping": { - "authorization_code": "#/components/schemas/OauthAccessTokenResponseCode", - "refresh_token": "#/components/schemas/OauthAccessTokenResponseRefresh", - "integration_refresh": "#/components/schemas/OauthAccessTokenResponseIntegrationRefresh", - "everlasting_refresh": "#/components/schemas/OauthAccessTokenResponseEverlastingRefresh" - } - }, "required": [ "access_token", "token_type", @@ -30840,9 +33630,6 @@ "description": "A successful OAuth access token response for the authorization code flow.", "type": "object", "allOf": [ - { - "$ref": "#/components/schemas/OauthAccessTokenResponse" - }, { "type": "object", "properties": { @@ -30858,6 +33645,35 @@ "refresh_token_expires_in" ] } + ], + "properties": { + "response_type": { + "type": "string", + "enum": [ + "authorization_code", + "refresh_token", + "client_credentials" + ] + }, + "access_token": { + "type": "string" + }, + "token_type": { + "type": "string", + "default": "bearer" + }, + "expires_in": { + "type": "integer" + }, + "scope": { + "type": "string" + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "scope" ] }, "OauthAccessTokenResponseEverlastingRefresh": { @@ -30865,9 +33681,6 @@ "description": "A successful OAuth access token response for the refresh token flow, with an added everlasting refresh token.", "type": "object", "allOf": [ - { - "$ref": "#/components/schemas/OauthAccessTokenResponse" - }, { "type": "object", "properties": { @@ -30887,6 +33700,35 @@ "refresh_token_expires_at" ] } + ], + "properties": { + "response_type": { + "type": "string", + "enum": [ + "authorization_code", + "refresh_token", + "client_credentials" + ] + }, + "access_token": { + "type": "string" + }, + "token_type": { + "type": "string", + "default": "bearer" + }, + "expires_in": { + "type": "integer" + }, + "scope": { + "type": "string" + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "scope" ] }, "OauthAccessTokenResponseIntegrationRefresh": { @@ -30894,9 +33736,6 @@ "description": "A successful OAuth access token response for the refresh token flow, with an added refresh token.", "type": "object", "allOf": [ - { - "$ref": "#/components/schemas/OauthAccessTokenResponse" - }, { "type": "object", "properties": { @@ -30912,6 +33751,35 @@ "refresh_token_expires_in" ] } + ], + "properties": { + "response_type": { + "type": "string", + "enum": [ + "authorization_code", + "refresh_token", + "client_credentials" + ] + }, + "access_token": { + "type": "string" + }, + "token_type": { + "type": "string", + "default": "bearer" + }, + "expires_in": { + "type": "integer" + }, + "scope": { + "type": "string" + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "scope" ] }, "OauthAccessTokenResponseRefresh": { @@ -30920,20 +33788,84 @@ "type": "object", "allOf": [ { - "$ref": "#/components/schemas/OauthAccessTokenResponse" + "type": "object", + "properties": { + "response_type": { + "type": "string", + "enum": [ + "authorization_code", + "refresh_token", + "client_credentials" + ] + }, + "access_token": { + "type": "string" + }, + "token_type": { + "type": "string", + "default": "bearer" + }, + "expires_in": { + "type": "integer" + }, + "scope": { + "type": "string" + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "scope" + ] } ] }, + "OauthAccessTokenResponseClientCredentials": { + "title": "OAuth client token response", + "description": "A successful OAuth client token response for the client token flow.", + "type": "object", + "properties": { + "response_type": { + "type": "string", + "enum": [ + "authorization_code", + "refresh_token", + "client_credentials" + ] + }, + "access_token": { + "type": "string" + }, + "token_type": { + "type": "string", + "default": "bearer" + }, + "expires_in": { + "type": "integer" + }, + "scope": { + "type": "string" + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "scope" + ] + }, "ObjectiveType": { "type": "string", - "description": "Campaign objective type. If set as one of [\"AWARENESS\", \"CONSIDERATION\", \"WEB_CONVERSION\", \"CATALOG_SALES\"] the campaign is considered as a Campaign Budget Optimization (CBO) campaign, meaning budget needs to be set at the campaign level rather than at the ad group level. [\"WEB_SESSIONS\"] is DEPRECATED. For update, only draft campaigns may update objective type.", + "description": "Campaign objective type. If set as one of [\"AWARENESS\", \"CONSIDERATION\", \"WEB_CONVERSION\", \"CATALOG_SALES\", \"VIDEO_COMPLETION\"] the campaign is considered as a Campaign Budget Optimization (CBO) campaign, meaning budget needs to be set at the campaign level rather than at the ad group level. [\"WEB_SESSIONS\"] is DEPRECATED. For update, only draft campaigns may update objective type.", "enum": [ "AWARENESS", "CONSIDERATION", "VIDEO_VIEW", "WEB_CONVERSION", "CATALOG_SALES", - "WEB_SESSIONS" + "WEB_SESSIONS", + "VIDEO_COMPLETION" ] }, "OptimizationGoalMetadata": { @@ -30979,7 +33911,7 @@ "pattern": "^[0-9]+$" }, "is_roas_optimized": { - "description": "Ad group is ROAS optimized", + "description": "ROAS optimization is not supported", "nullable": true, "title": "is_roas_optimized", "type": "boolean" @@ -31298,6 +34230,7 @@ "AUDIENCE_MANAGER", "CAMPAIGN_MANAGER", "CATALOGS_MANAGER", + "CATALOGS_VIEWER", "PROFILE_PUBLISHER", "OWNER" ] @@ -31405,7 +34338,7 @@ "nullable": true }, "is_standard": { - "description": "Whether the Pin is standard or not. See documentation on Changes to Pin creation for more information.", + "description": "Whether the Pin is standard or not. See documentation on Changes to Pin creation for more information.", "type": "boolean" }, "has_been_promoted": { @@ -31423,23 +34356,18 @@ "type": "object", "nullable": true, "example": { - "pin_metrics": [ - { - "90d": { - "pin_click": 7, - "impression": 2, - "clickthrough": 3 - }, - "all_time": { - "pin_click": 7, - "impression": 2, - "clickthrough": 3, - "reaction": 10, - "comment": 2 - } - }, - null - ] + "90d": { + "pin_click": 7, + "impression": 2, + "clickthrough": 3 + }, + "lifetime_metrics": { + "pin_click": 7, + "impression": 2, + "clickthrough": 3, + "reaction": 10, + "comment": 2 + } } } } @@ -32711,6 +35639,17 @@ "items": { "$ref": "#/components/schemas/QuizPinResult" } + }, + "tie_breaker_type": { + "type": "string", + "description": "Quiz ad tie breaker type, default is RANDOM", + "enum": [ + "RANDOM", + "CUSTOM" + ] + }, + "tie_breaker_custom_result": { + "$ref": "#/components/schemas/QuizPinResult" } } }, @@ -33103,11 +36042,20 @@ "TOTAL_SIGNUP", "TOTAL_CHECKOUT", "TOTAL_CUSTOM", + "TOTAL_ADD_TO_CART", "TOTAL_LEAD", + "TOTAL_SEARCH", + "TOTAL_WATCH_VIDEO", + "TOTAL_VIEW_CATEGORY", "TOTAL_APP_INSTALL", "TOTAL_SIGNUP_VALUE_IN_MICRO_DOLLAR", "TOTAL_CHECKOUT_VALUE_IN_MICRO_DOLLAR", "TOTAL_CUSTOM_VALUE_IN_MICRO_DOLLAR", + "TOTAL_ADD_TO_CART_VALUE_IN_MICRO_DOLLAR", + "TOTAL_LEAD_VALUE_IN_MICRO_DOLLAR", + "TOTAL_SEARCH_VALUE_IN_MICRO_DOLLAR", + "TOTAL_WATCH_VIDEO_VALUE_IN_MICRO_DOLLAR", + "TOTAL_VIEW_CATEGORY_VALUE_IN_MICRO_DOLLAR", "TOTAL_APP_INSTALL_VALUE_IN_MICRO_DOLLAR", "TOTAL_CHECKOUT_QUANTITY", "PAGE_VISIT_COST_PER_ACTION", @@ -33131,6 +36079,7 @@ "VIDEO_P75_COMBINED_2", "VIDEO_P95_COMBINED_2", "VIDEO_MRC_VIEWS_2", + "PAID_VIDEO_VIEWABLE_RATE", "VIDEO_LENGTH", "CPV_IN_MICRO_DOLLAR", "ECPV_IN_DOLLAR", @@ -33922,6 +36871,41 @@ } } }, + "SharedAudienceAccount": { + "type": "object", + "properties": { + "account_id": { + "description": "Account ID (ad account or business ID).", + "example": "549755885175", + "type": "string", + "pattern": "^\\d+$" + }, + "account_name": { + "description": "Account name.", + "example": "Home Depot USA", + "type": "string" + }, + "account_type": { + "type": "string", + "description": "account type", + "enum": [ + "AD_ACCOUNT", + "BUSINESS_ACCOUNT" + ] + }, + "shared_on_timestamp": { + "description": "Epoch timestamp in seconds for the shared audience event", + "example": 1677003860, + "type": "integer" + } + }, + "required": [ + "account_id", + "account_name", + "account_type", + "shared_on_timestamp" + ] + }, "SingleInterestTargetingOptionResponse": { "title": "SingleInterestTargetingOptionData", "type": "object", @@ -34565,7 +37549,9 @@ "AD_ONLY_PIN", "CAMPAIGN_NAME", "CAMPAIGN_STATUS", + "IS_CAMPAIGN_LEARNING_PHASE", "DATE", + "DATE_AS_TIMESTAMP", "BUDGET_IN_DOLLAR", "AVAILABLE_BUDGET_IN_DOLLAR", "TARGETING_TYPE", @@ -34648,6 +37634,7 @@ "ITEM_ID", "PRODUCT_ITEM_ID", "INTERNAL_PRODUCT_ITEM_ID", + "INTERNAL_PRODUCT_ITEM_ID_STR", "PRODUCT_ITEM_NAME", "PRODUCT_ITEM_IMAGE_URL", "PRODUCT_ITEM_PRICE", @@ -34657,6 +37644,10 @@ "ORDER_LINE_PAID_TYPE", "SPEND_ORDER_LINE_ID", "SPEND_ORDER_LINE_PAID_TYPE", + "CONVERSION_PRODUCT_ID", + "CONVERSION_PRODUCT_NAME", + "CONVERSION_PRODUCT_BRAND", + "CONVERSION_PRODUCT_CATEGORY", "CLICKTHROUGH_1", "REPIN_1", "IMPRESSION_1", @@ -34696,7 +37687,9 @@ "TOTAL_SEND", "TOTAL_FLAG", "TOTAL_IMPRESSION_USER", + "TOTAL_IMPRESSION_USER_HLL", "TOTAL_IMPRESSION_FREQUENCY", + "TOTAL_IMPRESSION_FREQUENCY_HLL", "TOTAL_OUTBOUND_CLICK", "COST_PER_OUTBOUND_CLICK_IN_DOLLAR", "ENGAGEMENT_PAGE_VISIT_1", @@ -35126,6 +38119,8 @@ "IS_AUTOMATED_CAMPAIGN", "IS_PREMIERE_CAMPAIGN", "FLEXIBLE_DAILY_BUDGETS", + "IS_PERFORMANCE_PLUS_CAMPAIGN", + "IS_DCO_FORMAT_ENHANCMENT", "PERCENT_CROSS_DEVICE_CONVERSIONS", "PAGE_VISIT_PERCENT_CROSS_DEVICE_CONVERSIONS", "SIGNUP_PERCENT_CROSS_DEVICE_CONVERSIONS", @@ -35423,6 +38418,9 @@ "VIDEO_AVG_WATCHTIME_2", "VIDEO_MRC_VIEWS_2", "VIDEO_VIEW_RATE_2", + "PAID_VIDEO_VIEW", + "PAID_VIDEO_IMPRESSION", + "PAID_VIDEO_VIEWABLE_RATE", "VIDEO_LENGTH", "CPV_IN_MICRO_DOLLAR", "CPV_IN_DOLLAR", @@ -35912,7 +38910,209 @@ "TARGETING_COUNTRY", "TARGETING_LOCATION", "TARGETING_APPTYPE", - "TARGETING_LOCATION_CODE" + "TARGETING_LOCATION_CODE", + "TARGETING_MEDIA_TYPE", + "TOTAL_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_INAPP_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_OFFLINE_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_CONVERSION_PRODUCT_VALUE", + "TOTAL_INAPP_CONVERSION_PRODUCT_VALUE", + "TOTAL_OFFLINE_CONVERSION_PRODUCT_VALUE", + "TOTAL_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_INAPP_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_OFFLINE_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_INAPP_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_OFFLINE_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_INAPP_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_OFFLINE_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_CHECKOUT_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_CHECKOUT_CONVERSION_PRODUCT_VALUE", + "TOTAL_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_VALUE", + "TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_VALUE", + "TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_VALUE", + "TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_VALUE", + "TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_VALUE", + "TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_SIGNUP_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_SIGNUP_CONVERSION_PRODUCT_VALUE", + "TOTAL_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_VALUE", + "TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_VALUE", + "TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE", + "TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_LEAD_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_LEAD_CONVERSION_PRODUCT_VALUE", + "TOTAL_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_LEAD_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_LEAD_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_LEAD_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_LEAD_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_VALUE", + "TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_SEARCH_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_SEARCH_CONVERSION_PRODUCT_VALUE", + "TOTAL_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_SEARCH_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_VALUE", + "TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE", + "TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_CUSTOM_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_CUSTOM_CONVERSION_PRODUCT_VALUE", + "TOTAL_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_VALUE", + "TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_UNKNOWN_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_UNKNOWN_CONVERSION_PRODUCT_VALUE", + "TOTAL_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_VALUE", + "TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_VALUE", + "TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_QUANTITY", + "TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_VALUE", + "TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS", + "TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_USD", + "TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD", + "TOTAL_CHECKOUT_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_SIGNUP_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_LEAD_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WEB_LEAD_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_SEARCH_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_CUSTOM_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_UNKNOWN_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_COUNT_UNIQUE", + "TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_COUNT_UNIQUE" ] }, "type": "array" @@ -36739,6 +39939,160 @@ } } }, + "UpdateAssetGroupBody": { + "type": "object", + "properties": { + "asset_groups_to_update": { + "type": "array", + "description": "A list of asset groups and the data that will be used to update them.", + "items": { + "type": "object", + "properties": { + "asset_group_id": { + "description": "Unique identifier of the asset group to update.", + "title": "asset_group_id", + "type": "string", + "example": "666791336903426391" + }, + "name": { + "description": "Asset Group name", + "example": "Canada Ad Accounts", + "title": "name", + "type": "string" + }, + "description": { + "description": "Asset group description", + "example": "Asset groups that has ad accounts shared in Canada", + "title": "description", + "type": "string" + }, + "asset_group_types": { + "$ref": "#/components/schemas/AssetGroupTypes" + }, + "assets_to_add": { + "type": "array", + "description": "A list of asset ids to add to the asset group.", + "items": { + "description": "The ID of an asset that will be added to the asset group.", + "example": "549755885175", + "type": "string" + } + }, + "assets_to_remove": { + "type": "array", + "description": "A list of asset ids to remove from the asset group.", + "items": { + "description": "The ID of an asset that will be removed from the asset group.", + "example": "549755885175", + "type": "string" + } + } + }, + "required": [ + "asset_group_id" + ] + } + } + } + }, + "UpdateAssetGroupResponse": { + "type": "object", + "properties": { + "updated_asset_groups": { + "type": "array", + "description": "A list of successfully edited asset groups.", + "items": { + "$ref": "#/components/schemas/AssetGroupBinding" + } + }, + "exceptions": { + "type": "array", + "description": "A list of errors associated with the asset groups. Will be returned if there is an error.", + "nullable": true, + "items": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "description": "Error code associated with the error editing asset group.", + "example": 29 + }, + "message": { + "type": "string", + "description": "Error message associated with the error editing asset group.", + "example": "You are not permitted to access that resource." + }, + "asset_group_id": { + "type": "string", + "description": "Asset group id of the exception.", + "example": "666791336903426391" + } + } + } + } + } + }, + "DeleteAssetGroupBody": { + "description": "Request body used to delete asset groups", + "type": "object", + "required": [ + "asset_groups_to_delete" + ], + "properties": { + "asset_groups_to_delete": { + "description": "List of ids of asset groups to be deleted", + "example": [ + "666791336903426391", + "666791336903426392" + ], + "items": { + "type": "string", + "pattern": "^\\d+$" + }, + "type": "array", + "minItems": 1, + "maxItems": 50 + } + } + }, + "DeleteAssetGroupResponse": { + "type": "object", + "properties": { + "deleted_asset_groups": { + "type": "array", + "description": "A list of ids of successfully deleted asset groups.", + "items": { + "type": "string", + "pattern": "^\\d+$" + } + }, + "exceptions": { + "type": "array", + "description": "A list of errors associated with the asset groups. Will be returned if there is an error.", + "nullable": true, + "items": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "description": "Error code associated with the error deleting asset group.", + "example": 29 + }, + "message": { + "type": "string", + "description": "Error message associated with the error deleting asset group.", + "example": "You are not permitted to access that resource." + }, + "asset_group_id": { + "type": "string", + "description": "Asset group id of the exception.", + "example": "666791336903426391" + } + } + } + } + } + }, "UpdateInvitesResultsResponseArray": { "type": "object", "properties": { @@ -37124,6 +40478,153 @@ } } } + }, + "SharedAudienceCommon": { + "type": "object", + "properties": { + "audience_id": { + "description": "Unique identifier of an audience", + "example": "2542621871096", + "type": "string", + "pattern": "^\\d+$" + }, + "operation_type": { + "$ref": "#/components/schemas/OperationType" + } + } + }, + "SharedAudience": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/SharedAudienceCommon" + }, + { + "title": "SharedAudience", + "type": "object", + "properties": { + "recipient_account_ids": { + "description": "List of ad account IDs to share with or revoke from.", + "type": "array", + "items": { + "type": "string", + "pattern": "^\\d+$" + } + } + }, + "required": [ + "audience_id", + "recipient_account_ids", + "operation_type" + ] + } + ] + }, + "BusinessSharedAudience": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/SharedAudienceCommon" + }, + { + "title": "BusinessSharedAudience", + "type": "object", + "properties": { + "recipient_business_ids": { + "description": "List of business IDs to share with or revoke from.", + "type": "array", + "items": { + "type": "string", + "pattern": "^\\d+$" + } + } + }, + "required": [ + "audience_id", + "recipient_business_ids", + "operation_type" + ] + } + ] + }, + "SharedAudienceResponseCommon": { + "type": "object", + "nullable": true, + "properties": { + "audience_id": { + "description": "Audience ID that was shared", + "example": "2542621871096", + "type": "string" + }, + "permissions": { + "example": [ + "RESOURCE_PINNER_LIST_READER", + "RESOURCE_PINNER_LIST_OWNER" + ], + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + } + } + }, + "SharedAudienceResponse": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/SharedAudienceResponseCommon" + }, + { + "title": "SharedAudienceResponse", + "type": "object", + "nullable": true, + "properties": { + "recipient_account_ids": { + "description": "Account IDs that received the audience", + "example": [ + "549755885175" + ], + "type": "array", + "items": { + "type": "string" + } + } + } + } + ] + }, + "BusinessSharedAudienceResponse": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/SharedAudienceResponseCommon" + }, + { + "title": "BusinessSharedAudienceResponse", + "type": "object", + "nullable": true, + "properties": { + "recipient_business_ids": { + "description": "Business IDs that received the audience", + "example": [ + "549755885175" + ], + "type": "array", + "items": { + "type": "string" + } + } + } + } + ] + }, + "OperationType": { + "type": "string", + "description": "Operation type to share a specific audience or revoke access to a previously shared audience", + "enum": [ + "SHARE", + "REVOKE" + ] } }, "parameters": { @@ -37340,7 +40841,7 @@ } }, "path_catalogs_processing_result_id": { - "description": "Unique identifier of a feed processing result. It can be acquired from the \"id\" field of the \"items\" array within the response of the [List processing results for a given feed](https://developers.pinterest.com/docs/api/v5/#operation/feed_processing_results/list).", + "description": "Unique identifier of a feed processing result. It can be acquired from the \"id\" field of the \"items\" array within the response of the [List processing results for a given feed](/docs/api/v5/#operation/feed_processing_results/list).", "name": "processing_result_id", "in": "path", "example": "5224831246441439241", @@ -37659,6 +41160,21 @@ "maxItems": 100 } }, + "query_ad_targeting_types": { + "name": "targeting_types", + "description": "Targeting type breakdowns for the report. The reporting per targeting type
    is independent from each other. [\"AGE_BUCKET_AND_GENDER\"] is in BETA and not yet available to all users.", + "required": true, + "explode": false, + "in": "query", + "schema": { + "items": { + "$ref": "#/components/schemas/AdsAnalyticsAdTargetingType" + }, + "maxItems": 14, + "minItems": 1, + "type": "array" + } + }, "query_age_bucket_list": { "name": "ages", "description": "If set, filters the results to trends among users in the specified age range(s).
    \nIf unset, trends among all age groups will be returned.", @@ -37708,6 +41224,17 @@ "$ref": "#/components/schemas/ConversionReportAttributionType" } }, + "query_audience_id": { + "description": "Unique identifier of the audience to use to filter the results.", + "in": "query", + "name": "audience_id", + "required": true, + "schema": { + "type": "string", + "pattern": "^\\d+$", + "maxLength": 18 + } + }, "query_audience_ids": { "description": "List of audience ids to use to filter the results.", "in": "query", @@ -37809,6 +41336,21 @@ "maxItems": 100 } }, + "query_campaign_targeting_types": { + "name": "targeting_types", + "description": "Targeting type breakdowns for the report. The reporting per targeting type
    is independent from each other. [\"AGE_BUCKET_AND_GENDER\"] is in BETA and not yet available to all users.", + "required": true, + "explode": false, + "in": "query", + "schema": { + "items": { + "$ref": "#/components/schemas/AdsAnalyticsCampaignTargetingType" + }, + "maxItems": 14, + "minItems": 1, + "type": "array" + } + }, "query_catalogs_catalog_id": { "description": "Filter entities for a given catalog_id. If not given, all catalogs are considered.", "in": "query", @@ -38068,6 +41610,7 @@ "VIDEO_P75_COMBINED_2", "VIDEO_P95_COMBINED_2", "VIDEO_MRC_VIEWS_2", + "PAID_VIDEO_VIEWABLE_RATE", "VIDEO_LENGTH", "ECPV_IN_DOLLAR", "ECPCV_IN_DOLLAR", @@ -38100,6 +41643,7 @@ "LEADS", "COST_PER_LEAD", "QUIZ_COMPLETED", + "QUIZ_PIN_RESULT_OPEN", "QUIZ_COMPLETION_RATE", "SHOWCASE_PIN_CLICKTHROUGH", "SHOWCASE_SUBPAGE_CLICKTHROUGH", @@ -38326,17 +41870,6 @@ "default": false } }, - "query_feed_profile_id": { - "in": "query", - "name": "feed_profile_id", - "description": "The feed profile id whose catalog product groups we want to return.", - "required": false, - "schema": { - "pattern": "^\\d+$", - "maxLength": 18, - "type": "string" - } - }, "query_filter_deleted": { "name": "filter_deleted", "description": "Filter out deleted tags.", @@ -38511,7 +42044,7 @@ }, "query_match_types": { "explode": true, - "description": "Keyword match type", + "description": "Keyword match type", "in": "query", "name": "match_types", "required": false, @@ -38628,7 +42161,7 @@ }, "query_page_size": { "name": "page_size", - "description": "Maximum number of items to include in a single page of the response. See documentation on Pagination for more information.", + "description": "Maximum number of items to include in a single page of the response. See documentation on Pagination for more information.", "in": "query", "required": false, "schema": { @@ -38639,7 +42172,7 @@ } }, "query_pin_analytics_metric_types": { - "description": "Pin metric types to get data for. Keep in mind this cannot have ALL if split_field is set to any value other than NO_SPLIT.", + "description": "Pin metric types to get data for. VIDEO_MRC_VIEW are Video views, VIDEO_V50_WATCH_TIME is Total play time. If Pin was created before 2023-03-20, Profile visits and Follows will only be available for Idea Pins. These metrics are available for all Pin formats since then. Keep in mind this cannot have ALL if split_field is set to any value other than NO_SPLIT.", "explode": false, "in": "query", "name": "metric_types", @@ -38658,7 +42191,9 @@ "SAVE", "SAVE_RATE", "TOTAL_COMMENTS", - "TOTAL_REACTIONS" + "TOTAL_REACTIONS", + "USER_FOLLOW", + "PROFILE_VISIT" ] }, { @@ -38714,10 +42249,7 @@ "ADS_STANDARD", "ADS_PRODUCT", "ADS_VIDEO", - "ADS_IDEA", - "PRODUCT", - "REGULAR", - "VIDEO" + "ADS_IDEA" ], "type": "string" } @@ -38783,6 +42315,15 @@ "type": "string" } }, + "query_account_type": { + "description": "Filter accounts by account type.", + "in": "query", + "name": "account_type", + "required": true, + "schema": { + "$ref": "#/components/schemas/AudienceAccountType" + } + }, "query_report_type": { "name": "report_type", "description": "Report type.", @@ -38796,6 +42337,21 @@ ] } }, + "query_required_pin_ids": { + "name": "pin_ids", + "description": "List of Pin IDs.", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "pattern": "^\\d+$" + }, + "minItems": 1, + "maxItems": 100 + } + }, "query_required_search_query": { "description": "Search query. Can contain pin description keywords or comma-separated pin IDs.", "in": "query", @@ -38815,7 +42371,8 @@ "type": "string", "enum": [ "AD_ACCOUNT", - "PROFILE" + "PROFILE", + "ASSET_GROUP" ], "default": "AD_ACCOUNT", "example": "AD_ACCOUNT" diff --git a/v5/openapi.yaml b/v5/openapi.yaml index f7e629a..54b810e 100644 --- a/v5/openapi.yaml +++ b/v5/openapi.yaml @@ -1,6 +1,6 @@ openapi: 3.0.3 info: - version: 5.13.0 + version: 5.14.0 title: Pinterest REST API description: Pinterest's REST API contact: @@ -20,7 +20,7 @@ tags: Note: If the current operation_user_account (defined by the access token) has access to another user's Ad Accounts via - Pinterest Business Access, + Pinterest Business Access, you can modify your request to use the current operation_user_account's permissions to those Ad Accounts by including the ad_account_id in the path parameters for the request (e.g. .../?ad_account_id=12345&...). @@ -28,8 +28,16 @@ tags: description: View, create or update ad groups. - name: ads description: View, create or update ads. +- name: advanced_auction + description: View, create, or update advanced auction item bid options. - name: audience_insights description: View audience insights. +- name: audience_sharing + description: |- + View, share, or revoke shared audiences.
    + Audience Sharing endpoints are not available to all apps, + if you are interested in using them, reach out to us on our help center page. + Learn more. - name: audiences description: View, create, or update audiences. - name: billing @@ -69,8 +77,6 @@ tags: - name: product_group_promotions description: View, create, update, or delete information about promoted product groups. -- name: product_groups - description: View, create, update, or delete information about product groups. - name: resources description: View metadata about available metrics and targeting options in the Pinterest API. @@ -130,6 +136,7 @@ x-tagGroups: - conversion_tags - name: Others tags: + - advanced_auction - integrations - oauth - resources @@ -138,9 +145,6 @@ x-tagGroups: - name: Shopping tags: - catalogs -- name: Deprecated - tags: - - product_groups paths: /ad_accounts: get: @@ -546,8 +550,7 @@ paths: description: |- Get a specific ad given the ad ID. If your pin is rejected, rejected_reasons will contain additional information from the Ad Review process. - For more information about our policies and rejection reasons see the Pinterest advertising standards. + For more information about our policies and rejection reasons see the Pinterest advertising standards. operationId: ad_groups/get security: - pinterest_oauth2: @@ -760,6 +763,7 @@ paths: description: |- Get analytics for the specified ads in the specified ad_account_id, filtered by the specified options. - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager. + - The request must contain either ad_ids or both campaign_ids and pin_ids. - If granularity is not HOUR, the furthest back you can are allowed to pull data is 90 days before the current date in UTC time and the max time range supported is 90 days. - If granularity is HOUR, the furthest back you can are allowed to pull data is 8 days before the current date in UTC time and the max time range supported is 3 days. operationId: ads/analytics @@ -772,13 +776,25 @@ paths: - $ref: '#/components/parameters/path_ad_account_id' - $ref: '#/components/parameters/query_start_date' - $ref: '#/components/parameters/query_end_date' - - $ref: '#/components/parameters/query_ad_ids_required' + - $ref: '#/components/parameters/query_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' responses: '200': content: @@ -809,7 +825,7 @@ paths: description: |- Returns the list of discounts applied to the account. - This endpoint might not be available to all apps. Learn more. + This endpoint might not be available to all apps. Learn more. operationId: ads_credits_discounts/get security: - pinterest_oauth2: @@ -849,7 +865,7 @@ paths: description: |- Redeem ads credit on behalf of the ad account id and apply it towards billing. - This endpoint might not be available to all apps. Learn more. + This endpoint might not be available to all apps. Learn more. tags: - billing operationId: ads_credit/redeem @@ -915,7 +931,7 @@ paths: - $ref: '#/components/parameters/query_ad_ids_required' - $ref: '#/components/parameters/query_start_date' - $ref: '#/components/parameters/query_end_date' - - $ref: '#/components/parameters/query_targeting_types' + - $ref: '#/components/parameters/query_ad_targeting_types' - $ref: '#/components/parameters/query_columns' - $ref: '#/components/parameters/query_granularity' - $ref: '#/components/parameters/query_conversion_attribution_click_window_days' @@ -944,8 +960,7 @@ paths: description: |- Get a specific ad given the ad ID. If your pin is rejected, rejected_reasons will contain additional information from the Ad Review process. - For more information about our policies and rejection reasons see the Pinterest advertising standards. + For more information about our policies and rejection reasons see the Pinterest advertising standards. operationId: ads/get security: - pinterest_oauth2: @@ -1077,9 +1092,7 @@ paths: - ASCENDING - DESCENDING - $ref: '#/components/parameters/query_page_size' - - description: |- - This feature is currently in beta and not available to all apps. - Filter audiences by ownership type. + - description: Filter audiences by ownership type. in: query name: ownership_type required: false @@ -1260,6 +1273,155 @@ paths: $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 + 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.
    This endpoint + is not available to all apps.Learn + more. + operationId: update_ad_account_to_ad_account_shared_audience + security: + - pinterest_oauth2: + - ads:write + x-ratelimit-category: ads_write + x-sandbox: disabled + parameters: + - $ref: '#/components/parameters/path_ad_account_id' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SharedAudience' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SharedAudienceResponse' + description: Success + '400': + description: Invalid ad account id. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid ad account id + default: + description: Unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + tags: + - audience_sharing + /ad_accounts/{ad_account_id}/audiences/businesses/shared: + patch: + summary: Update audience sharing from an ad account to businesses + description: From an ad account, share a specific audience with a business account, + or revoke access to a previously shared audience. Only the audience owner + account can share the audience. The recipient business account must be in + the same business hierarchy as the business owner of the ad account.
    This + endpoint is not available to all apps.Learn + more. + operationId: update_ad_account_to_business_shared_audience + security: + - pinterest_oauth2: + - ads:write + x-ratelimit-category: ads_write + x-sandbox: disabled + parameters: + - $ref: '#/components/parameters/path_ad_account_id' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessSharedAudience' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessSharedAudienceResponse' + description: Success + '400': + description: Invalid ad account id. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid ad account id + default: + description: Unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + tags: + - audience_sharing /ad_accounts/{ad_account_id}/bid_floor: post: description: "List bid floors for your campaign configuration. Bid floors are\ @@ -1312,7 +1474,7 @@ paths: description: |- Get billing profiles in the advertiser account. - This endpoint might not be available to all apps. Learn more. + This endpoint might not be available to all apps. Learn more. operationId: billing_profiles/get security: - pinterest_oauth2: @@ -1679,7 +1841,7 @@ paths: - $ref: '#/components/parameters/query_campaign_ids_required' - $ref: '#/components/parameters/query_start_date' - $ref: '#/components/parameters/query_end_date' - - $ref: '#/components/parameters/query_targeting_types' + - $ref: '#/components/parameters/query_campaign_targeting_types' - $ref: '#/components/parameters/query_columns' - $ref: '#/components/parameters/query_granularity' - $ref: '#/components/parameters/query_conversion_attribution_click_window_days' @@ -1768,9 +1930,9 @@ paths: \ needs to customize this tag to track conversions.

    \nFor more information,\ \ see:

    \nSet up the Pinterest tag

    \nPinterest\ - \ Tag

    \nEnhanced match" + /docs/api-features/pinterest-tag/\">Pinterest Tag

    \nEnhanced\ + \ match" operationId: conversion_tags/create security: - pinterest_oauth2: @@ -1898,7 +2060,7 @@ paths: \ email addresses, or hashed MAIDs or IDFAs).

    \n

    A customer list is one\ \ of the four types of Pinterest audiences: for more information, see Audience targeting\nor the Audience targeting\nor the Audiences section of the ads management guide.

    \n\ \

    Please review our requirements for what type of information is allowed\ @@ -1947,7 +2109,7 @@ paths:

    Get a set of customer lists including id and name based on the filters provided.

    (Customer lists are a type of audience.) For more information, see Audience targeting - or the Audiences + or the Audiences section of the ads management guide.

    operationId: customer_lists/list security: @@ -2019,7 +2181,7 @@ paths: \ be added to your \u201CCUSTOMER_LIST\u201D audience. Your original list\ \ of records\n to add will be deleted when the matching process is complete.

    \n\

    For more information, see Audience targeting\nor the Audience targeting\nor the Audiences\nsection of the ads management guide.

    " operationId: customer_lists/update security: @@ -2057,7 +2219,7 @@ paths: 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 their ad_account_id. The request body should be a JSON object. - - This endpoint requires an access_token be generated through Ads Manager. Review the Conversions Guide for more details. + - This endpoint requires an access_token be generated through Ads Manager. Review the Conversions Guide for more details. (Note that the authorization header required is Authorization: Bearer <access_token>). - The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Audience, Campaign. (Note that the token can be used across multiple ad accounts under an user ID.) - This endpoint has a rate limit of 5,000 calls per minute per ad account. - If the merchant is submitting this information using both Pinterest conversion tags and the Pinterest API, Pinterest will remove duplicate information before reporting. (Note that events that took place offline cannot be deduplicated.) @@ -2201,7 +2363,7 @@ paths: description: |-

    Get a list of keywords based on the filters provided. If no filter is provided, it will default to the ad_account_id filter, which means it will only return keywords that specifically have parent_id set to the ad_account_id. Note: Keywords can have ad_account_ids, campaign_ids, and ad_group_ids set as their parent_ids. Keywords created through Ads Manager will have their parent_id set to an ad_group_id, not ad_account_id.

    For more information, see Keyword targeting.

    -

    Notes:

    • Advertisers and campaigns can only be assigned keywords with excluding ('_NEGATIVE').
    • All keyword match types are available for ad groups.

    For more information on match types, see match type enums.

    +

    Notes:

    • Advertisers and campaigns can only be assigned keywords with excluding ('_NEGATIVE').
    • All keyword match types are available for ad groups.

    For more information on match types, see match type enums.

    Returns:

    • A successful call returns an object containing an array of new keyword objects and an empty "errors" object array.

    • An unsuccessful call returns an empty keywords array, and, instead, inserts the entire object with nulled/negated properties into the "errors" object array:

       { "keywords": [], "errors": [ { "data": { "archived": null, "match_type": "EXACT", "parent_type": null, "value": "foobar", "parent_id": null, "type": "keyword", "id": null }, "error_messages": [ "Advertisers and Campaigns only accept excluded targeting attributes." ] } } 
    operationId: keywords/get security: @@ -2242,9 +2404,9 @@ paths: summary: Create keywords description: |-

    Create keywords for following entity types(advertiser, campaign, ad group or ad).

    For more information, see Keyword targeting.

    -

    Notes:

    • Advertisers and campaigns can only be assigned keywords with excluding ('_NEGATIVE').
    • All keyword match types are available for ad groups.

    For more information on match types, see match type enums.

    +

    Notes:

    • Advertisers and campaigns can only be assigned keywords with excluding ('_NEGATIVE').
    • All keyword match types are available for ad groups.

    For more information on match types, see match type enums.

    Returns:

    • A successful call returns an object containing an array of new keyword objects and an empty "errors" object array.

    • An unsuccessful call returns an empty keywords array, and, instead, inserts the entire object with nulled/negated properties into the "errors" object array:

       { "keywords": [], "errors": [ { "data": { "archived": null, "match_type": "EXACT", "parent_type": null, "value": "foobar", "parent_id": null, "type": "keyword", "id": null }, "error_messages": [ "Advertisers and Campaigns only accept excluded targeting attributes." ] } } 
    -

    Rate limit: WRITE.

    +

    Rate limit: WRITE.

    operationId: keywords/create security: - pinterest_oauth2: @@ -2342,11 +2504,11 @@ paths: - keywords /ad_accounts/{ad_account_id}/lead_forms: get: - summary: Get lead forms + 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. - Gets all Lead Forms associated with an ad account ID. + List lead forms associated with an ad account ID. For more, see Lead ads. operationId: lead_forms/list @@ -2391,6 +2553,109 @@ paths: $ref: '#/components/schemas/Error' tags: - lead_forms + post: + x-sandbox: disabled + description: "This feature is currently in beta and not available to\ + \ all apps, if you're interested in joining the beta, please reach out to\ + \ your Pinterest account manager.\n\nCreate lead forms. Lead forms\ + \ are used in lead ads and allow you to control what text appears on the lead\ + \ form\u2019 s description, questions and confirmation sections.\n\nFor more,\ + \ see Lead ads." + summary: Create lead forms + operationId: lead_forms/create + security: + - pinterest_oauth2: + - ads:write + x-ratelimit-category: ads_write + parameters: + - $ref: '#/components/parameters/path_ad_account_id' + requestBody: + content: + application/json: + schema: + items: + $ref: '#/components/schemas/LeadFormCreateRequest' + maxItems: 30 + minItems: 1 + type: array + description: List of lead forms to create, size limit [1, 30]. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LeadFormArrayResponse' + description: Success + '400': + description: Invalid ad account lead forms parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid ad account lead forms parameters. + default: + description: Unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + tags: + - lead_forms + patch: + x-sandbox: disabled + description: |- + This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager. + + Update lead forms. Lead ads help you reach people who are actively looking for, and interested in, your goods and services. The lead form can be associated with an ad to allow people to fill out the form. + + For more, see Lead ads. + summary: Update lead forms + operationId: lead_forms/update + security: + - pinterest_oauth2: + - ads:write + x-ratelimit-category: ads_write + parameters: + - $ref: '#/components/parameters/path_ad_account_id' + requestBody: + content: + application/json: + schema: + items: + $ref: '#/components/schemas/LeadFormUpdateRequest' + maxItems: 30 + minItems: 1 + type: array + description: List of lead forms to update, size limit [1, 30]. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LeadFormArrayResponse' + description: Success + '400': + description: Invalid ad account lead forms parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid ad account lead forms parameters. + default: + description: Unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + tags: + - lead_forms /ad_accounts/{ad_account_id}/lead_forms/{lead_form_id}: get: summary: Get lead form by id @@ -2449,7 +2714,7 @@ paths: Create lead form test data based on the list of answers provided as part of the body. - List of answers should follow the questions creation order. - This endpoint is currently in beta and not available to all apps. Learn more. + This endpoint is currently in beta and not available to all apps. Learn more. operationId: lead_form_test/create security: - pinterest_oauth2: @@ -2502,15 +2767,14 @@ paths: /ad_accounts/{ad_account_id}/leads/subscriptions: post: summary: Create lead ads subscription - description: "Create a lead ads webhook subscription.\nSubscriptions allow Pinterest\ - \ to deliver lead data from Ads Manager directly to the subscriber. Subscriptions\ - \ can exist for a specific lead form or at ad account level. \n- Only requests\ - \ for the OWNER or ADMIN of the ad_account will be allowed.\n- Advertisers\ - \ can set up multiple integrations using ad_account_id + lead_form_id but\ - \ only one integration per unique records.\n- For data security, egress lead\ - \ data is encrypted with AES-256-GCM.\n\nThis endpoint is currently\ - \ in beta and not available to all apps. Learn\ - \ more." + description: |- + Create a lead ads webhook subscription. + Subscriptions allow Pinterest to deliver lead data from Ads Manager directly to the subscriber. Subscriptions can exist for a specific lead form or at ad account level. + - Only requests for the OWNER or ADMIN of the ad_account will be allowed. + - Advertisers can set up multiple integrations using ad_account_id + lead_form_id but only one integration per unique records. + - For data security, egress lead data is encrypted with AES-256-GCM. + + This endpoint is currently in beta and not available to all apps. Learn more. tags: - lead_ads operationId: ad_accounts_subscriptions/post @@ -2567,7 +2831,7 @@ paths: Get the advertiser's list of lead ads subscriptions. - Only requests for the OWNER or ADMIN of the ad_account will be allowed. - This endpoint is currently in beta and not available to all apps. Learn more. + This endpoint is currently in beta and not available to all apps. Learn more. operationId: ad_accounts_subscriptions/get_list security: - pinterest_oauth2: @@ -2618,7 +2882,7 @@ paths: Get a specific lead ads subscription record. - Only requests for the OWNER or ADMIN of the ad_account will be allowed. - This endpoint is currently in beta and not available to all apps. Learn more. + This endpoint is currently in beta and not available to all apps. Learn more. operationId: ad_accounts_subscriptions/get_by_id security: - pinterest_oauth2: @@ -2680,7 +2944,7 @@ paths: Delete an existing lead ads webhook subscription by ID. - Only requests for the OWNER or ADMIN of the ad_account will be allowed. - This endpoint is currently in beta and not available to all apps. Learn more. + This endpoint is currently in beta and not available to all apps. Learn more. operationId: ad_accounts_subscriptions/del_by_id security: - pinterest_oauth2: @@ -2732,37 +2996,47 @@ paths: $ref: '#/components/schemas/Error' tags: - lead_ads - /ad_accounts/{ad_account_id}/mmm_reports: - get: - summary: Get advertiser Marketing Mix Modeling (MMM) report. + /ad_accounts/{ad_account_id}/leads_export: + post: + x-sandbox: disabled description: |- - Get an mmm report for an ad account. This returns a URL to an mmm metrics report given a token returned from the - create mmm report endpoint. - operationId: analytics/get_mmm_report + This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager. + + Create an export of leads collected from a lead ad. This returns a lead_export_id token that you can use to download the export when it is ready. + + Note: Lead ad data will be available up to 30 days after the lead has been submitted. + + For more, see Lead ads. + summary: Create a request to export leads collected from a lead ad + operationId: leads_export/create security: - pinterest_oauth2: - - ads:read - x-ratelimit-category: ads_read - x-sandbox: disabled + - ads:write + x-ratelimit-category: ads_write parameters: - $ref: '#/components/parameters/path_ad_account_id' - - $ref: '#/components/parameters/query_token_required' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LeadsExportCreateRequest' + required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/GetMMMReportResponse' + $ref: '#/components/schemas/LeadsExportCreateResponse' description: Success '400': - description: Invalid ad account ads analytics parameters. + description: Invalid ad account parameter. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 400 - message: Invalid ad account ads analytics parameters. + message: Invalid ad account parameter. default: description: Unexpected error content: @@ -2770,16 +3044,115 @@ paths: schema: $ref: '#/components/schemas/Error' tags: - - ad_accounts - post: - summary: Create a request for a Marketing Mix Modeling (MMM) report + - leads_export + /ad_accounts/{ad_account_id}/leads_export/{leads_export_id}: + get: + x-sandbox: disabled description: |- - This creates an asynchronous mmm report based on the given request. It returns a token that you can use to download - the report when it is ready. NOTE: An additional limit of 5 queries per minute per advertiser applies to this endpoint while it's in beta release. - operationId: analytics/create_mmm_report - security: - - pinterest_oauth2: - - ads:read + This feature is currently in beta and not available to all apps, if you're interested in joining the beta, please reach out to your Pinterest account manager. + + Get the export of leads collected from a lead ad. This returns a URL to a list of lead export given a lead_export_id token returned from the create a lead export call. You can use the URL to download the report. + + Note: Lead ad data will be available up to 30 days after the lead has been submitted. + + For more, see Lead ads. + summary: Get the lead export from the lead export create call + operationId: leads_export/get + security: + - pinterest_oauth2: + - ads:read + x-ratelimit-category: ads_read + parameters: + - $ref: '#/components/parameters/path_ad_account_id' + - name: leads_export_id + in: path + description: lead_export_id token returned from the create a lead export endpoint + example: '123755885175' + required: true + schema: + type: string + pattern: ^\d+$ + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LeadsExportResponseData' + description: Success + '400': + description: Invalid ad account parameter. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid ad account parameter. + '404': + description: Invalid leads export id parameter. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 404 + message: Invalid leads export id parameter. + default: + description: Unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + tags: + - leads_export + /ad_accounts/{ad_account_id}/mmm_reports: + get: + summary: Get advertiser Marketing Mix Modeling (MMM) report. + description: |- + Get an mmm report for an ad account. This returns a URL to an mmm metrics report given a token returned from the + create mmm report endpoint. + operationId: analytics/get_mmm_report + security: + - pinterest_oauth2: + - ads:read + x-ratelimit-category: ads_read + x-sandbox: disabled + parameters: + - $ref: '#/components/parameters/path_ad_account_id' + - $ref: '#/components/parameters/query_token_required' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetMMMReportResponse' + description: Success + '400': + description: Invalid ad account ads analytics parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid ad account ads analytics parameters. + default: + description: Unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + tags: + - ad_accounts + post: + summary: Create a request for a Marketing Mix Modeling (MMM) report + description: |- + This creates an asynchronous mmm report based on the given request. It returns a token that you can use to download + the report when it is ready. NOTE: An additional limit of 5 queries per minute per advertiser applies to this endpoint while it's in beta release. + operationId: analytics/create_mmm_report + security: + - pinterest_oauth2: + - ads:read x-ratelimit-category: ads_analytics x-sandbox: disabled parameters: @@ -3069,65 +3442,6 @@ paths: $ref: '#/components/schemas/Error' tags: - product_group_promotions - /ad_accounts/{ad_account_id}/product_groups/catalogs: - get: - deprecated: true - description: This endpoint is completely deprecated. Please use List - product groups from Catalogs API instead. - operationId: ad_accounts_catalogs_product_groups/list - security: - - pinterest_oauth2: - - ads:write - x-ratelimit-category: ads_write - x-sandbox: disabled - parameters: - - $ref: '#/components/parameters/path_ad_account_id' - - $ref: '#/components/parameters/query_feed_profile_id' - responses: - '200': - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - items: - type: array - items: - $ref: '#/components/schemas/CatalogProductGroup' - description: Success - '400': - description: Invalid ad account ads parameters. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - code: 400 - message: Invalid ad account ads parameters. - '401': - description: Access Denied. This can happen if account is not yet approved - to operate as Merchant on Pinterest. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - '404': - description: Merchant data not found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - default: - description: Unexpected error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - summary: Get catalog product groups - tags: - - product_groups /ad_accounts/{ad_account_id}/reports: get: summary: Get the account analytics report created by the async call @@ -3217,11 +3531,12 @@ paths: /ad_accounts/{ad_account_id}/sandbox: delete: summary: Delete ads data for ad account in API Sandbox - description: "Delete an ad account and all the ads data associated with that\ - \ account. \nA string message is returned indicating the status of the delete\ - \ operation.\n\nNote: This endpoint is only allowed in the Pinterest API Sandbox\ - \ (https://api-sandbox.pinterest.com/v5). \nGo to https://developers.pinterest.com/docs/dev-tools/sandbox/\ - \ for more information." + description: |- + Delete an ad account and all the ads data associated with that account. + A string message is returned indicating the status of the delete operation. + + Note: This endpoint is only allowed in the Pinterest API Sandbox (https://api-sandbox.pinterest.com/v5). + Go to /docs/developer-tools/sandbox/ for more information. operationId: sandbox/delete security: - pinterest_oauth2: @@ -3824,97 +4139,257 @@ paths: summary: Get terms of service tags: - terms_of_service - /boards: - get: - summary: List boards + /advanced_auction/items/get: + post: + summary: Get item bid options (POST) description: |- - Get a list of the boards owned by the "operation user_account" + group boards where this account is a collaborator - Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". - Optional: Specify a privacy type (public, protected, or secret) to indicate which boards to return. - - If no privacy is specified, all boards that can be returned (based on the scopes of the token and ad_account role if applicable) will be returned. - tags: - - boards - operationId: boards/list + Get the bid options for a batch of retail catalog items. + + The catalog must be owned by the "operation user_account". See detailed documentation here. By default, the "operation user_account" is the token user_account. + + Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: `Owner`, `Admin`. + + This endpoint is not available to all users. + operationId: advanced_auction_items_get/post + x-ratelimit-category: advanced_auction_read + x-sandbox: enabled security: - pinterest_oauth2: - - boards:read - x-ratelimit-category: org_read - x-sandbox: enabled - x-codeSamples: - - lang: cURL - label: curl - source: | - curl --location --request GET 'https://api.pinterest.com/v5/boards' \ - --header 'Authorization: Bearer ' \ - --header 'Content-Type: application/json' - - lang: cURL - label: curl (Sandbox) - source: | - curl --location --request GET 'https://api-sandbox.pinterest.com/v5/boards' \ - --header 'Authorization: Bearer ' \ - --header 'Content-Type: application/json' + - ads:read + - catalogs:read parameters: - $ref: '#/components/parameters/query_ad_account_id' - - $ref: '#/components/parameters/query_bookmark' - - $ref: '#/components/parameters/query_page_size' - - name: privacy - description: Privacy setting for a board. - in: query - required: false - schema: - type: string - enum: - - ALL - - PROTECTED - - PUBLIC - - SECRET - - PUBLIC_AND_SECRET + 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 + 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: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - items: - description: Boards - items: - $ref: '#/components/schemas/Board' + $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: Create board + summary: Operate on item level bid options description: |- - Create a board owned by the "operation user_account". - Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". - - By default, the "operation user_account" is the token user_account. - tags: - - boards - operationId: boards/create - security: - - pinterest_oauth2: - - boards:read - - boards: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 + 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`. - from pinterest.organic.boards import Board + The catalog must be owned by the "operation user_account". See detailed documentation here. By default, the "operation user_account" is the token user_account. - board_create=Board.create( - name="Summer Recipes", - description="My favorite summer recipes", + Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: `Owner`, `Admin`. + + This endpoint is not available to all users. + operationId: advanced_auction_items_submit/post + x-ratelimit-category: advanced_auction_write + x-sandbox: enabled + security: + - pinterest_oauth2: + - ads:write + - catalogs:read + parameters: + - $ref: '#/components/parameters/query_ad_account_id' + requestBody: + description: Request object used to upsert or delete bid options for a batch + of retail catalog items + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AdvancedAuctionItemsSubmitRequest' + responses: + '200': + description: Response containing the results of the item bid options operations + content: + application/json: + schema: + $ref: '#/components/schemas/AdvancedAuctionProcessedItems' + '400': + description: Invalid request parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + InvalidRequest: + value: + code: 1 + message: 'Invalid request: {''catalog_id'': ''1234''} list of + item bid option operations not provided' + '401': + description: Not authenticated to post item bid options + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + UnauthenticatedAccess: + value: + code: 2 + message: Authentication failed. + '403': + description: Not authorized to post item bid options + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + default: + description: Unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + tags: + - advanced_auction + /boards: + get: + summary: List boards + description: |- + Get a list of the boards owned by the "operation user_account" + group boards where this account is a collaborator + Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". + Optional: Specify a privacy type (public, protected, or secret) to indicate which boards to return. + - If no privacy is specified, all boards that can be returned (based on the scopes of the token and ad_account role if applicable) will be returned. + tags: + - boards + operationId: boards/list + security: + - pinterest_oauth2: + - boards:read + - client_credentials: + - boards:read + x-ratelimit-category: org_read + x-sandbox: enabled + x-codeSamples: + - lang: cURL + label: curl + source: | + curl --location --request GET 'https://api.pinterest.com/v5/boards' \ + --header 'Authorization: Bearer ' \ + --header 'Content-Type: application/json' + - lang: cURL + label: curl (Sandbox) + source: | + curl --location --request GET 'https://api-sandbox.pinterest.com/v5/boards' \ + --header 'Authorization: Bearer ' \ + --header 'Content-Type: application/json' + parameters: + - $ref: '#/components/parameters/query_ad_account_id' + - $ref: '#/components/parameters/query_bookmark' + - $ref: '#/components/parameters/query_page_size' + - name: privacy + description: Privacy setting for a board. + in: query + required: false + schema: + type: string + enum: + - ALL + - PROTECTED + - PUBLIC + - SECRET + - PUBLIC_AND_SECRET + responses: + '200': + description: response + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/Paginated' + - type: object + properties: + items: + description: Boards + items: + $ref: '#/components/schemas/Board' + default: + description: Unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + post: + summary: Create board + description: |- + Create a board owned by the "operation user_account". + Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". + - By default, the "operation user_account" is the token user_account. + tags: + - boards + operationId: boards/create + security: + - pinterest_oauth2: + - boards:read + - boards:write + x-ratelimit-category: org_write + x-sandbox: enabled + x-codeSamples: + - lang: python + label: Python SDK + source: | + # Follow this link for initial setup: https://github.com/pinterest/pinterest-python-sdk#getting-started + + from pinterest.organic.boards import Board + + board_create=Board.create( + name="Summer Recipes", + description="My favorite summer recipes", privacy="PUBLIC" ) print("Board Id: %s, Board name:%s"%(board_create.id, board_create.name)) @@ -3984,6 +4459,8 @@ paths: security: - pinterest_oauth2: - boards:read + - client_credentials: + - boards:read x-ratelimit-category: org_read x-sandbox: enabled x-codeSamples: @@ -3994,7 +4471,7 @@ paths: from pinterest.organic.boards import Board # Board information can be fetched from profile page or from create/list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list BOARD_ID="" board_get = Board(board_id=BOARD_ID) @@ -4003,7 +4480,7 @@ paths: label: curl source: | # Board information can be fetched from profile page or from create/list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list curl --location --request GET 'https://api.pinterest.com/v5/boards/' \ --header 'Authorization: Bearer ' \ @@ -4012,7 +4489,7 @@ paths: label: curl (Sandbox) source: | # Board information can be fetched from profile page or from create/ist board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list curl --location --request GET 'https://api-sandbox.pinterest.com/v5/boards/' \ --header 'Authorization: Bearer ' \ @@ -4065,7 +4542,7 @@ paths: from pinterest.organic.boards import Board # Board information can be fetched from profile page or from create/list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list BOARD_ID="" NEW_DESCRIPTION="Updated summer recipes!" NEW_PRIVACY="SECRET" @@ -4080,7 +4557,7 @@ paths: label: curl source: | # Board information can be fetched from profile page or from create/list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list curl --location --request PATCH 'https://api.pinterest.com/v5/boards/' \ --header 'Authorization: Bearer ' \ @@ -4094,7 +4571,7 @@ paths: label: curl (Sandbox) source: | # Board information can be fetched from profile page or from create/list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list curl --location --request PATCH 'https://api-sandbox.pinterest.com/v5/boards/' \ --header 'Authorization: Bearer ' \ @@ -4183,7 +4660,7 @@ paths: from pinterest.organic.boards import Board # Board information can be fetched from profile page or from create/list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list BOARD_ID="" board_delete=Board.delete(board_id=BOARD_ID) @@ -4192,7 +4669,7 @@ paths: label: curl source: | # Board information can be fetched from profile page or create/from list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list curl --request DELETE 'https://api.pinterest.com/v5/boards/' \ --header 'Authorization: Bearer ' \ @@ -4201,7 +4678,7 @@ paths: label: curl (Sandbox) source: | # Board information can be fetched from profile page or from create/list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list curl --request DELETE 'https://api-sandbox.pinterest.com/v5/boards/' \ --header 'Authorization: Bearer ' \ @@ -4274,6 +4751,9 @@ paths: - pinterest_oauth2: - boards:read - pins:read + - client_credentials: + - boards:read + - pins:read x-ratelimit-category: org_read x-sandbox: enabled parameters: @@ -4325,6 +4805,8 @@ paths: security: - pinterest_oauth2: - boards:read + - client_credentials: + - boards:read x-ratelimit-category: org_read x-sandbox: enabled parameters: @@ -4564,6 +5046,9 @@ paths: - pinterest_oauth2: - boards:read - pins:read + - client_credentials: + - boards:read + - pins:read x-ratelimit-category: org_read x-sandbox: enabled parameters: @@ -5008,6 +5493,28 @@ paths: type: array items: $ref: '#/components/schemas/PermissionsWithOwner' + - name: child_asset_id + in: query + description: A child asset unique identifier. Used to fetch asset groups that + contain the asset id as a child. + required: false + schema: + type: string + pattern: ^\d+$ + example: '549764894835' + minLength: 1 + maxLength: 20 + - name: asset_group_id + in: query + description: An asset group unique identifier. Used to fetch assets contained + within the specified asset group. + required: false + schema: + type: string + pattern: ^\d+$ + example: '7078106104032' + minLength: 1 + maxLength: 20 - $ref: '#/components/parameters/query_resource_type' - $ref: '#/components/parameters/query_business_access_start_index' - $ref: '#/components/parameters/query_bookmark' @@ -5468,16 +5975,343 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Paginated' - - type: object - properties: - items: - type: array - description: List of business partners. - items: - $ref: '#/components/schemas/UserBusinessRoleBinding' + allOf: + - $ref: '#/components/schemas/Paginated' + - type: object + properties: + items: + type: array + description: List of business partners. + items: + $ref: '#/components/schemas/UserBusinessRoleBinding' + description: Success + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unexpected error + tags: + - business_access_relationships + delete: + summary: Terminate business partnerships + description: |- + Terminate partnerships between the specified partners and your business. + Note: You may only batch terminate partners of the same partner type. + operationId: delete_business_partners + security: + - pinterest_oauth2: + - biz_access:write + x-ratelimit-category: ads_write + x-sandbox: disabled + parameters: + - $ref: '#/components/parameters/path_business_user' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DeletePartnersRequest' + description: | + An object containing a "partner_ids" property composed of a list of partner IDs and a "partners_type" property specifying the type of partners to delete. + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeletePartnersResponse' + description: Success + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: A supplied partner id doesn't exist + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unexpected error + tags: + - business_access_relationships + /businesses/{business_id}/audiences: + get: + summary: List received audiences for a business + description: Get a list of received audiences for the given business. + operationId: shared_audiences_for_business/list + security: + - pinterest_oauth2: + - biz_access:read + x-ratelimit-category: ads_read + x-sandbox: disabled + parameters: + - $ref: '#/components/parameters/path_business_user' + - $ref: '#/components/parameters/query_bookmark' + - $ref: '#/components/parameters/query_order' + - $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/Audience' + description: Success + '400': + description: Invalid parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid parameters. + default: + description: Unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + tags: + - audience_sharing + /businesses/{business_id}/audiences/shared/accounts: + get: + summary: List accounts with access to an audience owned by a business + description: |- + List all ad accounts and/or businesses that have access to a specific audience. + The audience must either be owned by an ad account in the requesting business, or it must have been shared with the requesting business. + If the requesting business is not the owner of the audience, only ad accounts owned by the requesting business will be returned. + operationId: business_account_audiences_shared_accounts/list + security: + - pinterest_oauth2: + - biz_access:read + x-ratelimit-category: ads_read + x-sandbox: disabled + parameters: + - $ref: '#/components/parameters/path_business_user' + - $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 business audiences shared accounts parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid business 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 + /businesses/{business_id}/audiences/ad_accounts/shared: + patch: + summary: Update audience sharing from a business to ad accounts + description: From a business, share a specific audience with other ad account(s), + or revoke access to a previously shared audience.
    • If the business + is the owner of the audience, it can share with any ad account within the + same business hierarchy.
    • If the business is the recipient of the + audience, it can share with any of its owned ad accounts.
    This + endpoint is not available to all apps.Learn + more. + operationId: update_business_to_ad_account_shared_audience + security: + - pinterest_oauth2: + - biz_access:write + x-ratelimit-category: ads_write + x-sandbox: disabled + parameters: + - $ref: '#/components/parameters/path_business_user' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SharedAudience' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SharedAudienceResponse' + description: Success + '400': + description: Invalid parameters. + 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: + - audience_sharing + /businesses/{business_id}/audiences/businesses/shared: + patch: + summary: Update audience sharing between businesses + description: From a business, share a specific audience with another business + account, or revoke access to a previously shared audience. Only the audience + owner can share the audience with other businesses, and the recipient business + must be within the same business hierarchy.
    This endpoint is not available + to all apps.Learn + more. + operationId: update_business_to_business_shared_audience + security: + - pinterest_oauth2: + - biz_access:write + x-ratelimit-category: ads_write + x-sandbox: disabled + parameters: + - $ref: '#/components/parameters/path_business_user' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessSharedAudience' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessSharedAudienceResponse' + description: Success + '400': + description: Invalid parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid business id + default: + description: Unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + tags: + - audience_sharing + /businesses/{business_id}/asset_groups: + post: + summary: Create a new asset group. + description: "Create a new asset group with the specified parameters.\n- An\ + \ asset group is a custom group of assets based on how you\u2019d like\ + \ to manage your accounts." + operationId: asset_group/create + security: + - pinterest_oauth2: + - biz_access:read + - biz_access:write + x-ratelimit-category: ads_write + x-sandbox: disabled + parameters: + - $ref: '#/components/parameters/path_business_user' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAssetGroupBody' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAssetGroupResponse' + description: Success + '400': + description: Invalid parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid parameters. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + description: Unexpected error + tags: + - business_access_assets + patch: + summary: Update asset groups. + description: Update a batch of asset groups with the specified parameters. + operationId: asset_group/update + security: + - pinterest_oauth2: + - biz_access:read + - biz_access:write + x-ratelimit-category: ads_write + x-sandbox: disabled + parameters: + - $ref: '#/components/parameters/path_business_user' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAssetGroupBody' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAssetGroupResponse' description: Success + '400': + description: Invalid parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + code: 400 + message: Invalid parameters. default: content: application/json: @@ -5485,41 +6319,41 @@ paths: $ref: '#/components/schemas/Error' description: Unexpected error tags: - - business_access_relationships + - business_access_assets delete: - summary: Terminate business partnerships - description: |- - Terminate partnerships between the specified partners and your business. - Note: You may only batch terminate partners of the same partner type. - operationId: delete_business_partners + summary: Delete asset groups. + description: Delete a batch of asset groups. + operationId: asset_group/delete security: - pinterest_oauth2: + - biz_access:read - biz_access:write x-ratelimit-category: ads_write x-sandbox: disabled parameters: - $ref: '#/components/parameters/path_business_user' requestBody: - required: true content: application/json: schema: - $ref: '#/components/schemas/DeletePartnersRequest' - description: | - An object containing a "partner_ids" property composed of a list of partner IDs and a "partners_type" property specifying the type of partners to delete. + $ref: '#/components/schemas/DeleteAssetGroupBody' + required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/DeletePartnersResponse' + $ref: '#/components/schemas/DeleteAssetGroupResponse' description: Success - '404': + '400': + description: Invalid parameters. content: application/json: schema: $ref: '#/components/schemas/Error' - description: A supplied partner id doesn't exist + example: + code: 400 + message: Invalid parameters. default: content: application/json: @@ -5527,7 +6361,7 @@ paths: $ref: '#/components/schemas/Error' description: Unexpected error tags: - - business_access_relationships + - business_access_assets /catalogs: get: x-ratelimit-category: catalogs_read @@ -5538,7 +6372,7 @@ paths: Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Learn more operationId: catalogs/list security: - pinterest_oauth2: @@ -5592,6 +6426,69 @@ paths: $ref: '#/components/schemas/Error' tags: - catalogs + post: + x-ratelimit-category: catalogs_write + summary: Create catalog + description: |- + Create a new catalog owned by the "operation user_account". + - By default, the "operation user_account" is the token user_account. + + Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. + + Learn more + + Note: 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/feeds: get: x-ratelimit-category: catalogs_read @@ -5602,11 +6499,13 @@ paths: Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping. + For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping. operationId: feeds/list security: - pinterest_oauth2: - catalogs:read + - client_credentials: + - catalogs:read x-sandbox: enabled parameters: - $ref: '#/components/parameters/query_bookmark' @@ -5670,15 +6569,18 @@ paths: Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping. + For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping. - Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox. - If access is required, please contact your partner manager. + Note: Access to the Creative Assets catalog type is restricted to a specific group of users. + If you require access, please reach out to your partner manager. operationId: feeds/create security: - pinterest_oauth2: - catalogs:read - catalogs:write + - client_credentials: + - catalogs:read + - catalogs:write x-sandbox: enabled parameters: - $ref: '#/components/parameters/query_ad_account_id' @@ -5734,7 +6636,9 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: @@ -5790,11 +6694,13 @@ paths: Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping. + For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping. operationId: feeds/get security: - pinterest_oauth2: - catalogs:read + - client_credentials: + - catalogs:read x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_catalogs_feed_id' @@ -5857,15 +6763,18 @@ paths: Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping. + For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping. - Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox. - If access is required, please contact your partner manager. + Note: Access to the Creative Assets catalog type is restricted to a specific group of users. + If you require access, please reach out to your partner manager. operationId: feeds/update security: - pinterest_oauth2: - catalogs:read - catalogs:write + - client_credentials: + - catalogs:read + - catalogs:write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_catalogs_feed_id' @@ -5907,12 +6816,14 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: Sorry, you cannot perform this action. Account is under - review. + 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: @@ -5941,12 +6852,15 @@ paths: Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping. + For Retail partners, refer to Before you get started with Catalogs. For Hotel parterns, refer to Pinterest API for shopping. operationId: feeds/delete security: - pinterest_oauth2: - catalogs:read - catalogs:write + - client_credentials: + - catalogs:read + - catalogs:write x-sandbox: enabled parameters: - $ref: '#/components/parameters/path_catalogs_feed_id' @@ -5976,12 +6890,14 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: Sorry, you cannot perform this action. Account is under - review. + 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: @@ -6015,16 +6931,15 @@ paths: /catalogs/feeds/{feed_id}/ingest: post: x-ratelimit-category: catalogs_write - summary: Ingest items for a given feed + summary: Ingest feed items description: |- Ingest items for a given feed owned by the "operation user_account". Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Learn more - Note: This endpoint is only allowed in the Pinterest API Sandbox (https://api-sandbox.pinterest.com/v5). - Go to https://developers.pinterest.com/docs/dev-tools/sandbox/ for more information. + Note: This endpoint is restricted to a specific group of users. If you require access, please reach out to your partner manager. operationId: feeds/ingest security: - pinterest_oauth2: @@ -6034,8 +6949,12 @@ paths: - $ref: '#/components/parameters/path_catalogs_feed_id' - $ref: '#/components/parameters/query_ad_account_id' responses: - '204': + '200': description: The ingestion process was successfully started. + content: + application/json: + schema: + $ref: '#/components/schemas/CatalogsFeedIngestion' '400': description: Invalid feed parameters. content: @@ -6058,12 +6977,14 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: Sorry, you cannot perform this action. Account is under - review. + 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: @@ -6086,14 +7007,14 @@ paths: /catalogs/feeds/{feed_id}/processing_results: get: x-ratelimit-category: catalogs_read - summary: List processing results for a given feed + summary: List feed processing results description: |- Fetch a feed processing results owned by the "operation user_account". Please note that for now the bookmark parameter is not functional and only the first page will be available until it is implemented in some release in the near future. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Learn more operationId: feed_processing_results/list security: - pinterest_oauth2: @@ -6162,14 +7083,16 @@ paths: /catalogs/processing_results/{processing_result_id}/item_issues: get: x-ratelimit-category: catalogs_read - summary: List item issues for a given processing result + summary: List item issues description: |- List item validation issues for a given feed processing result owned by the "operation user_account". Up to 20 random samples of affected items are returned for each error and warning code. Please note that for now query parameters 'item_numbers' and 'item_validation_issue' cannot be used simultaneously until it is implemented in some release in the future. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Note: To get a list of all affected items instead of sampled issues, please refer to Build catalogs report and Get catalogs report endpoints. Moreover, they support multiple types of catalogs. + + Learn more operationId: items_issues/list security: - pinterest_oauth2: @@ -6239,15 +7162,15 @@ paths: - catalogs /catalogs/items: get: + deprecated: true summary: Get catalogs items description: |- - Get the items of the catalog owned by the "operation user_account". See detailed documentation here. + Get the items of the catalog owned by the "operation user_account". See detailed documentation here. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox. - If access is required, please contact your partner manager. + Note: this endpoint is deprecated and will be deleted soon. Please use Get catalogs items (POST) instead. operationId: items/get security: - pinterest_oauth2: @@ -6306,13 +7229,13 @@ paths: post: summary: Get catalogs items (POST) description: |- - Get the items of the catalog owned by the "operation user_account". See detailed documentation here. + Get the items of the catalog owned by the "operation user_account". See detailed documentation here. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox. - If access is required, please contact your partner manager. + Note: Access to the Creative Assets catalog type is restricted to a specific group of users. + If you require access, please reach out to your partner manager. operationId: items/post security: - pinterest_oauth2: @@ -6377,13 +7300,15 @@ paths: 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. + This endpoint supports multiple operations on a set of one or more catalog items owned by the "operation user_account". See detailed documentation here. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox. - If access is required, please contact your partner manager. + Note: + - Access to the Creative Assets catalog type is restricted to a specific group of users. + If you require access, please reach out to your partner manager. + - The item UPSERT operation is restricted to users without a feed data source. If you plan to migrate item ingestion from feeds to the API, please reach out to your partner manager to get assistance. operationId: items_batch/post x-ratelimit-category: catalogs_write x-sandbox: enabled @@ -6391,6 +7316,9 @@ paths: - pinterest_oauth2: - catalogs:read - catalogs:write + - client_credentials: + - catalogs:read + - catalogs:write parameters: - $ref: '#/components/parameters/query_ad_account_id' requestBody: @@ -6451,9 +7379,9 @@ paths: - catalogs /catalogs/items/batch/{batch_id}: get: - summary: Get catalogs item batch status + summary: Get item batch status description: |- - Get a single catalogs items batch owned by the "operating user_account". See detailed documentation here. + Get a single catalogs items batch owned by the "operating user_account". See detailed documentation here. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. @@ -6461,6 +7389,8 @@ paths: security: - pinterest_oauth2: - catalogs:read + - client_credentials: + - catalogs:read x-ratelimit-category: catalogs_read x-sandbox: enabled parameters: @@ -6527,14 +7457,14 @@ paths: /catalogs/product_groups/multiple: delete: x-ratelimit-category: catalogs_write - summary: Delete multiple product groups + summary: Delete product groups description: |- Delete product groups owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Learn more operationId: catalogs_product_groups/delete_many x-sandbox: enabled parameters: @@ -6568,12 +7498,14 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: Sorry, you cannot perform this action. Account is under - review. + 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: @@ -6615,17 +7547,17 @@ paths: - catalogs post: x-ratelimit-category: catalogs_write - summary: Create multiple product group + summary: Create product groups description: |- Create product group to use in Catalogs owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Learn more - Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox. - If access is required, please contact your partner manager. + Note: Access to the Creative Assets catalog type is restricted to a specific group of users. + If you require access, please reach out to your partner manager. operationId: catalogs_product_groups/create_many security: - pinterest_oauth2: @@ -6655,7 +7587,6 @@ paths: value: - name: Few Filters using "all_of" feed_id: '2680059592705' - featured: false filters: all_of: - MIN_PRICE: @@ -6674,7 +7605,6 @@ paths: can add products to the Product Group independently. value: - name: Many Filters using "any_of" - featured: false feed_id: '2680059592705' filters: all_of: @@ -6757,6 +7687,28 @@ paths: - air mattresses - - table linens negated: false + CatalogBasedRetailFewFiltersUsingAllOf: + summary: A simple catalog based retail example that applies "all of + the following filters". + description: | + The use of "all_of" creates a Product Group where all of the individual filters + must be satisfied by a retail to be included in the Product Group. + value: + - catalog_type: RETAIL + name: Few Filters using "all_of" + catalog_id: '4866935934774' + country: US + locale: en-US + filters: + all_of: + - ITEM_ID: + values: + - item1 + - item2 + - CUSTOM_LABEL_1: + values: + - shoes + negated: false HotelFewFiltersUsingAllOf: summary: A simple hotel example that applies "all of the following filters". @@ -6823,12 +7775,14 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: Sorry, you cannot perform this action. Account is under - review. + 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. @@ -6874,7 +7828,7 @@ paths: Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Learn more operationId: catalogs_product_groups/list security: - pinterest_oauth2: @@ -6935,12 +7889,14 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: Sorry, you cannot perform this action. Account is under - review. + 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: @@ -6974,17 +7930,17 @@ paths: - catalogs post: x-ratelimit-category: catalogs_write - summary: Create single product group + summary: Create product group description: |- Create product group to use in Catalogs owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Learn more - Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox. - If access is required, please contact your partner manager. + Note: Access to the Creative Assets catalog type is restricted to a specific group of users. + If you require access, please reach out to your partner manager. operationId: catalogs_product_groups/create security: - pinterest_oauth2: @@ -7011,7 +7967,6 @@ paths: value: name: Few Filters using "all_of" feed_id: '2680059592705' - featured: false filters: all_of: - MIN_PRICE: @@ -7030,7 +7985,6 @@ paths: can add products to the Product Group independently. value: name: Many Filters using "any_of" - featured: false feed_id: '2680059592705' filters: all_of: @@ -7133,6 +8087,28 @@ paths: values: - big_hotels negated: false + CatalogBasedRetailFewFiltersUsingAllOf: + summary: A simple catalog based retail example that applies "all of + the following filters". + description: | + The use of "all_of" creates a Product Group where all of the individual filters + must be satisfied by a retail to be included in the Product Group. + value: + catalog_type: RETAIL + name: Few Filters using "all_of" + catalog_id: '4866935934774' + country: US + locale: en-US + filters: + all_of: + - ITEM_ID: + values: + - item1 + - item2 + - CUSTOM_LABEL_1: + values: + - shoes + negated: false responses: '201': content: @@ -7174,12 +8150,14 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: Sorry, you cannot perform this action. Account is under - review. + 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. @@ -7218,14 +8196,14 @@ paths: /catalogs/product_groups/{product_group_id}: get: x-ratelimit-category: catalogs_read - summary: Get single product group + summary: Get product group description: |- Get a singe product group for a given Catalogs Product Group Id owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Learn more operationId: catalogs_product_groups/get x-sandbox: enabled parameters: @@ -7275,12 +8253,14 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: Sorry, you cannot perform this action. Account is under - review. + 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: @@ -7314,14 +8294,14 @@ paths: - catalogs delete: x-ratelimit-category: catalogs_write - summary: Delete single product group + summary: Delete product group description: |- Delete a product group owned by the "operation user_account" from being in use in Catalogs. - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Learn more operationId: catalogs_product_groups/delete x-sandbox: enabled parameters: @@ -7367,12 +8347,14 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: Sorry, you cannot perform this action. Account is under - review. + 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: @@ -7421,10 +8403,10 @@ paths: Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Learn more + Learn more - Note: The catalog type of Creative Assets is only allowed in the Pinterest API Sandbox. - If access is required, please contact your partner manager. + Note: Access to the Creative Assets catalog type is restricted to a specific group of users. + If you require access, please reach out to your partner manager. operationId: catalogs_product_groups/update x-sandbox: enabled parameters: @@ -7483,12 +8465,14 @@ paths: MerchantDisapproved: value: code: 2625 - message: Sorry, you cannot perform this action. Account is disapproved. + 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: Sorry, you cannot perform this action. Account is under - review. + 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: @@ -7542,16 +8526,14 @@ paths: /catalogs/product_groups/{product_group_id}/product_counts: get: x-ratelimit-category: catalogs_read - summary: Get product counts for a Product Group + summary: Get product counts description: |- Get a product counts for a given Catalogs Product Group owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Note: This endpoint only supports RETAIL catalog at the moment. - - Learn more + Learn more operationId: catalogs_product_groups/product_counts_get security: - pinterest_oauth2: @@ -7565,7 +8547,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CatalogsProductGroupProductCounts' + $ref: '#/components/schemas/CatalogsProductGroupProductCountsVertical' description: Success '404': description: Product Group Not Found. @@ -7600,16 +8582,14 @@ paths: /catalogs/product_groups/{product_group_id}/products: get: x-ratelimit-category: catalogs_read - summary: List products for a Product Group + summary: List products by product group description: |- Get a list of product pins for a given Catalogs Product Group Id owned by the "operation user_account". - By default, the "operation user_account" is the token user_account. Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager. - Note: This endpoint only supports RETAIL catalog at the moment. - - Learn more + Learn more operationId: catalogs_product_group_pins/list security: - pinterest_oauth2: @@ -7622,6 +8602,7 @@ paths: - $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: @@ -7681,7 +8662,7 @@ paths: /catalogs/products/get_by_product_group_filters: post: x-ratelimit-category: catalogs_read - summary: List products for Product Group Filters + summary: List products by filter description: |- List products Pins owned by the "operation user_account" that meet the criteria specified in the Catalogs Product Group Filter given in the request. - This endpoint has been implemented in POST to allow for complex filters. This specific POST endpoint is designed to be idempotent. @@ -7691,7 +8672,7 @@ paths: Note: This endpoint only supports RETAIL catalog at the moment. - Learn more + Learn more operationId: products_by_product_group_filter/list security: - pinterest_oauth2: @@ -7703,6 +8684,7 @@ paths: - $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 @@ -8247,7 +9229,7 @@ paths: description: |- List media uploads filtered by given parameters. - Learn more about video Pin creation. + Learn more about video Pin creation. tags: - media operationId: media/list @@ -8293,7 +9275,7 @@ paths: parameter and also include all of the parameters from upload_parameters. - Learn more about video Pin creation. + Learn more about video Pin creation. tags: - media operationId: media/create @@ -8329,7 +9311,7 @@ paths: description: |- Get details for a registered media upload, including its current status. - Learn more about video Pin creation. + Learn more about video Pin creation. tags: - media operationId: media/get @@ -8370,9 +9352,11 @@ paths: IMPORTANT: You need to start the OAuth flow via www.pinterest.com/oauth before calling this endpoint (or have an existing refresh token). - See Authentication for more. + See Authentication for more. + + Parameter refresh_on and its corresponding response type everlasting_refresh are now available to all apps! Later this year, continuous refresh will become the default behavior (ie you will no longer need to send this parameter). Learn more. - Parameter refresh_on and its corresponding response type everlasting_refresh are now available to all apps! Later this year, continuous refresh will become the default behavior (ie you will no longer need to send this parameter). Learn more. + Grant type client_credentials and its corresponding response type are not fully available. You will likely get a default error if you attempt to use this grant_type. tags: - oauth operationId: oauth/token @@ -8416,6 +9400,9 @@ paths: - pinterest_oauth2: - boards:read - pins:read + - client_credentials: + - boards:read + - pins:read x-ratelimit-category: org_read x-sandbox: enabled x-codeSamples: @@ -8478,9 +9465,9 @@ paths: Note: If the current "operation user_account" (defined by the access token) has access to another user's Ad Accounts via Pinterest Business Access, you can modify your request to make use of the current operation_user_account's permissions to those Ad Accounts by including the ad_account_id in the path parameters for the request (e.g. .../?ad_account_id=12345&...). - - This function is intended solely for publishing new content created by the user. If you are interested in saving content created by others to your Pinterest boards, sometimes called 'curated content', please use our Save button instead. For more tips on creating fresh content for Pinterest, review our Content App Solutions Guide. + - This function is intended solely for publishing new content created by the user. If you are interested in saving content created by others to your Pinterest boards, sometimes called 'curated content', please use our Save button instead. For more tips on creating fresh content for Pinterest, review our Content App Solutions Guide. - Learn more about video Pin creation. + Learn more about video Pin creation. tags: - pins operationId: pins/create @@ -8500,7 +9487,7 @@ paths: from pinterest.organic.pins import Pin # Board information can be fetched from profile page or from create/list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list BOARD_ID="" pin_create = Pin.create( @@ -8519,7 +9506,7 @@ paths: label: curl source: | # Board information can be fetched from profile page or from create/list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list curl --location --request POST 'https://api.pinterest.com/v5/pins' \ --header 'Authorization: Bearer ' \ @@ -8537,7 +9524,7 @@ paths: label: curl (Sandbox) source: | # Board information can be fetched from profile page or from create/list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list curl --location --request POST 'https://api-sandbox.pinterest.com/v5/pins' \ --header 'Authorization: Bearer ' \ @@ -8650,6 +9637,9 @@ paths: - pinterest_oauth2: - boards:read - pins:read + - client_credentials: + - boards:read + - pins:read x-ratelimit-category: org_read x-sandbox: enabled x-codeSamples: @@ -8660,7 +9650,7 @@ paths: from pinterest.organic.pins import Pin # Pin information can be fetched from profile page or from list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/pins/list PIN_ID="" pin_get = Pin(pin_id=PIN_ID) @@ -8669,7 +9659,7 @@ paths: label: curl source: | # Pin information can be fetched from profile page or from list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/pins/list curl --location --request GET 'https://api.pinterest.com/v5/pins/' \ --header 'Authorization: Bearer ' \ @@ -8678,7 +9668,7 @@ paths: label: curl (Sandbox) source: | # Pin information can be fetched from profile page or from list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/pins/list curl --location --request GET 'https://api-sandbox.pinterest.com/v5/pins/' \ --header 'Authorization: Bearer ' \ @@ -8747,7 +9737,7 @@ paths: from pinterest.organic.pins import Pin # Pin information can be fetched from profile page or from create/list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/pins/list PIN_ID="" pin_delete=Pin.delete(pin_id=PIN_ID) @@ -8757,7 +9747,7 @@ paths: label: curl source: | # Pin information can be fetched from profile page or from create/list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/pins/list curl --request DELETE 'https://api.pinterest.com/v5/pins/' \ --header 'Authorization: Bearer ' \ @@ -8766,7 +9756,7 @@ paths: label: curl (Sandbox) source: | # Pin information can be fetched from profile page or from create/list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/pins/list curl --request DELETE 'https://api-sandbox.pinterest.com/v5/pins/' \ --header 'Authorization: Bearer ' \ @@ -8812,7 +9802,7 @@ paths: - For Pins on public or protected boards: Owner, Admin, Analyst, Campaign Manager. - For Pins on secret boards: Owner, Admin. - This endpoint is currently in beta and not available to all apps. Learn more. + This endpoint is currently in beta and not available to all apps. Learn more. tags: - pins operationId: pins/update @@ -8829,7 +9819,7 @@ paths: label: curl source: | # Pin information can be fetched from profile page or from create/list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/pins/list curl --location --request PATCH 'https://api.pinterest.com/v5/pins/' \ --header 'Authorization: Bearer ' \ @@ -8841,7 +9831,7 @@ paths: label: curl (Sandbox) source: | # Pin information can be fetched from profile page or from create/list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/pins/list curl --location --request GET 'https://api-sandbox.pinterest.com/v5/pins/' \ --header 'Authorization: Bearer ' \ @@ -8911,7 +9901,7 @@ paths: Get analytics for a Pin owned by the "operation user_account" - or on a group board that has been shared with this account. - By default, the "operation user_account" is the token user_account. - Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: + Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: - For Pins on public or protected boards: Admin, Analyst. - For Pins on secret boards: Admin. @@ -8924,6 +9914,9 @@ paths: - pinterest_oauth2: - boards:read - pins:read + - client_credentials: + - boards:read + - pins:read x-ratelimit-category: org_analytics x-sandbox: disabled parameters: @@ -8978,13 +9971,13 @@ paths: get: summary: Get multiple Pin analytics description: |- - This endpoint is currently in beta and not available to all apps. Learn more. + This endpoint is currently in beta and not available to all apps. Learn more. Get analytics for multiple pins owned by the "operation user_account" - or on a group board that has been shared with this account. - The maximum number of pins supported in a single request is 100. - By default, the "operation user_account" is the token user_account. - Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: + Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: - For Pins on public or protected boards: Admin, Analyst. - For Pins on secret boards: Admin. @@ -8997,19 +9990,13 @@ paths: - pinterest_oauth2: - boards:read - pins:read + - client_credentials: + - boards:read + - pins:read x-ratelimit-category: org_analytics x-sandbox: disabled parameters: - - name: pin_ids - description: List of Pin IDs. - in: query - schema: - type: array - items: - type: string - pattern: ^\d+$ - minItems: 1 - maxItems: 100 + - $ref: '#/components/parameters/query_required_pin_ids' - $ref: '#/components/parameters/query_start_date' - $ref: '#/components/parameters/query_end_date' - $ref: '#/components/parameters/query_app_types' @@ -9032,6 +10019,8 @@ paths: - SAVE_RATE - TOTAL_COMMENTS - TOTAL_REACTIONS + - USER_FOLLOW + - PROFILE_VISIT - description: Video Pin metric types type: string enum: @@ -9137,11 +10126,11 @@ paths: from pinterest.organic.pins import Pin # Pin information can be fetched from profile page or from create/list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/pins/list PIN_ID="" # Board information can be fetched from profile page or from list board method here: - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/boards/list NEW_BOARD_ID="" pin_save = Pin(pin_id=PIN_ID) @@ -9151,8 +10140,8 @@ paths: label: curl source: | # Pin and Board information can be fetched from profile page or from create/list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/boards/list curl --request DELETE 'https://api.pinterest.com/v5/pins//save' \ --header 'Authorization: Bearer ' \ @@ -9164,8 +10153,8 @@ paths: label: curl (Sandbox) source: | # Pin and Board information can be fetched from profile page or from create/list pin method here: - # https://developers.pinterest.com/docs/api/v5/#operation/pins/list - # https://developers.pinterest.com/docs/api/v5/#operation/boards/list + # /docs/api/v5/#operation/pins/list + # /docs/api/v5/#operation/boards/list curl --request DELETE 'https://api-sandbox.pinterest.com/v5/pins//save' \ --header 'Authorization: Bearer ' \ @@ -9268,7 +10257,7 @@ paths: description: |- Get the definitions for ads and organic metrics available across both synchronous and asynchronous report endpoints. The `display_name` attribute will match how the metric is named in our native tools like Ads Manager. - See Organic Analytics and Ads Analytics for more information. + See Organic Analytics and Ads Analytics for more information. operationId: delivery_metrics/get security: - pinterest_oauth2: @@ -9300,7 +10289,7 @@ paths: description: |- Get a list of all lead form question type names. Some questions might not be used. - This endpoint is currently in beta and not available to all apps. Learn more. + This endpoint is currently in beta and not available to all apps. Learn more. operationId: lead_form_questions/get security: - pinterest_oauth2: @@ -9400,6 +10389,7 @@ paths: - $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: @@ -9422,12 +10412,15 @@ paths: Search for boards for the "operation user_account". This includes boards of all board types. - By default, the "operation user_account" is the token user_account. - If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information. + If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information. operationId: search_user_boards/get security: - pinterest_oauth2: - boards:read - boards:read_secret + - client_credentials: + - boards:read + - boards:read_secret x-ratelimit-category: org_read x-sandbox: disabled parameters: @@ -9463,7 +10456,7 @@ paths: Search for pins for the "operation user_account". - By default, the "operation user_account" is the token user_account. - If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information. + If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information. operationId: search_user_pins/list security: - pinterest_oauth2: @@ -9515,7 +10508,7 @@ paths: get: summary: Search pins by a given search term description: |- - This endpoint is currently in beta and not available to all apps. Learn more. + This endpoint is currently in beta and not available to all apps. Learn more. Get the top 10 Pins by a given search term. operationId: search_partner_pins @@ -9659,11 +10652,8 @@ paths: /trends/keywords/{region}/top/{trend_type}: get: summary: List trending keywords - description: |- -

    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. + description: | +

    Get the top trending search keywords among the Pinterest user audience.

    Trending keywords can be used to inform ad targeting, budget strategy, and creative decisions about which products and Pins will resonate with your audience.

    Geographic, demographic and interest-based filters are available to narrow down to the top trends among a specific audience. Multiple trend types are supported that can be used to identify newly-popular, evergreen or seasonal keywords.

    For an interactive way to explore this data, please visit trends.pinterest.com. operationId: trending_keywords/list security: - pinterest_oauth2: @@ -9720,13 +10710,15 @@ paths: Get account information for the "operation user_account" - By default, the "operation user_account" is the token user_account. - If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information. + If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See Understanding Business Access for more information. tags: - user_account operationId: user_account/get security: - pinterest_oauth2: - user_accounts:read + - client_credentials: + - user_accounts:read x-ratelimit-category: org_read x-sandbox: enabled parameters: @@ -9826,6 +10818,9 @@ paths: - pinterest_oauth2: - pins:read - user_accounts:read + - client_credentials: + - pins:read + - user_accounts:read x-ratelimit-category: org_analytics x-sandbox: disabled parameters: @@ -9878,6 +10873,9 @@ paths: - pinterest_oauth2: - pins:read - user_accounts:read + - client_credentials: + - pins:read + - user_accounts:read x-ratelimit-category: org_analytics x-sandbox: disabled parameters: @@ -9923,6 +10921,8 @@ paths: security: - pinterest_oauth2: - user_accounts:read + - client_credentials: + - user_accounts:read x-ratelimit-category: org_read x-sandbox: enabled responses: @@ -9950,6 +10950,8 @@ paths: security: - pinterest_oauth2: - user_accounts:read + - client_credentials: + - user_accounts:read x-ratelimit-category: ads_read x-sandbox: enabled parameters: @@ -9994,6 +10996,8 @@ paths: security: - pinterest_oauth2: - user_accounts:read + - client_credentials: + - user_accounts:read x-ratelimit-category: org_read x-sandbox: disabled parameters: @@ -10033,6 +11037,8 @@ paths: security: - pinterest_oauth2: - user_accounts:read + - client_credentials: + - user_accounts:read x-ratelimit-category: org_read x-sandbox: enabled parameters: @@ -10075,7 +11081,7 @@ paths: post: summary: Follow user description: |- - This endpoint is currently in beta and not available to all apps. Learn more. + This endpoint is currently in beta and not available to all apps. Learn more. Use this request, as a signed-in user, to follow another user. tags: @@ -10131,6 +11137,8 @@ paths: - 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 @@ -10233,9 +11241,13 @@ paths: 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: @@ -10272,6 +11284,8 @@ paths: security: - pinterest_oauth2: - user_accounts:read + - client_credentials: + - user_accounts:read x-ratelimit-category: org_read parameters: - $ref: '#/components/parameters/path_username' @@ -10354,6 +11368,32 @@ components: 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 + 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 @@ -10557,10 +11597,12 @@ components: 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 @@ -10607,10 +11649,12 @@ components: 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 form creation time. Unix timestamp in milliseconds. example: 1699209842000 @@ -10665,8 +11709,7 @@ components: type: string pattern: ^(AG)?\d+$ android_deep_link: - description: Deep link URL for Android devices. Not currently available. - Using this field will generate an error. + description: Deep link URL for Android devices. nullable: true type: string carousel_android_deep_links: @@ -10698,8 +11741,7 @@ components: type: string nullable: true ios_deep_link: - description: Deep link URL for iOS devices. Not currently available. Using - this field will generate an error. + description: Deep link URL for iOS devices. type: string nullable: true is_pin_deleted: @@ -10737,7 +11779,7 @@ components: description: Select a call to action (CTA) to display below your ad. Available only for ads with direct links enabled. CTA options for consideration and conversion campaigns are LEARN_MORE, SHOP_NOW, BOOK_NOW, SIGN_UP, - VISIT_WEBSITE, BUY_NOW, GET_OFFER, ORDER_NOW, ADD_TO_CART (for conversion + 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 @@ -10751,7 +11793,7 @@ components: - BUY_NOW - CONTACT_US - GET_QUOTE - - VISIT_WEBSITE + - VISIT_SITE - APPLY_NOW - BOOK_NOW - REQUEST_DEMO @@ -11025,14 +12067,287 @@ components: AdCreateRequest: type: object allOf: - - $ref: '#/components/schemas/AdCommon' - - $ref: '#/components/schemas/AdPinId' + - $ref: '#/components/schemas/AdCommon' + - $ref: '#/components/schemas/AdPinId' + - type: object + title: Request schema for creating ads + required: + - ad_group_id + - pin_id + - creative_type + 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 - title: Request schema for creating ads + 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: - - ad_group_id - - pin_id - - creative_type + - update_mask + AdvancedAuctionItemsSubmitDeleteRecord: + description: Object describing an item bid option deletion operation + example: + item_id: DS0294-M + country: US + language: EN + operation: DELETE + allOf: + - $ref: '#/components/schemas/AdvancedAuctionKey' + AdvancedAuctionProcessedItems: + type: object + description: Response object containing the results of an operation on an item + bid option + properties: + catalog_id: + description: Catalog id pertaining to all items + example: '2680059592705' + type: string + pattern: ^\d+$ + items: + type: array + description: Array of advanced auction processed items + items: + $ref: '#/components/schemas/AdvancedAuctionProcessedItem' + AdvancedAuctionProcessedItem: + description: Object describing the result of an operation on an item bid option + type: object + allOf: + - $ref: '#/components/schemas/AdvancedAuctionItemsSubmitRecord' + - type: object + properties: + errors: + type: array + description: |- + Array with validation errors for the supplied item bid option modification operation. + A non empty errors list means this single item operation was not applied. + items: + $ref: '#/components/schemas/AdvancedAuctionOperationError' + AdvancedAuctionItem: + title: Advanced Auction Item + allOf: + - $ref: '#/components/schemas/AdvancedAuctionKey' + - type: object + properties: + bid_options: + $ref: '#/components/schemas/AdvancedAuctionBidOptions' + required: + - bid_options + AdvancedAuctionKey: + type: object + description: Object uniquely identifying a retail catalog item + properties: + item_id: + description: The catalog retail item id in the merchant namespace + example: DS0294-M + type: string + country: + $ref: '#/components/schemas/Country' + language: + $ref: '#/components/schemas/Language' + required: + - item_id + - country + - language + AdvancedAuctionOperation: + type: string + enum: + - UPSERT + - DELETE + AdvancedAuctionBidOptions: + type: object + description: Object describing a retail catalog item's bid options (bid price + and bid multipliers). + properties: + bid_in_micro_currency: + $ref: '#/components/schemas/BidInMicroCurrency' + app_type_multipliers: + $ref: '#/components/schemas/AppTypeMultipliers' + placement_multipliers: + $ref: '#/components/schemas/PlacementMultipliers' + AdvancedAuctionOperationError: + description: Error which occurred when applying a bid options operation to a + specific item. + type: object + properties: + code: + description: The error code for the item bid option operation validation + error + type: integer + example: 6 + message: + description: Message describing the item bid option operation validation + error + type: string + example: Bid in micro currency should be non-negative + BidInMicroCurrency: + type: integer + format: int64 + description: Bid price in micro currency. A value of 0 will stop distribution + for this item in `MAX_BID` ad groups in `CATALOG_SALES` campaigns. A value + of `null` will fallback to the ad group's `bid_in_micro_currency`. + example: 5000000 + nullable: true + AppTypeMultipliers: + type: object + description: |- + This represents a mapping from app type targeting criteria to a bid price adjustment. + + Multiplier values must be between 0 and 10. A value of 10 represents a 900% increase in bid price (from $1 to $10 for example). A value of 0 will stop distribution for this item on the specified app type in `MAX_BID` ad groups in `CATALOG_SALES` campaigns. All app type multipliers must be set at the same time. If a multiplier is not provided it is assumed to be 1 (no bid adjustment). + example: + android_mobile: 1.1 + android_tablet: 1.1 + ipad: 1.2 + iphone: 1.2 + web: 0.9 + web_mobile: 0.8 + properties: + APP_TYPE: + $ref: '#/components/schemas/TargetingSpecAppType' + additionalProperties: + type: number + format: double + nullable: true + TargetingSpecAppType: + type: string + enum: + - android_mobile + - android_tablet + - ipad + - iphone + - web + - web_mobile + PlacementMultipliers: + type: object + description: |- + This represents a mapping from placement to a bid price adjustment. + + Multiplier values must be between 0 and 10. A value of 10 represents a 900% increase in bid price (from $1 to $10 for example). A value of 0 will stop distribution for this item on the specified placement in `MAX_BID` ad groups in `CATALOG_SALES` campaigns. All placement multipliers must be set at the same time. If a multiplier is not provided it is assumed to be 1 (no bid adjustment). + example: + browse: 0.9 + search: 1.2 + properties: + PLACEMENT: + type: string + enum: + - SEARCH + - BROWSE + 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: @@ -11104,7 +12419,7 @@ components: 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 + A CPM ad group has an IMPRESSION billable_event value. This field **REQUIRES** the `end_time` field. type: integer example: 100 @@ -11113,13 +12428,13 @@ components: 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 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: @@ -11132,8 +12447,7 @@ components: type: string allOf: - $ref: '#/components/schemas/PlacementGroupType' - description: Placement - group. + description: Placement group. pacing_delivery_type: type: string allOf: @@ -11147,7 +12461,8 @@ components: $ref: '#/components/schemas/ActionType' bid_strategy_type: nullable: true - description: Bid strategy type + description: Bid strategy type. For Campaigns with Video Completion objectives, + the only supported bid strategy type is AUTOMATIC_BID. enum: - AUTOMATIC_BID - MAX_BID @@ -11571,6 +12886,44 @@ components: nullable: true required: - id + 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 AdsAnalyticsCreateAsyncRequest: type: object allOf: @@ -11676,7 +13029,7 @@ components: - VIDEO_VIEW items: $ref: '#/components/schemas/ObjectiveType' - maxItems: 6 + maxItems: 7 minItems: 1 - type: object properties: @@ -11802,14 +13155,31 @@ components: type: string allOf: - type: string - description: Whether to first sort the report by date or by ID. BY_DATE - is recommended for large requests. BY_DATE for JSON format is currently - not supported. + description: Whether to first sort the report by date or by entity ID + of the reporting entity level. Date will be used as the first level + key for JSON reports that use BY_DATE. BY_DATE is recommended for + large requests. example: BY_ID enum: - BY_ID - BY_DATE default: BY_ID + start_hour: + description: Which hour of the start date to begin the report. The entire + day will be included if no start hour is provided. Only allowed for + hourly reports. + type: integer + minimum: 0 + maximum: 23 + end_hour: + description: Which hour of the end date to stop the report (inclusive). + For example, with an end_date of '2020-01-01' and end_hour of '15', + the report will contain metrics up to '2020-01-01 14:59:59'. The entire + day will be included if no end hour is provided. Only allowed for hourly + reports. + type: integer + minimum: 0 + maximum: 23 AdsAnalyticsCreateAsyncResponse: type: object properties: @@ -12078,6 +13448,11 @@ components: $ref: '#/components/schemas/AssetTypeResponse' permissions: $ref: '#/components/schemas/PermissionsResponse' + asset_group_info: + nullable: true + description: An object containing all the information specific to the provided + asset group. This field will be populated only if asset_type equals 'ASSET_GROUP'. + $ref: '#/components/schemas/AssetGroupBinding' AssetIdToPermissions: description: | An object mapping asset ids to lists of business permissions. This can be used to setting/requesting permissions on various assets. If accepting an invite or request, this object would be used to grant asset permissions to the member or partner. @@ -12098,7 +13473,8 @@ components: '809944451643622187': - PROFILE_PUBLISHER AssetTypeResponse: - description: Type of asset. Currently we only support AD_ACCOUNT and PROFILE. + description: Type of asset. Currently we only support AD_ACCOUNT and PROFILE, + and ASSET_GROUP. example: AD_ACCOUNT type: string Audience: @@ -12472,7 +13848,7 @@ components: "event_source": {"=": ["web", "mobile"]}, "ingestion_source": {"=": ["tag"]}}
    (Retention days should be 1-540. Retention applies to specific customers.)
    ENGAGEMENT: {"engagement_domain": ["www.entomi.com"], "engager_type": 1}
    For more details - on engagement audiences, see November 2021 changelog.' properties: country: @@ -12743,6 +14119,18 @@ components: type: string title: Rule type: object + AudienceShareType: + type: string + default: SHARED + enum: + - SHARED + - RECEIVED + AudienceAccountType: + type: string + default: AD_ACCOUNT + enum: + - AD_ACCOUNT + - BUSINESS_ACCOUNT AudienceSharingType: description: 'Audience sharing type: ["CUSTOM", "SYNDICATED"]' type: string @@ -13811,26 +15199,14 @@ components: Campaign Budget Optimization (CBO) campaigns. example: 1644023526 nullable: true - summary_status: - type: string - allOf: - - $ref: '#/components/schemas/CampaignSummaryStatus' + is_flexible_daily_budgets: + $ref: '#/components/schemas/CampaignIsFlexibleDailyBudgets' CampaignCreateCommon: type: object allOf: - $ref: '#/components/schemas/CampaignCommon' - type: object properties: - status: - type: string - default: ACTIVE - allOf: - - $ref: '#/components/schemas/EntityStatus' - is_flexible_daily_budgets: - type: boolean - default: false - allOf: - - $ref: '#/components/schemas/CampaignIsFlexibleDailyBudgets' default_ad_group_budget_in_micro_currency: type: integer description: When transitioning from campaign budget optimization to non-campaign @@ -13840,16 +15216,28 @@ components: example: 0 nullable: true is_automated_campaign: - type: boolean - default: false - allOf: - - $ref: '#/components/schemas/CampaignIsAutomatedCampaign' + $ref: '#/components/schemas/CampaignIsAutomatedCampaign' CampaignCreateRequest: type: object allOf: - $ref: '#/components/schemas/CampaignCreateCommon' - type: object properties: + is_flexible_daily_budgets: + type: boolean + default: false + allOf: + - $ref: '#/components/schemas/CampaignIsFlexibleDailyBudgets' + is_automated_campaign: + type: boolean + default: false + allOf: + - $ref: '#/components/schemas/CampaignIsAutomatedCampaign' + status: + type: string + default: ACTIVE + allOf: + - $ref: '#/components/schemas/EntityStatus' objective_type: $ref: '#/components/schemas/ObjectiveType' required: @@ -13894,19 +15282,19 @@ components: description: Specifies whether the campaign was created in the automated campaign flow example: true - default: false + nullable: true CampaignIsCampaignBudgetOptimization: type: boolean description: Determines if a campaign automatically generate ad-group level budgets given a campaign budget to maximize campaign outcome. When transitioning from non-cbo to cbo, all previous child ad group budget will be cleared. example: true - default: false + nullable: true CampaignIsFlexibleDailyBudgets: type: boolean description: Determine if a campaign has flexible daily budgets setup. example: true - default: false + nullable: true CampaignResponse: type: object allOf: @@ -13928,19 +15316,10 @@ components: type: string description: Always "campaign". example: campaign - is_flexible_daily_budgets: - type: boolean - description: Determines if a campaign has flexible daily budgets setup. - example: true - nullable: true is_campaign_budget_optimization: - type: boolean - description: Determines if a campaign automatically generate ad-group - level budgets given a campaign budget to maximize campaign outcome. - When transitioning from non-cbo to cbo, all previous child ad group - budget will be cleared. - example: true - nullable: true + $ref: '#/components/schemas/CampaignIsCampaignBudgetOptimization' + summary_status: + $ref: '#/components/schemas/CampaignSummaryStatus' CampaignSummaryStatus: type: string description: Summary status for campaign @@ -13958,30 +15337,11 @@ components: type: object allOf: - $ref: '#/components/schemas/CampaignId' - - $ref: '#/components/schemas/CampaignCommon' - $ref: '#/components/schemas/CampaignCreateCommon' - type: object properties: is_campaign_budget_optimization: - type: boolean - nullable: true - allOf: - - $ref: '#/components/schemas/CampaignIsCampaignBudgetOptimization' - is_flexible_daily_budgets: - type: boolean - nullable: true - allOf: - - $ref: '#/components/schemas/CampaignIsFlexibleDailyBudgets' - is_automated_campaign: - type: boolean - nullable: true - allOf: - - $ref: '#/components/schemas/CampaignIsAutomatedCampaign' - status: - type: string - nullable: true - allOf: - - $ref: '#/components/schemas/EntityStatus' + $ref: '#/components/schemas/CampaignIsCampaignBudgetOptimization' objective_type: type: string nullable: true @@ -14057,73 +15417,23 @@ components: - id - name - catalog_type - CatalogProductGroup: - description: non-promoted catalog product group entity - properties: - id: - description: ID of the catalog product group. - example: '2680059592705' - title: id - type: string - merchant_id: - description: Merchant ID pertaining to the owner of the catalog product - group. - example: '2680059592705' - pattern: ^\d+$ - title: merchant_id - type: string - name: - description: Name of catalog product group - example: Most Popular - title: name - type: string - filters: - description: Object holding a list of filters - example: - '1': - - 123chars_title - title: filters - type: object - filter_v2: - description: Object holding a list of filters - example: - '1': - - 123chars_title - title: filters - type: object - type: - $ref: '#/components/schemas/Board' - status: - $ref: '#/components/schemas/EntityStatus' - feed_profile_id: - description: id of the feed profile belonging to this catalog product group - pattern: ^\d+$ - title: feed_profile_id - type: string - created_at: - description: Unix timestamp in seconds of when catalog product group was - created. - example: 1621350033000 - title: created_at - type: integer - last_update: - description: Unix timestamp in seconds of last time catalog product group - was updated. - example: 1622742155000 - title: last_update - type: integer - product_count: - description: Amount of products in the catalog product group - example: 6 - title: product_count - type: integer - featured_position: - description: index of the featured position of the catalog product group - example: 2 - title: featured_position - type: integer - title: CatalogProductGroup + CatalogsCreateRequest: type: object + title: catalogs_create_request + description: Request object for creating a catalog. + additionalProperties: false + properties: + catalog_type: + description: Type of the catalog entity. + type: string + enum: + - HOTEL + name: + description: A human-friendly name associated to a given catalog. + type: string + required: + - catalog_type + - name CatalogsDbItem: type: object title: db_item @@ -14138,6 +15448,10 @@ components: type: string format: date-time example: '2022-03-14T15:16:34Z' + required: + - id + - created_at + - updated_at CatalogsCreateReportResponse: type: object properties: @@ -14332,7 +15646,7 @@ components: pattern: ^\d+$ description: Unique identifier of a feed processing result. It can be acquired from the "id" field of the "items" array within the response of the [List - processing results for a given feed](https://developers.pinterest.com/docs/api/v5/#operation/feed_processing_results/list). + processing results for a given feed](/docs/api/v5/#operation/feed_processing_results/list). If not provided, default to most recent completed processing result. required: - report_type @@ -14615,6 +15929,26 @@ components: PREORDER: type: integer description: The number of ingested products that are in preorder. + CatalogsFeedIngestion: + type: object + properties: + id: + type: string + example: '01234' + feed_id: + type: string + example: '56789' + created_at: + type: string + format: date-time + example: '2022-03-14T15:16:34Z' + status: + $ref: '#/components/schemas/CatalogsFeedProcessingStatus' + required: + - id + - feed_id + - created_at + - status CatalogsFeedIngestionWarnings: type: object properties: @@ -15074,13 +16408,8 @@ components: type: string enum: - COMPLETED - - COMPLETED_EARLY - - DISAPPROVED - FAILED - PROCESSING - - QUEUED_FOR_PROCESSING - - UNDER_APPEAL - - UNDER_REVIEW CatalogsFeedProductCounts: type: object description: The counts can be null early in the process. @@ -15455,6 +16784,11 @@ components: $ref: '#/components/schemas/Country' default_availability: $ref: '#/components/schemas/ProductAvailabilityType' + status: + type: string + allOf: + - $ref: '#/components/schemas/CatalogsStatus' + - default: ACTIVE required: - format - location @@ -15538,6 +16872,11 @@ components: $ref: '#/components/schemas/Country' default_availability: $ref: '#/components/schemas/ProductAvailabilityType' + status: + type: string + allOf: + - $ref: '#/components/schemas/CatalogsStatus' + - default: ACTIVE required: - format - location @@ -15631,6 +16970,11 @@ components: nullable: true type: string pattern: ^\d+$ + status: + type: string + allOf: + - $ref: '#/components/schemas/CatalogsStatus' + - default: ACTIVE required: - format - location @@ -15765,6 +17109,11 @@ components: nullable: true type: string pattern: ^\d+$ + status: + type: string + allOf: + - $ref: '#/components/schemas/CatalogsStatus' + - default: ACTIVE required: - format - location @@ -16351,14 +17700,14 @@ components: example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e type: string created_time: - description: 'Time of the batch creation: YYYY-MM-DD''T''hh:mm:ssTZD' - example: '2020-01-01T20:10:40-00:00' + 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: 'Time of the batch completion: YYYY-MM-DD''T''hh:mm:ssTZD' - example: '2022-03-10T15:37:10-00:00' + 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 @@ -16384,14 +17733,14 @@ components: example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e type: string created_time: - description: 'Time of the batch creation: YYYY-MM-DD''T''hh:mm:ssTZD' - example: '2020-01-01T20:10:40-00:00' + 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: 'Time of the batch completion: YYYY-MM-DD''T''hh:mm:ssTZD' - example: '2022-03-10T15:37:10-00:00' + 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 @@ -16417,14 +17766,14 @@ components: example: 595953100599279259-66753b9bb65c46c49bd8503b27fecf9e type: string created_time: - description: 'Time of the batch creation: YYYY-MM-DD''T''hh:mm:ssTZD' - example: '2020-01-01T20:10:40-00:00' + 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: 'Time of the batch completion: YYYY-MM-DD''T''hh:mm:ssTZD' - example: '2022-03-10T15:37:10-00:00' + 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 @@ -16449,7 +17798,10 @@ components: country: $ref: '#/components/schemas/Country' language: - $ref: '#/components/schemas/Language' + description: We recommend using the CatalogsLocale values. + anyOf: + - $ref: '#/components/schemas/CatalogsLocale' + - $ref: '#/components/schemas/Language' filters: $ref: '#/components/schemas/CatalogsItemsPostFilters' required: @@ -16482,7 +17834,10 @@ components: country: $ref: '#/components/schemas/Country' language: - $ref: '#/components/schemas/Language' + description: We recommend using the CatalogsLocale values. + anyOf: + - $ref: '#/components/schemas/CatalogsLocale' + - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: @@ -16505,7 +17860,10 @@ components: country: $ref: '#/components/schemas/Country' language: - $ref: '#/components/schemas/Language' + description: We recommend using the CatalogsLocale values. + anyOf: + - $ref: '#/components/schemas/CatalogsLocale' + - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: @@ -16526,7 +17884,10 @@ components: country: $ref: '#/components/schemas/Country' language: - $ref: '#/components/schemas/Language' + description: We recommend using the CatalogsLocale values. + anyOf: + - $ref: '#/components/schemas/CatalogsLocale' + - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: @@ -16547,7 +17908,10 @@ components: country: $ref: '#/components/schemas/Country' language: - $ref: '#/components/schemas/Language' + description: We recommend using the CatalogsLocale values. + anyOf: + - $ref: '#/components/schemas/CatalogsLocale' + - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: @@ -16569,7 +17933,10 @@ components: country: $ref: '#/components/schemas/Country' language: - $ref: '#/components/schemas/Language' + description: We recommend using the CatalogsLocale values. + anyOf: + - $ref: '#/components/schemas/CatalogsLocale' + - $ref: '#/components/schemas/Language' operation: $ref: '#/components/schemas/BatchOperation' items: @@ -16588,21 +17955,115 @@ components: description: Request object to list products for a given product group filter. type: object oneOf: - - description: Request object to list products for a given feed_id and product - group filter. - type: object - additionalProperties: false - properties: - feed_id: - description: Catalog Feed id pertaining to the catalog product group filter. - example: '2680059592705' - type: string - pattern: ^\d+$ - filters: - $ref: '#/components/schemas/CatalogsProductGroupFilters' - required: - - feed_id - - filters + - $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: @@ -16654,14 +18115,22 @@ components: - zh-TW CatalogsProduct: type: object + description: Catalogs product for all verticals properties: - metadata: - $ref: '#/components/schemas/CatalogsProductMetadata' - pin: - $ref: '#/components/schemas/Pin' + catalog_type: + $ref: '#/components/schemas/CatalogsType' required: - - metadata - - pin + - 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 @@ -16912,6 +18381,7 @@ components: filters: $ref: '#/components/schemas/CatalogsProductGroupFilters' is_featured: + deprecated: true description: boolean indicator of whether the product group is being featured or not type: boolean @@ -16939,6 +18409,12 @@ components: type: string pattern: ^\d+$ nullable: true + country: + type: string + nullable: true + locale: + type: string + nullable: true required: - filters - id @@ -17060,6 +18536,7 @@ components: type: string nullable: true is_featured: + deprecated: true description: boolean indicator of whether the product group is being featured or not type: boolean @@ -17107,6 +18584,7 @@ components: - $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' @@ -17267,11 +18745,67 @@ components: default: false required: - values - CatalogsProductGroupProductCounts: - title: catalogs_product_group_product_counts + 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 @@ -17284,7 +18818,11 @@ components: total: type: number minimum: 0 + videos: + type: number + minimum: 0 required: + - catalog_type - in_stock - out_of_stock - preorder @@ -17331,14 +18869,30 @@ components: 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' - CatalogsProductMetadata: + 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: Product metadata entity + description: Retail product metadata entity properties: item_id: description: The user-created unique ID that represents the product. @@ -17520,11 +19074,16 @@ components: additionalProperties: false properties: catalog_type: - $ref: '#/components/schemas/CatalogsType' + type: string + enum: + - RETAIL country: $ref: '#/components/schemas/Country' language: - $ref: '#/components/schemas/Language' + description: We recommend using the CatalogsLocale values. + anyOf: + - $ref: '#/components/schemas/CatalogsLocale' + - $ref: '#/components/schemas/Language' items: minItems: 1 maxItems: 1000 @@ -17598,9 +19157,6 @@ components: type: string enum: - CREATE - - UPDATE - - UPSERT - - DELETE attributes: $ref: '#/components/schemas/ItemAttributesRequest' required: @@ -17618,10 +19174,7 @@ components: operation: type: string enum: - - CREATE - UPDATE - - UPSERT - - DELETE attributes: $ref: '#/components/schemas/UpdatableItemAttributes' update_mask: @@ -17691,10 +19244,7 @@ components: operation: type: string enum: - - CREATE - - UPDATE - UPSERT - - DELETE attributes: $ref: '#/components/schemas/ItemAttributesRequest' required: @@ -17712,9 +19262,6 @@ components: operation: type: string enum: - - CREATE - - UPDATE - - UPSERT - DELETE required: - item_id @@ -17725,11 +19272,16 @@ components: additionalProperties: false properties: catalog_type: - $ref: '#/components/schemas/CatalogsType' + type: string + enum: + - HOTEL country: $ref: '#/components/schemas/Country' language: - $ref: '#/components/schemas/Language' + description: We recommend using the CatalogsLocale values. + anyOf: + - $ref: '#/components/schemas/CatalogsLocale' + - $ref: '#/components/schemas/Language' items: minItems: 1 maxItems: 1000 @@ -17836,6 +19388,31 @@ components: 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: @@ -17911,17 +19488,58 @@ components: 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: - $ref: '#/components/schemas/CatalogsType' + type: string + enum: + - CREATIVE_ASSETS country: $ref: '#/components/schemas/Country' language: - $ref: '#/components/schemas/Language' + description: We recommend using the CatalogsLocale values. + anyOf: + - $ref: '#/components/schemas/CatalogsLocale' + - $ref: '#/components/schemas/Language' items: minItems: 1 maxItems: 1000 @@ -18216,18 +19834,33 @@ components: additionalProperties: false properties: event_name: - description: "The type of the user event. Please use the right event_name\ - \ otherwise the event won\u2019t be accepted and show up correctly\ - \ in reports.

  • add_to_cart
  • checkout\ - \
  • custom
  • lead
  • page_visit\ - \
  • search
  • signup
  • view_category\ - \
  • watch_video" + description: | +

    The type of the user event. Please use the right event_name otherwise the event won't be accepted and show up correctly in reports. +

      +
    • add_to_cart
    • +
    • checkout
    • +
    • custom
    • +
    • lead
    • +
    • page_visit
    • +
    • search
    • +
    • signup
    • +
    • view_category
    • +
    • watch_video
    • +
    +

    type: string example: checkout action_source: - description: The source indicating where the conversion event occurred. -
  • app_android
  • app_ios
  • web -
  • offline + description: | +

    + The source indicating where the conversion event occurred. +

      +
    • app_android
    • +
    • app_ios
    • +
    • web
    • +
    • offline
    • +
    +

    type: string example: app_ios event_time: @@ -18388,7 +20021,7 @@ components: description: Flags for different privacy rights laws to opt out users of sharing personal information. Values should be comma separated. Please follow the Help Center and Help Center and dev site for specific opt_out_type set up. example: LDP type: string @@ -18468,7 +20101,8 @@ components: em: description: Sha256 hashes of lowercase version of user's email addresses. Used for matching. We highly recommend this on checkout events at least. - It may improve reporting performance such as ROAS/CPA. + It may improve reporting performance such as ROAS/CPA. The string should + be in the UTF-8 format. type: array items: type: string @@ -18479,7 +20113,8 @@ components: description: Sha256 hashes of user's "Google Advertising IDs" (GAIDs) or "Apple's Identifier for Advertisers" (IDFAs). Used for matching. We highly recommend this on checkout events at least. It may improve - reporting performance such as ROAS/CPA. + reporting performance such as ROAS/CPA. The string should be in the + UTF-8 format. type: array items: type: string @@ -18505,7 +20140,8 @@ components: em: description: Sha256 hashes of lowercase version of user's email addresses. Used for matching. We highly recommend this on checkout events at least. - It may improve reporting performance such as ROAS/CPA. + It may improve reporting performance such as ROAS/CPA. The string should + be in the UTF-8 format. type: array items: type: string @@ -18516,7 +20152,8 @@ components: description: Sha256 hashes of user's "Google Advertising IDs" (GAIDs) or "Apple's Identifier for Advertisers" (IDFAs). Used for matching. We highly recommend this on checkout events at least. It may improve - reporting performance such as ROAS/CPA. + reporting performance such as ROAS/CPA. The string should be in the + UTF-8 format. type: array items: type: string @@ -18542,7 +20179,8 @@ components: em: description: Sha256 hashes of lowercase version of user's email addresses. Used for matching. We highly recommend this on checkout events at least. - It may improve reporting performance such as ROAS/CPA. + It may improve reporting performance such as ROAS/CPA. The string should + be in the UTF-8 format. type: array items: type: string @@ -18553,7 +20191,8 @@ components: description: Sha256 hashes of user's "Google Advertising IDs" (GAIDs) or "Apple's Identifier for Advertisers" (IDFAs). Used for matching. We highly recommend this on checkout events at least. It may improve - reporting performance such as ROAS/CPA. + reporting performance such as ROAS/CPA. The string should be in the + UTF-8 format. type: array items: type: string @@ -18581,7 +20220,8 @@ components: description: Sha256 hashes of user's phone numbers, only digits with country code, area code, and number. Remove any symbols, letters, spaces and leading zeros. We highly recommend this on checkout events at least. It may improve - reporting performance such as ROAS/CPA. + reporting performance such as ROAS/CPA. The string should be in the UTF-8 + format. type: array items: type: string @@ -18589,7 +20229,7 @@ components: - 45df139772a81b6011bdc1c9cc3d1cb408fc0b10ec0c5cb9d4d4e107f0ddc49d ge: description: Sha256 hashes of user's gender, in lowercase. Either "f" or - "m" or "n" for non-binary gender. + "m" or "n" for non-binary gender. The string should be in the UTF-8 format. type: array items: type: string @@ -18597,7 +20237,7 @@ components: - 0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf db: description: Sha256 hashes of user's date of birthday, given as year, month, - and day. + and day. The string should be in the UTF-8 format. type: array items: type: string @@ -18606,7 +20246,7 @@ components: ln: description: Sha256 hashes of user's last name, in lowercase. We highly recommend this on checkout events at least. It may improve reporting performance - such as ROAS/CPA. + such as ROAS/CPA. The string should be in the UTF-8 format. type: array items: type: string @@ -18615,7 +20255,7 @@ components: fn: description: Sha256 hashes of user's first name, in lowercase. We highly recommend this on checkout events at least. It may improve reporting performance - such as ROAS/CPA. + such as ROAS/CPA. The string should be in the UTF-8 format. type: array items: type: string @@ -18623,7 +20263,8 @@ components: - ec1e6a072231703f1bc41429052fff8c00a7e0c6aaec2e7107241ca8f3ceb6b2 ct: description: Sha256 hashes of user's city, in lowercase, and without spaces - or punctuation. User residency city (mostly billing). + or punctuation. User residency city (mostly billing). The string should + be in the UTF-8 format. type: array items: type: string @@ -18631,7 +20272,8 @@ components: - 4ac01a129bfd10385c9278c2cf2c46fac5ab57350841234f587c8522a2e4ce36 st: description: Sha256 hashes of user's state, given as a two-letter code in - lowercase. User residency state (mostly billing). + lowercase. User residency state (mostly billing). The string should be + in the UTF-8 format. type: array items: type: string @@ -18639,7 +20281,7 @@ components: - 49a6d05b8e4b516656e464271d9dd38d0a7e0142f7f49546f4dabd2720cafc34 zp: description: Sha256 hashes of user's zipcode, only digits. User residency - zipcode (mostly billing). + zipcode (mostly billing). The string should be in the UTF-8 format. type: array items: type: string @@ -18647,7 +20289,7 @@ components: - fd5f56b40a79a385708428e7b32ab996a681080a166a2206e750eb4819186145 country: description: Sha256 hashes of two-character ISO-3166 country code indicating - the user's country, in lowercase. + the user's country, in lowercase. The string should be in the UTF-8 format. type: array items: type: string @@ -18657,6 +20299,7 @@ components: description: Sha256 hashes of the unique id from the advertiser that identifies a user in their space, e.g. user id, loyalty id, etc. We highly recommend this on all events. It may improve reporting performance such as ROAS/CPA. + The string should be in the UTF-8 format. type: array items: type: string @@ -19178,6 +20821,28 @@ components: example: '766456567741825556': '5349280584552211583' '733242520489967216': '5349280584552211845' + CreateAssetGroupBody: + type: object + properties: + asset_group_name: + description: Asset Group name + example: Canada Ad Accounts + type: string + asset_group_description: + description: Asset group description + example: Asset groups that has ad accounts shared in Canada + type: string + asset_group_types: + $ref: '#/components/schemas/AssetGroupTypes' + required: + - asset_group_types + - asset_group_description + - asset_group_name + CreateAssetGroupResponse: + type: object + properties: + asset_group: + $ref: '#/components/schemas/AssetGroupBinding' CreateInvitesResultsResponseArray: type: object properties: @@ -19385,6 +21050,8 @@ components: - ARS - CLP - COP + - INR + - TRY CurrencyFilter: type: object additionalProperties: false @@ -19871,6 +21538,11 @@ components: minLength: 1 asset_type: $ref: '#/components/schemas/AssetTypeResponse' + asset_group_info: + nullable: true + description: An object containing all the information specific to the provided + asset group. This field will be populated only if asset_type equals 'ASSET_GROUP'. + $ref: '#/components/schemas/AssetGroupBinding' GetBusinessAssetTypeResponse: description: Type of asset. enum: @@ -19939,6 +21611,11 @@ components: description: The permission level a user has on an asset. example: FINANCE_MANAGER type: string + asset_group_info: + nullable: true + description: An object containing all the information specific to the provided + asset group. This field will be populated only if asset_type equals 'ASSET_GROUP'. + $ref: '#/components/schemas/AssetGroupBinding' GoogleProductCategory0Filter: type: object additionalProperties: false @@ -20295,6 +21972,8 @@ components: properties: logs: type: array + minItems: 1 + maxItems: 250 items: $ref: '#/components/schemas/IntegrationLog' IntegrationLogsSuccessResponse: @@ -20644,6 +22323,98 @@ components: - PARTNER_INVITE - PARTNER_REQUEST type: string + AssetGroupBinding: + type: object + properties: + id: + description: Asset Group ID. + example: '666791336903426391' + type: string + pattern: ^\d+$ + asset_group_name: + type: string + description: Asset Group name + example: Canada Ad Accounts + nullable: true + asset_group_description: + type: string + description: Asset group description + example: Asset group that has ad accounts used in Canada + nullable: true + asset_group_types: + type: array + description: Asset group types + example: + - LOCATION_OR_LANGUAGE + items: + description: The types of the asset group. + example: LOCATION_OR_LANGUAGE + type: string + ad_accounts_ids: + description: A list of ad account IDs under the asset group + example: + - '549755885175' + type: array + nullable: true + items: + description: The ID of an ad account in the asset group. + example: '549755885175' + type: string + pattern: ^\d+$ + profiles_ids: + description: A list of profile IDs under asset group + example: + - '630433785246278264' + type: array + nullable: true + items: + description: The ID of a profile in an asset group. + example: '630433785246278264' + type: string + pattern: ^\d+$ + created_time: + description: The creation time of the asset group + example: 1646767577816 + nullable: true + type: integer + updated_time: + description: The last update time of the asset group + example: 1646767577816 + nullable: true + type: integer + owner: + type: object + allOf: + - $ref: '#/components/schemas/BusinessAccessUserSummary' + description: The data of the business that owns the asset group. + nullable: true + created_by: + type: object + allOf: + - $ref: '#/components/schemas/BusinessAccessUserSummary' + description: The data of the user that created the asset group. + nullable: true + AssetGroupType: + description: Asset group type + enum: + - BRAND + - LOCATION_OR_LANGUAGE + - PRODUCT_LINE + - OTHER + example: BRAND + type: string + AssetGroupTypes: + description: 'Asset Group Types. Note: The asset group types are used for user + reference and categorization purposes only and do not impact the functionality + of the asset group.' + example: + - BRAND + - LOCATION_OR_LANGUAGE + - PRODUCT_LINE + - OTHER + type: array + items: + $ref: '#/components/schemas/AssetGroupType' ItemAttributes: type: object allOf: @@ -20677,6 +22448,15 @@ components: minItems: 1 items: type: string + video_link: + description: |- +

    <= 2,000 characters

    +

    Hosted link to the product video.

    +

    File types for linked videos must be .mp4, .mov or .m4v.

    +

    File size cannot exceed 2GB.

    + example: https://www.example.com/cat/womens-clothing/denim-shirt-0294.mp4 + type: string + nullable: true - $ref: '#/components/schemas/UpdatableItemAttributes' ItemAttributesRequest: type: object @@ -20716,6 +22496,15 @@ components: - description: The main product image link. type: string nullable: false + video_link: + description: |- +

    <= 2,000 characters

    +

    Hosted link to the product video.

    +

    File types for linked videos must be .mp4, .mov or .m4v.

    +

    File size cannot exceed 2GB.

    + example: https://www.example.com/cat/womens-clothing/denim-shirt-0294.mp4 + type: string + nullable: true - $ref: '#/components/schemas/UpdatableItemAttributes' ItemBatchRecord: type: object @@ -21019,10 +22808,10 @@ components: title: archived bid: type: integer - minimum: 1 - description: Keyword custom bid in microcurrency - null if inherited from - parent ad group. - example: 200000 + description:

    Note: bid field has been deprecated. Input + will not be set and field will return null. Keyword custom bid in microcurrency + - null if inherited from parent ad group. + example: null nullable: true title: bid required: @@ -21031,11 +22820,10 @@ components: type: object properties: keywords: - description: 'Keywords to update. Object array. Each object has 3 possible + description: 'Keywords to update. Object array. Each object has 2 possible fields:
    1. "id": (required) keyword ID
    2. "archived": boolean. Should - keyword be archived?
    3. "bid": number
    For example: [{"id":"2886610576653", - "archived": false, "bid": 20000}, {"id":"2886610576654", "archived": - true, "bid": 20000}, ...]' + keyword be archived?
    For example: [{"id":"2886610576653", "archived": + false}, {"id":"2886610576654", "archived": true}, ...]' type: array items: $ref: '#/components/schemas/KeywordUpdate' @@ -21047,9 +22835,10 @@ components: properties: bid: type: integer - description: Keyword custom bid in microcurrency - null if inherited from - parent ad group. - example: 200000 + description:

    Note: bid field has been deprecated. Input + will not be set and field will return null. Keyword custom bid in microcurrency + - null if inherited from parent ad group. + example: null nullable: true match_type: $ref: '#/components/schemas/MatchTypeResponse' @@ -21210,8 +22999,11 @@ components: type: string nullable: true has_accepted_terms: - description: Whether the advertiser has accepted Pinterest's terms of service - for creating a lead ad. + description: |- + Whether the advertiser has accepted Pinterest's terms of service for creating a lead ad. + + By sending us TRUE for this parameter, you agree that (i) you will use any personal information received in + compliance with the privacy policy you share with Pinterest, and (ii) you will comply with Pinterest's Lead Ad Terms. As a reminder, all advertising on Pinterest is subject to the Pinterest Advertising Services Agreement or an equivalent agreement as set forth on an IO example: false type: boolean completion_message: @@ -21244,6 +23036,26 @@ components: maxItems: 10 items: $ref: '#/components/schemas/LeadFormQuestion' + policy_links: + description: List of additional policy links to be displayed on the lead + form. + example: + - label: Copyright + link: https://policy.pinterest.com/en/copyright + type: array + minItems: 0 + maxItems: 3 + items: + type: object + properties: + label: + description: Policy label for an additional policy link. + nullable: false + type: string + link: + description: Policy link for an additional policy link. + nullable: false + type: string LeadFormQuestion: type: object properties: @@ -21286,14 +23098,13 @@ components: - EMAIL - PHONE_NUMBER - ZIP_CODE - - AGE - GENDER - CITY - COUNTRY - - PREFERRED_CONTACT_METHOD - STATE_PROVINCE - ADDRESS - DATE_OF_BIRTH + - AGE LeadFormTestRequest: title: LeadFormTestRequest description: Request to create test data for lead data test API. @@ -21352,6 +23163,92 @@ components: enum: - DRAFT - ACTIVE + LeadFormArrayResponse: + type: object + properties: + items: + type: array + items: + type: object + properties: + data: + $ref: '#/components/schemas/LeadFormResponse' + exceptions: + type: array + items: + $ref: '#/components/schemas/Exception' + LeadFormCreateRequest: + type: object + allOf: + - $ref: '#/components/schemas/LeadFormCommon' + - required: + - name + - questions + - privacy_policy_link + - has_accepted_terms + - completion_message + LeadFormUpdateRequest: + type: object + allOf: + - type: object + - $ref: '#/components/schemas/LeadFormCommon' + - required: + - id + properties: + id: + title: id + description: The ID of this lead form to be updated + type: string + example: '7765300871171' + pattern: ^\d+$ + LeadsExportCreateRequest: + type: object + properties: + start_date: + description: 'Export leads collected on and after start date (UTC). Format: + YYYY-MM-DD' + type: string + pattern: ^(\d{4})-(\d{2})-(\d{2})$ + example: '2020-12-20' + end_date: + description: 'Export leads collected on and before end date (UTC). Format: + YYYY-MM-DD' + type: string + pattern: ^(\d{4})-(\d{2})-(\d{2})$ + example: '2020-12-20' + ad_id: + description: ID for the ad collecting leads + type: string + pattern: ^\d+$ + example: '687201361754' + required: + - start_date + - end_date + - ad_id + LeadsExportCreateResponse: + type: object + properties: + leads_export_id: + example: '123456789012' + description: ID for the leads export job + type: string + pattern: ^\d+$ + LeadsExportStatus: + type: string + description: Status of a leads export job + example: IN_PROGRESS + enum: + - IN_PROGRESS + - FINISHED + - FAILED + LeadsExportResponseData: + type: object + properties: + export_status: + $ref: '#/components/schemas/LeadsExportStatus' + download_url: + type: string + nullable: true LinkedBusiness: title: LinkedBusiness type: object @@ -21592,6 +23489,7 @@ components: - PRODUCT_GROUP - PRODUCT_GROUP_TARGETING - PRODUCT_ITEM + - PRODUCT_ITEM_TARGETING MetricsResponse: properties: data: @@ -22195,12 +24093,14 @@ components: mapping: authorization_code: '#/components/schemas/OauthAccessTokenRequestCode' refresh_token: '#/components/schemas/OauthAccessTokenRequestRefresh' + client_credentials: '#/components/schemas/OauthAccessTokenRequestClientCredentials' properties: grant_type: type: string enum: - authorization_code - refresh_token + - client_credentials required: - grant_type OauthAccessTokenRequestCode: @@ -22208,7 +24108,6 @@ components: title: authorization_code description: A request to exchange an authorization code for an access token. allOf: - - $ref: '#/components/schemas/OauthAccessTokenRequest' - type: object properties: code: @@ -22218,12 +24117,20 @@ components: required: - code - redirect_uri + properties: + grant_type: + type: string + enum: + - authorization_code + - refresh_token + - client_credentials + required: + - grant_type OauthAccessTokenRequestRefresh: title: refresh_token description: A request to exchange a refresh token for a new access token. type: object allOf: - - $ref: '#/components/schemas/OauthAccessTokenRequest' - type: object properties: refresh_token: @@ -22238,16 +24145,90 @@ components: type: boolean required: - refresh_token + properties: + grant_type: + type: string + enum: + - authorization_code + - refresh_token + - client_credentials + required: + - grant_type + OauthAccessTokenRequestClientCredentials: + title: client_credentials + description: A request to receive a client token. + type: object + allOf: + - type: object + properties: + scope: + type: string + required: + - scope + properties: + grant_type: + type: string + enum: + - authorization_code + - refresh_token + - client_credentials + required: + - grant_type OauthAccessTokenResponse: title: OAuth access token response description: A successful OAuth access token response. type: object + discriminator: + propertyName: response_type + mapping: + authorization_code: '#/components/schemas/OauthAccessTokenResponseCode' + refresh_token: '#/components/schemas/OauthAccessTokenResponseRefresh' + client_credentials: '#/components/schemas/OauthAccessTokenResponseClientCredentials' + integration_refresh: '#/components/schemas/OauthAccessTokenResponseIntegrationRefresh' + everlasting_refresh: '#/components/schemas/OauthAccessTokenResponseEverlastingRefresh' properties: response_type: type: string enum: - authorization_code - refresh_token + - client_credentials + access_token: + type: string + token_type: + type: string + default: bearer + expires_in: + type: integer + scope: + type: string + required: + - access_token + - token_type + - expires_in + - scope + OauthAccessTokenResponseCode: + title: OAuth access token response + description: A successful OAuth access token response for the authorization + code flow. + type: object + allOf: + - type: object + properties: + refresh_token: + type: string + refresh_token_expires_in: + type: integer + required: + - refresh_token + - refresh_token_expires_in + properties: + response_type: + type: string + enum: + - authorization_code + - refresh_token + - client_credentials access_token: type: string token_type: @@ -22257,41 +24238,17 @@ components: type: integer scope: type: string - discriminator: - propertyName: response_type - mapping: - authorization_code: '#/components/schemas/OauthAccessTokenResponseCode' - refresh_token: '#/components/schemas/OauthAccessTokenResponseRefresh' - integration_refresh: '#/components/schemas/OauthAccessTokenResponseIntegrationRefresh' - everlasting_refresh: '#/components/schemas/OauthAccessTokenResponseEverlastingRefresh' required: - access_token - token_type - expires_in - scope - OauthAccessTokenResponseCode: - title: OAuth access token response - description: A successful OAuth access token response for the authorization - code flow. - type: object - allOf: - - $ref: '#/components/schemas/OauthAccessTokenResponse' - - type: object - properties: - refresh_token: - type: string - refresh_token_expires_in: - type: integer - required: - - refresh_token - - refresh_token_expires_in OauthAccessTokenResponseEverlastingRefresh: title: OAuth access token response description: A successful OAuth access token response for the refresh token flow, with an added everlasting refresh token. type: object allOf: - - $ref: '#/components/schemas/OauthAccessTokenResponse' - type: object properties: refresh_token: @@ -22304,13 +24261,33 @@ components: - refresh_token - refresh_token_expires_in - refresh_token_expires_at + properties: + response_type: + type: string + enum: + - authorization_code + - refresh_token + - client_credentials + access_token: + type: string + token_type: + type: string + default: bearer + expires_in: + type: integer + scope: + type: string + required: + - access_token + - token_type + - expires_in + - scope OauthAccessTokenResponseIntegrationRefresh: title: OAuth access token response description: A successful OAuth access token response for the refresh token flow, with an added refresh token. type: object allOf: - - $ref: '#/components/schemas/OauthAccessTokenResponse' - type: object properties: refresh_token: @@ -22320,20 +24297,87 @@ components: required: - refresh_token - refresh_token_expires_in + properties: + response_type: + type: string + enum: + - authorization_code + - refresh_token + - client_credentials + access_token: + type: string + token_type: + type: string + default: bearer + expires_in: + type: integer + scope: + type: string + required: + - access_token + - token_type + - expires_in + - scope OauthAccessTokenResponseRefresh: title: OAuth access token response description: A successful OAuth access token response for the refresh token flow. type: object allOf: - - $ref: '#/components/schemas/OauthAccessTokenResponse' + - type: object + properties: + response_type: + type: string + enum: + - authorization_code + - refresh_token + - client_credentials + access_token: + type: string + token_type: + type: string + default: bearer + expires_in: + type: integer + scope: + type: string + required: + - access_token + - token_type + - expires_in + - scope + OauthAccessTokenResponseClientCredentials: + title: OAuth client token response + description: A successful OAuth client token response for the client token flow. + type: object + properties: + response_type: + type: string + enum: + - authorization_code + - refresh_token + - client_credentials + access_token: + type: string + token_type: + type: string + default: bearer + expires_in: + type: integer + scope: + type: string + required: + - access_token + - token_type + - expires_in + - scope ObjectiveType: type: string description: Campaign objective type. If set as one of ["AWARENESS", "CONSIDERATION", - "WEB_CONVERSION", "CATALOG_SALES"] the campaign is considered as a Campaign - Budget Optimization (CBO) campaign, meaning budget needs to be set at the - campaign level rather than at the ad group level. ["WEB_SESSIONS"] is DEPRECATED. - For update, only draft campaigns may update objective type. + "WEB_CONVERSION", "CATALOG_SALES", "VIDEO_COMPLETION"] the campaign is considered + as a Campaign Budget Optimization (CBO) campaign, meaning budget needs to + be set at the campaign level rather than at the ad group level. ["WEB_SESSIONS"] + is DEPRECATED. For update, only draft campaigns may update objective type. enum: - AWARENESS - CONSIDERATION @@ -22341,6 +24385,7 @@ components: - WEB_CONVERSION - CATALOG_SALES - WEB_SESSIONS + - VIDEO_COMPLETION OptimizationGoalMetadata: type: object properties: @@ -22375,7 +24420,7 @@ components: type: string pattern: ^[0-9]+$ is_roas_optimized: - description: Ad group is ROAS optimized + description: ROAS optimization is not supported nullable: true title: is_roas_optimized type: boolean @@ -22616,6 +24661,7 @@ components: - AUDIENCE_MANAGER - CAMPAIGN_MANAGER - CATALOGS_MANAGER + - CATALOGS_VIEWER - PROFILE_PUBLISHER - OWNER Pin: @@ -22697,8 +24743,8 @@ components: nullable: true is_standard: description: Whether the Pin is standard or not. See documentation on Changes to - Pin creation for more information. + href="/docs/api-features/content-overview/">Changes to Pin creation + for more information. type: boolean has_been_promoted: description: Whether the Pin has been promoted or not. @@ -22714,18 +24760,16 @@ components: type: object nullable: true example: - pin_metrics: - - 90d: - pin_click: 7 - impression: 2 - clickthrough: 3 - all_time: - pin_click: 7 - impression: 2 - clickthrough: 3 - reaction: 10 - comment: 2 - - null + 90d: + pin_click: 7 + impression: 2 + clickthrough: 3 + lifetime_metrics: + pin_click: 7 + impression: 2 + clickthrough: 3 + reaction: 10 + comment: 2 PinAnalyticsMetricsResponse: type: object properties: @@ -23653,6 +25697,14 @@ components: type: array items: $ref: '#/components/schemas/QuizPinResult' + tie_breaker_type: + type: string + description: Quiz ad tie breaker type, default is RANDOM + enum: + - RANDOM + - CUSTOM + tie_breaker_custom_result: + $ref: '#/components/schemas/QuizPinResult' QuizPinOption: description: ' This field contains multiple options to a quiz question.' example: @@ -24005,11 +26057,20 @@ components: - TOTAL_SIGNUP - TOTAL_CHECKOUT - TOTAL_CUSTOM + - TOTAL_ADD_TO_CART - TOTAL_LEAD + - TOTAL_SEARCH + - TOTAL_WATCH_VIDEO + - TOTAL_VIEW_CATEGORY - TOTAL_APP_INSTALL - TOTAL_SIGNUP_VALUE_IN_MICRO_DOLLAR - TOTAL_CHECKOUT_VALUE_IN_MICRO_DOLLAR - TOTAL_CUSTOM_VALUE_IN_MICRO_DOLLAR + - TOTAL_ADD_TO_CART_VALUE_IN_MICRO_DOLLAR + - TOTAL_LEAD_VALUE_IN_MICRO_DOLLAR + - TOTAL_SEARCH_VALUE_IN_MICRO_DOLLAR + - TOTAL_WATCH_VIDEO_VALUE_IN_MICRO_DOLLAR + - TOTAL_VIEW_CATEGORY_VALUE_IN_MICRO_DOLLAR - TOTAL_APP_INSTALL_VALUE_IN_MICRO_DOLLAR - TOTAL_CHECKOUT_QUANTITY - PAGE_VISIT_COST_PER_ACTION @@ -24033,6 +26094,7 @@ components: - VIDEO_P75_COMBINED_2 - VIDEO_P95_COMBINED_2 - VIDEO_MRC_VIEWS_2 + - PAID_VIDEO_VIEWABLE_RATE - VIDEO_LENGTH - CPV_IN_MICRO_DOLLAR - ECPV_IN_DOLLAR @@ -24720,6 +26782,33 @@ components: description: If Ongoing (perpetual) order line, the estimated monthly spend type: number nullable: true + SharedAudienceAccount: + type: object + properties: + account_id: + description: Account ID (ad account or business ID). + example: '549755885175' + type: string + pattern: ^\d+$ + account_name: + description: Account name. + example: Home Depot USA + type: string + account_type: + type: string + description: account type + enum: + - AD_ACCOUNT + - BUSINESS_ACCOUNT + shared_on_timestamp: + description: Epoch timestamp in seconds for the shared audience event + example: 1677003860 + type: integer + required: + - account_id + - account_name + - account_type + - shared_on_timestamp SingleInterestTargetingOptionResponse: title: SingleInterestTargetingOptionData type: object @@ -25255,7 +27344,9 @@ components: - AD_ONLY_PIN - CAMPAIGN_NAME - CAMPAIGN_STATUS + - IS_CAMPAIGN_LEARNING_PHASE - DATE + - DATE_AS_TIMESTAMP - BUDGET_IN_DOLLAR - AVAILABLE_BUDGET_IN_DOLLAR - TARGETING_TYPE @@ -25338,6 +27429,7 @@ components: - ITEM_ID - PRODUCT_ITEM_ID - INTERNAL_PRODUCT_ITEM_ID + - INTERNAL_PRODUCT_ITEM_ID_STR - PRODUCT_ITEM_NAME - PRODUCT_ITEM_IMAGE_URL - PRODUCT_ITEM_PRICE @@ -25347,6 +27439,10 @@ components: - ORDER_LINE_PAID_TYPE - SPEND_ORDER_LINE_ID - SPEND_ORDER_LINE_PAID_TYPE + - CONVERSION_PRODUCT_ID + - CONVERSION_PRODUCT_NAME + - CONVERSION_PRODUCT_BRAND + - CONVERSION_PRODUCT_CATEGORY - CLICKTHROUGH_1 - REPIN_1 - IMPRESSION_1 @@ -25386,7 +27482,9 @@ components: - TOTAL_SEND - TOTAL_FLAG - TOTAL_IMPRESSION_USER + - TOTAL_IMPRESSION_USER_HLL - TOTAL_IMPRESSION_FREQUENCY + - TOTAL_IMPRESSION_FREQUENCY_HLL - TOTAL_OUTBOUND_CLICK - COST_PER_OUTBOUND_CLICK_IN_DOLLAR - ENGAGEMENT_PAGE_VISIT_1 @@ -25816,6 +27914,8 @@ components: - IS_AUTOMATED_CAMPAIGN - IS_PREMIERE_CAMPAIGN - FLEXIBLE_DAILY_BUDGETS + - IS_PERFORMANCE_PLUS_CAMPAIGN + - IS_DCO_FORMAT_ENHANCMENT - PERCENT_CROSS_DEVICE_CONVERSIONS - PAGE_VISIT_PERCENT_CROSS_DEVICE_CONVERSIONS - SIGNUP_PERCENT_CROSS_DEVICE_CONVERSIONS @@ -26113,6 +28213,9 @@ components: - VIDEO_AVG_WATCHTIME_2 - VIDEO_MRC_VIEWS_2 - VIDEO_VIEW_RATE_2 + - PAID_VIDEO_VIEW + - PAID_VIDEO_IMPRESSION + - PAID_VIDEO_VIEWABLE_RATE - VIDEO_LENGTH - CPV_IN_MICRO_DOLLAR - CPV_IN_DOLLAR @@ -26603,6 +28706,208 @@ components: - TARGETING_LOCATION - TARGETING_APPTYPE - TARGETING_LOCATION_CODE + - TARGETING_MEDIA_TYPE + - TOTAL_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_CONVERSION_PRODUCT_QUANTITY + - TOTAL_INAPP_CONVERSION_PRODUCT_QUANTITY + - TOTAL_OFFLINE_CONVERSION_PRODUCT_QUANTITY + - TOTAL_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_CONVERSION_PRODUCT_VALUE + - TOTAL_INAPP_CONVERSION_PRODUCT_VALUE + - TOTAL_OFFLINE_CONVERSION_PRODUCT_VALUE + - TOTAL_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_INAPP_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_OFFLINE_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_INAPP_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_OFFLINE_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_INAPP_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_OFFLINE_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_CHECKOUT_CONVERSION_PRODUCT_QUANTITY + - TOTAL_CHECKOUT_CONVERSION_PRODUCT_VALUE + - TOTAL_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_QUANTITY + - TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_VALUE + - TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_QUANTITY + - TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_VALUE + - TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_QUANTITY + - TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_VALUE + - TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_QUANTITY + - TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_VALUE + - TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_QUANTITY + - TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_VALUE + - TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_SIGNUP_CONVERSION_PRODUCT_QUANTITY + - TOTAL_SIGNUP_CONVERSION_PRODUCT_VALUE + - TOTAL_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_QUANTITY + - TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_VALUE + - TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_QUANTITY + - TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_VALUE + - TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE + - TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_LEAD_CONVERSION_PRODUCT_QUANTITY + - TOTAL_LEAD_CONVERSION_PRODUCT_VALUE + - TOTAL_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_LEAD_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_LEAD_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_LEAD_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_LEAD_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_QUANTITY + - TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_VALUE + - TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_SEARCH_CONVERSION_PRODUCT_QUANTITY + - TOTAL_SEARCH_CONVERSION_PRODUCT_VALUE + - TOTAL_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_SEARCH_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_QUANTITY + - TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_VALUE + - TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_QUANTITY + - TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE + - TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_CUSTOM_CONVERSION_PRODUCT_QUANTITY + - TOTAL_CUSTOM_CONVERSION_PRODUCT_VALUE + - TOTAL_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_QUANTITY + - TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_VALUE + - TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_UNKNOWN_CONVERSION_PRODUCT_QUANTITY + - TOTAL_UNKNOWN_CONVERSION_PRODUCT_VALUE + - TOTAL_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_QUANTITY + - TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_VALUE + - TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_QUANTITY + - TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_VALUE + - TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_QUANTITY + - TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_VALUE + - TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_UNITS + - TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_USD + - TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_VALUE_IN_MICRO_USD + - TOTAL_CHECKOUT_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WEB_CHECKOUT_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_INAPP_CHECKOUT_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_OFFLINE_CHECKOUT_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_ADD_TO_CART_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WEB_ADD_TO_CART_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_INAPP_ADD_TO_CART_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_PAGE_VISIT_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WEB_PAGE_VISIT_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_SIGNUP_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WEB_SIGNUP_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_INAPP_SIGNUP_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_OFFLINE_SIGNUP_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WATCH_VIDEO_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WEB_WATCH_VIDEO_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_LEAD_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WEB_LEAD_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_OFFLINE_LEAD_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_SEARCH_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WEB_SEARCH_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_INAPP_SEARCH_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_VIEW_CATEGORY_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WEB_VIEW_CATEGORY_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_CUSTOM_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WEB_CUSTOM_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_OFFLINE_CUSTOM_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_UNKNOWN_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_WEB_UNKNOWN_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_INAPP_UNKNOWN_CONVERSION_PRODUCT_COUNT_UNIQUE + - TOTAL_OFFLINE_UNKNOWN_CONVERSION_PRODUCT_COUNT_UNIQUE type: array granularity: $ref: '#/components/schemas/Granularity' @@ -27345,6 +29650,127 @@ components: maxItems: 50 items: $ref: '#/components/schemas/CreateAssetInvitesRequestItem' + UpdateAssetGroupBody: + type: object + properties: + asset_groups_to_update: + type: array + description: A list of asset groups and the data that will be used to update + them. + items: + type: object + properties: + asset_group_id: + description: Unique identifier of the asset group to update. + title: asset_group_id + type: string + example: '666791336903426391' + name: + description: Asset Group name + example: Canada Ad Accounts + title: name + type: string + description: + description: Asset group description + example: Asset groups that has ad accounts shared in Canada + title: description + type: string + asset_group_types: + $ref: '#/components/schemas/AssetGroupTypes' + assets_to_add: + type: array + description: A list of asset ids to add to the asset group. + items: + description: The ID of an asset that will be added to the asset + group. + example: '549755885175' + type: string + assets_to_remove: + type: array + description: A list of asset ids to remove from the asset group. + items: + description: The ID of an asset that will be removed from the asset + group. + example: '549755885175' + type: string + required: + - asset_group_id + UpdateAssetGroupResponse: + type: object + properties: + updated_asset_groups: + type: array + description: A list of successfully edited asset groups. + items: + $ref: '#/components/schemas/AssetGroupBinding' + exceptions: + type: array + description: A list of errors associated with the asset groups. Will be + returned if there is an error. + nullable: true + items: + type: object + properties: + code: + type: integer + description: Error code associated with the error editing asset group. + example: 29 + message: + type: string + description: Error message associated with the error editing asset + group. + example: You are not permitted to access that resource. + asset_group_id: + type: string + description: Asset group id of the exception. + example: '666791336903426391' + DeleteAssetGroupBody: + description: Request body used to delete asset groups + type: object + required: + - asset_groups_to_delete + properties: + asset_groups_to_delete: + description: List of ids of asset groups to be deleted + example: + - '666791336903426391' + - '666791336903426392' + items: + type: string + pattern: ^\d+$ + type: array + minItems: 1 + maxItems: 50 + DeleteAssetGroupResponse: + type: object + properties: + deleted_asset_groups: + type: array + description: A list of ids of successfully deleted asset groups. + items: + type: string + pattern: ^\d+$ + exceptions: + type: array + description: A list of errors associated with the asset groups. Will be + returned if there is an error. + nullable: true + items: + type: object + properties: + code: + type: integer + description: Error code associated with the error deleting asset group. + example: 29 + message: + type: string + description: Error message associated with the error deleting asset + group. + example: You are not permitted to access that resource. + asset_group_id: + type: string + description: Asset group id of the exception. + example: '666791336903426391' UpdateInvitesResultsResponseArray: type: object properties: @@ -27659,6 +30085,102 @@ components: items: type: object $ref: '#/components/schemas/UpdatePartnerAssetsResult' + SharedAudienceCommon: + type: object + properties: + audience_id: + description: Unique identifier of an audience + example: '2542621871096' + type: string + pattern: ^\d+$ + operation_type: + $ref: '#/components/schemas/OperationType' + SharedAudience: + type: object + allOf: + - $ref: '#/components/schemas/SharedAudienceCommon' + - title: SharedAudience + type: object + properties: + recipient_account_ids: + description: List of ad account IDs to share with or revoke from. + type: array + items: + type: string + pattern: ^\d+$ + required: + - audience_id + - recipient_account_ids + - operation_type + BusinessSharedAudience: + type: object + allOf: + - $ref: '#/components/schemas/SharedAudienceCommon' + - title: BusinessSharedAudience + type: object + properties: + recipient_business_ids: + description: List of business IDs to share with or revoke from. + type: array + items: + type: string + pattern: ^\d+$ + required: + - audience_id + - recipient_business_ids + - operation_type + SharedAudienceResponseCommon: + type: object + nullable: true + properties: + audience_id: + description: Audience ID that was shared + example: '2542621871096' + type: string + permissions: + example: + - RESOURCE_PINNER_LIST_READER + - RESOURCE_PINNER_LIST_OWNER + type: array + items: + $ref: '#/components/schemas/Role' + SharedAudienceResponse: + type: object + allOf: + - $ref: '#/components/schemas/SharedAudienceResponseCommon' + - title: SharedAudienceResponse + type: object + nullable: true + properties: + recipient_account_ids: + description: Account IDs that received the audience + example: + - '549755885175' + type: array + items: + type: string + BusinessSharedAudienceResponse: + type: object + allOf: + - $ref: '#/components/schemas/SharedAudienceResponseCommon' + - title: BusinessSharedAudienceResponse + type: object + nullable: true + properties: + recipient_business_ids: + description: Business IDs that received the audience + example: + - '549755885175' + type: array + items: + type: string + OperationType: + type: string + description: Operation type to share a specific audience or revoke access to + a previously shared audience + enum: + - SHARE + - REVOKE parameters: result_limit: description: Max search result size @@ -27838,7 +30360,7 @@ components: path_catalogs_processing_result_id: description: Unique identifier of a feed processing result. It can be acquired from the "id" field of the "items" array within the response of the [List - processing results for a given feed](https://developers.pinterest.com/docs/api/v5/#operation/feed_processing_results/list). + processing results for a given feed](/docs/api/v5/#operation/feed_processing_results/list). name: processing_result_id in: path example: '5224831246441439241' @@ -28123,6 +30645,20 @@ components: pattern: ^\d+$ minItems: 1 maxItems: 100 + query_ad_targeting_types: + name: targeting_types + description: Targeting type breakdowns for the report. The reporting per targeting + type
    is independent from each other. ["AGE_BUCKET_AND_GENDER"] is in + BETA and not yet available to all users. + required: true + explode: false + in: query + schema: + items: + $ref: '#/components/schemas/AdsAnalyticsAdTargetingType' + maxItems: 14 + minItems: 1 + type: array query_age_bucket_list: name: ages description: |- @@ -28169,6 +30705,15 @@ components: in: query schema: $ref: '#/components/schemas/ConversionReportAttributionType' + query_audience_id: + description: Unique identifier of the audience to use to filter the results. + in: query + name: audience_id + required: true + schema: + type: string + pattern: ^\d+$ + maxLength: 18 query_audience_ids: description: List of audience ids to use to filter the results. in: query @@ -28250,6 +30795,20 @@ components: maxLength: 18 minItems: 1 maxItems: 100 + query_campaign_targeting_types: + name: targeting_types + description: Targeting type breakdowns for the report. The reporting per targeting + type
    is independent from each other. ["AGE_BUCKET_AND_GENDER"] is in + BETA and not yet available to all users. + required: true + explode: false + in: query + schema: + items: + $ref: '#/components/schemas/AdsAnalyticsCampaignTargetingType' + maxItems: 14 + minItems: 1 + type: array query_catalogs_catalog_id: description: Filter entities for a given catalog_id. If not given, all catalogs are considered. @@ -28488,6 +31047,7 @@ components: - VIDEO_P75_COMBINED_2 - VIDEO_P95_COMBINED_2 - VIDEO_MRC_VIEWS_2 + - PAID_VIDEO_VIEWABLE_RATE - VIDEO_LENGTH - ECPV_IN_DOLLAR - ECPCV_IN_DOLLAR @@ -28520,6 +31080,7 @@ components: - LEADS - COST_PER_LEAD - QUIZ_COMPLETED + - QUIZ_PIN_RESULT_OPEN - QUIZ_COMPLETION_RATE - SHOWCASE_PIN_CLICKTHROUGH - SHOWCASE_SUBPAGE_CLICKTHROUGH @@ -28722,15 +31283,6 @@ components: schema: type: boolean default: false - query_feed_profile_id: - in: query - name: feed_profile_id - description: The feed profile id whose catalog product groups we want to return. - required: false - schema: - pattern: ^\d+$ - maxLength: 18 - type: string query_filter_deleted: name: filter_deleted description: Filter out deleted tags. @@ -28909,7 +31461,7 @@ components: example: workout query_match_types: explode: true - description: Keyword match + description: Keyword match type in: query name: match_types @@ -29012,7 +31564,7 @@ components: query_page_size: name: page_size description: Maximum number of items to include in a single page of the response. - See documentation on Pagination + See documentation on Pagination for more information. in: query required: false @@ -29022,7 +31574,10 @@ components: maximum: 250 default: 25 query_pin_analytics_metric_types: - description: Pin metric types to get data for. Keep in mind this cannot have + description: Pin metric types to get data for. VIDEO_MRC_VIEW are Video views, + VIDEO_V50_WATCH_TIME is Total play time. If Pin was created before 2023-03-20, + Profile visits and Follows will only be available for Idea Pins. These metrics + are available for all Pin formats since then. Keep in mind this cannot have ALL if split_field is set to any value other than NO_SPLIT. explode: false in: query @@ -29042,6 +31597,8 @@ components: - SAVE_RATE - TOTAL_COMMENTS - TOTAL_REACTIONS + - USER_FOLLOW + - PROFILE_VISIT - description: Video Pin metric types type: string enum: @@ -29086,9 +31643,6 @@ components: - ADS_PRODUCT - ADS_VIDEO - ADS_IDEA - - PRODUCT - - REGULAR - - VIDEO type: string query_pin_order_id: description: The pin order id associated with the ssio insertino order @@ -29140,6 +31694,13 @@ components: required: false schema: type: string + query_account_type: + description: Filter accounts by account type. + in: query + name: account_type + required: true + schema: + $ref: '#/components/schemas/AudienceAccountType' query_report_type: name: report_type description: Report type. @@ -29150,6 +31711,18 @@ components: enum: - SYNC - ASYNC + query_required_pin_ids: + name: pin_ids + description: List of Pin IDs. + in: query + required: true + schema: + type: array + items: + type: string + pattern: ^\d+$ + minItems: 1 + maxItems: 100 query_required_search_query: description: Search query. Can contain pin description keywords or comma-separated pin IDs. @@ -29170,6 +31743,7 @@ components: enum: - AD_ACCOUNT - PROFILE + - ASSET_GROUP default: AD_ACCOUNT example: AD_ACCOUNT query_search_query: