Trusted by 2,000+ users

Pinterest API: Create and Schedule Pins Today

Pinterest is a visual search engine, not a feed. A single Pin keeps surfacing in search and sending referral traffic for months after you publish it. PostZen publishes image, video, and carousel Pins to any board through one REST endpoint, schedules them for any date, and reads Pin analytics back, so you never touch Pinterest API v5 directly.

No credit card required

TypeScript
import PostZen from '@postzen/node';

const postzen = new PostZen();

await postzen.posts.createPost({
  body: {
    content: 'A quiet workspace for focused afternoons.',
    mediaItems: [{ url: 'https://cdn.example.com/pin.jpg' }],
    publishNow: true,
    platforms: [{
      platform: 'pinterest',
      accountId: 'your-pinterest-account-id',
      settings: { boardId: 'your-board-id', title: 'A calm workspace' },
    }],
  },
});

Why PostZen?

PostZen vs. Pinterest API

Pinterest API brings its own authentication, rate limits, media rules, and maintenance. PostZen replaces it with one predictable integration.

PostZen

2.3M+ posts

2,000+ users
  • Simple API key authentication - no OAuth complexity
  • We handle rate limits automatically with smart queuing and retries
  • Upload media directly to us - we host and optimize it for you
  • Zero maintenance - we handle all API changes behind the scenes
  • One integration for 10 social platforms with identical patterns

Pinterest API v5 Direct

  • Register a Pinterest app, build under Trial access where Pins are visible only to you, then pass the Standard access review
  • Run OAuth 2.0 with the boards:read, boards:write, pins:read, and pins:write scopes and refresh 30-day access tokens before they expire
  • List boards and resolve a board ID for every Pin
  • Register a video upload, push the file to Pinterest, poll media status, then create the Pin with a cover frame
  • Build separate integrations per platform

FEATURES

Pinterest API — Everything Included

One complete API for Pinterest formats, controls, and scheduled publishing

Image, Video & Carousel Pins

Publish one image, a two-to-five image carousel, or an MP4 video with a cover frame through one request.

Pinterest Boards API

List boards, create boards, and save a default board per account, or pass a board ID on each Pin.

Titles, Descriptions & Alt Text

Set a 100-character title, a 500-character description, and alt text alongside the media in the same request.

Destination Links

Attach a click-through link so every Pin sends people to the page you want, validated before publishing.

Schedule Past the 30-Day Cap

Pinterest's own scheduler stops at 30 days. PostZen holds Pins server-side and publishes at any date, or fills your queue slots.

Analytics & Cross-Posting

Read impressions, saves, clicks, and follower counts, and publish the same Pin alongside Instagram, Facebook, X, and the other supported platforms.

HOW IT WORKS

Start Posting to Pinterest in Minutes

Three steps to integrate the Pinterest Upload API

  1. 01. Create your account

    Sign up for PostZen and grab your API key from the dashboard.

  2. 02. Connect Pinterest

    Authorize your Pinterest account once. We manage OAuth, permissions, and publishing access for you.

  3. 03. Upload programmatically

    POST to /v1/posts with Pinterest selected and your content or media. Done.

AI AGENTS

Post to Pinterest from an AI agent

PostZen ships a hosted MCP server, so Claude, Cursor, Codex, and any other MCP client can connect Pinterest and publish with the same API your code uses.

Pinterest MCP server

Give your agent a Pinterest MCP server with Standard API access behind it. Connect a business account once, and any MCP client can create image, video, and carousel Pins on the right board, with links and alt text, from the conversation.

Paste this into your agentSet up PostZen from postzen.dev/mcp/pinterest

Endpoint: https://mcp.postzen.dev/mcp. The agent reads the setup block on that page, registers the server, and connects Pinterest.

CODE EXAMPLE

Create a Post on Pinterest via API

One POST request to /v1/post — send a file or a public URL

TypeScript
const response = await fetch("https://api.postzen.dev/v1/posts", {
  method: "POST",
  headers: {
    "Authorization": "Bearer POSTZEN_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    platforms: [{
      platform: "pinterest",
      accountId: "your-pinterest-account-id",
      settings: {
        boardId: "your-board-id",
        title: "Fall color palette guide",
        link: "https://example.com/blog/fall-colors",
        altText: "Twelve autumn color swatches on a linen background"
      }
    }],
    content: "12 warm palettes for autumn brand refreshes",
    mediaItems: [{ url: "https://cdn.example.com/fall-palette.jpg" }],
    scheduledFor: "2026-11-15T19:00:00Z",
    tags: ["design", "pinterest"]
  })
});

const result = await response.json();
console.log("Scheduled successfully:", result.post._id);
View Complete API Documentation ->

PINTEREST API DETAILS

What the Pinterest API makes you handle, and what PostZen does for you

The facts developers ask about before choosing between building on Pinterest API v5 directly and publishing through PostZen.

