# PostEverywhere Pinterest API Guide > Pinterest post API: create and schedule Pins via REST with titles, descriptions, board selection, and destination links. **Source:** https://posteverywhere.ai/docs/platforms/pinterest **Section:** Platforms **API reference:** https://posteverywhere.ai/docs/api/reference --- Create and schedule Pins to Pinterest boards. PostEverywhere handles pin creation, [image uploads](/docs/api/init-media-upload), and board targeting so you can publish visual content alongside your other social platforms in a single API call. For a general overview of all supported platforms, see the [Introduction](/docs). ## Connect your Pinterest account to PostEverywhere Connect Pinterest from the dashboard with OAuth, or headlessly from code: mint a [connect link](/docs/api/create-connect-link) and hand it to the account owner - no dashboard session needed. Both flows are covered in [Connecting Accounts](/docs/connecting-accounts). ## What you can post to Pinterest | Content Type | Media Required | Description | |-------------|---------------|-------------| | **Image Pin** | Image | Standard Pin with an image, title, description, and optional destination link. | Pinterest is an image-first platform. Every Pin requires at least one image attachment. ## Pinterest-specific options in the API Use the `platform_content.pinterest` object to customise your Pin: ```json { "platform_content": { "pinterest": { "content": "Pin description with keywords", "settings": { "title": "Pin Title", "link": "https://example.com/page", "boardId": "board-id-from-your-account" } } } } ``` ### Settings Reference | Setting | Type | Default | Description | |---------|------|---------|-------------| | `content` | string | N/A | Pin description. Used for search discovery on Pinterest. Include relevant keywords naturally. | | `settings.title` | string | N/A | Pin title displayed above the image. Max 100 characters. | | `settings.link` | string | N/A | Destination URL. When users click the Pin, they are directed to this URL. | | `settings.boardId` | string | N/A | The Pinterest board to pin to. If omitted, the Pin goes to the board saved as this account's default in PostEverywhere; if none is set yet, PostEverywhere creates a public board named "PostEverywhere" and uses it. | | `settings.altText` | string | N/A | Accessibility description for the pin image. Max 500 characters. Improves screen-reader access and is used by Pinterest for visual search indexing. | ## Publish to Pinterest: a working request ### Schedule a Pin with a Destination Link ```bash curl -X POST https://app.posteverywhere.ai/api/v1/posts \ -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "Default text for other platforms", "account_ids": [2300], "media_ids": ["f2a3b4c5-d6e7-8901-2345-f01234567890"], "scheduled_for": "2026-04-16T09:00:00Z", "timezone": "America/New_York", "platform_content": { "pinterest": { "content": "10 social media scheduling tips for small businesses. Save this for later and visit our blog for the full guide.", "settings": { "title": "10 Social Media Scheduling Tips for 2026", "link": "https://example.com/blog/scheduling-tips" } } } }' ``` ### Schedule a Pin to a Specific Board ```bash curl -X POST https://app.posteverywhere.ai/api/v1/posts \ -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "New recipe posted!", "account_ids": [2300], "media_ids": ["a3b4c5d6-e7f8-9012-3456-012345678901"], "scheduled_for": "2026-04-16T11:00:00Z", "timezone": "America/Los_Angeles", "platform_content": { "pinterest": { "content": "Easy 30-minute weeknight dinner recipe. Creamy garlic pasta with roasted vegetables. Perfect for busy families. Full recipe on the blog.", "settings": { "title": "30-Minute Creamy Garlic Pasta", "link": "https://example.com/recipes/garlic-pasta", "boardId": "your-recipes-board-id" } } } }' ``` ### Cross-Post to Pinterest and Instagram ```bash curl -X POST https://app.posteverywhere.ai/api/v1/posts \ -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "New product just dropped!", "account_ids": [2280, 2300], "media_ids": ["b4c5d6e7-f8a9-0123-4567-123456789012"], "scheduled_for": "2026-04-17T10:00:00Z", "timezone": "UTC", "platform_content": { "instagram": { "content": "NEW: Our spring collection just dropped! Link in bio ๐Ÿ›\n\n#newcollection #spring2026 #fashion", "settings": { "firstComment": "#style #outfitinspo #shopnow #newarrivals" } }, "pinterest": { "content": "Spring 2026 collection now available. Shop the latest styles with free shipping over $50.", "settings": { "title": "Spring 2026 Collection", "link": "https://example.com/shop/spring-2026" } } } }' ``` ### Fix the Board or Link on an Already-Scheduled Pin Scheduled a Pin without a board or destination link? You do not need to delete and recreate it. Send a `PATCH` with only the settings you want to change. They merge into the post before it publishes. ```bash curl -X PATCH https://app.posteverywhere.ai/api/v1/posts/{post_id} \ -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "platform_content": { "pinterest": { "settings": { "boardId": "your-board-id", "link": "https://example.com/page" } } } }' ``` ## Pinterest limits: characters, media and video | Requirement | Limit | |-------------|-------| | Pin description length | 500 characters | | Pin title length | 100 characters | | Image formats | JPEG, PNG, WebP | | Image max file size | 20 MB | | Recommended image ratio | 2:3 (1000x1500 px) | | Minimum image width | 600 px | | Maximum image ratio | 1:2.1 (very tall images may be cropped) | | Link URL | Must be a valid HTTPS URL | ## Getting better results on Pinterest - **Use 2:3 vertical images (1000x1500 px).** Pinterest is a vertical-scrolling platform. Taller images take up more space in the feed, which means more visibility. The ideal ratio is 2:3; wide or square images get less engagement. - **Write keyword-rich descriptions.** Pinterest functions as a visual search engine. Include relevant keywords naturally in your Pin description (not hashtags, since Pinterest uses natural language search, not hashtag discovery). Think about what someone would search for to find your content. - **Always include a destination link.** Pinterest is one of the best platforms for driving website traffic. Every Pin should link to a relevant page: a blog post, product page, or landing page. Pins without links are missed opportunities for conversion. ## Common questions about posting to Pinterest ### How do I pin to a specific Pinterest board? Set `settings.boardId` in the `platform_content.pinterest` object when [creating a post](/docs/api/create-post). If you omit `boardId`, the Pin goes to the account's saved default board (PostEverywhere creates a "PostEverywhere" board the first time if none exists). There is no API endpoint for listing boards yet: copy the board ID from the dashboard composer or from the board's URL on Pinterest. Already scheduled the Pin? Send the same `platform_content` object in a `PATCH` to [update the post](/docs/api/update-post), see the example above. ### Does Pinterest support video Pins via the API? Yes. Upload a video with the [Upload Media endpoint](/docs/api/init-media-upload) and attach it to your post. Image Pins work the same way (JPEG, PNG, or WebP, up to 20 MB). For best results, use vertical 2:3 media (1000x1500 px). ### Should I use hashtags in Pinterest descriptions? No. Unlike Instagram or TikTok, Pinterest uses natural language search rather than hashtag discovery. Write keyword-rich descriptions that read naturally. Think about what someone would type into Pinterest search to find your content, and include those phrases in your description. ### Can I cross-post the same image to Pinterest and Instagram in one API call? Yes. Include both account IDs in the `account_ids` array and use `platform_content` to customize the caption for each platform. See the cross-posting example above for a complete request that posts to both [Instagram](/docs/platforms/instagram) and Pinterest simultaneously. ### Can I edit a Pinterest pin after it's published? Not via the PostEverywhere API. Pinterest's v5 API allows editing pin titles, descriptions, board placement, and destination links, but we don't propagate edits to already-published pins. `PATCH /v1/posts/:id` only works while a post is in `scheduled` or `draft` status: once Pinterest has accepted the pin, the post becomes `published` and is read-only from our side. To change a live pin, edit it directly on Pinterest, or delete and recreate the pin from PostEverywhere. ### How do I set alt text on a Pinterest pin? Set `settings.altText` inside `platform_content.pinterest`. Pinterest uses alt text both for accessibility (screen readers) and for its visual search index, so descriptive alt text can help discovery. Pinterest allows up to 500 characters; PostEverywhere passes the value through unchanged, so longer alt text is rejected by Pinterest at publish time. Alt text is separate from `content` (the pin description) and `settings.title`: all three appear in different places on the pin. ### Does Pinterest auto-extract a URL from my pin description? No. Unlike Facebook and LinkedIn (which automatically build a link card from URLs in the post body), Pinterest does **not** auto-extract a destination URL from your description. If you want the pin to link somewhere when clicked, you must set `settings.link` explicitly. Without it, clicking the pin opens Pinterest's internal pin-detail view rather than redirecting to your site. ## Other platforms you can publish to - **[Instagram](/docs/platforms/instagram)** -- visual-first platform ideal for cross-posting image content - **[Facebook](/docs/platforms/facebook)** -- image and link sharing for broader social reach - **[LinkedIn](/docs/platforms/linkedin)** -- PDF carousels and image posts for professional audiences ## Related Pinterest and API reference pages - [API Reference -- Create Post](/docs/api/create-post) - [Upload Media](/docs/api/init-media-upload) - [Quick Start Guide](/docs/quick-start) - [Pinterest Scheduler on PostEverywhere](https://posteverywhere.ai/social-media-scheduler) **Related:** [Pinterest media requirements](/docs/media-requirements) ยท [testing pins safely](/docs/testing) ยท [scheduling Pinterest pins with an API](/blog/schedule-pinterest-pins-api) ยท [the PostEverywhere API overview](/social-media-api)