Publish pin
create_pinPublish a pin to Pinterest now, or preflight it with dry_run=true.
Use for a pin that should go out immediately; for a future time use
create_schedule, for many pins use create_pins_batch. Provide either
image_url or asset_id (from upload_asset), not both. Run dry_run first
and reuse resolved.idempotency_key on the real call.
Returns the pin with id and status "queued" (poll get_pin), or with
dry_run the validation result (valid, checks, resolved, headroom).
Fails fast with board_not_found / board_not_owned / board_access_denied
for an unpublishable board, quota_exceeded when the monthly quota is
spent, and validation_error for bad fields.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Pin title, at most 100 characters. | |
| dry_run | No | true runs every API check (account, board, media, quota, rate headroom) and returns the resolved payload without publishing anything. | |
| alt_text | No | Accessibility text for the image, <= 500 characters. | |
| asset_id | No | UUID of an uploaded PinBridge asset, from upload_asset. | |
| board_id | Yes | Pinterest board ID (numeric string), from list_boards. | |
| link_url | No | Destination URL opened when the pin is clicked. | |
| image_url | No | Public URL of the image or video; Pinterest must be able to fetch it. | |
| account_id | Yes | UUID of a connected Pinterest account, from list_pinterest_accounts. | |
| description | No | Pin description, at most 800 characters. | |
| related_terms | No | Keywords that improve discoverability. | |
| dominant_color | No | Hex color of the image, e.g. "#FF5733". | |
| cover_image_url | No | Public cover image URL; video pins only. | |
| idempotency_key | No | Unique key so a retry never duplicates the pin. Generated when omitted, in which case a repeat call publishes again; reuse the key on retries. | |
| cover_image_asset_id | No | Uploaded image asset UUID used as the video cover. |