Platforms / Pinterest
LivePlatform integration
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 →
{
"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
mediaIdreference - 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.
OAuth on pinterest.com, select boards, you're back in the dashboard. Sandbox accounts work for testing; Standard Access for production.
CONNECT PINTEREST →Content types
Every Pinterest surface, one shape.
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
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
Good to know
Notes from the integration.
OAuth on pinterest.com. Token + refresh handled by us. Board read scope requested by default.
500-char description. Image pins JPG/PNG/WebP. Video pins MP4 ≤ 2GB ≤ 15 min. ~25 pins/day per new user.
Board list cached per-account. POST /v1/accounts/:id/boards/refresh forces a re-fetch.
Image pins: 2–4 seconds. Video pins: 20–90 seconds depending on duration (Pinterest processing time).
Self-hosters apply for their own Pinterest Standard Access (4-week review) and use their own credentials.
READY TO PUBLISH TO PINTEREST?
Skip the register-media dance. Skip the board cache. Skip the URL reachability check. Pin in one POST.