Authenticate to Salesforce Pardot (Account Engagement) using Salesforce SSO OAuth and execute a Prospect query with the v5 API including custom field filters
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
Known 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
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