# Pinterest Ads

```json
{
  "name": "Pinterest Ads",
  "slug": "pinterest_ads",
  "url": "https://composio.dev/toolkits/pinterest_ads",
  "markdown_url": "https://composio.dev/toolkits/pinterest_ads.md",
  "logo_url": "https://logos.composio.dev/api/pinterest_ads",
  "categories": [
    "advertising & marketing"
  ],
  "is_composio_managed": true,
  "updated_at": "2026-10-05T11:08:02.800Z"
}
```

![Pinterest Ads logo](https://logos.composio.dev/api/pinterest_ads)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Pinterest Ads MCP or direct API to manage ad accounts, create campaigns, optimize ad groups, and pull performance reports through natural language.

## Summary

Pinterest Ads is Pinterest's advertising platform for campaigns, ad groups, ads, targeting, and reporting.
Use it to reach high-intent shoppers and track performance across the Pinterest funnel.

## Categories

- advertising & marketing

## Toolkit Details

- Tools: 10
- Managed auth: Managed by Composio

## Images

- Logo: https://logos.composio.dev/api/pinterest_ads

## Authentication

- **Oauth2**
  - Type: `oauth2`
  - Description: Oauth2 authentication for Pinterest Ads.
  - Setup:
    - Configure Oauth2 credentials for Pinterest Ads.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Review yesterday's Pinterest campaign performance
- Pause underperforming ad groups today
- List active Pinterest ad campaigns

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `PINTEREST_ADS_GET_ANALYTICS` | Get Ads Analytics | Get synchronous Pinterest Ads performance metrics for an advertiser or selected campaigns, ad groups, or ads over a date range. |
| `PINTEREST_ADS_GET_METRICS_READY_STATE` | Get Metrics Ready State | Check whether Pinterest conversion and non-conversion metrics are finalized for a UTC report date before relying on analytics results. |
| `PINTEREST_ADS_GET_TARGETING_OPTIONS` | Get Targeting Options | Get Pinterest's valid targeting values for a targeting type, such as age buckets, gender, locale, location, interests, or keywords. |
| `PINTEREST_ADS_LIST_AD_ACCOUNTS` | List Ad Accounts | List advertiser accounts the connected Pinterest user owns or can access, including the IDs needed by all other Ads tools. |
| `PINTEREST_ADS_LIST_AD_GROUPS` | List Ad Groups | List ad groups for an advertiser, filter by parent campaigns, or look up specific ad groups by ID. |
| `PINTEREST_ADS_LIST_ADS` | List Ads | List ads for an advertiser, filter by one hierarchy level, or look up specific ads by ID. Archived and draft ads must be requested explicitly with entity_statuses. |
| `PINTEREST_ADS_LIST_CAMPAIGNS` | List Campaigns | List campaigns for an advertiser, or look up specific campaigns by ID using campaign_ids. Archived and draft campaigns must be requested explicitly with entity_statuses. |
| `PINTEREST_ADS_UPDATE_AD_GROUPS` | Update Ad Groups | Rename, pause, or resume up to 30 existing ad groups. Setting status to ACTIVE can restart delivery and incur spend under existing budgets. Budget, bid, targeting, schedule, and restricted-setting changes are not exposed. |
| `PINTEREST_ADS_UPDATE_ADS` | Update Ads | Rename, pause, or resume up to 30 existing Pinterest ads. Setting status to ACTIVE can restart delivery and incur spend under existing budgets. Creative, Pin, destination, tracking, and disclosure changes are not exposed. |
| `PINTEREST_ADS_UPDATE_CAMPAIGNS` | Update Campaigns | Rename, pause, or resume up to 30 existing campaigns. Setting status to ACTIVE can restart delivery and incur spend under existing budgets. Budget, schedule, objective, archive, and restricted-setting changes are not exposed. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to Pinterest Ads
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["pinterest_ads"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["pinterest_ads"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run Pinterest Ads tools with your agent

Send a request, execute the Pinterest Ads tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "List active Pinterest Ads campaigns and summarize yesterday's spend and clicks."}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List active Pinterest Ads campaigns and summarize yesterday's spend and clicks." }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to Pinterest Ads and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["pinterest_ads"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["pinterest_ads"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a Pinterest Ads request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to Pinterest Ads tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("List active Pinterest Ads campaigns and summarize yesterday's spend and clicks.")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List active Pinterest Ads campaigns and summarize yesterday's spend and clicks.",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native Pinterest Ads Integration

- Supports both Pinterest Ads MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable campaign, ad group, ad, targeting, and reporting actions
- Rich coverage for reading, writing, and querying your Pinterest Ads data without custom API glue

### 2. Managed Auth

- Built-in OAuth handling with secure token storage, refresh, and lifecycle management
- Central place to manage, scope, and revoke Pinterest Ads access
- Per user and per environment credentials instead of hard-coded keys in your agent code

### 3. Agent Optimized Design

- Tools are tuned for AI agents, so campaign and reporting workflows are easier for models to call correctly
- Comprehensive execution logs so you can see which Pinterest Ads actions ran, when, and on whose behalf
- Cleaner tool schemas help agents ask for the right ad account, campaign, date range, and metrics

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Pinterest Ads
- Scoped, least privilege access to Pinterest Ads resources such as campaigns, ads, and reports
- Full audit trail of agent actions to support review, debugging, and compliance

## Use Pinterest Ads with any AI Agent Framework

Choose a framework you want to connect Pinterest Ads with:

- [ChatGPT](https://composio.dev/toolkits/pinterest_ads/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/pinterest_ads/framework/claude-cowork)
- [Grok Bot](https://composio.dev/toolkits/pinterest_ads/framework/grok-bot)

## Related Toolkits

- [Metaads](https://composio.dev/toolkits/metaads) - Metaads is Meta's official Ads API that lets you manage, analyze, and optimize your Facebook and Instagram ad campaigns. Streamline ad operations and gain deeper insights with robust automation.
- [Adrapid](https://composio.dev/toolkits/adrapid) - Adrapid is a platform for rapid creation of digital marketing visuals using templates. It streamlines design workflows for banners, images, and HTML5 content with automation.
- [AdRoll](https://composio.dev/toolkits/adroll) - AdRoll is a digital marketing platform for managing advertising campaigns, audiences, and account-based marketing. It helps marketers retarget customers across channels and measure performance.
- [Adtraction](https://composio.dev/toolkits/adtraction) - Adtraction is an affiliate marketing platform for partner programs, tracking links, transactions, commissions, statistics, and payments. It helps advertisers and publishers manage performance marketing with clear reporting and payout workflows.
- [Adyntel](https://composio.dev/toolkits/adyntel) - Adyntel is an API that retrieves LinkedIn ads for any company using a domain or LinkedIn Page ID. Easily access competitive ad intelligence to power your marketing workflows.
- [Beaconstac](https://composio.dev/toolkits/beaconstac) - Beaconstac is a platform for creating and managing QR codes and proximity beacons. It helps businesses engage customers and track marketing performance with powerful analytics.
- [Bouncify](https://composio.dev/toolkits/bouncify) - Bouncify is an email verification service for single addresses and bulk lists. Use it to reduce bounces, protect sender reputation, and track verification credits.
- [Bulk Email Checker](https://composio.dev/toolkits/bulk_email_checker) - Bulk Email Checker is an email verification service for checking address validity, mailbox status, domains, and mail-server signals. It helps reduce bounces, spot risky emails, and keep outreach lists cleaner before you send.
- [Campaign cleaner](https://composio.dev/toolkits/campaign_cleaner) - Campaign cleaner is an email campaign optimization tool that boosts compatibility and deliverability across email clients. It helps marketers get better results by cleaning, enhancing, and ensuring high performance for every campaign.
- [Deadline funnel](https://composio.dev/toolkits/deadline_funnel) - Deadline Funnel lets you create personalized deadlines and timers for your marketing campaigns. It helps marketers boost conversions by adding authentic urgency to offers.
- [DeBounce](https://composio.dev/toolkits/debounce) - DeBounce is an email verification service for checking address validity, deliverability, and risk. It helps keep contact lists clean so your campaigns reach real inboxes.
- [Easy Email Verification](https://composio.dev/toolkits/easy_email_verification) - Easy Email Verification is an email validation service for checking single addresses and bulk lists. Use it to reduce bounces, clean contact data, and protect sender reputation.
- [Elastic Email](https://composio.dev/toolkits/elastic_email) - Elastic Email is an email delivery and marketing platform for transactional emails, campaigns, contacts, and reporting. Use it to send reliable emails, manage audiences, verify addresses, and track performance.
- [Fairing](https://composio.dev/toolkits/fairing) - Fairing is a post-purchase survey and attribution platform for ecommerce brands. It helps teams measure which marketing channels, campaigns, and customer touchpoints drive purchases.
- [GoDaddy MCP](https://composio.dev/toolkits/godaddy_mcp) - GoDaddy MCP is a domain discovery toolkit for checking availability and generating AI-powered name ideas. Use it to move from rough business keywords to practical domain options fast.
- [Google Ads](https://composio.dev/toolkits/googleads) - Google Ads is Google's online advertising platform for creating, managing, and optimizing digital campaigns. It helps businesses reach targeted customers and maximize return on ad spend.
- [Handwrite.io](https://composio.dev/toolkits/handwrite) - Handwrite.io is a direct mail service for creating physical handwritten card orders. It helps teams send personal cards with selectable handwriting, stationery, and tracking.
- [Inblog](https://composio.dev/toolkits/inblog) - Inblog is an AI-powered blogging platform for posts, authors, tags, redirects, design settings, analytics, and lead forms. Use it to manage SEO-focused content, measure performance, and capture blog leads in one place.
- [Instantly](https://composio.dev/toolkits/instantly) - Instantly is a platform for automating cold email outreach, managing leads, and optimizing deliverability. Get better results from email campaigns with minimal manual effort.
- [Invalid Bounce](https://composio.dev/toolkits/invalid_bounce) - Invalid Bounce is an email verification service with a bulk verification API. Use it to clean email lists, reduce bounces, and protect sender reputation.

## Frequently Asked Questions

### Do I need my own developer credentials to use Pinterest Ads with Composio?

Yes, Pinterest Ads requires you to configure your own OAuth credentials. Once set up, Composio handles token storage, refresh, and lifecycle management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
