1. Overview
Pinterest publishing uses the Pinterest API v5 against your connected Pinterest account. Every Pin needs a destination board and an image, there is no text-only or link-only post type. SocialAPI also exposes board management endpoints so you can create, rename, or remove boards without leaving the API. Pinterest’s Developer Terms of Service prohibit storing information accessed through the API. Boards and Pins are never persisted: every read hits Pinterest live, on every request, with no cache and no TTL.2. Create a Pin
UsePOST /v1/posts with a target pointing at a Pinterest account. media must contain exactly one image, Pinterest has no text-only Pin type.
Target field
board_id must be a top-level field on the target, not inside platform_data: Pinterest has no default board, so a target with neither board_id nor page_id set returns 400 validation.board_id_required, and setting board_id inside platform_data returns 400 validation.use_board_id.
Platform data fields
Limits
- Exactly one image in
media. Pinterest Pins are image-only through this endpoint. - Title: 100 characters. Description: 800 characters. Alt text: 500 characters. Link: 2,048 characters, and must be a valid
httporhttpsURL.
Scheduling
3. Update and delete a Pin
Update is not supported. Pinterest’sPATCH /pins endpoint is still in beta and not available to every app, so PATCH /v1/posts/:pid returns a not_supported error for Pinterest targets. Pin media is also immutable once created: even with beta access, only title, description, link, and board placement could change. To change the image, delete the Pin and create a new one.
4. List boards
5. Create board
Returns
201 with the created board. There is no default board: every publish target must set board_id explicitly.
6. Update board
name, description, and privacy are pushed to Pinterest. boardId accepts either the internal board handle or the raw Pinterest board id.
Privacy cannot be set to PROTECTED via update. Pinterest’s update schema only accepts PUBLIC or SECRET on PATCH /boards/{id}, unlike create, which also accepts PROTECTED. If a board is already PROTECTED, its privacy cannot be changed at all through this endpoint: recreate the board instead.
7. Delete board
204 on success.
8. Get account summary
9. List pins
limit is optional, defaults to 50, and caps at 50. If Pinterest cannot be reached, the request fails rather than returning a stale or empty list.
10. Required OAuth scopes
Add
boards:read_secret and pins:read_secret if the user’s secret boards and Pins should be accessible. To verify which scopes your connected account has granted, call GET /v1/accounts/:id/limits.