PinBridge integration
PinBridge is a hosted Pinterest publishing API: it publishes pins through Pinterest's official API on Pinterest accounts the user connected through Pinterest's own OAuth consent, with queueing, automatic retries and status tracking. An agent can publish, validate, schedule, edit, retry and delete pins (one at a time, in batches or through JSON and CSV imports), upload image and video assets, list, create, edit and delete boards, read account and pin analytics, a publishing summary, related search terms, rate headroom, plan quota and the activity log, and manage webhooks for pin.published and pin.failed. Pinterest's developer guidelines require the user to choose each pin that is published, republished or rescheduled, and to knowingly approve every change made on their Pinterest account (editing or deleting pins and boards): one approval for a batch of AI-made pins does not count. Each successful new pin counts against the plan's monthly pin quota (Playground, the free plan: 50 pins and one account); uploads, imports and batch publishing need a paid plan. Connecting a Pinterest account is done in the PinBridge dashboard; sign-up and login, API keys, projects and sandbox switching, team members and invitations, email preferences, the raw asset file and the AI-assistant (MCP) usage routes are not exposed. Authentication is a PinBridge project API key (dashboard, API keys page) sent in the X-API-Key header; a key can be limited to read, write or destructive scopes and to some Pinterest accounts.
Say what should happen.
The workflow builds itself.
What you can do with PinBridge
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Each badge shows the default agent permission of an endpoint (allowed: an agent calls it without asking; ask first: you are asked before an agent calls it, when the agent or chat asks permission for sensitive actions; never: no agent may call it), which every user can change endpoint by endpoint in their credential settings.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Schedule, 11 operations
bulk_cancel_schedulesBulk cancel schedulesPOSTAgents: ask firstCancels up to 500 pending schedules in one call so their pins do not publish. Reports each id as succeeded, skipped (ineligible_status: not scheduled, queued or deferred) or failed (not_found).bulk_delete_schedulesBulk delete schedulesPOSTAgents: ask firstDeletes up to 500 finished schedules (done, failed or canceled) in one call. Reports each id as succeeded, skipped (ineligible_status: still pending, cancel it first) or failed (not_found).bulk_retry_schedulesBulk retry schedulesPOSTAgents: ask firstRe-runs up to 500 failed schedules so their pins can publish on Pinterest; send only schedules the user reviewed one by one (Pinterest's rule). Reports each id as succeeded, skipped (ineligible_status: not failed) or failed (not_found).cancel_scheduleCancel schedulePOSTAgents: ask firstCancels a pending scheduled pin so it does not publish, and returns the schedule (status canceled). A schedule whose status does not allow it answers 400.create_scheduleCreate schedulePOSTAgents: ask firstSchedules a real pin to publish on Pinterest at run_at and returns the schedule (status scheduled); the board is checked now. Schedule only a pin the user chose (Pinterest's rule). Needs image_url or asset_id.delete_scheduleDelete scheduleDELETEAgents: ask firstDeletes a schedule that is done, failed or canceled. A pending one answers 400: cancel it first with cancel_schedule.get_scheduleGet scheduleGETAgents: ask firstReturns one schedule: run_at (UTC), status (scheduled, queued, running, done, deferred, failed, canceled), the pin payload, last_error, warnings, and pin_id once the pin exists (follow it with get_pin).list_schedulesList schedulesGETAgents: ask firstLists scheduled pins, latest run_at first by default (run_at_asc puts the next run first), filtered by account, board, status, run-time window or text. Page with limit (1 to 200, default 50) and offset.retry_scheduleRetry schedulePOSTAgents: ask firstRe-runs a failed schedule (and its linked pin, if not deleted) once the user confirms that pin, so it can publish on Pinterest, and returns the schedule. A schedule that is not failed answers 400.update_scheduleUpdate schedulePATCHAgents: ask firstEdits a schedule still in scheduled status (time, board, title, description, alt text, link, media or video cover) with the user's approval of the change. Fields left out are unchanged; creation checks apply. Started ones answer 409.validate_scheduleValidate schedulePOSTAgents: ask firstDry-runs create_schedule: the same checks as validate_pin plus run_at, returning each check and the payload that would be published. Nothing is stored.
Pin, 10 operations
bulk_delete_pinsBulk delete pinsPOSTAgents: ask firstDeletes up to 500 pins in PinBridge in one call (soft delete; hard delete in a sandbox), reporting each id as succeeded or failed (not_found). To remove a live pin from Pinterest, use delete_pin with delete_from_pinterest.bulk_retry_pinsBulk retry pinsPOSTAgents: ask firstRe-queues up to 500 failed pins for publishing on Pinterest in one call; send only pins the user reviewed one by one (Pinterest's rule). Reports each id as succeeded, skipped (ineligible_status: not failed) or failed (not_found).delete_pinDelete pinDELETEAgents: ask firstDeletes a pin's PinBridge record; with delete_from_pinterest=true it also deletes the live pin on Pinterest (irreversible) and answers removed_from_pinterest. Without it the pin stays live on Pinterest.get_pinGet pinGETAgents: ask firstReturns one pin: status (queued, publishing, published, deferred, failed), title, description, link, media, board, the Pinterest pin id and published_at once live, error code and message on failure.list_pinsList pinsGETAgents: ask firstLists pins in the project, newest first by default, filtered by account, board, status, error code, removal from Pinterest, text search or creation dates. Page with limit (1 to 200, default 50) and offset.publish_pinPublish pinPOSTAgents: ask firstPublishes a real pin on Pinterest: it is queued and the call returns at once (status queued); read get_pin for the outcome. Publish only a pin the user chose (Pinterest's rule). Needs image_url or asset_id.publish_pins_batchPublish pins batchPOSTAgents: ask firstPublishes several real pins on Pinterest in one call (up to 100), reporting created, existing (idempotency key already used) or failed per entry. Only pins the user chose one by one. Needs the bulk publishing plan feature.retry_pinRetry pinPOSTAgents: ask firstRe-queues a failed pin for publishing on Pinterest once the user confirms it, optionally on another board or account (preflighted like a new pin). Only failed pins can be retried (otherwise 409). Clears its error fields.update_pinUpdate pinPATCHAgents: ask firstEdits a pin that has not published (queued, deferred or failed): title, description, link, alt text or board; it then publishes with the new values, which the user must approve. A published pin cannot be edited (409).validate_pinValidate pinPOSTAgents: ask firstDry-runs publish_pin: checks account, media, cover image, board access, idempotency key, billing, quota and Pinterest rate headroom, and returns each check and the exact payload that would be published. Nothing is queued.
Asset, 6 operations
bulk_delete_assetsBulk delete assetsDELETEAgents: ask firstDeletes several uploaded assets. An asset still used by a pin or a pending schedule is not deleted but listed under requires_confirmation, unless confirm is true, which deletes it anyway (its unpublished pins then fail).delete_assetDelete assetDELETEAgents: ask firstDeletes one uploaded asset. One still used by a pin or a pending schedule is kept and answered requires_confirmation=true, unless confirm=true, which deletes it anyway so an unpublished pin or schedule using it fails.get_assetGet assetGETAgents: ask firstReturns one uploaded asset's metadata: type, file name, content type, size, how many pins and pending schedules use it, and its public_url.list_assetsList assetsGETAgents: ask firstLists the image and video assets uploaded to PinBridge, newest first by default, with filters (type, in use, file name, upload dates), plus storage used and the quota. total counts every match, ignoring limit and offset.upload_image_assetUpload image assetPOSTAgents: ask firstUploads an image file (GIF, JPEG, PNG or WebP) to PinBridge and returns the asset; pass its id as asset_id to publish_pin or create_schedule. Paid plans only (the free plan answers 403).upload_video_assetUpload video assetPOSTAgents: ask firstUploads a video file (MP4 or QuickTime .mov) to PinBridge and returns the asset; a video pin is published only from such an asset_id. Paid plans only (the free plan answers 403).
Webhook, 5 operations
create_webhookCreate webhookPOSTAgents: ask firstRegisters a webhook: PinBridge POSTs pin.published and pin.failed events to url, signed with the secret you choose (HMAC-SHA256 hex of the raw body in X-PinBridge-Signature). The secret is never returned.delete_webhookDelete webhookDELETEAgents: ask firstDeletes a webhook: PinBridge stops sending events to its url.get_webhookGet webhookGETAgents: ask firstReturns one webhook: url, subscribed events, enabled flag and dates. The signing secret is never returned.list_webhooksList webhooksGETAgents: ask firstLists the project's webhooks: target url, subscribed events (pin.published, pin.failed) and whether each is enabled. The signing secret is never returned.update_webhookUpdate webhookPATCHAgents: ask firstChanges a webhook's url, events, enabled flag or signing secret; fields left out are unchanged. The secret is never returned.
Board, 4 operations
create_boardCreate boardPOSTAgents: ask firstCreates a board on a connected Pinterest account and returns it. privacy takes values such as PUBLIC, PROTECTED or SECRET; SECRET needs the boards:write_secret scope (older connections answer 409 scope_missing).delete_boardDelete boardDELETEAgents: ask firstDeletes a board on Pinterest with every pin on it, irreversibly: only on the user's explicit request. PinBridge keeps its pin records and stored analytics, marked removed_from_pinterest_at. A secret board needs boards:write_secret.list_boardsList boardsGETAgents: ask firstLists the Pinterest boards of one connected account: id (the board_id other tools take), name, description and privacy. Read from Pinterest; a simulated sandbox returns one synthetic board.update_boardUpdate boardPATCHAgents: ask firstRenames a board on Pinterest or changes its description or privacy; fields left out are unchanged and its pins are unaffected. account_id (the owner) is required and at least one field must change.
Pin import, 4 operations
get_pin_importGet pin importGETAgents: ask firstReturns a bulk import job: status (queued, processing, completed, completed_with_errors, failed), row counts and per-row results (created, existing, or failed with error code and message, plus the pin or schedule id).import_pins_csvImport pins csvPOSTAgents: ask firstQueues an import of up to 500 pins from a CSV file: each row is published on Pinterest (or scheduled when run_at is set). Returns the job; follow it with get_pin_import. Paid plans only. Only rows the user chose.import_pins_jsonImport pins jsonPOSTAgents: ask firstQueues an import of up to 500 pins from JSON rows: each row is published on Pinterest (or scheduled when run_at is set). Returns the job; follow it with get_pin_import. Paid plans only. Only rows the user chose.list_pin_importsList pin importsGETAgents: ask firstLists bulk pin import jobs (JSON or CSV) with their status, row counts and per-row results; filter by status or source type. Page with limit (1 to 200, default 50) and offset.
Account analytics, 2 operations
collect_account_analyticsCollect account analyticsPOSTAgents: ask firstQueues a fresh analytics collection for one connected Pinterest account now instead of waiting for the nightly run, refreshing its Pinterest token if needed. Allowed once per account every 15 minutes.get_account_analyticsGet account analyticsGETAgents: ask firstReturns one connected account's Pinterest metrics (impressions, engagement, saves, clicks) over a date range, by default the last 30 days, mostly from PinBridge's nightly stored copy. Live ranges cap at 90 days, stored at 366.
Pin analytics, 2 operations
get_pin_analyticsGet pin analyticsGETAgents: ask firstReturns one pin's Pinterest metrics (impressions, saves, clicks, outbound clicks) over a date range, by default the last 30 days, mostly from PinBridge's nightly stored copy. Live ranges are capped at 90 days, stored at 366.list_top_pinsList top pinsGETAgents: ask firstLists published pins ranked by one metric (impressions by default) summed over a date range, from PinBridge's stored history. Only pins with at least one non-zero stored day in the range are listed.
Pinterest account, 2 operations
list_pinterest_accountsList pinterest accountsGETAgents: ask firstLists the Pinterest accounts connected to the project that the API key may use: id (the account_id other tools take), username, display name, granted scopes and health (reconnect_required, missing_scopes).revoke_pinterest_accountRevoke pinterest accountDELETEAgents: ask firstDisconnects a Pinterest account from PinBridge: PinBridge loses access and can no longer publish with it until it is reconnected in the dashboard. Needs a key with the destructive scope.
Activity log, 1 operation
list_activity_logsList activity logsGETAgents: ask firstLists the project's activity log, newest first: publishes, deletes, retries, imports, schedules, settings, billing and Pinterest connection events, with who acted (a member, an API key or a worker). Page with next_cursor.
Analytics overview, 1 operation
get_analytics_overviewGet analytics overviewGETAgents: ask firstReturns Pinterest metrics summed across connected accounts (or one, with account_id) from PinBridge's stored history: totals, previous-period totals for deltas, a daily series and each account's collection status.
Billing status, 1 operation
get_billing_statusGet billing statusGETAgents: ask firstReturns the workspace's plan, subscription status, monthly pin quota and usage (calls_used counts successful new pins), credits, storage, and account and API key limits, with quota_reset_at for the next reset.
Board access, 1 operation
check_board_accessCheck board accessGETAgents: ask firstChecks whether a connected account can publish to a board right now, with the same preflight publish_pin runs: publishable, a stable code when not (board_not_found, board_not_owned, scope_missing, token_expired...) and a remediation.
Pin job, 1 operation
get_job_statusGet job statusGETAgents: ask firstReturns the publish status of a pin by its job id (the pin id): queued, publishing, published, deferred or failed, with the Pinterest pin id once published and the error code and message on failure.
Publishing summary, 1 operation
get_publishing_summaryGet publishing summaryGETAgents: ask firstReturns publishing activity over a time range (default the last 30 days): pin outcomes and success rate, an hourly or daily series, pins published per account, the current queue, schedules and import jobs, with the previous period.
Rate meter, 1 operation
get_rate_meterGet rate meterGETAgents: ask firstReturns the publishing rate headroom for one connected account: its token bucket (tokens available, capacity, refill rate) and the global bucket. PinBridge's pricing lists this live meter on Growth plans and up.
Related term, 1 operation
list_related_termsList related termsGETAgents: ask firstReturns the terms Pinterest considers related to one or more search terms, grouped by requested term, for keyword ideas in pin titles and descriptions. Needs a connected account_id.
Use PinBridge from Claude Code, Cursor or Codex
Connect PinBridge in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its PinBridge operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect PinBridge
- Create your workspace
Sign up free. Nothing to install.
- Connect PinBridge once
Add your PinBridge connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
PinBridge integration FAQ
What can you do with the PinBridge integration?
LiveContext exposes 54 operations on PinBridge, covering schedule, pin, asset and webhook.
