canonical: https://jentic.com/apis/pi.pardot.com/pardot

# Pi Pardot Pardot API

Jentic publishes the only available OpenAPI specification for Pardot API, keeping it validated and agent-ready. Salesforce Account Engagement (formerly Pardot) provides a marketing automation REST API with 108 endpoints covering prospect management, email campaign creation, list segmentation, form handling, visitor tracking, landing pages, custom fields, tags, and bulk data exports. The API enables marketers and developers to build automated nurture sequences, score leads, and synchronize prospect data with Salesforce CRM.

## For AI agents

Manage marketing prospects, create email campaigns, segment lists, track visitor activity, and export engagement data through Salesforce Pardot's marketing automation platform.

## Scope

Does not handle CRM deal management, customer support tickets, or advertising spend - use for marketing lead nurturing, email campaigns, and prospect scoring only.

## Capabilities

- Create and manage prospect records with custom fields, scores, and engagement history
- Build and send email campaigns with template management and A/B testing
- Segment prospects into static and dynamic lists for targeted nurture sequences
- Track website visitor activity and associate anonymous visits with known prospects
- Manage forms and landing pages for lead capture with progressive profiling
- Tag prospects and campaigns for cross-functional organization and reporting
- Export bulk engagement data for analytics pipelines and business intelligence

## Use cases

### Lead Nurture Automation

Build automated email nurture sequences that trigger based on prospect behavior, score thresholds, and list membership. Pardot manages the sending schedule, engagement tracking, and prospect scoring updates automatically. The API enables programmatic control over which prospects enter nurture flows, list membership changes that trigger sequences, and real-time score adjustments based on external signals.

Example prompt: Create a new prospect via POST `/objects/prospects` with email, first name, and company, then add them to list ID 5 using the list membership endpoint

### Email Campaign Management

Create, send, and track email campaigns with template management, list targeting, and engagement analytics. Pardot tracks opens, clicks, bounces, and unsubscribes per email. The API supports campaign creation, template selection, recipient list assignment, and post-send performance retrieval for reporting dashboards.

Example prompt: Retrieve email campaign ID 12 details via GET `/objects/emails/12`, including open rate and click statistics, then tag it with 'Q2-launch' using POST `/objects/emails/12/do/addTag`

### Prospect Scoring and Segmentation

Segment prospects based on engagement scores, behavioral triggers, and demographic data. Pardot maintains a scoring model that increments based on email opens, page views, form submissions, and custom activities. The API exposes prospect scores and enables list-based segmentation for sales handoff when scores exceed qualification thresholds.

Example prompt: Query prospects with scores above 100 from the prospects endpoint, then upsert them into a 'sales-qualified' list for CRM sync

### AI Agent Marketing Automation via Jentic

AI agents managing marketing workflows can create prospects, trigger campaigns, and pull engagement data through Jentic without managing Salesforce OAuth tokens directly. The agent searches for marketing operations, loads endpoint schemas, and executes with Jentic handling the OAuth2 flow and Pardot-Business-Unit-Id header injection for multi-business-unit environments.

