Pinterest Media API

The Media API from Pinterest — 2 operation(s) for media.

Operations 3

GET /media List media uploads #
POST /media Register media upload #
GET /media/{media_id} Get media upload details #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pinterest-media-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pinterest-media-api-openapi.yml Raw ↑
openapi: 3.2.0
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:
    MediaUploadType:
      type: string
      enum:
      - video
    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
    Error:
      title: Error
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
      required:
      - code
      - message
    MediaUploadStatus:
      description: Media upload status
      type: string
      enum:
      - registered
      - processing
      - succeeded
      - failed
    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
    Paginated:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
        bookmark:
          type:
          - string
          - 'null'
      required:
      - items
  parameters:
    query_bookmark:
      name: bookmark
      description: Cursor used to fetch the next page of items
      in: query
      required: false
      schema:
        type: string
    query_page_size:
      name: page_size
      description: Maximum number of items to include in a single page of the response. See documentation on <a href='/docs/getting-started/pagination/'>Pagination</a> for more information.
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 250
        default: 25
    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