Pinterest API
Use the Crosspostify API to create image and video Pins on Pinterest — with full title, description, and board targeting support.
Pinterest is a visual discovery platform where content lives as Pins organized into Boards. The Crosspostify Pinterest API integration lets you programmatically create image and video Pins to any board on your account — with full title, description, and board targeting.
Pinterest is unique among Crosspostify-supported platforms in that every Pin must be assigned to a specific board. Use the GET /pinterest-boards/{accountId} endpoint to fetch your boards and their IDs before creating Pins.
This page covers everything specific to Pinterest when using the Crosspostify API. For general authentication, rate limits, and error handling, see the full API Reference.
Pinterest-Specific Parameters
Pinterest has one exclusive parameter — boardId — which is required for every Pin. This is the only platform on Crosspostify that requires content to be assigned to a specific destination before posting.
accountId✓ AppliesRequired. Your Pinterest account ID from /social-accounts.title✓ AppliesThe Pin title. Shown above the description on the Pin detail page. Max 100 characters.caption✓ AppliesThe Pin description. Helps with Pinterest search and SEO. Max 500 characters.boardId✓ AppliesPinterest exclusive. Required. The board to save this Pin to. Fetch board IDs from GET /pinterest-boards/{accountId}.is_aigc✗ IgnoredTikTok only — ignored for Pinterest.facebookFirstComment✗ IgnoredFacebook only — ignored for Pinterest.textFormatPresetId✗ IgnoredFacebook only — ignored for Pinterest.privacy✗ IgnoredYouTube only — Pinterest pins inherit board privacy settings.categoryId✗ IgnoredYouTube only — ignored for Pinterest.tags✗ IgnoredYouTube only — use keywords in title and caption instead.Unlike other platforms where posts go to a general feed, every Pinterest Pin must be saved to a specific board. Always fetch your board IDs first using GET /pinterest-boards/{accountId} and store them for reuse.
Supported Endpoints
Pinterest supports image and video Pins, plus a dedicated endpoint for fetching your boards:
Pinterest does not support text-only posts or multi-image carousels via the API. Every Pin requires a media attachment — either an image or a video.
/post/imageImage PinCreate an image Pin on a Pinterest board. Image Pins are the core Pinterest format — vertical images (2:3 ratio) perform best in the Pinterest feed.
Image Pin Notes
- Vertical images (2:3 ratio, 1000×1500px) take up more feed space and get more clicks
titleis shown prominently on the Pin detail page — make it keyword-richcaptionmaps to the Pin description — include relevant keywords for Pinterest SEOboardIdis required — fetch your board IDs fromGET /pinterest-boards/{accountId}- Upload your image first via
POST /mediaand use the returnedmediaId - All datetime values must be in UTC timezone (ISO 8601 format with
Zsuffix)
Request Body
mediaIdstringrequiredThe ID of the uploaded image file. Obtain this from POST /media.
scheduledDatestringoptionalSchedule the Pin for a future time (ISO 8601 with 'Z' suffix). Omit to post immediately.
postsarrayrequiredArray of post objects. Include one object per Pinterest account.
posts[].accountIdstringrequiredThe Pinterest account ID. Retrieve from GET /social-accounts.
posts[].boardIdstringrequiredThe board to save this Pin to. Retrieve board IDs from GET /pinterest-boards/{accountId}.
posts[].titlestringoptionalThe Pin title. Shown on the Pin detail page. Keyword-rich titles improve Pinterest SEO. Max 100 characters.
posts[].captionstringoptionalThe Pin description. Supports plain text and keywords. Max 500 characters.
Response
Code Example
curl -X POST "https://v1.api.crosspostify.com/post/image" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"mediaId": "img_12345",
"scheduledDate": "2025-06-01T14:00:00Z",
"posts": [
{
"accountId": "acc_pinterest_789",
"title": "10 Minimalist Living Room Ideas for 2025",
"caption": "Transform your living space with these clean, modern design ideas. Perfect for small apartments and open-plan homes.",
"boardId": "board_living_room_456"
}
]
}'/post/videoVideo PinCreate a video Pin on a Pinterest board. Video Pins autoplay silently in the feed and are excellent for tutorials, recipes, and product demos.
Video Pin Notes
- Video Pins autoplay silently in the feed — design for no-sound viewing
- Vertical video (2:3 or 9:16) takes up more feed space and performs better
boardIdis required — same as image Pins- Pinterest generates a thumbnail from the first frame — start with a strong visual
- Upload your video first via
POST /mediaand use the returnedmediaId - All datetime values must be in UTC timezone (ISO 8601 format with
Zsuffix)
Request Body
mediaIdstringrequiredThe ID of the uploaded video file. Obtain this from POST /media.
scheduledDatestringoptionalSchedule the Pin for a future time (ISO 8601 with 'Z' suffix). Omit to post immediately.
postsarrayrequiredArray of post objects. Include one object per Pinterest account.
posts[].accountIdstringrequiredThe Pinterest account ID. Retrieve from GET /social-accounts.
posts[].boardIdstringrequiredThe board to save this Pin to. Retrieve board IDs from GET /pinterest-boards/{accountId}.
posts[].titlestringoptionalThe Pin title. Shown on the Pin detail page. Max 100 characters.
posts[].captionstringoptionalThe Pin description. Supports plain text and keywords. Max 500 characters.
Response
Code Example
curl -X POST "https://v1.api.crosspostify.com/post/video" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"mediaId": "vid_12345",
"scheduledDate": "2025-06-01T14:00:00Z",
"posts": [
{
"accountId": "acc_pinterest_789",
"title": "Easy 15-Minute Pasta Recipe",
"caption": "This creamy garlic pasta comes together in just 15 minutes with pantry staples. Save this Pin for your next weeknight dinner!",
"boardId": "board_recipes_123"
}
]
}'/pinterest-boards/{accountId}Fetch all boards for a connected Pinterest account. Use the returned boardId values when creating Pins. This is a Pinterest-exclusive endpoint not available for other platforms.
Fetching Boards
- Replace
{accountId}in the URL with the Pinterest account ID fromGET /social-accounts - Returns all boards including secret boards visible to the authenticated user
- Cache board IDs on your end — they don't change unless a board is deleted or renamed
- Board IDs are stable — safe to store and reuse across multiple Pin creation requests
Path Parameters
accountIdstringrequiredThe Pinterest account ID. Retrieve from GET /social-accounts.
Response
Code Example
curl -X GET "https://v1.api.crosspostify.com/pinterest-boards/acc_pinterest_789" \
-H "X-API-Key: your_api_key_here"Boards
Pinterest Boards are the organizational unit of Pinterest. Every Pin must belong to a board. Boards can be public or secret, and are managed directly in Pinterest — not via the Crosspostify API.
Public Boards
- Visible to all Pinterest users
- Pins appear in Pinterest search and recommendations
- Best for content you want to be discovered
- Returned in GET /pinterest-boards with isSecret: false
Secret Boards
- Only visible to you and invited collaborators
- Pins do not appear in search or recommendations
- Useful for drafts, staging, or private collections
- Returned in GET /pinterest-boards with isSecret: true
You can include multiple entries in the posts array — each with a different boardId — to save the same Pin to multiple boards simultaneously in a single API call.
Content Guidelines
Pinterest is a visual search engine as much as a social platform. Optimizing your Pins for search and visual appeal is key to long-term discoverability.
Image Pin Requirements
- Format: JPG or PNG
- Recommended ratio: 2:3 (1000×1500px)
- Square (1:1) and 4:5 also supported
- Max file size: 20MB
- Min width: 200px
- Vertical images get more feed real estate
Video Pin Requirements
- Format: MP4 recommended
- Recommended ratio: 2:3 or 9:16 (vertical)
- Square (1:1) also supported
- Max duration: 15 minutes
- Min duration: 4 seconds
- Videos autoplay silently — design for mute
Pinterest SEO Tips
- Title: max 100 chars — lead with keywords
- Description: max 500 chars — use natural language
- Pinterest is a search engine — keywords matter
- Pins have a long shelf life (months to years)
- Board name and description also affect SEO
- Consistent pinning beats sporadic bulk posting
Scheduling
- Minimum lead time: ~10 minutes ahead
- All times must be UTC (ISO 8601 + Z)
- Omit scheduledDate to post immediately
- Best times: evenings and weekends
- Pinterest content resurfaces over time — evergreen content wins