Pinterest publishing API
LiveCreate a Pin on a board. Connecting Pinterest adds one destination per board rather than one per account.
Connect an account and publish today.
What this channel accepts
pinterest:board:<board-id>Publish to Pinterest
One request shape, the same across every channel. Register media first with POST /v1/media, then pass the handles it returns.
POST /v1/posts returns 202 with a post id; the publish itself is asynchronous.
const res = await fetch("https://creasionapp.com/v1/posts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CREASION_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"accounts": [
"pinterest:board:1087760184940031042"
],
"content": "Studio setup, end of summer.",
"media": [
"media_01JQ8ZR4X7"
]
}),
});
// 202 Accepted: the post is queued. Poll GET /v1/posts/{id}
// or wait for the post.completed webhook.
const { id } = await res.json();Before you integrate
A Pin belongs to a board
There is no publishing to a Pinterest account in general. Each connected board is its own destination, so the board is chosen when you pick the account rather than hidden in an option.
An image is required
Pinterest has no text-only Pin. A caption without media is refused before the request is sent.
Knowing what happened
Publishing is asynchronous, so the create call returns before the post exists on Pinterest. Poll GET /v1/posts/{id} or register a webhook and receive post.completed instead. When a post targets several accounts, each destination reports its own result, so a partial success names exactly which one failed and why.