Trial access vs Standard access

Every new Pinterest app starts on Trial access. Pins created under Trial are visible only to the account that made them, and the app is capped at 1,000 reads and 300 writes per day. Standard access requires a review of your app and its use case. PostZen already holds Standard access, so Pins you publish through us are public from the first call.

Scopes and token refresh

Creating a Pin needs four scopes: boards:read, boards:write, pins:read, and pins:write. Access tokens last 30 days and must be refreshed with a refresh token that also expires. PostZen requests the right scopes during one-click OAuth and refreshes tokens in the background, so connections do not silently die.

Rate limits

Standard access allows 100 writes per minute per user, which is the limit Pin publishing consumes, and 1,000 reads per minute. PostZen queues publishes against these limits and retries a 429 automatically after the reset window Pinterest reports, so a burst of scheduled Pins never fails outright.

Scheduling beyond Pinterest's 30-day limit

Pinterest API v5 has no scheduling endpoint, and the native scheduler in the Pinterest app only reaches 30 days ahead. PostZen stores the Pin and publishes it at the timestamp you set, weeks or months out, or drops it into the account's next open queue slot.

Boards: list, create, default

Every Pin needs a board ID. PostZen exposes endpoints to list an account's boards, create a new board, and save a default board, and lets the user pick a board during the connect flow. Pass settings.boardId on a Pin to override the default.

Media limits PostZen validates for you

One JPEG, PNG, or WebP image up to 32 MB, two to five images for a carousel, or one MP4, MOV, or M4V video up to 150 MB with a cover image URL or keyframe. Titles are capped at 100 characters, descriptions and alt text at 500. PostZen checks all of this before the request reaches Pinterest, so you get a readable validation error instead of a Pinterest 400.

Frequently asked questions

Still have questions?

Does Pinterest have an API?

Yes. Pinterest API v5 is a REST API for creating Pins and boards, reading analytics, and managing ads and catalogs. Creating Pins requires a business account, an approved app, and OAuth tokens with four scopes. PostZen wraps the organic publishing part so you send one request and we handle the rest.

Is the Pinterest API free?

Pinterest charges nothing for API access. The cost is the engineering: app review, OAuth, 30-day token refresh, board lookups, and the multi-step video upload. PostZen's Free plan includes 2 connected accounts and 20 posts; paid plans start at $19 per month.

Do I need a Pinterest developer account or API key?

Not with PostZen. You connect a Pinterest business account through our OAuth flow and authenticate to PostZen with your own API key. There is no Pinterest developer app to register, no Trial-to-Standard access review, and no Pinterest token to store.

Do I need a Pinterest business account?

Yes. Pinterest publishing requires a Pinterest business account, which you connect through our one-click OAuth flow. You can convert a personal account to a free business account in your Pinterest settings, and PostZen refreshes the OAuth token for you so the connection stays live.

How do I auto post to Pinterest?

Send a POST to /v1/posts with the Pinterest account, a board ID, and your image or video, then set publishNow for immediate publishing or scheduledFor for a future time. For hands-off posting, define weekly queue slots and PostZen fills them in order. The same call can post to Instagram, Facebook, X, and the other supported platforms.

Can I schedule Pins in advance?

Yes, and further ahead than Pinterest allows. Pinterest's native scheduler stops at 30 days and the API has no scheduling endpoint at all. Set scheduledFor to any future timestamp and PostZen publishes the Pin at that time, or add it to your queue.

Does PostZen support video Pins and carousels?

Yes. Attach one MP4, MOV, or M4V video up to 150 MB for a video Pin, with a cover image URL or a keyframe time, or two to five images for a carousel Pin. PostZen runs Pinterest's register, upload, and poll steps for you. Animated GIF Pins are not supported yet.

What are Pinterest's image and description limits?

Images are JPEG, PNG, or WebP up to 32 MB each, with 1000 by 1500 pixels and a 2:3 ratio recommended. Titles are limited to 100 characters, and descriptions and alt text to 500 characters each. PostZen validates all of this before publishing and returns a readable error instead of a Pinterest 400.

Can I set the destination link and board for a Pin?

Yes. Pass settings.boardId to choose the board, or save a default board on the account and omit it. Add settings.link for the click-through URL. You can also list and create boards through the API.

Can I post to Pinterest with Python?

Yes. PostZen has an official Python SDK (pip install postzen-sdk) and a Node SDK, and the REST API works from any language with an HTTP client. The Python example on this page schedules a Pin in about twenty lines.

Does PostZen return Pinterest analytics?

Yes. Once an account is connected, PostZen syncs impressions, saves, clicks, likes, comments, and views for each Pin, plus follower counts, through the analytics endpoints. Analytics use the same OAuth connection as publishing.

Learn More

Ready to Ship Your Pinterest Integration?

Join the 2,000+ users who chose PostZen over building around disconnected platform tools. Same reliability, 10x less code.