Platforms
Pinterest API
Post to Pinterest with Late API - Pins, boards, and destination links
Quick Start
Create a Pin on Pinterest:
curl -X POST https://getlate.dev/api/v1/posts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "10 Tips for Better Photography 📸",
"mediaItems": [
{"url": "https://example.com/pin-image.jpg"}
],
"platforms": [{
"platform": "pinterest",
"accountId": "YOUR_ACCOUNT_ID",
"platformSpecificData": {
"title": "10 Tips for Better Photography",
"boardId": "YOUR_BOARD_ID",
"link": "https://myblog.com/photography-tips"
}
}],
"publishNow": true
}'const response = await fetch('https://getlate.dev/api/v1/posts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
content: '10 Tips for Better Photography 📸',
mediaItems: [
{ url: 'https://example.com/pin-image.jpg' }
],
platforms: [{
platform: 'pinterest',
accountId: 'YOUR_ACCOUNT_ID',
platformSpecificData: {
title: '10 Tips for Better Photography',
boardId: 'YOUR_BOARD_ID',
link: 'https://myblog.com/photography-tips'
}
}],
publishNow: true
})
});
const { post } = await response.json();
console.log('Pin created!', post._id);import requests
response = requests.post(
'https://getlate.dev/api/v1/posts',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={
'content': '10 Tips for Better Photography 📸',
'mediaItems': [
{'url': 'https://example.com/pin-image.jpg'}
],
'platforms': [{
'platform': 'pinterest',
'accountId': 'YOUR_ACCOUNT_ID',
'platformSpecificData': {
'title': '10 Tips for Better Photography',
'boardId': 'YOUR_BOARD_ID',
'link': 'https://myblog.com/photography-tips'
}
}],
'publishNow': True
}
)
post = response.json()
print(f"Pin created! {post['_id']}")Overview
Pinterest Pins support either one image OR one video per Pin (not both).
Image Requirements
| Property | Requirement |
|---|---|
| Max Images | 1 per Pin |
| Formats | JPEG, PNG, WebP, GIF |
| Max File Size | 32 MB |
| Recommended | 1000 × 1500 px (2:3) |
| Min Dimensions | 100 × 100 px |
Aspect Ratios
| Ratio | Dimensions | Use Case |
|---|---|---|
| 2:3 | 1000 × 1500 px | Optimal - Standard Pin |
| 1:1 | 1000 × 1000 px | Square Pin |
| 1:2.1 | 1000 × 2100 px | Long Pin (max height) |
Best Practice: Use 2:3 aspect ratio for optimal display in the Pinterest feed.
Video Requirements
| Property | Requirement |
|---|---|
| Max Videos | 1 per Pin |
| Formats | MP4, MOV |
| Max File Size | 2 GB |
| Duration | 4 seconds - 15 minutes |
| Aspect Ratio | 2:3, 1:1, or 9:16 |
| Resolution | 1080p recommended |
| Frame Rate | 25+ fps |
Video Specs
| Property | Minimum | Recommended |
|---|---|---|
| Resolution | 240p | 1080p |
| Bitrate | - | 10 Mbps |
| Audio | - | AAC, 128 kbps |
Video Pin Example
curl -X POST https://getlate.dev/api/v1/posts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Quick recipe tutorial 🍳",
"mediaItems": [
{"url": "https://example.com/recipe.mp4"}
],
"platforms": [{
"platform": "pinterest",
"accountId": "YOUR_ACCOUNT_ID",
"platformSpecificData": {
"title": "5-Minute Breakfast Recipe",
"boardId": "YOUR_BOARD_ID",
"link": "https://myrecipes.com/quick-breakfast"
}
}],
"publishNow": true
}'const response = await fetch('https://getlate.dev/api/v1/posts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
content: 'Quick recipe tutorial 🍳',
mediaItems: [
{ url: 'https://example.com/recipe.mp4' }
],
platforms: [{
platform: 'pinterest',
accountId: 'YOUR_ACCOUNT_ID',
platformSpecificData: {
title: '5-Minute Breakfast Recipe',
boardId: 'YOUR_BOARD_ID',
link: 'https://myrecipes.com/quick-breakfast'
}
}],
publishNow: true
})
});response = requests.post(
'https://getlate.dev/api/v1/posts',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={
'content': 'Quick recipe tutorial 🍳',
'mediaItems': [
{'url': 'https://example.com/recipe.mp4'}
],
'platforms': [{
'platform': 'pinterest',
'accountId': 'YOUR_ACCOUNT_ID',
'platformSpecificData': {
'title': '5-Minute Breakfast Recipe',
'boardId': 'YOUR_BOARD_ID',
'link': 'https://myrecipes.com/quick-breakfast'
}
}],
'publishNow': True
}
)Video Cover Image
Add a custom cover for video Pins:
{
"platformSpecificData": {
"coverImageUrl": "https://example.com/cover.jpg",
"coverImageKeyFrameTime": 5
}
}| Property | Description |
|---|---|
coverImageUrl | Custom cover image URL |
coverImageKeyFrameTime | Auto-extract frame at N seconds |
Pin Title
| Property | Requirement |
|---|---|
| Max Length | 100 characters |
| Default | First line of content |
| Fallback | "Pin" |
{
"platformSpecificData": {
"title": "My Pin Title (max 100 chars)"
}
}Board Selection
Specify which board to pin to:
{
"platformSpecificData": {
"boardId": "board_123456"
}
}If omitted, the first available board is used.
Get Board IDs
Use the Pinterest accounts endpoint to list available boards for a connected account.
Destination Link
Add a clickable link to your Pin:
{
"platformSpecificData": {
"link": "https://example.com/landing-page"
}
}- Must be a valid URL
- Opens when users click the Pin
- Important for driving traffic
GIF Support
Pinterest supports animated GIFs:
- Auto-play in feed
- Max 32 MB
- Treated as image (not video)
- Recommend keeping under 10 MB for fast loading
Common Issues
"Image too small"
Minimum dimensions are 100 × 100 px, but Pinterest recommends at least 600 px wide for good quality.
Pin not showing in feed
- Pinterest may take time to index new Pins
- Ensure board is not secret/archived
- Check if account is in good standing
Video processing failed
- Ensure format is MP4 or MOV
- Check duration (4 sec - 15 min)
- Verify file size (≤2 GB)
- Use H.264 codec
Wrong aspect ratio display
Pinterest crops images to fit. Use 2:3 ratio for best results:
- 1000 × 1500 px
- 600 × 900 px (minimum)
Link not clickable
- Ensure URL is valid and accessible
- Use
https://(nothttp://) - Avoid URL shorteners that may be blocked
Related API Endpoints
- Connect Pinterest Account — OAuth flow
- Create Post — Pin creation and scheduling
- Upload Media — Image and video uploads
- Pinterest Boards — List boards for an account