Generate a Conversions API access token in Pinterest Ads Manager and note the Tag ID (analogous to a pixel ID) for the conversion tag.
Construct an event payload with event_name (e.g. checkout, add_to_cart, page_visit), action_source (web, app_ios, app_android, or offline), event_time (Unix seconds), and event_id for deduplication.
Include a user_data object with hashed identifiers (em for email, ph for phone, SHA-256 lowercase normalized) and, where available, click_id or client_ip_address.
POST to https://api.pinterest.com/v5/ad_accounts/{AD_ACCOUNT_ID}/events with the Authorization: Bearer YOUR_TOKEN header and the events array in the body.
Check the response's num_events_received and any error details in the response body.
Use the Pinterest Tag Helper or the test mode flag during development to validate payloads before sending live events.
Known gotchas
event_time uses Unix seconds (not milliseconds); using milliseconds will place events decades in the future and they will be rejected.
Deduplication between the Pinterest Tag (browser) and Conversions API (server) relies on matching event_id values — ensure both sides send the same identifier for the same user action.
The ad_account_id in the URL must own the Tag ID being reported against; mismatched IDs return an authorization error.
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