Register a Pinterest app and win standard API access - or skip the developer portal entirely with Managed Keys.
Pinterest is covered by Managed Keys: your subscription includes Outstand's own Pinterest app, so you can connect Pinterest accounts and publish pins through Outstand's unified social media API without registering anything yourself. The Bring Your Own Key (BYOK) steps below are optional - follow them only if you want your own Pinterest app credentials on the connection screen.
Managed Keys are included with your subscription and cover Pinterest. We handle the OAuth app setup for you, so you can skip the developer portal and the trial-access rate limits entirely. Follow the steps below only if you want full white-labelling with your own Pinterest app credentials (BYOK). Contact support@outstand.so if you have questions about your Managed Keys setup.
Prerequisites
Before configuring Pinterest integration, you need:
- A Pinterest Business account
- Access to Pinterest's Developer Portal
- A registered Pinterest API application with approval for the Content Publishing API
- Your application's App ID (client key) and App Secret (client secret)
Required Scopes
When setting up your Pinterest application, ensure the following OAuth scopes are enabled:
| Scope | Purpose |
|---|---|
pins:read | Read pin data and analytics |
pins:write | Create and manage pins |
boards:read | List available boards |
boards:write | Create and manage boards |
user_accounts:read | Access user profile information |
Setup
Step 1: Register Your Pinterest API Credentials
curl -X POST https://api.outstand.so/v1/social-networks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"network": "pinterest",
"client_key": "YOUR_PINTEREST_APP_ID",
"client_secret": "YOUR_PINTEREST_APP_SECRET"
}'Step 2: Connect a Pinterest Account
Direct your users to the OAuth initiation endpoint:
GET https://app.outstand.so/api/socials/pinterest/{orgId}Optional query parameters:
redirect_uri- Custom redirect URI after OAuth completes (for white-label flows)tenant_id- Tenant identifier for multi-tenant applications
Step 3: Discover Available Boards
After connecting an account, list the user's boards to find available board_id values:
curl https://api.outstand.so/v1/pinterest/accounts/{accountId}/boards \
-H "Authorization: Bearer YOUR_API_KEY"Response:
{
"success": true,
"data": [
{
"id": "123456789",
"name": "Summer Collection",
"description": "Our summer products",
"pin_count": 42,
"privacy": "PUBLIC"
}
]
}Creating Pinterest Posts
Pinterest requires a board_id for every pin. Pass it in the pinterest configuration when creating a post:
curl -X POST https://api.outstand.so/v1/posts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Check out our latest summer collection!",
"accounts": ["YOUR_PINTEREST_ACCOUNT_ID"],
"containers": [
{
"content": "Beautiful summer dresses now available",
"media": [
{
"url": "https://example.com/dress.jpg",
"filename": "dress.jpg"
}
]
}
],
"pinterest": {
"board_id": "123456789",
"title": "Summer Dresses 2026",
"link": "https://example.com/summer-collection",
"alt_text": "A model wearing a red summer dress"
}
}'Pinterest Configuration Fields
| Field | Required | Description |
|---|---|---|
board_id | Yes | The ID of the Pinterest board to pin to |
title | No | Pin title (max 100 characters). Defaults to first 100 chars of content |
link | No | Destination URL when the pin is clicked |
alt_text | No | Accessibility text for images (max 500 characters) |
Supported Features
| Feature | Supported | Notes |
|---|---|---|
| Single image pin | Yes | Pass one image in media |
| Multi-image pin (carousel) | Yes | Pass multiple images in media |
| Video pin | Yes | Pass video URL in media; uploaded and processed async |
| Pin analytics | Yes | Impressions, saves, clicks, outbound clicks (90-day window) |
| Account analytics | Yes | User account-level analytics with date range |
| Comments/replies | No | Pinterest API v5 does not expose a comments endpoint |
| Repost/repin | No | Not available via API |
Media Requirements
Pins are created through the Pinterest API v5. See the official Create Pin and register media upload references.
Images
| Requirement | Specification |
|---|---|
| Formats | BMP, JPEG, PNG, GIF, WEBP |
| Maximum size | 20 MB |
| Aspect ratio | 2:3 recommended |
| Delivery | Publicly accessible HTTPS URL - Pinterest fetches the image directly (no upload step needed) |
Video
| Requirement | Specification |
|---|---|
| Formats | .mp4, .mov, .m4v |
| Cover image | A cover image is required for every video pin |
| Delivery | Registered and uploaded via Pinterest's async media pipeline (POST /v5/media), then processed before the pin is created |
General
- At least one image or video is required for every Pinterest pin. Text-only pins are not supported.
- Pin titles are limited to 100 characters and descriptions to 800 characters (see Limitations below).
Publishing Rate Limits
Pinterest rate limits depend on your app's access tier, and the exact allowance is reported in the response headers x-ratelimit-limit, x-ratelimit-remaining, and x-ratelimit-reset.
| Access tier | Rate limit basis |
|---|---|
| Trial | Limited per calls/day/app (pins are sandbox-only, visible to the creator) |
| Standard | Limited per calls/minute/user/app (higher, more granular) |
- Each endpoint belongs to a rate-limit category. Exceeding the limit returns HTTP 429.
- To publish real (non-sandbox) pins, your app must be upgraded to the Standard access tier.
See the official rate limits and access tiers documentation.
Token Management
Pinterest access tokens expire after 30 days. Outstand automatically refreshes tokens using the refresh token (valid for 1 year). The token refresher worker handles this automatically.
Limitations
- Every pin must be assigned to a board (
board_idis required) - Pinterest does not have a comments/replies API
- Reposting/repinning is not available via the API
- Pin descriptions are limited to 800 characters
- Pin titles are limited to 100 characters