# Pinterest Ads Repository (`codebyte/pinterest-ads-repository`) Actor

Extract Pinterest advertising data from the Ad Library / Ads Repository. Scrape ad campaigns, images, targeting details, and advertiser info across 29 markets. Perfect for market research, competitive intelligence, and ad transparency. Filter by country, category, gender, age, and date ranges.

- **URL**: https://apify.com/codebyte/pinterest-ads-repository.md
- **Developed by:** [Codebyte](https://apify.com/codebyte) (community)
- **Categories:** Social media, E-commerce, Lead generation
- **Stats:** 54 total users, 11 monthly users, 99.3% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Pinterest Ads Repository Scraper

Extract advertising data from Pinterest's Ad Library with advanced filtering options. Download Pinterest ad campaigns, creative content, targeting details, and advertiser information for market research, competitive intelligence, and ad transparency analysis.

### What is Pinterest Ads Repository Scraper?

Pinterest Ads Repository Scraper is an Apify Actor that extracts comprehensive advertising data from Pinterest's Ad Library. Access detailed information about active Pinterest ad campaigns including images, descriptions, targeting criteria, advertiser names, and audience demographics across 29 European and Brazilian markets.

Perfect for:

- **Market Research** - Analyze advertising trends and creative strategies on Pinterest
- **Competitive Intelligence** - Monitor competitors' ad campaigns and targeting approaches
- **Ad Transparency** - Research political and commercial advertising for compliance
- **Marketing Analytics** - Track advertising patterns by country, category, gender, and age
- **Academic Research** - Study digital advertising trends and social media marketing

### Key Features

✅ **Comprehensive Ad Data** - Extract images, videos, titles, descriptions, and full pin details\
✅ **Advanced Filtering** - Filter by country, category, gender, age, and advertiser name\
✅ **Flexible Date Ranges** - Support for both absolute dates and relative periods (e.g., "30 days")\
✅ **Deduplication** - Automatically filters duplicate ads within the same Actor run\
✅ **Proxy Rotation** - Built-in Apify proxy support for reliable data extraction\
✅ **29 Markets** - Covers all EU countries, Turkey, and Brazil

### Input Parameters

Configure your Pinterest ad scraping with these parameters:

#### Required Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| **Start Date** | String | `30 days` | Start date for ad extraction. Use absolute format (`2026-01-01`) or relative format (`30 days`, `1 week`, `6 months`). Maximum 365 days in the past. |

#### Optional Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| **End Date** | String | - | End date for extraction. If specified, date range must be ≤30 days. Supports absolute or relative format. |
| **Country** | Select | `DE` (Germany) | Target country for ads. Choose from 29 countries including AT, BE, BG, BR, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, ES, SE, TR. |
| **Category** | Select | `ALL` | Ad category filter. Options: All, Animals, Architecture, Art, Beauty, Children's fashion, Design, DIY and crafts, Education, Electronics, Entertainment, Event planning, Finance, Food and drinks, Health, Home decor, Gardening, Men's fashion, Parenting, Quotes, Sport, Travel, Vehicles, Wedding, Women's fashion, Other. |
| **Gender** | Select | `ALL` | Target gender for ads: All, Male, Female, Unspecified. |
| **Age** | Select | `ALL` | Target age group: All, 18-24, 25-34, 35-44, 45-49, 50-54, 55-64, 65+. |
| **Advertiser Name** | String | - | Filter by specific advertiser name for targeted scraping. |
| **Limit** | Integer | `1000` | Maximum number of ads to scrape (minimum: 25). |

#### Input Example

```json
{
  "start_date": "30 days",
  "end_date": "1 day",
  "country": "DE",
  "category": "WOMENS_FASHION",
  "gender": "FEMALE",
  "age": "AGE_25_34",
  "advertiser_name": "",
  "limit": 10000
}
```

### Output Format

The Actor returns structured JSON data for each Pinterest ad with the following fields:

#### Output Schema

```json
{
  "pin_id": "772367404879742906",
  "advertiser_names": null,
  "start_date": "2025-03-11",
  "end_date": "2025-06-17",
  "age_buckets": ["18+"],
  "genders": ["FEMALE", "MALE", "UNSPECIFIED"],
  "countries": ["Germany"],
  "user_count_by_country": {
    "Germany": "0 - 10000"
  },
  "user_count_eu": "0 - 10000",
  "content_commercial": true,
  "image_link": "https://i.pinimg.com/474x/50/e8/0a/50e80a3e594614ccc60e93314d827937.jpg",
  "pin_data": {
    "image_link": "https://i.pinimg.com/474x/50/e8/0a/50e80a3e594614ccc60e93314d827937.jpg",
    "video_link": null,
    "title": "Product Title",
    "details": "Full pin description text...",
    "content_creator_name": null,
    "story_pin_page_blocks": []
  },
  "interests": [],
  "keywords_used": false,
  "negative_keywords_used": false,
  "devices": [],
  "postal_codes": [],
  "metros": [],
  "regions": [],
  "review_status": null,
  "violation_source": null,
  "violation_decision_means": null,
  "statement_of_reasons": null,
  "is_local_inventory": false,
  "has_excluded_locations": false,
  "pinner_list_types": [],
  "internet_service_providers": []
}
```

### Use Cases

#### 1. Competitive Analysis

Monitor competitors' Pinterest advertising strategies, creative approaches, and targeting parameters to inform your own campaigns.

#### 2. Market Research

Analyze advertising trends across different product categories, demographics, and geographic markets on Pinterest.

#### 3. Creative Intelligence

Extract successful ad creatives, titles, and descriptions to identify what resonates with specific audiences.

#### 4. Ad Transparency Compliance

Research political or commercial advertising campaigns for regulatory compliance and transparency reporting.

#### 5. Trend Forecasting

Track emerging advertising trends across categories like fashion, home decor, beauty, and DIY.

#### 6. Academic Research

Study digital advertising patterns, gender targeting, age-based marketing, and platform-specific strategies.

# Actor input Schema

## `start_date` (type: `string`):

Start date. Absolute or relative date. "1 day" meaning yesterday. The earliest allowed date is 365 days ago.

## `end_date` (type: `string`):

End date. If specified, the date range must be less than 30 days! Absolute or relative date. "1 day" meaning yesterday.

## `country` (type: `string`):

Country

## `category` (type: `string`):

Ad Category

## `gender` (type: `string`):

Ad Gender

## `age` (type: `string`):

Ad Age

## `advertiser_name` (type: `string`):

Name of the advertiser

## `limit` (type: `integer`):

Maximum number of ads to scrape. Set to 0 to scrape all available ads.

## Actor input object example

```json
{
  "start_date": "365 days",
  "country": "DE",
  "category": "ALL",
  "gender": "ALL",
  "age": "ALL",
  "limit": 1000
}
```

# Actor output Schema

## `ad_details` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "country": "DE",
    "category": "ALL",
    "gender": "ALL",
    "age": "ALL"
};

// Run the Actor and wait for it to finish
const run = await client.actor("codebyte/pinterest-ads-repository").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "country": "DE",
    "category": "ALL",
    "gender": "ALL",
    "age": "ALL",
}

# Run the Actor and wait for it to finish
run = client.actor("codebyte/pinterest-ads-repository").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "country": "DE",
  "category": "ALL",
  "gender": "ALL",
  "age": "ALL"
}' |
apify call codebyte/pinterest-ads-repository --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codebyte/pinterest-ads-repository"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ZStXqnc5lxr1FxJwz/builds/umEL8J88pVabiWdil/openapi.json
