Create a catalog feed by POSTing to /v5/catalogs/feeds with feed name, format (XML/CSV), location (HTTPS URL of the feed file), and catalog_type=RETAIL; Pinterest will crawl the feed URL on the configured schedule
Monitor feed ingestion status by GETting /v5/catalogs/feeds/{feed_id}/processing_results until the most recent result shows status=COMPLETED and review any item-level errors
Create a product group by POSTing to /v5/catalogs/product_groups, scoping it to a subset of items using filter conditions (e.g. product_type, custom_label, availability=in_stock)
Create a campaign via POST to /v5/ad_accounts/{ad_account_id}/campaigns with objective_type=CATALOG_SALES and optional campaign-level budget
Create an ad group under the campaign via /v5/ad_accounts/{ad_account_id}/ad_groups, setting targeting (geo, demographics), bid_in_micro_currency, and linking the product_group_id for dynamic product ad generation
Review dynamic ad previews in Ads Manager and confirm that Pinterest is generating product-level ads from the catalog before setting campaign status to ACTIVE
Known gotchas
Pinterest catalog feeds must be served over HTTPS with a valid SSL certificate; feeds behind authentication or served over HTTP will fail ingestion silently with a feed_fetch_error
Product price fields in the feed must match the currency of the Ads account; mismatched currencies cause all affected items to be rejected at ingestion with no campaign-level warning
Dynamic retargeting for catalog sales relies on the Pinterest Tag firing product_page_visit and add_to_cart events with the item_id matching the IDs in the feed; mismatched IDs break the retargeting signal even if the Tag fires correctly
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp