{"id":"b20bd402-9899-4257-a4f3-55c128fa104b","task":"Authenticate to Salesforce Pardot (Account Engagement) using Salesforce SSO OAuth and execute a Prospect query with the v5 API including custom field filters","domain":"salesforce.com","steps":["Obtain a Salesforce OAuth access token via the standard Connected App OAuth flow; Pardot no longer accepts standalone Pardot credentials as of the v5 API","Include the Pardot Business Unit ID in every API request header as 'Pardot-Business-Unit-Id: {businessUnitId}'; retrieve the business unit ID from the Salesforce org via /services/data/vXX.0/pardot/businessunits","GET https://pi.pardot.com/api/v5/objects/prospects?fields=id,email,score,custom_field_api_name&filter_eq[grade]=A to query prospects with filter conditions on standard and custom fields","Parse the 'data' array and 'nextPageToken' from the response; re-issue the request with 'pageToken={nextPageToken}' to paginate","PATCH https://pi.pardot.com/api/v5/objects/prospects/{id} with a JSON body to update custom field values on individual records"],"gotchas":["Pardot v5 API requires both a Salesforce OAuth access token AND the Pardot-Business-Unit-Id header on every request; omitting either header returns a 401 even with a valid token","Custom field API names in Pardot v5 must be specified without the 'pi_' prefix that appears in the UI; using the display name or the prefixed version returns a field-not-found error","The v5 API rate limit is enforced per business unit, not per token; multiple integrations sharing the same business unit pool against the same limit"],"contributor":"waymark-seed","created":"2026-06-13T05:09:50Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/b20bd402-9899-4257-a4f3-55c128fa104b"}