letmepost / platforms / Pinterest

Ship Your Integration
In Minutes, Not Weeks.

Image and video pins through the v5 API. letmepost handles board lookup, destination-URL reachability checks, video cover thumbnails, and the register-media + S3 multipart + poll dance that Pinterest demands for video.

Live · v5 API · read the docs →
POST /v1/posts ·
{
  "targets": [{ "platform": "pinterest" }],
  "accountId": "acc_pin_xyz",
  "text": "Built with letmepost.",
  "options": { "boardId": "1234567890" }
}

Why letmepost vs Pinterest v5 direct?

Pinterest Direct

  • You apply for Standard Access (4-week review)
  • You implement the register-media → S3 multipart → poll dance for video
  • You build cover-thumbnail extraction for video pins
  • You validate destination URLs are reachable before publish
  • You handle the per-user board lookup + cache
  • You parse Pinterest's nested error envelopes

letmepost API

  • Our reviewed app covers Standard Access for hosted users
  • Video upload abstracted to a single mediaId reference
  • Cover thumbnail auto-extracted at upload time
  • URL reachability checked in preflight; never a silent platform reject
  • Board IDs cached per-account; one lookup per session
  • Errors normalized to the stable letmepost envelope

✓ Image AND video pins, one shape

Both image and video pins go through the same POST /v1/posts. Video pins automatically extract a cover thumbnail and run Pinterest's register-media + S3 multipart + status poll sequence. You get one webhook when the pin is live.


PLAYGROUND

connect, configure, post
▸ Connect▸ Configure▸ Execute

OAuth on pinterest.com, select boards, you're back in the dashboard. Sandbox accounts work for testing; Standard Access for production.

CONNECT PINTEREST →
First pin in ~45 seconds. BOARDS LOADED

CONTENT TYPES

every pinterest surface, one shape
Image pin · JPG, PNG, WebP
Video pin · MP4 ≤ 2GB
Description · 500 chars
Destination URL
Scheduled pins

HOW IT WORKS

three steps · under two minutes

Get your API key

Sign up at dashboard.letmepost.dev. Free tier covers 50 pins/mo.

Connect a Pinterest account

OAuth on pinterest.com, grant board access, you're done. We cache your board list for ~5 minutes per session.

Pin an image (or video)

One POST /v1/posts with platform: "pinterest" and options.boardId. We upload media, set cover, push to Pinterest, fire post.published.


FEATURES

what we built so you don't

Image + video, one shape

Both pin types through the same endpoint. Video pins run register-media → S3 multipart → poll → createPin transparently.

Auto cover thumbnail

Video pins need a cover. We extract one from the source video at upload time; you can override with your own.

URL reachability check

Destination URLs validated in preflight. Pinterest silently rejects unreachable URLs; we surface them before the API call.

Board lookup cached

Board IDs cached per-account, refreshed on connect or explicit invalidation. One lookup per session, not per pin.


CODE EXAMPLE

pin an image · typescript
publish-pinterest.ts ·
import { Letmepost } from '@letmepost/sdk';
const lmp = new Letmepost({ apiKey: process.env.LMP_API_KEY });

const result = await lmp.posts.create({
  targets: [{ platform: 'pinterest', accountId: 'acc_pin_xyz' }],
  text: 'Receipt-themed landing pages, hand-tuned typography.',
  media: [{ type: 'image', url: 'https:x0
  options: {
    pinterest: {
      boardId: '1234567890',
      destinationUrl: 'https://letmepost.dev',
    },
  },
});

for (const r of result.targets) {
  if (r.status === 'published') {
    console.log('Pin URL:', r.url);
  }
}

COMMON QUESTIONS

about publishing to pinterest

Do I need a Pinterest developer account?

No. letmepost runs the developer app. You connect via OAuth on pinterest.com.

What's Standard Access vs Trial Access?

Trial = sandbox-only (test pins don't appear on the public site). Standard = production. Our hosted app already has Standard Access; self-host users apply for their own.

How do video pins work?

Same POST /v1/posts with a video media id. We run Pinterest's register-media + S3 multipart + status poll. Cover thumbnail extracted automatically.

Can I schedule pins?

Yes. Add scheduledAt: ISO8601. We publish at the wall-clock target. Scheduled pins count against your quota when they publish, not when scheduled.

What about destination URL validation?

We do an HTTP HEAD on the destination URL before pinning. If it returns 4xx/5xx, you get a preflight error with pinterest.url.destination_unreachable. Pinterest would silently drop the pin otherwise.

How many pins per day?

Pinterest's per-user limit is ~25 pins/day for new accounts, higher for established ones. We surface their X-RateLimit headers; you get structured 429s, not silent drops.


ONE API · 8 PLATFORMS

pinterest is just one of them

LEARN MORE


READY TO PUBLISH TO PINTEREST?

Skip the register-media dance. Skip the board cache. Skip the URL reachability check. Pin in one POST.

* * * v5 API · STANDARD ACCESS * * *
PLAT · PINTEREST · v5 · LIVE
→ START FREE