501 for a Pinterest account rather than an empty list.
At a glance
Capabilities
Comments, DMs, reviews, and mentions aren’t planned as “coming soon”: Pinterest simply doesn’t expose a public API for any of them, so SocialAPI has nothing to connect to.
Connecting
Pinterest uses standard OAuth 2.0. Start the connection through the normal connect flow withplatform=pinterest. The authorization screen is hosted at https://www.pinterest.com/oauth/, and SocialAPI completes the code exchange on the callback.
Token lifetime
Access tokens expire after 30 days and refresh tokens after 60 days, though a refresh token’s life is extended every time it is used. SocialAPI refreshes the access token in the background before it expires, so an account connected once keeps working without a reconnect prompt. A dead credential is reported by Pinterest with body code2 (“Authentication failed”), and only that code marks an account as needing reconnection. Any other 401 is treated as transient and retried, because a proxy-issued or temporary 401 should not force your user through a manual reconnect.
Boards
Every Pin needs a board. There is no default board and no fallback: each Pinterest publish target carries aboard_id, and a draft without one is rejected before it reaches Pinterest.
POST, PATCH, and DELETE on the same path create, rename, and delete boards.
Boards are never stored
Pinterest’s Developer Terms of Service section 4.1.i prohibits storing information accessed through the API. SocialAPI does not store boards or Pins: every read goes live to Pinterest on every request, with no cache and no TTL. The board list you get back is the account’s real board list, including a board created in the Pinterest app moments earlier. The practical consequence is that board reads cost a Pinterest API call. If Pinterest is unavailable, the call fails rather than degrading to stale stored rows.Board privacy
POST /boards accepts PUBLIC, PROTECTED, or SECRET. PATCH /boards/{id} accepts only PUBLIC and SECRET, so a board created as PROTECTED cannot change its privacy afterwards.
Publishing
A Pin is created through the samePOST /v1/posts call as every other platform. The post title becomes the Pin title and the text becomes its description.
board_id. Supplying it inside platform_data is rejected with validation.use_board_id.
See Pinterest publishing for the full request and response shapes.