Pinterest User API
The User API from Pinterest — 11 operation(s) for user.
The User API from Pinterest — 11 operation(s) for user.
openapi: 3.0.3
info:
version: 5.13.0
title: Pinterest User API
description: This is the description of your API.
contact:
name: Pinterest, Inc.
url: https://developers.pinterest.com/
license:
name: MIT
url: https://spdx.org/licenses/MIT
termsOfService: https://developers.pinterest.com/terms/
servers:
- url: https://api.pinterest.com/v5
tags:
- name: User
paths:
/user_account:
get:
summary: Get user account
description: 'Get account information for the "operation user_account"
- By default, the "operation user_account" is the token user_account.
If using Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account". See <a href=''/docs/reference/business-access/''>Understanding Business Access</a> for more information.'
tags:
- User
operationId: user_account/get
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'403':
description: Not authorized to access the user account.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/analytics:
get:
summary: Get user account analytics
description: 'Get analytics for the "operation user_account"
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".'
tags:
- User
operationId: user_account/analytics
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_from_claimed_content'
- $ref: '#/components/parameters/query_pin_format'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_content_type'
- $ref: '#/components/parameters/query_source'
- $ref: '#/components/parameters/query_metric_types'
- $ref: '#/components/parameters/query_split_field_user_account'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AnalyticsResponse'
description: Success
'400':
description: Invalid user accounts analytics parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid user accounts analytics parameters.
'403':
description: Not authorized to access the user account analytics.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account analytics.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/analytics/top_pins:
get:
summary: Get user account top pins analytics
description: 'Gets analytics data about a user''s top pins (limited to the top 50).
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".'
tags:
- User
operationId: user_account/analytics/top_pins
security:
- pinterest_oauth2:
- pins:read
- user_accounts:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_sort_by'
- $ref: '#/components/parameters/query_from_claimed_content'
- $ref: '#/components/parameters/query_pin_format'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_content_type'
- $ref: '#/components/parameters/query_source'
- $ref: '#/components/parameters/query_metric_types'
- $ref: '#/components/parameters/query_num_of_pins'
- $ref: '#/components/parameters/query_created_in_last_n_days'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopPinsAnalyticsResponse'
description: Success
'403':
description: Not authorized to access the user account analytics.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account analytics.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/analytics/top_video_pins:
get:
summary: Get user account top video pins analytics
description: 'Gets analytics data about a user''s top video pins (limited to the top 50).
- By default, the "operation user_account" is the token user_account.
Optional: Business Access: Specify an ad_account_id to use the owner of that ad_account as the "operation user_account".'
tags:
- User
operationId: user_account/analytics/top_video_pins
security:
- pinterest_oauth2:
- pins:read
- user_accounts:read
x-ratelimit-category: org_analytics
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_start_date'
- $ref: '#/components/parameters/query_end_date'
- $ref: '#/components/parameters/query_video_pin_sort_by'
- $ref: '#/components/parameters/query_from_claimed_content'
- $ref: '#/components/parameters/query_pin_format'
- $ref: '#/components/parameters/query_app_types'
- $ref: '#/components/parameters/query_content_type'
- $ref: '#/components/parameters/query_source'
- $ref: '#/components/parameters/query_video_pin_metric_types'
- $ref: '#/components/parameters/query_num_of_pins'
- $ref: '#/components/parameters/query_created_in_last_n_days'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TopVideoPinsAnalyticsResponse'
description: Success
'403':
description: Not authorized to access the user account analytics.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user account analytics.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/businesses:
get:
summary: List linked businesses
description: Get a list of your linked business accounts.
operationId: linked_business_accounts/get
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: enabled
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LinkedBusiness'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
tags:
- User
/user_account/followers:
get:
summary: List followers
description: Get a list of your followers.
operationId: followers/list
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: ads_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/UserSummary'
description: Success
'400':
description: Invalid user id
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid user id
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- User
/user_account/following:
get:
summary: List following
description: Get a list of who a certain user follows.
operationId: user_following/get
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_user_following_feed_type'
- $ref: '#/components/parameters/query_explicit_following'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
description: response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Users
items:
$ref: '#/components/schemas/UserSummary'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- User
/user_account/following/boards:
get:
summary: List following boards
description: Get a list of the boards a user follows. The request returns a board summary object array.
operationId: boards_user_follows/list
security:
- pinterest_oauth2:
- user_accounts:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
- $ref: '#/components/parameters/query_explicit_following'
- $ref: '#/components/parameters/query_ad_account_id'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Board'
description: Success
'400':
description: Invalid user id
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 400
message: Invalid user id
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- User
/user_account/following/{username}:
post:
summary: Follow user
description: '<strong>This endpoint is currently in beta and not available to all apps. <a href=''/docs/new/about-beta-access/''>Learn more</a>.</strong>
Use this request, as a signed-in user, to follow another user.'
tags:
- User
operationId: follow_user/update
security:
- pinterest_oauth2:
- user_accounts:write
x-ratelimit-category: org_write
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_username'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FollowUserRequest'
description: Follow a user.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserSummary'
description: Success
'404':
description: User not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
UserNotFound:
value:
code: 30
message: User not found.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
/user_account/websites:
post:
summary: Verify website
description: Verify a website as a signed-in user.
tags:
- User
operationId: verify_website/update
security:
- pinterest_oauth2:
- user_accounts:write
x-ratelimit-category: org_write
x-sandbox: disabled
requestBody:
description: Verify a website.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteVerifyRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteSummary'
description: Success
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
get:
summary: Get user websites
description: Get user websites, claimed or not
tags:
- User
operationId: user_websites/get
security:
- pinterest_oauth2:
- user_accounts:read
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
description: Success
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/UserWebsiteSummary'
'403':
description: Not authorized to access the user website list.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user website list.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-ratelimit-category: org_read
x-sandbox: disabled
delete:
summary: Unverify website
description: Unverifu a website verified by the signed-in user.
tags:
- User
operationId: unverify_website/delete
security:
- pinterest_oauth2:
- user_accounts:write
x-ratelimit-category: org_write
x-sandbox: disabled
parameters:
- $ref: '#/components/parameters/query_website'
responses:
'204':
description: Successfully unverified website
'404':
description: Website not in user list.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Website not in user list.
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/user_account/websites/verification:
get:
summary: Get user verification code for website claiming
description: Get verification code for user to install on the website to claim it.
tags:
- User
operationId: website_verification/get
security:
- pinterest_oauth2:
- user_accounts:read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserWebsiteVerificationCode'
description: Success
'403':
description: Not authorized to access the user verification code for website claiming.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 403
message: Not authorized to access the user verification code for website claiming.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error
x-ratelimit-category: org_read
x-sandbox: disabled
components:
schemas:
TopVideoPinsAnalyticsResponse:
type: object
properties:
date_availability:
type: object
properties:
latest_available_timestamp:
type: number
example: 1649116799000
is_realtime:
type: boolean
example: false
pins:
type: array
items:
description: Array with metrics, status, and pin id for the requested metric
type: object
properties:
metrics:
description: The metric name and daily value for each requested metric
type: object
additionalProperties:
type: number
example:
IMPRESSION: 7
QUARTILE_95_PERCENT_VIEW: 2
SAVE: 1
VIDEO_10S_VIEW: 5
VIDEO_AVG_WATCH_TIME: 86989
VIDEO_MRC_VIEW: 2
VIDEO_START: 2
VIDEO_V50_WATCH_TIME: 173979
OUTBOUND_CLICK: 2
data_status:
type: object
additionalProperties:
$ref: '#/components/schemas/DataStatus'
pin_id:
description: The pin id
type: string
example: '642396334344813594'
sort_by:
type: string
enum:
- SAVE
- IMPRESSION
- OUTBOUND_CLICK
- VIDEO_MRC_VIEW
- VIDEO_AVG_WATCH_TIME
- VIDEO_V50_WATCH_TIME
- QUARTILE_95_PERCENT_VIEW
- VIDEO_10S_VIEW
- VIDEO_START
example: IMPRESSION
FollowUserRequest:
title: FollowUserRequest
type: object
properties:
auto_follow:
title: auto_follow
type: boolean
description: Whether this request comes as result of auto-follow after clicking on a link. Follow links can be used by partners on their site or in emails. Only selected partners can be followed this way. We verify that partner can be auto-followed.
default: false
example: false
Account:
type: object
readOnly: true
properties:
account_type:
description: Type of account
type: string
enum:
- PINNER
- BUSINESS
id:
description: User account ID.
type: string
pattern: ^\d+$
example: '2783136121146311751'
profile_image:
type: string
website_url:
type: string
username:
type: string
about:
description: Profile about description.
type: string
business_name:
type: string
nullable: true
board_count:
type: integer
readOnly: true
nullable: true
example: 14
description: 'User account board count.<br/>**Note**: Board count on user account level may differ from counts found elsewhere due to attribution of collaborative Boards.'
pin_count:
type: integer
readOnly: true
nullable: true
example: 339
description: User account pin count. This includes both created and saved pins.
follower_count:
type: integer
readOnly: true
nullable: true
example: 10
description: User account follower count.
following_count:
type: integer
readOnly: true
nullable: true
example: 347
description: User account following count.
monthly_views:
type: integer
readOnly: true
nullable: true
example: 163
description: User account monthly views.
UserFollowingFeedType:
description: Specifies the type of followees to be kept when filtering them.
enum:
- ALL
- RANKED
- CREATOR_ONLY
- RANKED_CREATOR_ONLY
example: CREATOR_ONLY
title: UserFollowingFeedType
type: string
default: ALL
Error:
title: Error
type: object
properties:
code:
type: integer
message:
type: string
required:
- code
- message
AnalyticsResponse:
type: object
additionalProperties:
$ref: '#/components/schemas/AnalyticsMetricsResponse'
LinkedBusiness:
title: LinkedBusiness
type: object
properties:
username:
title: username
type: string
description: Username
example: username
image_small_url:
title: image_small_url
type: string
description: image_small_url
example: https://www.example.com/dj23454f53dfk2324.jpg
image_medium_url:
title: image_medium_url
type: string
description: image_medium_url
example: https://www.example.com/dj23454f53dfk2324.jpg
image_large_url:
title: image_large_url
type: string
description: image_large_url
example: https://www.example.com/dj23454f53dfk2324.jpg
image_xlarge_url:
title: image_xlarge_url
type: string
description: image_xlarge_url
example: https://www.example.com/dj23454f53dfk2324.jpg
TopPinsAnalyticsResponse:
type: object
properties:
date_availability:
type: object
properties:
latest_available_timestamp:
type: number
example: 1649116799000
is_realtime:
type: boolean
example: false
pins:
type: array
items:
description: Array with metrics, status, and pin id for the requested metric
type: object
properties:
metrics:
$ref: '#/components/schemas/Metrics'
data_status:
type: object
additionalProperties:
$ref: '#/components/schemas/DataStatus'
pin_id:
description: The pin id
type: string
example: '642396334344813594'
sort_by:
type: string
enum:
- ENGAGEMENT
- SAVE
- IMPRESSION
- OUTBOUND_CLICK
- PIN_CLICK
example: IMPRESSION
Paginated:
type: object
properties:
items:
type: array
items:
type: object
bookmark:
type: string
nullable: true
required:
- items
UserSummary:
title: UserSummary
type: object
properties:
username:
title: username
type: string
description: Username
example: username
type:
title: type
type: string
description: Always "user"
example: user
BoardOwner:
title: Board owner
type: object
properties:
username:
type: string
readOnly: true
UserWebsiteVerifyRequest:
title: User website verification request
description: User website verification request
type: object
properties:
website:
type: string
example: pintest-website-12345678.test/test_1
verification_method:
type: string
default: METATAG
enum:
- FILENAME
- METATAG
- DNSTXT
Board:
title: Board
description: Board
type: object
properties:
id:
type: string
readOnly: true
example: '549755885175'
created_at:
type: string
description: Date and time of board creation.
readOnly: true
format: date-time
example: '2020-01-01T20:10:40-00:00'
board_pins_modified_at:
type: string
description: Date and time of last board pins modified.
readOnly: true
format: date-time
example: '2020-01-01T20:10:40-00:00'
name:
type: string
example: Summer Recipes
description:
type: string
nullable: true
example: My favorite summer recipes
collaborator_count:
type: integer
description: Count of collaborators on the board.
minimum: 0
readOnly: true
example: 17
pin_count:
type: integer
description: Count of pins on the board.
minimum: 0
readOnly: true
example: 5
follower_count:
type: integer
description: Board follower count.
readOnly: true
minimum: 0
example: 13
media:
type: object
readOnly: true
description: Board media.
properties:
image_cover_url:
type: string
nullable: true
description: Board cover image.
example: https://i.pinimg.com/400x300/fd/cd/d5/fdcdd5a6d8a80824add0d054125cd957.jpg
pin_thumbnail_urls:
type: array
description: Board pin thumbnail urls.
items:
type: string
example:
- https://i.pinimg.com/150x150/b4/57/10/b45710f1ede96af55230f4b43935c4af.jpg
- https://i.pinimg.com/150x150/dd/ff/46/ddff4616e39c1935cd05738794fa860e.jpg
- https://i.pinimg.com/150x150/84/ac/59/84ac59b670ccb5b903dace480a98930c.jpg
- https://i.pinimg.com/150x150/4c/54/6f/4c546f521be85e30838fb742bfff6936.jpg
owner:
allOf:
- $ref: '#/components/schemas/BoardOwner'
type: object
readOnly: true
privacy:
type: string
default: PUBLIC
description: Privacy setting for a board. Learn more about <a href="https://help.pinterest.com/en/article/secret-boards">secret boards</a> and <a href="https://help.pinterest.com/en/business/article/protected-boards">protected boards</a>
enum:
- PUBLIC
- PROTECTED
- SECRET
required:
- name
AnalyticsDailyMetrics:
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'
AnalyticsMetricsResponse:
type: object
properties:
summary_metrics:
description: The metric name and value over the requested period for each requested metric
type: object
additionalProperties:
type: number
example:
CLOSEUP: 1
CLOSEUP_RATE: 0
ENGAGEMENT: 1
ENGAGEMENT_RATE: 0
IMPRESSION: 240
OUTBOUND_CLICK: 20
OUTBOUND_CLICK_RATE: 0.08
PIN_CLICK: 37
PIN_CLICK_RATE: 0.15
PROFILE_VISIT: 0
QUARTILE_95_PERCENT_VIEW: 8
SAVE: 20
SAVE_RATE: 0.18
VIDEO_10S_VIEW: 2
VIDEO_AVG_WATCH_TIME: 2507.75
VIDEO_MRC_VIEW: 20
VIDEO_START: 29
VIDEO_V50_WATCH_TIME: 10031
daily_metrics:
description: Array with the requested daily metric records
items:
$ref: '#/components/schemas/AnalyticsDailyMetrics'
type: array
UserWebsiteSummary:
title: UserWebsiteSummary
type: object
properties:
website:
title: website
type: string
description: Website with path or domain only
example: mysite.test
status:
title: status
type: string
description: Status of the verification process
example: success
verified_at:
title: verified_at
type: string
description: UTC timestamp when the verification happened - sometimes missing
example: '2022-12-14T21:03:01.602000'
DataStatus:
description: Metrics availablity, e.g., "READY".
example: READY
type: string
enum:
- PROCESSING
- READY
- ESTIMATE
- BEFORE_BUSINESS_CREATED
- BEFORE_DATA_RETENTION_PERIOD
- BEFORE_PIN_DATA_RETENTION_PERIOD
- BEFORE_METRIC_START_DATE
- BEFORE_CORE_METRIC_START_DATE
- BEFORE_PIN_FORMAT_METRIC_START_DATE
- BEFORE_AUDIENCE_METRIC_START_DATE
- BEFORE_AUDIENCE_MONTHLY_METRIC_START_DATE
- BEFORE_VIDEO_METRIC_START_DATE
- BEFORE_CONVERSION_METRIC_START_DATE
- PURCHASERS_METRIC_SMALLER_THAN_THRESHOLD
- IN_BAD_TAG_DATE
- BEFORE_PUBLISHED_METRIC_START_DATE
- BEFORE_ASSIST_METRIC_START_DATE
- BEFORE_PIN_CREATED
- BEFORE_ACCOUNT_CLAIMED
- BEFORE_DEMOGRAPHIC_FILTERS_START_DATE
- AUDIENCE_SEGMENT_SMALLER_THAN_THRESHOLD
- AUDIENCE_TOTAL_SMALLER_THAN_THRESHOLD
- BEFORE_PRODUCT_GROUP_FILTER_START_DATE
Metrics:
description: The metric name and daily value for each requested metric
type: object
additionalProperties:
type: number
example:
CLOSEUP: 1
CLOSEUP_RATE: 0
ENGAGEMENT: 1
ENGAGEMENT_RATE: 0
IMPRESSION: 240
OUTBOUND_CLICK: 20
OUTBOUND_CLICK_RATE: 0.08
PIN_CLICK: 37
PIN_CLICK_RATE: 0.15
QUARTILE_95_PERCENT_VIEW: 8
SAVE: 20
SAVE_RATE: 0.18
# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pinterest/refs/heads/main/openapi/pinterest-user-api-openapi.yml