Pinterest

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:

  1. A Pinterest Business account
  2. Access to Pinterest's Developer Portal
  3. A registered Pinterest API application with approval for the Content Publishing API
  4. 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:

ScopePurpose
pins:readRead pin data and analytics
pins:writeCreate and manage pins
boards:readList available boards
boards:writeCreate and manage boards
user_accounts:readAccess 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

FieldRequiredDescription
board_idYesThe ID of the Pinterest board to pin to
titleNoPin title (max 100 characters). Defaults to first 100 chars of content
linkNoDestination URL when the pin is clicked
alt_textNoAccessibility text for images (max 500 characters)

Supported Features

FeatureSupportedNotes
Single image pinYesPass one image in media
Multi-image pin (carousel)YesPass multiple images in media
Video pinYesPass video URL in media; uploaded and processed async
Pin analyticsYesImpressions, saves, clicks, outbound clicks (90-day window)
Account analyticsYesUser account-level analytics with date range
Comments/repliesNoPinterest API v5 does not expose a comments endpoint
Repost/repinNoNot available via API

Media Requirements

Pins are created through the Pinterest API v5. See the official Create Pin and register media upload references.

Images

RequirementSpecification
FormatsBMP, JPEG, PNG, GIF, WEBP
Maximum size20 MB
Aspect ratio2:3 recommended
DeliveryPublicly accessible HTTPS URL - Pinterest fetches the image directly (no upload step needed)

Video

RequirementSpecification
Formats.mp4, .mov, .m4v
Cover imageA cover image is required for every video pin
DeliveryRegistered 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 tierRate limit basis
TrialLimited per calls/day/app (pins are sandbox-only, visible to the creator)
StandardLimited 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_id is 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