Skip to main content

Quick reference

Before you start

Pinterest requires every pin to land on a specific board. You must pass the board ID in platformOptions — there’s no default board at the API layer (the compose UI pre-fills one from the connected account, but the API does not). The compose dashboard fetches the available board list at connect time and stores it on the SocialAccount; pulling the list dynamically from the public API isn’t available in v1.
See Platform settings → Pinterest for the full schema and Media uploads for how to attach images. Required scopes (granted by the connect flow):
  • boards:read — list the boards you can pin to.
  • boards:read_secret — list secret boards.
  • pins:read, pins:write — read + create pins.
Pinterest carousel pins are image-only. Mixing video isn’t supported by the API at all (video pins go through a separate flow we haven’t shipped yet).

Quick start

Workspace is inferred from your API key — no workspaceId argument. Pinterest always needs platformOptions.board because every pin lands on a specific board — so even the flat-shape quickstart sets it. Drop to the nested shape when you want a different stylistic layout for the same request.

Content types

Single-image pin

Default. Pass exactly one image — either inline via mediaItems or by reference via mediaIds (see Media uploads). Pass 2–5 image mediaIds (or mediaItems). All slides must share the same aspect ratio (1:1 OR 2:3) — Pinterest rejects mixed aspects at the API.

Media requirements

Images

Pinterest down-scales anything above 1,200 × 1,800. Higher resolutions are accepted but offer no display advantage.

Platform-specific fields

See the full schema at Platform settings → Pinterest. The pin’s description comes from the post-level content field — Pinterest caps it at 500 chars. firstComment is not supported on Pinterest — the platform doesn’t expose a commercial comment API. Passing one is rejected at validation.

Analytics

Pinterest analytics include some signature metrics not exposed elsewhere: Refresh cadence: every 14 days.

Common errors

What you can’t do

  • ❌ Video pins (planned for v2)
  • ❌ Idea pins (deprecated by Pinterest)
  • ❌ Story pins
  • ❌ Schedule via Pinterest’s native scheduler
  • ❌ Edit a pin after publish (Pinterest deleted that API)
  • ❌ Add to multiple boards at once (one pin = one board; create multiple posts)
  • ❌ Section pins (sub-boards) at the API
  • ❌ Tag products (catalog feature, separate API)
  • ❌ First comment (no commercial comment API)

Full control: nested shape

The nested shape (caption + targets + scheduledAt + socialAccountId) is functionally identical to the flat shape — pick whichever reads better in your codebase. Every Pinterest target still requires platformOptions.board.
Node.js