Skip to Content

Pinterest Upload API

This section details how to upload images, carousels (up to 5 images), and videos (Pins) to Pinterest using the API.

Base URL

https://api.multi-upload-tool.com/api/v1

Authentication

All requests require an API Token in the header: x-api-key: YOUR_API_TOKEN


1. Get User Boards (Required)

Before uploading a Pin, you must obtain a valid board_id from the user’s Pinterest account.

Endpoint

GET /pinterest/boards

Query Parameters

ParameterTypeRequiredDescription
accountIdstringYesThe ID of the connected Pinterest account (from /accounts).

Example Request

curl -X GET "https://api.multi-upload-tool.com/api/v1/pinterest/boards?accountId=123" \ -H "x-api-key: YOUR_API_TOKEN"

Example Response

{ "success": true, "data": [ { "id": "123456789", "name": "My Board", "description": "Board description", "privacy": "PUBLIC" }, { "id": "987654321", "name": "Another Board", "privacy": "SECRET" } ] }

2. Upload Pin

Upload a single image or video file to a Pinterest Board.

Endpoint

POST /upload

Content-Type

multipart/form-data

Parameters

Query Parameters

ParameterTypeRequiredDescription
asyncstringNoDefault "true".

Body Parameters

ParameterTypeRequiredDescription
accountIdstringYesThe ID of the connected Pinterest account.
pinterest_board_idstringYesThe ID of the Pinterest Board.
photoFile or File[]NoThe image to upload (JPG, PNG). Required if video is not provided. Send the field more than once (or as an array, up to 5) for a carousel Pin — see the Upload Carousel Pin section below.
videoFileNoThe video to upload (MP4). Required if photo is not provided.
titlestringNoThe title of the Pin (max 100 chars). Defaults to "Untitled" if omitted.
descriptionstringNoThe description of the Pin (max 500 chars).
linkstringNoDestination URL for the Pin.
alt_textstringNoAlt text for the image.

Example Request (Image)

curl -X POST https://api.multi-upload-tool.com/api/v1/upload \ -H "x-api-key: YOUR_API_TOKEN" \ -F "accountId=123" \ -F "pinterest_board_id=123456789" \ -F "photo=@/path/to/image.jpg" \ -F "title=My Cool Pin" \ -F "description=Check this out!" \ -F "link=https://example.com"

Example Request (Video)

curl -X POST https://api.multi-upload-tool.com/api/v1/upload \ -H "x-api-key: YOUR_API_TOKEN" \ -F "accountId=123" \ -F "pinterest_board_id=123456789" \ -F "video=@/path/to/video.mp4" \ -F "title=My Video Pin" \ -F "description=Watch this video!" \ -F "link=https://example.com"

Example Response

{ "success": true, "message": "Upload queued successfully", "data": { "uploadId": 456, "status": "pending", "scheduledFor": null } }

Create a carousel Pin (up to 5 images) by sending the photo field multiple times. Viewers swipe through the images on Pinterest.

Endpoint

POST /upload

Content-Type

multipart/form-data

Body Parameters

ParameterTypeRequiredDescription
accountIdstringYesThe ID of the connected Pinterest account.
pinterest_board_idstringYesThe ID of the Pinterest Board.
photoFile[]YesTwo to 5 image files. Repeat the photo field once per image.
titlestringNoThe title of the Pin (max 100 chars).
descriptionstringNoThe description of the Pin (max 500 chars).
linkstringNoDestination URL for the Pin.

Example Request

curl -X POST https://api.multi-upload-tool.com/api/v1/upload \ -H "x-api-key: YOUR_API_TOKEN" \ -F "accountId=123" \ -F "pinterest_board_id=123456789" \ -F "photo=@/path/to/image1.jpg" \ -F "photo=@/path/to/image2.jpg" \ -F "photo=@/path/to/image3.jpg" \ -F "title=My Carousel Pin" \ -F "description=Swipe through!" \ -F "link=https://example.com"

Notes

  • A carousel Pin accepts 2 to 5 images. A single photo is published as a normal image Pin.
  • Video carousels are not supported — video always creates a single video Pin.

Validation & Limits

The following constraints are enforced by our API for all Pinterest uploads:

ConstraintLimitNotes
Title100 charactersRequired for carousels. Recommended by Pinterest; enforced by our API.
Description500 charactersOptional. Enforced by our API.
Destination Link2,048 charactersOptional. Enforced by our API.
Alt Text500 charactersOptional. Enforced by our API.
Image File Size20 MB per fileMax file size for JPG, PNG images. Enforced by our API.
Video File Size2 GB per fileMax file size for MP4 videos. Enforced by our API.
Carousel Images2–5 imagesSingle images use photo once; carousels send 2–5 files. Enforced by our API.
Board PrivacyPUBLIC or SECRETSet on the Pinterest side; our API mirrors the setting.
Video Pin Cover TimeInteger (milliseconds)Optional. If not provided, defaults to 0 (start of video). Recommended by Pinterest.

Source: Pinterest API v5 Pins Create Documentation