Example prompt: Search Jentic for 'create a marketing prospect', load the Pardot prospect creation operation, and execute with email, name, and company fields to add a new lead

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/objects/prospects` | Create a new prospect record |
| GET | `/objects/prospects/{id}` | Retrieve prospect details by ID |
| POST | `/objects/prospects/do/upsertLatestByEmail` | Upsert a prospect by email address |
| GET | `/objects/campaigns` | List all marketing campaigns |
| GET | `/objects/emails/{id}` | Retrieve email campaign details and stats |
| GET | `/objects/lists` | List all prospect segmentation lists |
| GET | `/objects/lists/{id}` | Retrieve list details and membership count |
| POST | `/objects/prospects/{id}/do/addTag` | Add a tag to a prospect |

## Key resources

- **Prospects** — Create, query, upsert, and manage marketing prospect records with scores and tags
- **Emails** — Manage email campaigns with templates, tagging, and performance metrics
- **Campaigns** — Create and manage marketing campaigns with Salesforce integration
- **Lists** — Build static and dynamic segmentation lists for targeted outreach
- **Email Templates** — Manage reusable email templates for campaign creation
- **Forms** — Configure lead capture forms with field mapping and progressive profiling
- **Visitors** — Track anonymous and known visitor activity across monitored domains

## Why Jentic

- **Setup:** Wiring the Pardot API by hand means running the Salesforce OAuth2 authorization-code flow to mint and refresh tokens, sending the Pardot-Business-Unit-Id header on every call to pi.pardot.com/api/v5, and formatting the prospect and campaign requests yourself. Through Jentic you install once, import the Pardot API from the API Directory, store the OAuth credentials and business unit id once, and your agent calls it.
- **Permission scoping:** Pardot puts the object id in the URL path (`/objects/prospects/{id}`, `/objects/lists/{id}`, `/objects/emails/{id}`), so a rule can pin your agent to reading one prospect, list, or email; the create, upsert, and add-tag operations carry their target in the request body, so there you limit the agent to the operations it needs. You choose the operations it may call, so writes like creating or upserting a prospect are not included unless you add them.
- **Credential handling:** Your Pardot OAuth credentials and business unit id are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'look up a prospect by email', and Jentic returns the matching Pardot operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Salesforce API** — CRM platform that syncs with Pardot for lead-to-opportunity handoff
- **Mailchimp API** — Email marketing and basic automation platform for smaller marketing teams
- **HubSpot API** — All-in-one marketing, sales, and service platform with native CRM

## FAQ

### Why is there no official OpenAPI spec for Pardot API?

Salesforce does not publish an OpenAPI specification for Pardot (Account Engagement). Jentic generates and maintains this spec so that AI agents and developers can call Pardot API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Pardot API use?

Pardot uses Salesforce OAuth 2.0 for authentication (authorization code flow via login.salesforce.com) plus a Pardot-Business-Unit-Id header for multi-business-unit environments. The business unit ID starts with '0Uv'. Through Jentic, OAuth tokens and the business unit header are managed in your Jentic One instance with automatic token refresh.

### Can I upsert a prospect by email address without knowing their Pardot ID?

Yes. Use POST `/objects/prospects/do/upsertLatestByEmail` to create or update a prospect using their email address as the lookup key. If a prospect with that email exists, it updates the record. If not, it creates a new one. This is the preferred method for syncing external data into Pardot.

### How do I add prospects to a segmentation list?

Use the list membership endpoints under `/objects/lists/{id}.` You can add individual prospects by ID or use the bulk operations for adding multiple prospects to a list simultaneously. Dynamic lists are managed through rule configuration rather than manual membership.

### How do I create prospects in Pardot through Jentic?

Search Jentic for 'create a marketing prospect in Pardot' to find the POST `/objects/prospects` operation. Load the schema to see required and optional fields (email, first_name, last_name, company, score), then execute. Jentic handles Salesforce OAuth2 token acquisition and the Pardot-Business-Unit-Id header automatically.

### What bulk export options does the Pardot API provide?

Pardot supports bulk data exports for prospects, visitor activities, and email engagement metrics. Export operations are available under the objects endpoints with pagination and date range filters. For large datasets, use the query parameters to paginate through results in batches of up to 200 records per request.

### Can I limit what my agent is allowed to do with the Pardot API?

Yes. Because Jentic One is self-hosted, you decide which Pardot operations your agent may call, so read-only work like fetching one prospect, list, or email by its path id (GET `/objects/prospects/{id}`, `/objects/lists/{id}`, `/objects/emails/{id}`) stays separate from writes. Creating or upserting a prospect and adding a tag are not available to the agent unless you include them, since those operations carry their target in the request body. Your own rules also govern which stored OAuth credentials and business unit id the agent may use at execution time.
