Overview

Schedule and automate Pinterest Pins with image pins, video pins, boards, and destination links.

Schedule and automate Pinterest Pins with image pins, video pins, boards, and destination links.

Quick Reference

PropertyValue
Title limit100 characters
Description limit800 characters
Images per pin1
Videos per pin1
Image formatsJPEG, PNG, WebP, GIF
Image max file size32 MB
Video formatsMP4, MOV
Video max file size64 MB through Onepostly
Video duration4 seconds - 15 minutes
SchedulingYes, with IANA timezone
Editing published pinsNot supported
Inbox / CommentsNo
AnalyticsNo

Before You Start

Pinterest is a search engine, not a social feed. Pins are discovered through search and browse, not by followers. SEO (title, description, board name) matters more than posting time. Pins have a months-long lifespan, unlike hours on other platforms.

Additional requirements:

  • boardId is required. Create a board in Pinterest or via the Boards API
  • Media is required. There are no text-only pins
  • The link field on each pin drives traffic to your destination

Connect

Open Dashboard → Connections and connect Pinterest.

Complete the Pinterest consent screen. Onepostly requests all scopes below in a single OAuth flow.

Grab the account id from the connections list:
const { connections: list } = await connections.listConnections();
const pin = list.find((c) => c.platform === "pinterest");
// pin.id is your accountId

If you later get a permission error on an action that should work, reconnect Pinterest once.

OAuth Scopes

ScopeWhat it enables
user_accounts:readAccount identity (id, username, avatar)
boards:readList boards for pin targeting
boards:writeCreate boards via the API
pins:readRead pins (permalinks, analytics)
pins:writeCreate and delete pins

Token Lifetime

TokenLifetimeBehavior
Access token~30 daysRefreshed automatically by Onepostly
Refresh tokenRotated on refreshReconnect the account after expiry or revocation

Boards

Every pin belongs to a board. List the boards on a connected account, or create a new one directly through the API (no reconnect needed; the boards:write scope is part of every Pinterest connection).

List Boards

import { Configuration, ConnectionsApi } from "@onepostly/sdk";

const connectionsApi = new ConnectionsApi(
  new Configuration({ apiKey: process.env.ONEPOSTLY_API_KEY })
);

const response = await connectionsApi.listPinterestBoards({
  id: "a1b2c3d4-e5f6-4a7b-8c9d-e0f1a2b3c4d5",
});
console.log(response);
{
  "accountId": "a1b2c3d4-e5f6-4a7b-8c9d-e0f1a2b3c4d5",
  "platform": "pinterest",
  "boards": [
    {
      "id": "1234567890123456789",
      "name": "Summer ideas"
    }
  ],
  "defaultBoardId": "1234567890123456789",
  "sandbox": false,
  "fetchedAt": "2026-08-25T10:00:00.000Z"
}

Create A Board

Returns the new board's id, which you can use immediately as boardId when creating a pin.

import { Configuration, ConnectionsApi } from "@onepostly/sdk";

const connectionsApi = new ConnectionsApi(
  new Configuration({ apiKey: process.env.ONEPOSTLY_API_KEY })
);

const response = await connectionsApi.createPinterestBoard({
  id: "a1b2c3d4-e5f6-4a7b-8c9d-e0f1a2b3c4d5",
  body: {
    "name": "Summer ideas",
    "description": "My summer inspiration board"
  },
});
console.log(response);
{
  "accountId": "a1b2c3d4-e5f6-4a7b-8c9d-e0f1a2b3c4d5",
  "platform": "pinterest",
  "board": {
    "id": "1234567890123456789",
    "name": "Summer ideas"
  },
  "sandbox": false,
  "createdAt": "2026-08-25T10:00:00.000Z"
}

Pinterest rejects duplicate board names on the same account. Board creation errors from Pinterest are surfaced with the original message.

Capabilities

ActionSupportedNotes
Image pinYesSingle image URL
Video pinYesOne video URL, up to 64 MB through Onepostly
Title / description / linkYesPer-pin fields on the destination
ScheduleYesCancel any time before it publishes
Remote deleteYesRemoves the pin from the board
Analytics / commentsNoPinterest does not expose them through this API
Text-only postNoPinterest requires media

What You Can't Do

These features are not available through Pinterest's API:

  • Idea Pins (multi-page stories)
  • Multi-image or carousel pins
  • Rich Pins (requires meta tags on your website)
  • Change a published pin's media, destination link, or board
  • Inbox or direct messages
  • Comments on pins

Known Limitations

  • Video pins may keep processing on Pinterest after the destination flips to published
  • Title is capped at 100 characters, description at 800
  • Pinterest has no API-accessible inbox or comments

See Also