Skip to main content

Pinterest

Pinterest posting requires an access token and a target board ID. Every pin needs one image or video.

Content support

CapabilitySupport
TitleOptional. Up to 100 characters.
DescriptionOptional. Up to 500 characters.
Required mediaYes (one image or video).
Required optionsboardId.
Optional optionstitle, description, link, altText.

Set up credentials

  1. Create a Pinterest developer app.
  2. Configure redirect URIs for your app or Scheduler deployment.
  3. Request scopes for content publishing (pins:write, boards:read, user_accounts:read).
  4. Complete OAuth authorization for the Pinterest account.
  5. List boards and copy the board ID you want to post to.
  6. Store the access token and board ID.

The CLI does not bundle a Pinterest OAuth app. To use it from the CLI, supply your own client secret through SIMPLE_POST_PINTEREST_CLIENT_SECRET before running simplepost account add pinterest.

Pinterest refresh tokens rotate on every refresh — see token rotation.

Environment variables

PINTEREST_ACCESS_TOKEN=
PINTEREST_BOARD_ID=

Both variables are required for env-only setup. Without PINTEREST_BOARD_ID, the SDK has no target board and rejects the post.

SDK options

await post({
content: {
text: "A short description for the pin",
media: [{ type: "image", path: "./photo.jpg" }],
},
platforms: ["pinterest"],
options: {
pinterest: {
boardId: "1234567890123456789",
title: "Pin title",
link: "https://example.com",
altText: "A descriptive alt text",
},
},
});

REST server account

Add this entry under accounts in the self-hosted REST server's accounts.json:

{
"id": "pinterest-main",
"platform": "pinterest",
"credentials": { "accessToken": "..." },
"options": {
"boardId": "987654321"
}
}