openapi: 3.0.3
info:
version: 5.13.0
title: Pinterest Products API
description: This is the description of your API.
contact:
name: Pinterest, Inc.
url: https://developers.pinterest.com/
license:
name: MIT
url: https://spdx.org/licenses/MIT
termsOfService: https://developers.pinterest.com/terms/
servers:
- url: https://api.pinterest.com/v5
tags:
- name: Products
paths:
/catalogs/product_groups/{product_group_id}/products:
get:
x-ratelimit-category: catalogs_read
summary: List products for a Product Group
description: 'Get a list of product pins for a given Catalogs Product Group Id owned by the "operation user_account".
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Note: This endpoint only supports RETAIL catalog at the moment.
Learn more'
operationId: catalogs_product_group_pins/list
security:
- pinterest_oauth2:
- boards:read
- catalogs:read
- pins:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/path_catalogs_product_group_id'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Pins
items:
$ref: '#/components/schemas/CatalogsProduct'
description: Success
'400':
description: Invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
InvalidRequest:
value:
code: 1
message: '''product_group_id'' value ''11851494501_'' must match the pattern: ^\d+$"}'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'404':
description: Catalogs product group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsProductGroupNotFound:
value:
code: 4180
message: Sorry! We could not find your catalogs product group.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Products
/catalogs/products/get_by_product_group_filters:
post:
x-ratelimit-category: catalogs_read
summary: List products for Product Group Filters
description: 'List products Pins owned by the "operation user_account" that meet the criteria specified in the Catalogs Product Group Filter given in the request.
- This endpoint has been implemented in POST to allow for complex filters. This specific POST endpoint is designed to be idempotent.
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id (obtained via List ad accounts) to use the owner of that ad_account as the "operation user_account". In order to do this, the token user_account must have one of the following Business Access roles on the ad_account: Owner, Admin, Catalogs Manager.
Note: This endpoint only supports RETAIL catalog at the moment.
Learn more'
operationId: products_by_product_group_filter/list
security:
- pinterest_oauth2:
- boards:read
- catalogs:read
- pins:read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_ad_account_id'
requestBody:
description: Object holding a group of filters for a catalog product group
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CatalogsListProductsByFilterRequest'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Pins
items:
$ref: '#/components/schemas/CatalogsProduct'
description: Success
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UnauthorizedAccess:
value:
code: 29
message: You are not permitted to access that resource.
'409':
description: Conflict. Can't get products.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
CatalogsMerchantNotCreated:
value:
code: 4182
message: Can't acccess this feature without an existing catalog.
CatalogsProductGroupFiltersInvalid:
value:
code: 4183
message: Catalog product group filters failed validation, please ensure all filters are set correctly.
default:
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Products
components:
schemas:
GoogleProductCategory2Filter:
type: object
additionalProperties: false
properties:
GOOGLE_PRODUCT_CATEGORY_2:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringListCriteria'
required:
- GOOGLE_PRODUCT_CATEGORY_2
ProductType0Filter:
type: object
additionalProperties: false
properties:
PRODUCT_TYPE_0:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringListCriteria'
required:
- PRODUCT_TYPE_0
Gender:
type: string
enum:
- FEMALE
- MALE
- UNISEX
ProductType3Filter:
type: object
additionalProperties: false
properties:
PRODUCT_TYPE_3:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringListCriteria'
required:
- PRODUCT_TYPE_3
Error:
title: Error
type: object
properties:
code:
type: integer
message:
type: string
required:
- code
- message
MaxPriceFilter:
type: object
additionalProperties: false
properties:
MAX_PRICE:
type: object
$ref: '#/components/schemas/CatalogsProductGroupPricingCriteria'
required:
- MAX_PRICE
CatalogsProductGroupMultipleStringListCriteria:
title: catalogs_product_group_multiple_string_list_criteria
type: object
additionalProperties: false
properties:
values:
type: array
items:
type: array
items:
type: string
negated:
type: boolean
default: false
required:
- values
GoogleProductCategory5Filter:
type: object
additionalProperties: false
properties:
GOOGLE_PRODUCT_CATEGORY_5:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringListCriteria'
required:
- GOOGLE_PRODUCT_CATEGORY_5
CustomLabel4Filter:
type: object
additionalProperties: false
properties:
CUSTOM_LABEL_4:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringCriteria'
required:
- CUSTOM_LABEL_4
CustomLabel2Filter:
type: object
additionalProperties: false
properties:
CUSTOM_LABEL_2:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringCriteria'
required:
- CUSTOM_LABEL_2
CatalogsProductMetadata:
type: object
description: Product metadata entity
properties:
item_id:
description: The user-created unique ID that represents the product.
example: DS0294-L
type: string
item_group_id:
description: The parent ID of the product.
example: DS0294
type: string
nullable: true
availability:
$ref: '#/components/schemas/NonNullableProductAvailabilityType'
price:
description: The price of the product.
example: 24.99
type: number
sale_price:
description: The discounted price of the product.
example: 14.99
type: number
nullable: true
currency:
$ref: '#/components/schemas/NonNullableCatalogsCurrency'
required:
- item_id
- item_group_id
- availability
- price
- sale_price
- currency
GoogleProductCategory0Filter:
type: object
additionalProperties: false
properties:
GOOGLE_PRODUCT_CATEGORY_0:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringListCriteria'
required:
- GOOGLE_PRODUCT_CATEGORY_0
CatalogsProductGroupMultipleGenderCriteria:
title: catalogs_product_group_multiple_gender_criteria
type: object
additionalProperties: false
properties:
values:
type: array
items:
$ref: '#/components/schemas/Gender'
negated:
type: boolean
default: false
required:
- values
ProductType2Filter:
type: object
additionalProperties: false
properties:
PRODUCT_TYPE_2:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringListCriteria'
required:
- PRODUCT_TYPE_2
CatalogsListProductsByFilterRequest:
description: Request object to list products for a given product group filter.
type: object
oneOf:
- description: Request object to list products for a given feed_id and product group filter.
type: object
additionalProperties: false
properties:
feed_id:
description: Catalog Feed id pertaining to the catalog product group filter.
example: '2680059592705'
type: string
pattern: ^\d+$
filters:
$ref: '#/components/schemas/CatalogsProductGroupFilters'
required:
- feed_id
- filters
CatalogsProductGroupMultipleStringCriteria:
title: catalogs_product_group_multiple_string_criteria
type: object
additionalProperties: false
properties:
values:
type: array
items:
type: string
negated:
type: boolean
default: false
required:
- values
CatalogsProduct:
type: object
properties:
metadata:
$ref: '#/components/schemas/CatalogsProductMetadata'
pin:
$ref: '#/components/schemas/Pin'
required:
- metadata
- pin
ProductType1Filter:
type: object
additionalProperties: false
properties:
PRODUCT_TYPE_1:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringListCriteria'
required:
- PRODUCT_TYPE_1
PinMediaSourceImageURL:
title: Image URL
description: Image URL-based media source
type: object
properties:
source_type:
type: string
enum:
- image_url
url:
type: string
is_standard:
type: boolean
description: Set the parameter to false to create the new simplified Pin instead of the standard pin. Currently the field is only available to a list of beta users.
default: true
required:
- source_type
- url
Paginated:
type: object
properties:
items:
type: array
items:
type: object
bookmark:
type: string
nullable: true
required:
- items
PinMediaSourceImageBase64:
title: Image Base64
description: Base64-encoded image media source
type: object
properties:
source_type:
type: string
enum:
- image_base64
content_type:
type: string
enum:
- image/jpeg
- image/png
data:
type: string
pattern: '[a-zA-Z0-9+\/=]+'
is_standard:
type: boolean
description: Set the parameter to false to create the new simplified Pin instead of the standard pin. Currently the field is only available to a list of beta users.
default: true
required:
- source_type
- content_type
- data
PinMediaSourcePinURL:
title: Pin URL
description: Pin URL-based media source for product pin creation. Currently the field is only available to a list of beta users.
type: object
properties:
source_type:
type: string
enum:
- pin_url
is_affiliate_link:
type: boolean
description: This is an affiliate link or sponsored product. The FTC requires disclosure for paid partnerships and affiliate products.
default: false
required:
- source_type
GoogleProductCategory3Filter:
type: object
additionalProperties: false
properties:
GOOGLE_PRODUCT_CATEGORY_3:
type: object
$ref: '#/components/schemas/CatalogsProductGroupMultipleStringListCriteria'
required:
- GOOGLE_PRODUCT_CATEGORY_3
CreativeType:
type: string
description: Ad creative type enum. For update, only draft ads may update creative type.