Content on Pinterest takes the form of boards and Pins. We recommend reviewing our guide on Pinterest entities for more details on how Pins and boards relate to each other. A few key points are: Pinterest is a place for insipiration and positivity, if you are a creator, help us keep Pinterest a safe place for our Pinners by reviewing our creator code. Pinterest is a place for insipiration and positivity, if you are a creator, help us keep Pinterest a safe place for our Pinners by reviewing our creator code. Make sure you do the following before creating boards and Pins:
Creating and managing Pins and boards
The following endpoints allow an app to create and manage boards & Pins on behalf of an authenticated Pinterest user.
If you registered your app on or after September 14, 2026, you may receive HTTP 403
PINNER_DATA_ACCESS_DENIED
error when you request a board or Pin without Pinterest's
authorization for non-business users. Learn more
.
If you registered your app on or after September 14, 2026, you may receive HTTP 403
PINNER_DATA_ACCESS_DENIED
error when you request a board or Pin without Pinterest's
authorization for non-business users. Learn more
.
Volume limits for boards and Pins
To keep Pinterest running smoothly, there's a limit to the total number of Pins, boards, and follows we can store for accounts.
Boards: up to 2,000 boards of any type (public, private, and secret), including group boards you didn't create
Pins: up to 200,000 Pins including secret Pins and your Pins on group boards for personal accounts
We've recently simplified our organic Pin formats to image or video Pins. Create a new image or video Pin with . Video Pins may require additional processing time after creation. While processing normally takes only a few seconds, you may see an incorrect value for the field until the processing finishes. For example, of REGULAR while processing, and then VIDEO after processing is complete. Video Pins may require additional processing time after creation. While processing normally takes only a few seconds, you may see an incorrect value for the field until the processing finishes. For example, of REGULAR while processing, and then VIDEO after processing is complete. We recommend using the endpoint whenever you or your users are curating Pins. This will prevent users from meeting their entity limits unnecessarily. Pins can be saved to multiple boards. While this guide is not focused on how to create ads, if you are interested in creating an Idea ad later there are a few things you'll need to take note of when creating the root organic Pin. Idea ads can only be created from image or video Pins. To create a Pin which can later be promoted into an Idea ad, take the following steps:
Within the
object, set
to
Documentation for the field can be viewed for applicable when you expand the options in our API reference. Documentation for the field can be viewed for applicable when you expand the options in our API reference. To create video Pins, provide a video and a cover image.
Step 1: Register your intent to upload a video
curl --location --request POST 'https://api.pinterest.com/v5/media' \
--header 'Content-Type: application/json' \
--data-raw '{"media_type": "video"}'
Make a POST request to the provided in step 1.
In the body of the request please set to , and provide all of the you received in Step 1 as key-value pairs.
In this step you will also include the video file (.mp4/.mov/.m4v).
No Bearer Authorization is needed for this step.
A successful call will return a .
curl --location --request POST 'https://pinterest-media-upload.s3-accelerate.amazonaws.com/' \
--form 'x-amz-date="20221012T154547Z"' \
--form 'x-amz-signature="{x-amz-signature}"' \
--form 'x-amz-security-token="{x-amz-security-token}"' \
--form 'x-amz-algorithm="AWS4-HMAC-SHA256"' \
--form 'key="uploads/17/4d/be/2:video:704109860400394553:5258848560742447767"' \
--form 'policy="{policy}"' \
--form 'x-amz-credential="{x-amz-credential}"' \
--form 'Content-Type="multipart/form-data"' \
--form 'file=@"/filePath/video_file.MOV"'
curl --location --request GET 'https://api.pinterest.com/v5/media/{media_id}'
A valid image url must be provided to avoid a 400 Bad Request.
A valid image url must be provided to avoid a 400 Bad Request.
curl --location --request POST 'https://api.pinterest.com/v5/pins' \
--header 'Content-Type: application/json' \
--data-raw '{
"title": "pin_title",
"description": "Your description here",
"board_id": "pinterest_board_id",
"media_source": {
"source_type": "video_id",
"cover_image_url": "image.jpg",
"media_id": "media_id"
}
}'
If the video Pin is successfully created, you will receive a 201 Created response along with the Pin ID.
If the video Pin is successfully created, you will receive a 201 Created response along with the Pin ID.
A Pin makes up the content of a Pinterest ad, which is also referred to as a promoted Pin. To make a Pin usable as an ad, make it an ad-only Pin, which prevents it from being saved by other Pinners or distributed organically.
To make a Pin ad-only, save it to a protected Ad-only Pins board when creating or updating it. This ensures that the Pin does not appear on your public profile.
Request parameters to keep in mind
These code examples reflect the use case of setting up an image Pin to use later as an ad. See the Pin create/update endpoints for all required and optional parameters. Pin creation parameters| Parameter | Description |
|---|
string | The URL that users visit when they click the Pin image on the Pin page. |
string | Account that owns the Pin and, later, the ad based on the Pin. If you do not pass , the Pin will belong to the user account associated with the API access token. If you do pass , the platform verifies if you own the account or have shared access to it. |
string | The text that Pinterest users see below the Pin preview and the Pin page when users click the preview. |
string | The Pin's descriptive text users read when they go to the Pin page. |
string | Unique identifier for the board that would include the Pin. If you create an ad-only Pin by setting to , the Pin is automatically added to an "Ad-only Pins" board, so you do not have to specify a board ID in this case. |
string | The media format for the Pin. The type you specify will cause additional parameters to be required, as indicated in the Pin create/update endpoints. In this example, the specified type is , which means the Pin is an image from a third-party website. |
string Required for certain media source types, including . | The URL of the Pin image from the third-party website. |
boolean | Whether the image Pin is standard or simple. Only applies to certain media_source types, including . For a Pin that you want to promote as an idea ad, set to . Set to if you do not have access to the feature for creating simplified Pins. |
| Set to to make the Pin ad-only, which automatically adds it to a protected "Ad-only Pins" board, so that you can use it for an ad. When you make a Pin ad-only, you do not have to assign it to a board by passing a . |
{
"link": "https://{example.com}/",
"title": "Tree",
"description": "Tree photo",
"media_source": {
"source_type": "image_url",
"url": "https://{url_path}/{image_file_name_with_extension}",
"is_standard": true
},
"is_removable": true
}
Response fields to note for ad-only Pins
Again, this response example reflects the use case of setting up an image Pin to use later as an ad.
See the Pin create/update endpoints for all returned fields. Pin creation response fields| Parameter | Description |
|---|
| Whether the Pin has been promoted () or not (). Promoting a Pin, means using it as an ad. If you have not yet created an ad with the Pin, this value is . |
| Identifier for board that the Pin has been added to. If you create an ad-only Pin without adding it to a specific board, it automatically is added to an Ad-only Pins board. So, the will be that of an Ad-only Pins board. |
| Identifier for the Pin you created. |
| Versions of the Pin in different dimensions as it is rendered in different locations, such as the thumbnail and the Pin's page. |
| Pinterest account user name of owner of the board that includes the Pin. If you create an ad-only Pin without adding it to a specific board, it automatically is added to an Ad-only Pins board, which you own. |
{
"has_been_promoted": false,
"link": "https://www.pinterest.com/",
"board_section_id": null,
"alt_text": null,
"product_tags": [],
"title": "Tree",
"dominant_color": null,
"board_id": "123456123456123456",
"is_standard": true,
"note": "",
"board_owner": {
"username": "exampleuser"
},
"media": {
"media_type": "image",
"images": {
"150x150": {
"width": 150,
"height": 150,
"url": "https://i.pinimg.com/150x150/70/95/a8/1234abcd1234abcd1234abcd1234abcd.jpg"
},
"400x300": {
"width": 400,
"height": 300,
"url": "https://i.pinimg.com/400x300/70/95/a8/1234abcd1234abcd1234abcd1234abcd.jpg"
},
"600x": {
"width": 402,
"height": 536,
"url": "https://i.pinimg.com/564x/70/95/a8/1234abcd1234abcd1234abcd1234abcd.jpg"
},
"1200x": {
"width": 402,
"height": 536,
"url": "https://i.pinimg.com/1200x/70/95/a8/1234abcd1234abcd1234abcd1234abcd.jpg"
}
}
},
"is_removable": true,
"id": "654321654321654321",
"creative_type": "REGULAR",
"description": "Tree photo",
"created_at": "2025-05-21T01:13:01",
"pin_metrics": null,
"is_owner": true,
"parent_pin_id": null
}
Creator Code: Pinterest is building a positive online space for creators. That's why we launched the Creator Code: our commitment to kindness.
Creator newsletter - Stay up to date with what Pinterest Creators are talking about through our newsletter or join our Creator community.
Spam and abuse: tips on protecting your app from being misused by spammers. All API partners are subject to our Spam and abuse monitoring program.
Pin specs: recommended Pin specs to help your users' content stand out.
Pinterest partners: From content scheduling to innovative creative tools, check out what our Pinterest Partners have built on our API.