Automate Product Pins with the Pinterest API
How to automate publishing product Pins to Pinterest via API.
Automate product Pins by making one POST /api/posts call per product — the product image as media, name and price in the body, a board_id under post.options.pinterest, and the product SKU as the Idempotency-Key so a re-run never duplicates a Pin. Pace the sync against Pinterest's 100-requests-per-minute write limit with a queue instead of bursting the whole catalog.
Turning a product catalog into Pinterest Pins is a batching and pacing problem more than a publishing one — the create-a-Pin request itself is the same one used for a single manual post. This page covers the parts specific to running it against many products: per-item requests, board strategy, and staying inside Pinterest’s write limits at catalog scale. PostGate’s publishing API is separate from Pinterest’s own Catalogs feature — this is about creating individual product Pins on demand, not syncing a product feed into Pinterest’s shopping catalog.
How do you create each product Pin?
POST /api/posts call: product image or video as media, product name and price in the body, and a stable per-product Idempotency-Key — the product’s SKU or ID is a natural choice, so re-running a sync job never creates a duplicate Pin for the same item.curl -X POST https://postgate.studio/api/posts \
-H "Authorization: Bearer $POSTGATE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: product-sku-4821" \
-d '{
"post": {
"body": "Canvas Tote — $38",
"options": { "pinterest": { "board_id": "1099...", "title": "Canvas Tote" } }
},
"profiles": ["pro_pinterest123"],
"media": ["https://cdn.example.com/products/canvas-tote.jpg"]
}'How should you route products to boards?
How do you pace the sync against the write limit?
Idempotency-Key as the mechanism that makes a resumed or retried batch safe. See Pinterest API Rate Limit for the full breakdown.What happens when a price or stock changes?
DELETE /api/posts/{id}) and creating a new one, not patching the existing one. Build the sync job to track which product SKU maps to which live Pin ID so a refresh knows what to remove.How do you measure which Pins worked?
Frequently asked questions
Should all my product Pins go to one Pinterest board?
A single "All Products" board works technically, but Pinterest's own discovery favors boards with a clear, narrow topic. Read the account's boards once, map product categories to board IDs, and reuse that map for every sync run — a per-category structure keeps each board's Pins competing in a relevant feed instead of a mixed one.
Can I update a product Pin when the price changes?
No — Pinterest has no edit-in-place for a published Pin's image or core content through this API. The practical fix is deleting the old Pin with DELETE /api/posts/{id} and creating a new one. Build the sync job to track which product SKU maps to which live Pin ID so a refresh knows what to remove.
How fast can I sync a whole catalog to Pinterest?
Pin creation is throttled at 100 requests per minute per connected account on Standard access, so a catalog of a few thousand SKUs syncing in one shot will hit that ceiling. Use scheduling or a queue to spread a large sync over hours instead of minutes, with each product's Idempotency-Key making a resumed or retried batch safe.
Is this the same as Pinterest's Catalogs feature?
No. PostGate's publishing API is separate from Pinterest's own Catalogs feature — this approach creates individual product Pins on demand, it does not sync a product feed into Pinterest's shopping catalog.
How do I see which product Pins performed best?
Pinterest Pin analytics are fetched live through PostGate, not stored as a snapshot, so save counts and outbound clicks reflect the current state whenever you pull them — useful for feeding a re-Pin-the-best-performers-with-fresh-creative loop back into the same catalog sync.
