{
"openapi": "3.0.3",
"info": {
"version": "5.4.0",
"title": "Pinterest REST API",
"description": "Pinterest's REST API",
"contact": {
"name": "Pinterest, Inc.",
"url": "https://developers.pinterest.com/",
"email": "pinterest-api@pinterest.com"
},
"license": {
"name": "MIT",
"url": "https://spdx.org/licenses/MIT"
},
"termsOfService": "https://developers.pinterest.com/terms/"
},
"externalDocs": {
"description": "Pinterest developer documentation main page",
"url": "https://developers.pinterest.com/"
},
"servers": [
{
"url": "https://api.pinterest.com/v5"
}
],
"tags": [
{
"name": "ad_accounts",
"description": "View analytical information about advertising.\n\n\nNote: If the current operation_user_account (defined by the access token)\nhas access to another user's Ad Accounts via\nPinterest Business Access,\nyou can modify your request to use the current operation_user_account's\npermissions to those Ad Accounts by including the ad_account_id in the path\nparameters for the request (e.g. .../?ad_account_id=12345&...)."
},
{
"name": "ad_groups",
"description": "View, create or update ad groups."
},
{
"name": "ads",
"description": "View, create or update ads."
},
{
"name": "boards",
"description": "View, create, update, or delete information about boards."
},
{
"name": "campaigns",
"description": "View, create or update campaigns."
},
{
"name": "catalogs",
"description": "Manage information about shopping product catalogs and items."
},
{
"name": "media",
"description": "Register and manage media uploads."
},
{
"name": "oauth",
"description": "Generating and refreshing OAuth access tokens."
},
{
"name": "pins",
"description": "View, create, update, or delete information about Pins."
},
{
"name": "product_group_promotions",
"description": "Product Group Promotion"
},
{
"name": "terms",
"description": "Get related and suggested terms."
},
{
"name": "terms_of_service",
"description": "Get Terms Of Service"
},
{
"name": "user_account",
"description": "Read-only information about user accounts associated with a given access token."
}
],
"paths": {
"/oauth/token": {
"post": {
"summary": "Generate OAuth access token",
"description": "Generate an OAuth access token by using an authorization code or a refresh token.\n\nSee Authentication for more.",
"tags": [
"oauth"
],
"operationId": "oauth/token",
"security": [
{}
],
"x-ratelimit-category": "org_read",
"requestBody": {
"description": "Generate an OAuth access token.",
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"$ref": "#/components/schemas/OauthAccessTokenRequest"
}
}
}
},
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OauthAccessTokenResponse"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/user_account": {
"get": {
"summary": "Get user account",
"description": "Get account information for the \"operation user_account\"\n- By default, the \"operation user_account\" is the token user_account.\n\nIf using Business Access: Specify an ad_account_id to use the owner of that ad_account as the \"operation user_account\". See Understanding Business Access for more information.",
"tags": [
"user_account"
],
"operationId": "user_account/get",
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_read",
"parameters": [
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Account"
}
}
}
},
"403": {
"description": "Not authorized to access the user account.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access the user account."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/user_account/analytics": {
"get": {
"summary": "Get user account analytics",
"description": "Get analytics for the \"operation user_account\"\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the \"operation user_account\".",
"tags": [
"user_account"
],
"operationId": "user_account/analytics",
"security": [
{
"pinterest_oauth2": [
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_analytics",
"parameters": [
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_from_claimed_content"
},
{
"$ref": "#/components/parameters/query_pin_format"
},
{
"$ref": "#/components/parameters/query_app_types"
},
{
"$ref": "#/components/parameters/query_metric_types"
},
{
"$ref": "#/components/parameters/query_split_field_user_account"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid user accounts analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid user accounts analytics parameters."
}
}
}
},
"403": {
"description": "Not authorized to access the user account analytics.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access the user account analytics."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/user_account/analytics/top_pins": {
"get": {
"summary": "Get user account top pins analytics",
"description": "Gets analytics data about a user's top pins (limited to the top 50).\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the \"operation user_account\".",
"tags": [
"user_account"
],
"operationId": "user_account/analytics/top_pins",
"security": [
{
"pinterest_oauth2": [
"pins:read",
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_analytics",
"parameters": [
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_sort_by"
},
{
"$ref": "#/components/parameters/query_from_claimed_content"
},
{
"$ref": "#/components/parameters/query_pin_format"
},
{
"$ref": "#/components/parameters/query_app_types"
},
{
"$ref": "#/components/parameters/query_metric_types"
},
{
"$ref": "#/components/parameters/query_num_of_pins"
},
{
"$ref": "#/components/parameters/query_created_in_last_n_days"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TopPinsAnalyticsResponse"
}
}
},
"description": "Success"
},
"403": {
"description": "Not authorized to access the user account analytics.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access the user account analytics."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/user_account/analytics/top_video_pins": {
"get": {
"summary": "Get user account top video pins analytics",
"description": "Gets analytics data about a user's top video pins (limited to the top 50).\n- By default, the \"operation user_account\" is the token user_account.\n\nOptional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the \"operation user_account\".",
"tags": [
"user_account"
],
"operationId": "user_account/analytics/top_video_pins",
"security": [
{
"pinterest_oauth2": [
"pins:read",
"user_accounts:read"
]
}
],
"x-ratelimit-category": "org_analytics",
"parameters": [
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_video_pin_sort_by"
},
{
"$ref": "#/components/parameters/query_from_claimed_content"
},
{
"$ref": "#/components/parameters/query_pin_format"
},
{
"$ref": "#/components/parameters/query_app_types"
},
{
"$ref": "#/components/parameters/query_video_pin_metric_types"
},
{
"$ref": "#/components/parameters/query_num_of_pins"
},
{
"$ref": "#/components/parameters/query_created_in_last_n_days"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TopVideoPinsAnalyticsResponse"
}
}
},
"description": "Success"
},
"403": {
"description": "Not authorized to access the user account analytics.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access the user account analytics."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/pins": {
"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.",
"tags": [
"pins"
],
"operationId": "pins/create",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"boards:write",
"pins:read",
"pins:write"
]
}
],
"x-ratelimit-category": "org_write",
"requestBody": {
"description": "Create a new Pin.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pin"
}
}
}
},
"responses": {
"201": {
"description": "Successful pin creation.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pin"
}
}
}
},
"400": {
"description": "Invalid Pin parameters response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidPinUrl": {
"value": {
"code": 1,
"message": "Whoops! It looks like you entered an invalid URL. Try creating a Pin again with a valid URL."
}
}
}
}
}
},
"403": {
"description": "The Pin's image is too small, too large or is broken",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"PinImageTooSmall": {
"value": {
"code": 233,
"message": "Your image is too small. Please choose a larger image and try again."
}
},
"PinImageBroken": {
"value": {
"code": 235,
"message": "Sorry, this image is broken. Please pick a different image."
}
}
}
}
}
},
"404": {
"description": "Board or section not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"BoardNotFound": {
"value": {
"code": 40,
"message": "Board not found."
}
},
"BoardSectionNotFound": {
"value": {
"code": 2031,
"message": "Sorry! We couldn't find this board section."
}
}
}
}
}
},
"429": {
"description": "This request exceeded a rate limit. This can happen if the client exceeds one\nof the published rate limits or if multiple write operations are applied to\nan object within a short time window.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 8,
"message": "This request exceeded a rate limit. This can happen if the client exceeds one\nof the published rate limits or if multiple write operations are applied to\nan object within a short time window."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/pins/{pin_id}": {
"get": {
"summary": "Get Pin",
"description": "Get 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: Owner, Admin, Analyst, Campaign Manager.\n- For Pins on secret boards: Owner, Admin.",
"tags": [
"pins"
],
"operationId": "pins/get",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"pins:read"
]
}
],
"x-ratelimit-category": "org_read",
"parameters": [
{
"$ref": "#/components/parameters/path_pin_id"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pin"
}
}
}
},
"403": {
"description": "Not authorized to access board or Pin.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
},
"404": {
"description": "Pin not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 50,
"message": "Pin not found."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"delete": {
"summary": "Delete Pin",
"description": "Delete a Pins 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.",
"tags": [
"pins"
],
"operationId": "pins/delete",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"boards:write",
"pins:read",
"pins:write"
]
}
],
"x-ratelimit-category": "org_write",
"parameters": [
{
"$ref": "#/components/parameters/path_pin_id"
}
],
"responses": {
"204": {
"description": "Successfully deleted Pin"
},
"403": {
"description": "Not authorized to access board or Pin.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access board or Pin."
}
}
}
},
"404": {
"description": "Pin not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Pin not found."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/pins/{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.",
"tags": [
"pins"
],
"operationId": "pins/analytics",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"pins:read"
]
}
],
"x-ratelimit-category": "org_analytics",
"parameters": [
{
"$ref": "#/components/parameters/path_pin_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_app_types"
},
{
"$ref": "#/components/parameters/query_pin_analytics_metric_types"
},
{
"$ref": "#/components/parameters/query_split_field_pins"
},
{
"$ref": "#/components/parameters/query_ad_account_id"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnalyticsResponse"
}
}
}
},
"400": {
"description": "Invalid pins analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid pins analytics parameters."
}
}
}
},
"403": {
"description": "Not authorized to access board or Pin.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access board or Pin."
}
}
}
},
"404": {
"description": "Pin not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Pin not found."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/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\n\nOptional: Specify a privacy type (public, protected, or secret) to indicate which boards to return.\n- If no privacy is specified, all boards that can be returned (based on the scopes of the token and ad_account role if applicable) will be returned.",
"tags": [
"boards"
],
"operationId": "boards/list",
"security": [
{
"pinterest_oauth2": [
"boards:read"
]
}
],
"x-ratelimit-category": "org_read",
"parameters": [
{
"$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": [
"PUBLIC",
"PROTECTED",
"SECRET"
]
}
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"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\".\n- 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",
"requestBody": {
"description": "Create a board using a single board json object.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Board"
}
}
}
},
"responses": {
"201": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Board"
}
}
}
},
"400": {
"description": "The board name is invalid or duplicated.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "The board name is invalid or duplicated."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/boards/{board_id}": {
"get": {
"summary": "Get board",
"description": "Get a board owned by the operation user_account - or a group board that has been shared with this account.\n- By default, the \"operation user_account\" is the token user_account.",
"tags": [
"boards"
],
"operationId": "boards/get",
"security": [
{
"pinterest_oauth2": [
"boards:read"
]
}
],
"x-ratelimit-category": "org_read",
"parameters": [
{
"$ref": "#/components/parameters/path_board_id"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Board"
}
}
}
},
"404": {
"description": "Board not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Board not found."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"patch": {
"summary": "Update board",
"description": "Update a board owned by the \"operating user_account\".",
"tags": [
"boards"
],
"operationId": "boards/update",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"boards:write"
]
}
],
"x-ratelimit-category": "org_write",
"parameters": [
{
"$ref": "#/components/parameters/path_board_id"
}
],
"requestBody": {
"description": "Update a board.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BoardUpdate"
}
}
}
},
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Board"
}
}
}
},
"400": {
"description": "Invalid board parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid board parameters."
}
}
}
},
"403": {
"description": "Not authorized to update the board.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to update the board."
}
}
}
},
"429": {
"description": "This request exceeded a rate limit. This can happen if the client exceeds one\nof the published rate limits or if multiple write operations are applied to\nan object within a short time window.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 8,
"message": "This request exceeded a rate limit. This can happen if the client exceeds one\nof the published rate limits or if multiple write operations are applied to\nan object within a short time window."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"delete": {
"summary": "Delete board",
"description": "Delete a board owned by the \"operation user_account\".\n- By default, the \"operation user_account\" is the token user_account.",
"tags": [
"boards"
],
"operationId": "boards/delete",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"boards:write"
]
}
],
"x-ratelimit-category": "org_write",
"parameters": [
{
"$ref": "#/components/parameters/path_board_id"
}
],
"responses": {
"204": {
"description": "Board deleted successfully"
},
"403": {
"description": "Not authorized to delete the board.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to delete the board."
}
}
}
},
"404": {
"description": "Board not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Board not found."
}
}
}
},
"409": {
"description": "Could not get exclusive access to delete the board.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 409,
"message": "Could not get exclusive access to delete the board."
}
}
}
},
"429": {
"description": "This request exceeded a rate limit. This can happen if the client exceeds one\nof the published rate limits or if multiple write operations are applied to\nan object within a short time window.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 8,
"message": "This request exceeded a rate limit. This can happen if the client exceeds one\nof the published rate limits or if multiple write operations are applied to\nan object within a short time window."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/boards/{board_id}/sections": {
"get": {
"summary": "List board sections",
"description": "Get a list of all board sections from a board owned by the \"operation user_account\" - or a group board that has been shared with this account.\n- By default, the \"operation user_account\" is the token user_account.",
"tags": [
"boards"
],
"operationId": "board_sections/list",
"security": [
{
"pinterest_oauth2": [
"boards:read"
]
}
],
"x-ratelimit-category": "org_read",
"parameters": [
{
"$ref": "#/components/parameters/path_board_id"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"description": "Board sections",
"items": {
"$ref": "#/components/schemas/BoardSection"
}
}
}
}
]
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"post": {
"summary": "Create board section",
"description": "Create a board section on a board owned by the \"operation user_account\" - or on a group board that has been shared with this account.\n- By default, the \"operation user_account\" is the token user_account.",
"tags": [
"boards"
],
"operationId": "board_sections/create",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"boards:write"
]
}
],
"x-ratelimit-category": "org_write",
"parameters": [
{
"$ref": "#/components/parameters/path_board_id"
}
],
"requestBody": {
"description": "Create a board section.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BoardSection"
}
}
}
},
"responses": {
"201": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BoardSection"
}
}
}
},
"400": {
"description": "Invalid board section parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid board section parameters."
}
}
}
},
"403": {
"description": "Not authorized to create board sections.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to create board sections."
}
}
}
},
"409": {
"description": "Could not get exclusive access to the board to create a new section.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 409,
"message": "Could not get exclusive access to the board to create a new section."
}
}
}
},
"500": {
"description": "Could not create a new board section.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 500,
"message": "Could not create a new board section."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/boards/{board_id}/sections/{section_id}": {
"patch": {
"summary": "Update board section",
"description": "Update a board section on a board owned by the \"operation user_account\" - or on a group board that has been shared with this account.\n- By default, the \"operation user_account\" is the token user_account.",
"tags": [
"boards"
],
"operationId": "board_sections/update",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"boards:write"
]
}
],
"x-ratelimit-category": "org_write",
"parameters": [
{
"$ref": "#/components/parameters/path_board_id"
},
{
"$ref": "#/components/parameters/path_board_section_id"
}
],
"requestBody": {
"description": "Update a board section.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BoardSection"
}
}
}
},
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BoardSection"
}
}
}
},
"400": {
"description": "Invalid board section parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid board section parameters."
}
}
}
},
"403": {
"description": "Not authorized to update board section.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to update board section."
}
}
}
},
"409": {
"description": "Board section conflict.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 409,
"message": "Board section conflict."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"delete": {
"summary": "Delete board section",
"description": "Delete a board section on a board owned by the \"operation user_account\" - or on a group board that has been shared with this account.\n- By default, the \"operation user_account\" is the token user_account.",
"tags": [
"boards"
],
"operationId": "board_sections/delete",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"boards:write"
]
}
],
"x-ratelimit-category": "org_write",
"parameters": [
{
"$ref": "#/components/parameters/path_board_id"
},
{
"$ref": "#/components/parameters/path_board_section_id"
}
],
"responses": {
"204": {
"description": "Board section deleted successfully"
},
"403": {
"description": "Not authorized to delete board section.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to delete board section."
}
}
}
},
"404": {
"description": "Board section not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Board section not found."
}
}
}
},
"409": {
"description": "Board section conflict.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 409,
"message": "Board section conflict."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/boards/{board_id}/sections/{section_id}/pins": {
"get": {
"summary": "List Pins on board section",
"description": "Get a list of the Pins on a board section of a board owned by the \"operation user_account\" - or on a group board that has been shared with this account.\n- By default, the \"operation user_account\" is the token user_account.",
"tags": [
"boards"
],
"operationId": "board_sections/list_pins",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"pins:read"
]
}
],
"x-ratelimit-category": "org_read",
"parameters": [
{
"$ref": "#/components/parameters/path_board_id"
},
{
"$ref": "#/components/parameters/path_board_section_id"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"description": "Pins",
"items": {
"$ref": "#/components/schemas/Pin"
}
}
}
}
]
}
}
}
},
"403": {
"description": "Not authorized to access Pins on board section.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 403,
"message": "Not authorized to access Pins on board section."
}
}
}
},
"404": {
"description": "Board or section not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Board or section not found."
}
}
}
},
"409": {
"description": "Board section conflict.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 409,
"message": "Board section conflict."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/boards/{board_id}/pins": {
"get": {
"summary": "List Pins on board",
"description": "Get a list of the Pins on a board owned by the \"operation user_account\" - or on a group board that has been shared with this account.\n- By default, the \"operation user_account\" is the token user_account.",
"tags": [
"boards"
],
"operationId": "boards/list_pins",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"pins:read"
]
}
],
"x-ratelimit-category": "org_read",
"parameters": [
{
"$ref": "#/components/parameters/path_board_id"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"description": "Pins",
"items": {
"$ref": "#/components/schemas/Pin"
}
}
}
}
]
}
}
}
},
"404": {
"description": "Board not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Board not found."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/media": {
"get": {
"summary": "List media uploads",
"description": "List media uploads filtered by given parameters.\n\nLearn more about video Pin creation.",
"tags": [
"media"
],
"operationId": "media/list",
"security": [
{
"pinterest_oauth2": [
"pins:read"
]
}
],
"x-ratelimit-category": "org_read",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"description": "Media",
"items": {
"$ref": "#/components/schemas/MediaUploadDetails"
}
}
}
}
]
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"post": {
"summary": "Register media upload",
"description": "Register your intent to upload media\n\nThe response includes all of the information needed to upload the media\nto Pinterest.\n\nTo upload the media, make an HTTP POST request (using curl, for\nexample) to upload_url using the Content-Type header\nvalue. Send the media file's contents as the request's file\nparameter and also include all of the parameters from\nupload_parameters.\n\nLearn more about video Pin creation.",
"tags": [
"media"
],
"operationId": "media/create",
"security": [
{
"pinterest_oauth2": [
"pins:read",
"pins:write"
]
}
],
"x-ratelimit-category": "org_write",
"requestBody": {
"description": "Create a media upload request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaUploadRequest"
}
}
}
},
"responses": {
"201": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaUpload"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/media/{media_id}": {
"get": {
"summary": "Get media upload details",
"description": "Get details for a registered media upload, including its current status.\n\nLearn more about video Pin creation.",
"tags": [
"media"
],
"operationId": "media/get",
"security": [
{
"pinterest_oauth2": [
"pins:read"
]
}
],
"x-ratelimit-category": "org_read",
"parameters": [
{
"$ref": "#/components/parameters/path_media_id"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaUploadDetails"
}
}
}
},
"404": {
"description": "Media upload not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 404,
"message": "Media upload not found"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/ad_accounts": {
"get": {
"summary": "List ad accounts",
"description": "Get a list of the ad_accounts that the \"operation user_account\" has access to.\n- This includes ad_accounts they own and ad_accounts that are owned by others who have granted them Business Access.",
"tags": [
"ad_accounts"
],
"operationId": "ad_accounts/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_include_shared_accounts"
}
],
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"description": "Ad accounts",
"items": {
"$ref": "#/components/schemas/AdAccount"
}
}
}
}
]
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"post": {
"summary": "Create ad account",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.
ad_account_id, filtered by the specified options.\n- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.",
"operationId": "ad_account/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdAccountAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_accounts"
]
}
},
"/ad_accounts/{ad_account_id}/campaigns": {
"get": {
"summary": "List campaigns",
"description": "Get a list of the campaigns in the specified ad_account_id, filtered by the specified options.\n- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.",
"operationId": "campaigns/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_campaign_ids"
},
{
"$ref": "#/components/parameters/query_entity_statuses"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_order"
},
{
"$ref": "#/components/parameters/query_bookmark"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CampaignResponse"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account campaign parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account campaign parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"campaigns"
]
},
"post": {
"summary": "Create campaigns",
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nCreate multiple new campaigns. Every campaign has its own campaign_id and houses one or more ad groups, which contain one or more ads.\nFor more, see Set up your campaign. \nNote:\n- The values for 'lifetime_spend_cap' and 'daily_spend_cap' are microcurrency amounts based on the currency field set in the advertiser's profile. (e.g. USD) \nMicrocurrency is used to track very small transactions, based on the currency field set in the advertiser's profile.\nA microcurrency unit is one one-millionth of the standard unit of currency selected in the advertiser's profile (e.g. a microdollar is $0.000001.)",
"tags": [
"campaigns"
],
"operationId": "campaigns/create",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"description": "Array of campaigns.",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CampaignCreateRequest"
}
}
}
}
},
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignCreateResponse"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"patch": {
"summary": "Update campaigns",
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nUpdate multiple ad campaigns based on campaign_ids. \nNote:\n- The values for 'lifetime_spend_cap' and 'daily_spend_cap' are microcurrency amounts based on the currency field set in the advertiser's profile. (e.g. USD) \nMicrocurrency is used to track very small transactions, based on the currency field set in the advertiser's profile.\nA microcurrency unit is one one-millionth of the standard unit of currency selected in the advertiser's profile (e.g. a microdollar is $0.000001.)",
"tags": [
"campaigns"
],
"operationId": "campaigns/update",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"description": "Array of campaigns.",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CampaignUpdateRequest"
}
}
}
}
},
"responses": {
"200": {
"description": "response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignUpdateResponse"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/ad_accounts/{ad_account_id}/campaigns/{campaign_id}": {
"get": {
"summary": "Get campaign",
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nGet a specific campaign given the campaign ID.",
"operationId": "campaigns/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_campaign_id"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignResponse"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"campaigns"
]
}
},
"/ad_accounts/{ad_account_id}/campaigns/analytics": {
"get": {
"summary": "Get campaign analytics",
"description": "Get analytics for the specified campaigns in the specified ad_account_id, filtered by the specified options.\n- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.",
"operationId": "campaigns/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_campaign_ids_required"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignsAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account campaign analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account campaign analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_accounts"
]
}
},
"/ad_accounts/{ad_account_id}/ad_groups": {
"get": {
"summary": "List ad groups",
"description": "List ad groups based on provided campaign IDs or ad group IDs.(campaign_ids or ad_group_ids). \nNote:\nProvide only campaign_id or ad_group_id. Do not provide both.",
"operationId": "ad_groups/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_campaign_ids"
},
{
"$ref": "#/components/parameters/query_ad_group_ids"
},
{
"$ref": "#/components/parameters/query_entity_statuses"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_order"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_translate_interests_to_names"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdGroupResponse"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account group parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account group parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_groups"
]
},
"post": {
"summary": "Create ad groups",
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nCreate multiple new ad groups. All ads in a given ad group will have the same budget, bid, run dates, targeting, and placement (search, browse, other). For more information, click here.\nNote:\n- 'bid_in_micro_currency' and 'budget_in_micro_currency' should be expressed in microcurrency amounts based on the currency field set in the advertiser's profile.\nMicrocurrency is used to track very small transactions, based on the currency field set in the advertiser's profile.\nA microcurrency unit is one one-millionth of the standard unit of currency selected in the advertiser's profile (e.g. a microdollar is $0.000001.)\n- Ad groups belong to ad campaigns. Some types of campaigns (e.g. budget optimization) have limits on the number of ad groups they can hold. If you exceed those limits, you will get an error message.",
"operationId": "ad_groups/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/AdGroupCreateRequest"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
}
}
},
"description": "List of ad groups to create, size limit [1, 30].",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdGroupArrayResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"ad_groups"
]
},
"patch": {
"summary": "Update ad groups",
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nUpdate multiple existing ad groups.",
"operationId": "ad_groups/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/AdGroupUpdateRequest"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
}
}
},
"description": "List of ad groups to update, size limit [1, 30].",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdGroupArrayResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"ad_groups"
]
}
},
"/ad_accounts/{ad_account_id}/ad_groups/{ad_group_id}": {
"get": {
"summary": "Get ad group",
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nGet 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": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_ad_group_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdGroupResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"ad_groups"
]
}
},
"/ad_accounts/{ad_account_id}/ad_groups/analytics": {
"get": {
"summary": "Get ad group analytics",
"description": "Get analytics for the specified ad groups in the specified ad_account_id, filtered by the specified options.\n- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.",
"operationId": "ad_groups/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_ad_group_ids_required"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdGroupsAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account group analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account group analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_accounts"
]
}
},
"/ad_accounts/{ad_account_id}/ads": {
"get": {
"summary": "List ads",
"description": "List ads that meet the filters provided:\n - Listed campaign ids or ad group ids or ad ids\n - Listed entity statuses \nIf no filter is provided, all ads in the ad account are returned. \nNote:\nProvide only campaign_id or ad_group_id or ad_id. Do not provide more than one type. \nReview status is provided for each ad; if review_status is REJECTED, the rejected_reasons field will contain additional information.\nFor more, see Pinterest advertising standards.",
"operationId": "ads/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_campaign_ids"
},
{
"$ref": "#/components/parameters/query_ad_group_ids"
},
{
"$ref": "#/components/parameters/query_ad_ids"
},
{
"$ref": "#/components/parameters/query_entity_statuses"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/query_order"
},
{
"$ref": "#/components/parameters/query_bookmark"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdResponse"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account ads parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account ads parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ads"
]
},
"post": {
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nCreate multiple new ads. Request must contain ad_group_id, creative_type, and the source Pin pin_id.",
"operationId": "ads/create",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdCreateRequest"
}
}
},
"description": "List of ads to create, size limit [1, 30].",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdArrayResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Create ads",
"tags": [
"ads"
]
},
"patch": {
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nUpdate multiple existing ads",
"operationId": "ads/update",
"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/AdUpdateRequest"
}
}
},
"description": "List of ads to update, size limit [1, 30]",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdArrayResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Update ads",
"tags": [
"ads"
]
}
},
"/ad_accounts/{ad_account_id}/ads/{ad_id}": {
"get": {
"summary": "Get ad",
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nGet a specific ad given the ad ID. If your pin is rejected, rejected_reasons will\ncontain additional information from the Ad Review process.\nFor more information about our policies and rejection reasons see the Pinterest advertising standards.",
"operationId": "ads/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_ad_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"tags": [
"ads"
]
}
},
"/ad_accounts/{ad_account_id}/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.",
"operationId": "ads/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_ad_ids_required"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdsAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account ads analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account ads analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_accounts"
]
}
},
"/ad_accounts/{ad_account_id}/ad_previews": {
"post": {
"summary": "Create ad preview with pin or image",
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nCreate an ad preview given an ad account ID and either an existing organic pin ID or the URL for an image to be used to create the Pin and the ad. \nIf you are creating a preview from an existing Pin, that Pin must be promotable: that is, it must have a clickthrough link and meet other requirements. (See Ads Overview.) \nYou can view the returned preview URL on a webpage or iframe for 7 days, after which the URL expires.",
"tags": [
"ads"
],
"operationId": "ad_previews/create",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"description": "Create ad preview with pin or image.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdPreviewRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful ad preview creation.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdPreviewURLResponse"
}
}
}
},
"400": {
"description": "Invalid Pin parameters response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidPinUrl": {
"value": {
"code": 1,
"message": "Whoops! It looks like you entered an invalid URL. Try creating a Pin again with a valid URL."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/ad_accounts/{ad_account_id}/bid_floor": {
"post": {
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nList bid floors for your campaign configuration. Bid floors are given in microcurrency values based on the currency in the bid floor specification. \nMicrocurrency is used to track very small transactions, based on the currency field set in the advertiser's profile. A microcurrency unit is one one-millionth of the standard unit of currency selected in the advertiser's profile (e.g. a microdollar is $0.000001.) \nFor more on bid floors see Set your bid.",
"operationId": "ad_groups_bid_floor/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BidFloorRequest"
}
}
},
"description": "Parameters to get bid_floor info",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BidFloor"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Get bid floors",
"tags": [
"ad_groups"
]
}
},
"/ad_accounts/{ad_account_id}/product_groups/analytics": {
"get": {
"summary": "Get product group analytics",
"description": "Get analytics for the specified product groups in the specified ad_account_id, filtered by the specified options.\n- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.",
"operationId": "product_groups/analytics",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_start_date"
},
{
"$ref": "#/components/parameters/query_end_date"
},
{
"$ref": "#/components/parameters/query_product_group_ids_required"
},
{
"$ref": "#/components/parameters/query_columns"
},
{
"$ref": "#/components/parameters/query_granularity"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_click_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_engagement_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_view_window_days"
},
{
"$ref": "#/components/parameters/query_conversion_attribution_conversion_report_time"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductGroupAnalyticsResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account ads analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account ads analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_accounts"
]
}
},
"/ad_accounts/{ad_account_id}/reports": {
"get": {
"summary": "Get the account analytics report created by the async call",
"description": "This returns a URL to an analytics report given a token returned from the post request report creation call. You can use the URL to download the report and it's valid for an hour.\n- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.",
"operationId": "analytics/get_report",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_token_required"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdsAnalyticsGetAsyncResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account ads analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account ads analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_accounts"
]
},
"post": {
"summary": "Create async request for an account analytics report",
"description": "This returns a token that you can use to download the report when it is ready. Note that this endpoint requires the parameters to be passed as JSON-formatted in the request body. This endpoint does not support URL query parameters.\n- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Campaign Manager.",
"operationId": "analytics/create_report",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_analytics",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdsAnalyticsCreateAsyncRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdsAnalyticsCreateAsyncResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid ad account ads analytics parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid ad account ads analytics parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"ad_accounts"
]
}
},
"/ad_accounts/{ad_account_id}/product_group_promotions": {
"post": {
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nAdd one or more product groups from your catalog to an existing ad group. (Product groups added to an ad group are a 'product group promotion.')",
"operationId": "product_group_promotions/create",
"security": [
{
"pinterest_oauth2": [
"ads:write"
]
}
],
"x-ratelimit-category": "ads_write",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductGroupPromotionCreateRequest"
}
}
},
"description": "List of Product Group Promotions to create, size limit [1, 30].",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductGroupPromotionArrayResponse"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Create product group promotions",
"tags": [
"product_group_promotions"
]
},
"patch": {
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nUpdate multiple existing Product Group Promotions (by product_group_id)",
"operationId": "product_group_promotions/update",
"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/ProductGroupPromotionUpdateRequest"
}
}
},
"description": "Parameters to update Product group promotions",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProductGroupPromotionUpdateResponseItem"
}
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Update product group promotions",
"tags": [
"product_group_promotions"
]
}
},
"/ad_accounts/{ad_account_id}/product_group_promotions/{product_group_promotion_id}": {
"get": {
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nGet a product group promotion by id",
"operationId": "product_group_promotion/get",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/path_product_group_promotion_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductGroupPromotion"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Get a product group promotion by id",
"tags": [
"product_group_promotions"
]
}
},
"/terms/suggested": {
"get": {
"summary": "List suggested terms",
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nGet popular search terms that begin with your input term. \nExample: 'sport' would return popular terms like 'sports bar' and 'sportswear', but not 'motor sports' since the phrase does not begin with the given term.",
"tags": [
"terms"
],
"operationId": "terms_suggested/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/query_input_term"
},
{
"$ref": "#/components/parameters/query_term_limit"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TermsSuggestedResponse"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid terms suggested parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid terms suggested parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/ad_accounts/{ad_account_id}/terms_of_service": {
"get": {
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nGet the text of the terms of service and see whether the advertiser has accepted the terms of service.",
"operationId": "terms_of_service/get",
"parameters": [
{
"$ref": "#/components/parameters/path_ad_account_id"
},
{
"$ref": "#/components/parameters/query_include_html"
},
{
"$ref": "#/components/parameters/query_tos_type"
}
],
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TermsOfService"
}
}
},
"description": "Success"
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unexpected error"
}
},
"summary": "Get terms of service",
"tags": [
"terms_of_service"
]
}
},
"/catalogs/feeds": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "List feeds",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nFetch feeds owned by the \"operating user_account\".",
"operationId": "feeds/list",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CatalogsFeed"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Parameter 'page_size' was not numeric (was 3e)\""
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
},
"post": {
"x-ratelimit-category": "catalogs_write",
"summary": "Create feed",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nCreate a new feed owned by the \"operating user_account\".",
"operationId": "feeds/create",
"security": [
{
"pinterest_oauth2": [
"catalogs:read",
"catalogs:write"
]
}
],
"requestBody": {
"description": "Request object used to created a feed.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsFeedsCreateRequest"
}
}
}
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsFeed"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Invalid request: ..."
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Business account required.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"BusinessAccountRequired": {
"value": {
"code": 654,
"message": "You must have a business account to operate as merchant."
}
},
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action. Account is disapproved."
}
}
}
}
}
},
"409": {
"description": "User website required.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UserWebsiteRequired": {
"value": {
"code": 4168,
"message": "User does not have a website."
}
},
"UserWebsiteNotVerified": {
"value": {
"code": 4169,
"message": "User does not have a verified website."
}
}
}
}
}
},
"422": {
"description": "Unique feed name is required.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedDuplicatedName": {
"value": {
"code": 4170,
"message": "The feed name already exists."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/feeds/{feed_id}": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "Get feed",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nGet a single feed owned by the \"operating user_account\".",
"operationId": "feeds/get",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_feed_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsFeed"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'feed_id' value '1511851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"404": {
"description": "Data feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
},
"patch": {
"x-ratelimit-category": "catalogs_write",
"summary": "Update feed",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nUpdate a feed owned by the \"operating user_account\".",
"operationId": "feeds/update",
"security": [
{
"pinterest_oauth2": [
"catalogs:read",
"catalogs:write"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_feed_id"
}
],
"requestBody": {
"description": "Request object used to update a feed.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsFeedsUpdateRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsFeed"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Invalid request: ..."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for feed mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action. Account is disapproved."
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "Sorry, you cannot perform this action. Account is under review."
}
}
}
}
}
},
"404": {
"description": "Data feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
},
"delete": {
"x-ratelimit-category": "catalogs_write",
"summary": "Delete feed",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nDelete a feed owned by the \"operating user_account\".",
"operationId": "feeds/delete",
"security": [
{
"pinterest_oauth2": [
"catalogs:read",
"catalogs:write"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_feed_id"
}
],
"responses": {
"204": {
"description": "Feed deleted successfully."
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'feed_id' value '1511851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for feed mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action. Account is disapproved."
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "Sorry, you cannot perform this action. Account is under review."
}
}
}
}
}
},
"404": {
"description": "Data feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't delete a feed with active promotions.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedHasActivePromotions": {
"value": {
"code": 4162,
"message": "We can't disable a Product Group with active promotions."
}
}
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/feeds/{feed_id}/processing_results": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "List processing results for a given feed",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nFetch a feed processing results owned by the owner 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.",
"operationId": "feed_processing_results/list",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_feed_id"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CatalogsFeedProcessingResult"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "Parameter 'page_size' was not numeric (was 3e)\""
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"404": {
"description": "Feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/processing_results/{processing_result_id}/item_issues": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "List item issues for a given processing result",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nList item validation issues for a given feed processing result. 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.",
"operationId": "items_issues/list",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/path_catalogs_processing_result_id"
},
{
"$ref": "#/components/parameters/query_catalogs_item_numbers"
},
{
"$ref": "#/components/parameters/query_catalogs_item_validation_issue"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CatalogsItemValidationIssues"
}
}
}
}
]
}
}
},
"description": "Success"
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"404": {
"description": "Processing Result not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"ProcessingResultFound": {
"value": {
"code": 4184,
"message": "Sorry! We could not find your processing result."
}
}
}
}
}
},
"501": {
"description": "Not implemented.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"NotImplemented": {
"value": {
"code": 4181,
"message": "Not implemented at the moment. Please, see documentation."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/items": {
"get": {
"summary": "Get catalogs items",
"description": "Get the items of the catalog created by the \"operating user_account\". See detailed documentation here.",
"operationId": "items/get",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-ratelimit-category": "catalogs_read",
"parameters": [
{
"$ref": "#/components/parameters/query_catalogs_items_country"
},
{
"$ref": "#/components/parameters/query_catalogs_items"
},
{
"$ref": "#/components/parameters/query_catalogs_items_language"
}
],
"responses": {
"200": {
"description": "Response containing the requested catalogs items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsItems"
}
}
}
},
"401": {
"description": "Not authorized to access catalogs items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Not authorized to access catalogs items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/items/batch/{batch_id}": {
"get": {
"summary": "Get catalogs items batch",
"description": "Get a single catalogs items batch created by the \"operating user_account\". See detailed documentation here.",
"operationId": "items_batch/get",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"x-ratelimit-category": "catalogs_read",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_items_batch_id"
}
],
"responses": {
"200": {
"description": "Response containing the requested catalogs items batch",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsItemsBatch"
}
}
}
},
"401": {
"description": "Not authorized to access catalogs items batch",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Not authorized to access catalogs items batch",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Catalogs items batch not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/items/batch": {
"post": {
"summary": "Perform an operation on an item batch",
"description": "This endpoint supports multiple operations on a set of one or more catalog items. See detailed documentation here.",
"operationId": "items_batch/post",
"x-ratelimit-category": "catalogs_write",
"security": [
{
"pinterest_oauth2": [
"catalogs:read",
"catalogs:write"
]
}
],
"requestBody": {
"description": "Request object used to create catalogs items in a batch",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsItemsBatchRequest"
}
}
}
},
"responses": {
"200": {
"description": "Response containing the requested catalogs items batch",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsItemsBatch"
}
}
}
},
"401": {
"description": "Not authorized to post catalogs items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Not authorized to post catalogs items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/product_groups/{product_group_id}": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "Get a product group",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nGet a singe product group for a given Catalogs Product Group Id.",
"operationId": "catalogs_product_groups/get",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_product_group_id"
}
],
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsProductGroup"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid catalogs product group id parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'product_group_id' value '11851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action. Account is disapproved."
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "Sorry, you cannot perform this action. Account is under review."
}
}
}
}
}
},
"404": {
"description": "Catalogs product group not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't get a catalogs product group without an existing catalog.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't acccess this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
},
"delete": {
"x-ratelimit-category": "catalogs_write",
"summary": "Delete product group",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nDelete a product group from being in use in Catalogs.",
"operationId": "catalogs_product_groups/delete",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_product_group_id"
}
],
"security": [
{
"pinterest_oauth2": [
"catalogs:write"
]
}
],
"responses": {
"204": {
"description": "Catalogs Product Group deleted successfully."
},
"400": {
"description": "Invalid catalogs product group id parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'product_group_id' value '11851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action. Account is disapproved."
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "Sorry, you cannot perform this action. Account is under review."
}
}
}
}
}
},
"404": {
"description": "Catalogs product group not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't delete this catalogs product group.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupHasActivePromotions": {
"value": {
"code": 4176,
"message": "We can't delete a Catalogs Product Group with active promotions."
}
},
"CannotAlterAutoGeneratedCatalogsProductGroup": {
"value": {
"code": 4177,
"message": "You cannot alter an auto generated catalogs product group."
}
},
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
},
"patch": {
"x-ratelimit-category": "catalogs_write",
"summary": "Update product group",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nUpdate product group to use in Catalogs.",
"operationId": "catalogs_product_groups/update",
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_product_group_id"
}
],
"security": [
{
"pinterest_oauth2": [
"catalogs:write"
]
}
],
"requestBody": {
"description": "Request object used to Update a catalogs product group.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsProductGroupUpdateRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsProductGroup"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'product_group_id' value '11851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action. Account is disapproved."
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "Sorry, you cannot perform this action. Account is under review."
}
}
}
}
}
},
"404": {
"description": "Catalogs product group not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't update this catalogs product group to this value.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CannotAlterAutoGeneratedCatalogsProductGroup": {
"value": {
"code": 4177,
"message": "You cannot alter an auto generated catalogs product group."
}
},
"CatalogsProductGroupFiltersAlreadyExist": {
"value": {
"code": 4178,
"message": "A catalogs product group with these filters already exists for this feed."
}
},
"CatalogsProductGroupNameAlreadyExist": {
"value": {
"code": 4179,
"message": "A catalogs product group with this name already exists for this feed."
}
},
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
},
"CatalogsProductGroupFiltersInvalid": {
"value": {
"code": 4183,
"message": "Catalog product group filters failed validation, please ensure all filters are set correctly."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/product_groups/{product_group_id}/products": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "List products for a given product group",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nGet a list of product pins for a given Catalogs Product Group Id.",
"operationId": "catalogs_product_group_pins/list",
"security": [
{
"pinterest_oauth2": [
"boards:read",
"catalogs:read",
"pins:read"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
},
{
"$ref": "#/components/parameters/path_catalogs_product_group_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"description": "Pins",
"items": {
"$ref": "#/components/schemas/CatalogsProduct"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'product_group_id' value '11851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"404": {
"description": "Catalogs product group not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/product_groups/{product_group_id}/product_counts": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "Get product counts for a given product group",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\nGet a product counts for a given Catalogs Product Group.",
"operationId": "catalogs_product_groups/product_counts_get",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/path_catalogs_product_group_id"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsProductGroupProductCounts"
}
}
},
"description": "Success"
},
"404": {
"description": "Product Group Not Found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupNotFound": {
"value": {
"code": 4180,
"message": "Sorry! We could not find your catalogs product group."
}
}
}
}
}
},
"409": {
"description": "Can't access this feature without an existing catalog.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/catalogs/product_groups": {
"get": {
"x-ratelimit-category": "catalogs_read",
"summary": "Get product groups list",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nGet a list of product groups for a given Catalogs Feed Id.",
"operationId": "catalogs_product_groups/list",
"security": [
{
"pinterest_oauth2": [
"catalogs:read"
]
}
],
"parameters": [
{
"$ref": "#/components/parameters/query_catalogs_feed_id"
},
{
"$ref": "#/components/parameters/query_bookmark"
},
{
"$ref": "#/components/parameters/query_page_size"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Paginated"
},
{
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CatalogsProductGroup"
}
}
}
}
]
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid feed parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'feed_id' value '1511851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action. Account is disapproved."
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "Sorry, you cannot perform this action. Account is under review."
}
}
}
}
}
},
"404": {
"description": "Data feed not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"FeedNotFound": {
"value": {
"code": 4161,
"message": "Sorry! We could not find your catalogs feed."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't create this catalogs product group with this value.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
},
"post": {
"x-ratelimit-category": "catalogs_write",
"summary": "Create product group",
"description": "This endpoint is currently in beta and not available to all apps. Learn more.\n\nCreate product group to use in Catalogs.",
"operationId": "catalogs_product_groups/create",
"security": [
{
"pinterest_oauth2": [
"catalogs:write"
]
}
],
"requestBody": {
"description": "Request object used to created a catalogs product group.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsProductGroupCreateRequest"
}
}
}
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CatalogsProductGroup"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid body.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"InvalidRequest": {
"value": {
"code": 1,
"message": "'feed_id' value '1511851494501_' must match the pattern: ^\\d+$\"}"
}
}
}
}
}
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"UnauthorizedAccess": {
"value": {
"code": 29,
"message": "You are not permitted to access that resource."
}
}
}
}
}
},
"403": {
"description": "Forbidden. Account not approved for catalog product group mutations yet.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"MerchantDisapproved": {
"value": {
"code": 2625,
"message": "Sorry, you cannot perform this action. Account is disapproved."
}
},
"MerchantUnderReview": {
"value": {
"code": 2626,
"message": "Sorry, you cannot perform this action. Account is under review."
}
}
}
}
}
},
"409": {
"description": "Conflict. Can't create this catalogs product group with this value.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"examples": {
"CatalogsProductGroupFiltersAlreadyExist": {
"value": {
"code": 4178,
"message": "A catalogs product group with these filters already exists for this feed."
}
},
"CatalogsProductGroupNameAlreadyExist": {
"value": {
"code": 4179,
"message": "A catalogs product group with this name already exists for this feed."
}
},
"CatalogsMerchantNotCreated": {
"value": {
"code": 4182,
"message": "Can't access this feature without an existing catalog."
}
},
"CatalogsProductGroupFiltersInvalid": {
"value": {
"code": 4183,
"message": "Catalog product group filters failed validation, please ensure all filters are set correctly."
}
}
}
}
}
},
"default": {
"description": "Unexpected error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"tags": [
"catalogs"
]
}
},
"/terms/related": {
"get": {
"summary": "List related terms",
"description": "This endpoint is currently in beta and not available to all apps. Learn more. \nGet a list of terms logically related to each input term. \nExample: the term 'workout' would list related terms like 'one song workout', 'yoga workout', 'workout motivation', etc.",
"tags": [
"terms"
],
"operationId": "terms_related/list",
"security": [
{
"pinterest_oauth2": [
"ads:read"
]
}
],
"x-ratelimit-category": "ads_read",
"parameters": [
{
"$ref": "#/components/parameters/query_list_input_terms"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RelatedTerms"
}
}
},
"description": "Success"
},
"400": {
"description": "Invalid terms related parameters.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
},
"example": {
"code": 400,
"message": "Invalid terms related parameters."
}
}
}
},
"default": {
"description": "Unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"pinterest_oauth2": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://www.pinterest.com/oauth/",
"tokenUrl": "https://api.pinterest.com/v5/oauth/token",
"scopes": {
"ads:read": "See all of your advertising data, including ads, ad groups, campaigns etc.",
"ads:write": "Create, update, or delete ads, ad groups, campaigns etc.",
"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"
}
}
}
},
"basic": {
"type": "http",
"scheme": "basic"
}
},
"schemas": {
"Error": {
"title": "Error",
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"message": {
"type": "string"
}
},
"required": [
"code",
"message"
]
},
"Paginated": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object"
}
},
"bookmark": {
"type": "string",
"nullable": true
}
},
"required": [
"items"
]
},
"Account": {
"type": "object",
"readOnly": true,
"properties": {
"account_type": {
"description": "Type of account",
"type": "string",
"enum": [
"PINNER",
"BUSINESS"
]
},
"profile_image": {
"type": "string"
},
"website_url": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"AdCommon": {
"type": "object",
"description": "Creation fields",
"properties": {
"ad_group_id": {
"description": "ID of the ad group that contains the ad.",
"example": "2680059592705",
"type": "string",
"pattern": "^\\d+$"
},
"android_deep_link": {
"description": "Deep link URL for Android devices. Not currently available. Using this field will generate an error.",
"nullable": true,
"type": "string"
},
"carousel_android_deep_links": {
"description": "Comma-separated deep links for the carousel pin on Android.",
"type": "array",
"nullable": true,
"items": {
"type": "string"
}
},
"carousel_destination_urls": {
"description": "Comma-separated destination URLs for the carousel pin to promote.",
"type": "array",
"nullable": true,
"items": {
"type": "string"
}
},
"carousel_ios_deep_links": {
"description": "Comma-separated deep links for the carousel pin on iOS.",
"type": "array",
"nullable": true,
"items": {
"type": "string"
}
},
"click_tracking_url": {
"description": "Tracking url for the ad clicks.",
"type": "string",
"nullable": true
},
"creative_type": {
"$ref": "#/components/schemas/CreativeType"
},
"destination_url": {
"description": "Destination URL.",
"type": "string",
"nullable": true
},
"ios_deep_link": {
"description": "Deep link URL for iOS devices. Not currently available. Using this field will generate an error.",
"type": "string",
"nullable": true
},
"is_pin_deleted": {
"description": "Is original pin deleted?",
"example": false,
"type": "boolean"
},
"is_removable": {
"description": "Is pin repinnable?",
"example": false,
"type": "boolean"
},
"name": {
"description": "Name of the ad - 255 chars max.",
"type": "string",
"nullable": true
},
"pin_id": {
"description": "Pin ID.",
"example": "394205773611545468",
"type": "string",
"pattern": "^\\d+$"
},
"status": {
"$ref": "#/components/schemas/EntityStatus"
},
"tracking_urls": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/TrackingUrls"
}
],
"nullable": true
},
"view_tracking_url": {
"description": "Tracking URL for ad impressions.",
"type": "string",
"nullable": true
}
}
},
"AdCreateRequest": {
"type": "array",
"items": {
"allOf": [
{
"$ref": "#/components/schemas/AdCommon"
},
{
"type": "object",
"title": "Request schema for creating ads",
"required": [
"ad_group_id",
"pin_id",
"creative_type"
],
"minLength": 1,
"maxLength": 30
}
]
}
},
"AnalyticsResponse": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/AnalyticsMetricsResponse"
}
},
"AnalyticsMetricsResponse": {
"type": "object",
"properties": {
"daily_metrics": {
"description": "Array with the requested daily metric records",
"items": {
"type": "object",
"properties": {
"data_status": {
"$ref": "#/components/schemas/DataStatus"
},
"date": {
"description": "Metrics date (UTC): YYYY-MM-DD.",
"example": "2019-12-01",
"type": "string"
},
"metrics": {
"$ref": "#/components/schemas/Metrics"
}
}
},
"type": "array"
},
"summary_metrics": {
"description": "The metric name and value over the requested period for each requested metric",
"type": "object",
"additionalProperties": {
"type": "number"
},
"example": {
"ENGAGEMENT": 100,
"CLICKTHROUGH_RATE": 0.2,
"CLICKTHROUGH": 200,
"CLOSEUP": 37,
"CLOSEUP_RATE": 0.5,
"ENGAGEMENT_RATE": 0.2,
"SAVE": 20,
"SAVE_RATE": 0.18,
"IMPRESSION": 240
}
}
}
},
"AdGroupSummaryStatus": {
"type": "string",
"description": "Summary status for ad group",
"example": "RUNNING",
"enum": [
"RUNNING",
"PAUSED",
"NOT_STARTED",
"COMPLETED",
"ADVERTISER_DISABLED",
"ARCHIVED"
]
},
"AdResponse": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AdCommon"
},
{
"type": "object",
"properties": {
"ad_account_id": {
"description": "The ID of the advertiser that this ad belongs to.",
"example": "549755885175",
"type": "string",
"pattern": "^\\d+$"
},
"campaign_id": {
"description": "ID of the ad campaign that contains this ad.",
"example": "626735565838",
"type": "string",
"pattern": "^\\d+$"
},
"collection_items_destination_url_template": {
"description": "Destination URL template for all items within a collections drawer.",
"type": "string",
"nullable": true
},
"created_time": {
"description": "Pin creation time. Unix timestamp in seconds.",
"example": 1451431341,
"type": "integer"
},
"id": {
"description": "The ID of this ad.",
"example": "687195134316",
"type": "string",
"pattern": "^\\d+$"
},
"rejected_reasons": {
"description": "Enum reason why the pin was rejected. Returned if review_status is \"REJECTED\".",
"type": "array",
"items": {
"type": "string",
"description": "ad disapproval reasons",
"enum": [
"HASHTAGS",
"PROMOTIONS_AND_PRICES",
"TARGETING",
"LANDING_PAGE",
"CAPS_AND_SYMBOLS",
"SHOCKING",
"WEIGHT_LOSS",
"PROHIBITED_PRODUCT",
"AUTHENTICITY",
"NUDITY",
"CONFUSING_DESIGN",
"URGENCY",
"RATINGS",
"APP",
"ALCOHOL",
"CONTESTS",
"POLITICAL",
"OTHER",
"IMAGE",
"NAR",
"INCONSISTENT",
"CLICKBAIT",
"NO_DESCRIPTION",
"LOW_QUALITY",
"EXAGGERATED_CLAIMS",
"PINTEREST_BRAND",
"ALCOHOL_NO_SALE",
"LANDING_PAGE_SPEED",
"LANDING_PAGE_HARDWALL",
"LANDING_PAGE_BROKEN",
"LANDING_PAGE_QUALITY",
"OUT_OF_STOCK",
"IMAGE_LOW_QUALITY",
"IMAGE_BUSY",
"IMAGE_POORLY_EDITED",
"IMAGE_BEFORE_AFTER",
"UGC",
"FAKE_BUTTONS",
"WEAPONS",
"SENSITIVE",
"UNACCEPTABLE_BUSINESS",
"SUSPICIOUS_CLAIMS",
"PHARMA",
"SUSPICIOUS_SUPPLEMENTS",
"ILLEGAL_RECREATIONAL_DRUG",
"LOW_QUALITY_LANDING_PAGE",
"RESTRICTED_HEALTHCARE",
"INCONSISTENT_LANG_FR"
]
}
},
"rejection_labels": {
"description": "Text reason why the pin was rejected. Returned if review_status is \"REJECTED\".",
"type": "array",
"items": {
"type": "string"
}
},
"review_status": {
"type": "string",
"description": "Ad review status",
"example": "PENDING",
"enum": [
"OTHER",
"PENDING",
"REJECTED",
"APPROVED"
]
},
"type": {
"description": "Always \"ad\".",
"example": "pinpromotion",
"type": "string"
},
"updated_time": {
"description": "Last update time. Unix timestamp in seconds.",
"example": 1451431341,
"type": "integer"
},
"summary_status": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/PinPromotionSummaryStatus"
}
],
"description": "Ad summary status"
}
}
}
]
},
"AdArrayResponse": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdArrayResponseElement"
}
}
},
"title": "AdArrayResponse"
},
"AdArrayResponseElement": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AdResponse"
},
"exceptions": {
"$ref": "#/components/schemas/Exception"
}
}
},
"AdsAnalyticsMetricsFilter": {
"type": "object",
"properties": {
"field": {
"$ref": "#/components/schemas/AdsAnalyticsFilterColumn"
},
"operator": {
"$ref": "#/components/schemas/AdsAnalyticsFilterOperator"
},
"values": {
"type": "array",
"description": "List of values for filtering",
"items": {
"type": "number"
},
"minItems": 1
}
},
"required": [
"field",
"operator",
"values"
]
},
"AdsAnalyticsFilterColumn": {
"type": "string",
"description": "Reporting columns for sync reporting data filter",
"example": "SPEND_IN_DOLLAR",
"enum": [
"SPEND_IN_DOLLAR",
"TOTAL_IMPRESSION"
]
},
"AdsAnalyticsFilterOperator": {
"type": "string",
"description": "Filter operator for sync reporting",
"example": "LESS_THAN",
"enum": [
"LESS_THAN",
"GREATER_THAN"
]
},
"AdsAnalyticsResponse": {
"type": "array",
"items": {
"type": "object",
"properties": {
"AD_ID": {
"description": "The ID of the ad that this metrics belongs to.",
"type": "string",
"pattern": "^\\d+$"
},
"DATE": {
"description": "Current metrics date. Only returned when granularity is a time-based value (`DAY`, `HOUR`, `WEEK`, `MONTH`)",
"type": "string",
"format": "date"
}
},
"required": [
"AD_ID"
],
"additionalProperties": true,
"example": {
"DATE": "2021-04-01",
"AD_ID": "547602124502",
"SPEND_IN_DOLLAR": 30,
"TOTAL_CLICKTHROUGH": 216
}
}
},
"AdsAnalyticsTargetingType": {
"type": "string",
"description": "Reporting targeting type",
"example": "APPTYPE",
"enum": [
"KEYWORD",
"APPTYPE",
"GENDER",
"LOCATION",
"PLACEMENT",
"COUNTRY",
"TARGETED_INTEREST",
"PINNER_INTEREST",
"AUDIENCE_INCLUDE",
"AUDIENCE_EXCLUDE",
"GEO",
"AGE_BUCKET",
"REGION"
]
},
"ActionType": {
"type": "string",
"description": "Ad group billable event type.",
"example": "CLICKTHROUGH",
"enum": [
"CLICKTHROUGH",
"IMPRESSION",
"VIDEO_V_50_MRC",
"BILLABLE_ENGAGEMENT"
]
},
"AdGroupCommon": {
"type": "object",
"properties": {
"name": {
"description": "Ad group name.",
"type": "string",
"example": "Ad Group For Pin: 687195905986"
},
"status": {
"type": "string",
"allOf": [
{
"$ref": "#/components/schemas/EntityStatus"
}
],
"description": "Ad group/entity status."
},
"budget_in_micro_currency": {
"description": "Budget in micro currency. This field is **REQUIRED** for non-CBO (campaign budget optimization) campaigns. A CBO campaign automatically generates ad group budgets from its campaign budget to maximize campaign outcome. A CBO campaign is limited to 70 or less ad groups.",
"type": "integer",
"example": 5000000,
"nullable": true
},
"bid_in_micro_currency": {
"description": "Bid price in micro currency. This field is **REQUIRED** for the following campaign objective_type/billable_event combinations: AWARENESS/IMPRESSION, CONSIDERATION/CLICKTHROUGH, CATALOG_SALES/CLICKTHROUGH, VIDEO_VIEW/VIDEO_V_50_MRC.",
"type": "integer",
"example": 5000000,
"nullable": true
},
"bid_strategy_type": {
"type": "string",
"enum": [
"AUTOMATIC_BID",
"MAX_BID",
"TARGET_AVG"
]
},
"budget_type": {
"$ref": "#/components/schemas/BudgetType"
},
"start_time": {
"description": "Ad group start time. Unix timestamp in seconds. Defaults to current time.",
"type": "integer",
"example": 5686848000,
"nullable": true
},
"end_time": {
"description": "Ad group end time. Unix timestamp in seconds.",
"type": "integer",
"example": 5705424000,
"nullable": true
},
"targeting_spec": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "Ad group targeting specification defining the ad group target audience. For example, '{\"APPTYPE\":[\"iphone\"], \"GENDER\":[\"male\"], \"LOCALE\":[\"en-US\"], \"LOCATION\":[\"501\"], \"AGE_BUCKET\":[\"25-34\"]}'"
},
"lifetime_frequency_cap": {
"description": "Set a limit to the number of times a promoted pin from this campaign can be impressed by a pinner within the past rolling 30 days. Only available for CPM (cost per mille (1000 impressions)) ad groups. A CPM ad group has an IMPRESSION billable_event value. This field **REQUIRES** the `end_time` field.",
"type": "integer",
"example": 100
},
"tracking_urls": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/TrackingUrls"
}
],
"description": "Third-party tracking URLs.