Send conversions
Changed onThe Pinterest API offers advertisers a way to send Pinterest their conversion information (including web conversions, in-app conversions, or even offline conversions) based on their ad_account_id. The request body should be a JSON object.
- This endpoint requires an access_token be generated through Ads Manager. Review the Conversions Guide for more details. (Note that the authorization header required is Authorization: Bearer <access_token>).
- The token's user_account must either be the Owner of the specified ad account, or have one of the necessary roles granted to them via Business Access: Admin, Analyst, Audience, Campaign. (Note that the token can be used across multiple ad accounts under an user ID.)
- This endpoint has a rate limit of 5,000 calls per minute per ad account.
- If the merchant is submitting this information using both Pinterest conversion tags and the Pinterest API, Pinterest will remove duplicate information before reporting. (Note that events that took place offline cannot be deduplicated.)
Request
- Base URLhttps://api.pinterest.com/v5
- Auth
- OAuth 2Authorization codehttps://www.pinterest.com/oauth/Token URLhttps://api.pinterest.com/v5/oauth/tokenScopesads:write
- or HTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
Unique identifier of an ad account.
Query parameters
Include query param ?test=true to mark the request as a test request. The events will not be recorded but the API will still return the same response messages. Use this mode to verify your requests are working and your events are constructed correctly. Warning: If you use this query parameter, be certain that it is off (set to false or deleted) before sending a legitimate (non-testing) request.
Request body
Example request
{
"data": [
{
"event_name": "checkout",
"action_source": "app_ios",
"event_time": 1769818893,
"event_id": "eventId0001",
"event_source_url": "https://www.my-clothing-shop.org/",
"opt_out": false,
"advertiser_tracking_enabled": true,
"partner_name": "ss-partnername",
"user_data": {
"em": [
"411e44ce1261728ffd2c0686e44e3fffe413c0e2c5adc498bc7da883d476b9c8",
"09831ea51bd1b7b32a836683a00a9ccaf3d05f59499f42d9883412ed79289969"
],
"hashed_maids": [
"0192518eb84137ccfe82c8b6322d29631dae7e28ed9d0f6dd5f245d73a58c5f1",
"837b850ac46d62b2272a71de73c27801ff011ac1e36c5432620c8755cf90db46"
],
"client_ip_address": "216.3.128.12",
"client_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36",
"ph": [
"45df139772a81b6011bdc1c9cc3d1cb408fc0b10ec0c5cb9d4d4e107f0ddc49d"
],
"ge": [
"0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf"
],
"db": [
"d4426a0086d10f12ad265539ae8d54221dc67786053d511407204b76e99d7739"
],
"ln": [
"7e546b3aa43f989dd359672e6c3409d4f9d4e8f155ae1e9b90ee060985468c19"
],
"fn": [
"ec1e6a072231703f1bc41429052fff8c00a7e0c6aaec2e7107241ca8f3ceb6b2"
],
"ct": [
"4ac01a129bfd10385c9278c2cf2c46fac5ab57350841234f587c8522a2e4ce36"
],
"st": [
"49a6d05b8e4b516656e464271d9dd38d0a7e0142f7f49546f4dabd2720cafc34"
],
"zp": [
"fd5f56b40a79a385708428e7b32ab996a681080a166a2206e750eb4819186145"
],
"country": [
"9b202ecbc6d45c6d8901d989a918878397a3eb9d00e8f48022fc051b19d21a1d"
],
"external_id": [
"6a7a73766627eb611720883d5a11cc62b5bfee237b00a6658d78c50032ec4aee"
],
"click_id": "dj0yJnU9b2JDcFFHekV4SHJNcmVrbFBkUEdqakh0akdUT1VjVVUmcD0yJm49cnNBQ3F2Q2dOVDBXWWhkWklrUGxBUSZ0PUFBQUFBR1BaY3Bv",
"partner_id": "BUJrTlRRzGJmWhRXFZdkioV6wKPBve7Lom__GU9J74hq2NIQj4O3nOZJrp3mcUr5MptkXsI14juMOIM9mNZnM4zEUFT2JLVaFhcOfuuWz3IWEDtBf6I0DPc"
},
"custom_data": {
"currency": "USD",
"value": "66.95",
"content_ids": [
"product-id-001",
"product-id-002"
],
"content_name": "pinterest-themed-clothing",
"content_category": "shirts",
"content_brand": "pinterest-brand",
"contents": [
{
"id": "product-id-001",
"item_price": "14.99",
"quantity": 3,
"item_name": "pinterest-shirt-girl",
"item_category": "pinterest-clothing-shirts",
"item_brand": "pinterest"
},
{
"id": "product-id-002",
"item_price": "10.99",
"quantity": 2,
"item_name": "pinterest-shirt-men",
"item_category": "pinterest-clothing-shirts",
"item_brand": "pinterest"
}
],
"num_items": 5,
"order_id": "my_order_id",
"search_string": "sample string",
"opt_out_type": "LDP",
"predicted_ltv": "2794.82"
},
"app_id": "429047995",
"app_name": "Pinterest",
"app_version": "7.9",
"device_brand": "Apple",
"device_carrier": "T-Mobile",
"device_model": "iPhone X",
"device_type": "iPhone",
"os_version": "12.1.4",
"wifi": false,
"language": "en",
"device_info": {
"brand": "Apple, Samsung, Motorola",
"type": "iPhone, Android",
"model": "16 Pro, Galaxy S25 Ultra",
"form_factor": "cellphone",
"os_family": "ios",
"os_name": "10",
"os_version": "18.3",
"os_release_name": "18.3",
"kernel_version": "6.15",
"carrier": "T-Mobile",
"screen_width": 1320,
"screen_height": 2868,
"screen_density": 460,
"cpu_cores": 8,
"storage_size": 256,
"storage_free_space": 184,
"external_storage_size": 512,
"external_storage_free_space": 126,
"locale": "en-us",
"languages": [
"en",
"de",
"lt"
],
"timezone": "USA/New York",
"timezone_abbr": "PDT",
"network_type": "wifi",
"battery_level": 78
},
"app_info": {
"app_name": "MyAwesomeApp",
"app_package_name": "com.company.myawesomeapp",
"app_id": "429047995",
"app_version": "7.9",
"app_store": "Google Play Store",
"window_width": 1678,
"window_height": 900,
"install_time": 1739222269,
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
}
}
]
}Response
The request has succeeded.
Example response
{
"num_events_processed": 1,
"num_events_received": 1
}Changes
- breaking
added to the
//request propertyallOflist - breaking
added to the
///request propertyallOflist - breaking
added to the
///request propertyallOflist - breaking
added to the
///request propertyallOflist - breaking
removed from the
//request propertyanyOflist - breaking
removed the enum value
androidof the request property/// - breaking
removed the enum value
bsdof the request property/// - breaking
removed the enum value
cellphoneof the request property/// - breaking
removed the enum value
cellular_2gof the request property/// - breaking
removed the enum value
cellular_3gof the request property/// - breaking
removed the enum value
cellular_4gof the request property/// - breaking
removed the enum value
cellular_5gof the request property/// - breaking
removed the enum value
cellular_6gof the request property/// - breaking
removed the enum value
consoleof the request property/// - breaking
removed the enum value
desktopof the request property/// - breaking
removed the enum value
ethernetof the request property/// - breaking
removed the enum value
iosof the request property/// - breaking
removed the enum value
laptopof the request property/// - breaking
removed the enum value
linuxof the request property/// - breaking
removed the enum value
macosof the request property/// - breaking
removed the enum value
otherof the request property/// - breaking
removed the enum value
otherof the request property/// - breaking
removed the enum value
smartwatchof the request property/// - breaking
removed the enum value
tabletof the request property/// - breaking
removed the enum value
tvof the request property/// - breaking
removed the enum value
unknownof the request property/// - breaking
removed the enum value
vrof the request property/// - breaking
removed the enum value
wifiof the request property/// - breaking
removed the enum value
windowsof the request property/// - breaking
the
///request property type changed fromstringto no type - breaking
the
///request property type changed fromstringto no type - breaking
the
///request property type changed fromstringto no type - breaking
the
//request property type changed fromobjectto no type - breaking
the
//response's property type changed fromstringto no type for status - info
added the new optional request property
///// - info
added the non-success response with the status
- info
added to the
//response propertyallOflist for the response status - info
removed the
failedenum value from the//response property for the response status - info
removed the
processedenum value from the//response property for the response status - info
the response required property
became read-only for the status - info
the response required property
became read-only for the status - info
the response required property
became read-only for the status
- breaking
- breaking
the request property
////became required - breaking
the request property
////became required - info
the request property
////became optional - info
the request property
////became optional - info
the request property
////became optional
- breaking