openapi: 3.0.3
info:
version: 5.13.0
title: Pinterest Media 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: Media
paths:
/media:
get:
summary: List media uploads
description: 'List media uploads filtered by given parameters.
Learn more about video Pin creation.'
tags:
- Media
operationId: media/list
security:
- pinterest_oauth2:
- pins:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/query_bookmark'
- $ref: '#/components/parameters/query_page_size'
responses:
'200':
description: response
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
items:
description: Media
items:
$ref: '#/components/schemas/MediaUploadDetails'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
summary: Register media upload
description: 'Register your intent to upload media
The response includes all of the information needed to upload the media
to Pinterest.
To upload the media, make an HTTP POST request (using curl, for
example) to upload_url using the Content-Type header
value. Send the media file''s contents as the request''s file
parameter and also include all of the parameters from
upload_parameters.
Learn more about video Pin creation.'
tags:
- Media
operationId: media/create
security:
- pinterest_oauth2:
- pins:read
- pins:write
x-ratelimit-category: org_write
x-sandbox: enabled
requestBody:
description: Create a media upload request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUploadRequest'
responses:
'201':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUpload'
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/media/{media_id}:
get:
summary: Get media upload details
description: 'Get details for a registered media upload, including its current status.
Learn more about video Pin creation.'
tags:
- Media
operationId: media/get
security:
- pinterest_oauth2:
- pins:read
x-ratelimit-category: org_read
x-sandbox: enabled
parameters:
- $ref: '#/components/parameters/path_media_id'
responses:
'200':
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/MediaUploadDetails'
'404':
description: Media upload not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 404
message: Media upload not found
default:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
MediaUploadStatus:
description: Media upload status
type: string
enum:
- registered
- processing
- succeeded
- failed
MediaUploadDetails:
title: Media upload details
description: Media upload details
type: object
properties:
media_id:
type: string
pattern: ^\d+$
readOnly: true
media_type:
allOf:
- $ref: '#/components/schemas/MediaUploadType'
type: string
readOnly: true
status:
allOf:
- $ref: '#/components/schemas/MediaUploadStatus'
type: string
readOnly: true
example:
media_id: '12345'
media_type: video
status: succeeded
MediaUpload:
type: object
title: Media upload
description: Media upload that has been registered but not uploaded/processed yet.
allOf:
- type: object
readOnly: true
properties:
media_id:
type: string
description: Unique identifier for this media upload. Used to track status and for attaching during Pin creation.
media_type:
allOf:
- $ref: '#/components/schemas/MediaUploadType'
type: string
example: video
upload_url:
type: string
description: The URL where you will POST your media file.
example: https://pinterest-media-upload.s3-accelerate.amazonaws.com/
upload_parameters:
type: object
description: The list of parameter key/value pairs you will need to send with your POST request to upload your media file.
properties:
x-amz-date:
type: string
x-amz-signature:
type: string
x-amz-security-token:
type: string
x-amz-algorithm:
type: string
key:
type: string
policy:
type: string
x-amz-credential:
type: string
Content-Type:
type: string
example: multipart/form-data
example:
media_id: '12345'
media_type: video
upload_url: https://pinterest-media-upload.s3-accelerate.amazonaws.com/
upload_parameters:
x-amz-data: 20220127T185143Z
x-amz-signature: fcd6309a6aaee213348666a72abed8b44552a43acb6b340e8e1b288d21a5fe92
key: uploads/11/aa/22/3:video:203014033110991560:5212123920968240771
policy: eyJleHBpcmF0aW9uIjoiMj..==
x-amz-credential: ASIA6QZJ64OPIKV7FRVX/20220127/us-east-1/s3/aws4_request
x-amz-security-token: IQoJb3JpZ2luX2VjEJr...==
x-amz-algorithm: AWS4-HMAC-SHA256
Content-Type: multipart/form-data
MediaUploadType:
type: string
enum:
- video
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
MediaUploadRequest:
title: Media upload request
description: Media upload request
type: object
properties:
media_type:
allOf:
- $ref: '#/components/schemas/MediaUploadType'
type: string
writeOnly: true
required:
- media_type
example:
media_type: video
parameters:
query_page_size:
name: page_size
description: Maximum number of items to include in a single page of the response. See documentation on Pagination for more information.
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 250
default: 25
query_bookmark:
name: bookmark
description: Cursor used to fetch the next page of items
in: query
required: false
schema:
type: string
path_media_id:
name: media_id
description: Media identifier
in: path
required: true
schema:
type: string
pattern: ^\d+$
securitySchemes:
pinterest_oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://www.pinterest.com/oauth/
tokenUrl: https://api.pinterest.com/v5/oauth/token
scopes:
ads:read: See all of your advertising data, including ads, ad groups, campaigns etc.
ads:write: Create, update, or delete ads, ad groups, campaigns etc.
billing:read: See all of your billing data, billing profile, etc.
billing:write: Create, update, or delete billing data, billing profiles, etc.
biz_access:read: See business access data
biz_access:write: Create, update, or delete business access data
boards:read: See your public boards, including group boards you join
boards:read_secret: See your secret boards
boards:write: Create, update, or delete your public boards
boards:write_secret: Create, update, or delete your secret boards
catalogs:read: See all of your catalogs data
catalogs:write: Create, update, or delete your catalogs data
pins:read: See your public Pins
pins:read_secret: See your secret Pins
pins:write: Create, update, or delete your public Pins
pins:write_secret: Create, update, or delete your secret Pins
user_accounts:read: See your user accounts and followers
user_accounts:write: Update your user accounts and followers
conversion_token:
type: http
scheme: bearer
description: This security scheme only applies to the conversion events endpoint (POST /ad_accounts/{ad_account_id}/events). This endpoint requires a bearer token generated via Ads Manager (ads.pinterest.com).
basic:
type: http
scheme: basic
x-tagGroups:
- name: Pin and Boards
tags:
- pins
- boards
- media
- aggregated_comments
- aggregated_pin_data
- user_account
- name: Campaign Management
tags:
- ad_accounts
- campaigns
- ad_groups
- ads
- product_group_promotions
- bulk
- name: Targeting
tags:
- audiences
- customer_lists
- keywords
- targeting_template
- audience_insights
- audience_sharing
- name: Ad Formats
tags:
- lead_forms
- lead_ads
- leads_export
- name: Billing
tags:
- billing
- order_lines
- terms_of_service
- name: Business Access
tags:
- business_access_assets
- business_access_invite
- business_access_relationships
- name: Conversions
tags:
- conversion_events
- conversion_tags
- name: Others
tags:
- integrations
- oauth
- resources
- search
- terms
- name: Shopping
tags:
- catalogs
- name: Deprecated
tags:
- product_groups