Conversions API Payload Builder for Pinterest

Build a valid Pinterest Conversions API request: the right event_name, event_time in seconds, a required event_id, SHA-256 hashed user data as arrays, and custom_data with value as a string — for one event or a batch of spreadsheet rows.

Runs in your browser. Nothing is uploaded.For Pinterest

Conversions API Payload Builder for Pinterest

1 Build your Conversions API event

What do you want to build?

Shown next to your token on the Conversions API setup page.

checkout tracks completed purchases.

Use the same value as eventID in your Pinterest tag.

The full page URL, with epik when the visit came from a Pinterest ad.

Customer details (hashed in your browser)

Several? Separate them with commas.

Order details (custom_data)

Pre-tax, pre-shipping total.

Left empty, we add up the quantities below.

2 Your payload and checks

Fill in the settings above — your result appears here instantly.

Next step Send the same event from the Pinterest tag with the same event ID, so Pinterest counts it once.

Build the tag event code

Rules last checked: against the official pages:

How to build a Pinterest Conversions API event

The Pinterest Conversions API accepts an event only when five fields are right, and it can match the event to a person only when the customer details are hashed the way Pinterest asks. This builder follows Pinterest's Track conversion events in the API guide and the Send conversions reference, and turns your values into a request you can send or hand to a developer.

  1. Get your ad account ID and token. In Ads Manager, open Conversions, then Set up API, and generate a conversion access token. Copy the ad account ID shown with it. The token stays with you; this page never asks for it.
  2. Pick the source and the event. Choose web, offline or an app, then the event. Names from the tag or other platforms, like AddToCart or Purchase, are turned into the API names.
  3. Set the time and event ID. The time becomes Unix seconds. The event ID is required, and it must match the eventID your tag sends for the same event.
  4. Add customer details. Email, phone, name, city, state, ZIP, country, birth date and gender are normalized and hashed with SHA-256 right here, and written as lists like the API expects.
  5. Copy the result. You get the JSON body, a curl command and, for web events, the matching pintrk call. Switch to batch mode to turn spreadsheet rows into requests of up to 1,000 events each; every request is shown.
Conversions API payload builder for Pinterest showing a checkout event with hashed user data arrays and passed checks

Details the builder gets right for you

  • value is a string. Pinterest reads "66.95" as a number on its side. Zero and negative values are flagged as invalid.
  • Phones are digits only. No plus sign, spaces or leading zeros, but with the country code.
  • States and countries are two letters. “California” becomes ca, lowercased as Pinterest's text says. Pinterest's own example hash uses uppercase “US”, so the tool tells you whenever it sends these.

Test and go live with the Pinterest Conversions API

  1. Send a test request. Turn on test mode, which adds ?test=true, and send the payload with your token in the Authorization: Bearer header. Test events get the same response messages but aren't recorded.
  2. Check the response. Each event comes back as processed or failed, in the order you sent them, with an error or warning message.
  3. Confirm in Ads Manager. Open Campaign manager > Conversions > Test events to see the test event arrive.
  4. Go live in real time. Remove ?test=true and send events as they happen, or within an hour. Send the same events from the Pinterest tag with the same event ID.
  5. Watch event quality. The Conversions Health page in Ads Manager shows your Event Quality Score.

Pinterest Conversions API errors and fixes

“Invalid event_name”

Pinterest's own example rejects subscription and suggests subscribe or checkout. Use the lowercase API names. Custom events must be mapped to a standard event, up to 15 per advertiser.

“AdAccount not found”

Pinterest's example error for a request it can't link to an ad account. Check the ad account ID in the URL, and that your token was generated for that account. Copy both again from the Conversions API setup page.

401 or 403: token or permission problems

The token's user must own the ad account or have the Admin, Analyst, Audience or Campaign role through Business Access. Send it as Authorization: Bearer, not in the JSON.

pinterest conversions api hashed email not matching

Hash the lowercased email, and send em as a list. A hash of “[email protected]” never matches the hash Pinterest makes of “[email protected]”.

429: too many requests

The limit is 5,000 calls per minute per ad account. Batch events, up to 1,000 per request, instead of sending one call per event.

Events counted twice

The tag and the API sent the same checkout with different or missing IDs. Send one ID, such as the order number, from both. Offline events can't be deduplicated at all.

Frequently asked questions

What is the Pinterest Conversions API?

A server-to-server connection that sends your conversions straight to Pinterest: web, in-app and in-store or offline sales. Pinterest uses them for campaign optimization, targeting and conversion reporting (Pinterest’s overview). You only need a Pinterest Business account and a token from the Conversions page in Ads Manager; no Pinterest app is required.

Which fields does a Pinterest Conversions API event need?

Five are required: event_name, action_source, event_time, event_id and user_data. user_data must include em, hashed_maids, or both client_ip_address and client_user_agent. Events go in a data array, up to 1,000 per request, sent as a POST to /v5/ad_accounts/{ad_account_id}/events (API reference).

How do I hash email and phone for the Pinterest Conversions API?

With SHA-256. Lowercase the email first. Write the phone as digits only, with the country code and no symbols, spaces or leading zeros, so (415) 555-0132 becomes 14155550132. Each hashed field is sent as a list, like "em": ["…"]. This builder does all of it in your browser.

How do I deduplicate Pinterest tag and Conversions API events?

Send the same event_name and the same event ID from both: eventID (or event_id) in the tag and event_id in the API. Pinterest keeps the first event and removes duplicates within 48 hours. An order number works well as the ID.

Can I send offline sales through the Pinterest Conversions API?

Yes. Set action_source to offline and send the customer’s hashed email or phone. Pinterest notes that offline events cannot be deduplicated, so send each sale once. Without a developer, you can also upload a CSV in Ads Manager under Conversions > Upload file; that route asks for data within 30 days of each conversion.

What time format does the Pinterest Conversions API use?

A Unix timestamp in seconds, such as 1769818893. A 13-digit value is in milliseconds and is wrong. Pinterest asks you to send events in real time, or at most one hour after they happen.

Need help setting this up? Talk to EmproIT