Pinterest Ads Library Scraper avatar

Pinterest Ads Library Scraper

Pricing

Pay per event

Go to Apify Store
Pinterest Ads Library Scraper

Pinterest Ads Library Scraper

Scrape public Pinterest Ads Repository creatives, advertisers, dates, markets, landing URLs, and audience disclosure metadata.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

Scrape the public Pinterest Ads Repository and export ad creatives, landing URLs, countries, dates, and transparency metadata for competitor research.

What does Pinterest Ads Library Scraper do?

Pinterest Ads Library Scraper turns the public Pinterest Ads Repository into a structured dataset.

It opens the official repository UI, applies your filters, captures the public ad-library network responses, paginates through results, and saves one dataset row per ad.

Use it to monitor creatives, advertiser activity, landing domains, country coverage, audience disclosures, and ad run dates.

Who is it for?

Performance marketers and growth teams

Use the scraper to build a repeatable swipe file of Pinterest ad creatives by market, category, and landing domain. A weekly run helps you spot fresh hooks, seasonal offers, creative formats, and competitor landing-page changes before they show up in paid-search or social reports.

Competitive-intelligence and ecommerce operators

Track which brands are active in each Pinterest repository country, which products they promote, and where the ads send shoppers. Export landing domains, creative images, dates, and country coverage to compare positioning across markets or to enrich an internal competitor database.

Agencies and reporting teams

Schedule country or category searches for each client, send rows to Google Sheets or a warehouse, and turn the dataset into recurring creative-review decks. The stable fields make it easy to deduplicate by adId and highlight newly discovered ads between reporting periods.

Compliance and transparency researchers

Collect public ad-transparency records from Pinterest's official repository for audits, disclosure checks, and market research. The actor preserves missing public fields as null or empty arrays so downstream analysis can distinguish unavailable data from extracted values.

Why use this actor?

  • It works with the official public Pinterest Ads Repository.
  • It exports clean JSON, CSV, Excel, HTML, XML, and RSS through Apify datasets.
  • It captures creative URLs, landing domains, dates, countries, and demographic fields when Pinterest returns them.
  • It paginates automatically up to your requested maxItems.
  • It is designed for recurring monitoring workflows.

What data can you extract?

FieldDescription
adIdPinterest ad / pin identifier
advertiserNamesAdvertiser names returned by the repository
titleCreative title
descriptionCreative text or pin description
creativeTypeimage, video, carousel, or unknown
imageUrlPublic creative image URL
videoUrlPublic creative video URL when available
landingUrlDestination URL when Pinterest exposes it
landingDomainDestination domain
countriesCountries where the ad was shown
startDateAd start date
endDateAd end date
ageBucketsAudience age buckets
gendersAudience gender buckets
userCountByCountryPublic reach range by country
euUserCountEU reach range when available
sourceUrlPinterest repository source URL

How much does it cost to scrape Pinterest ads?

This actor uses pay-per-event pricing: a small run-start fee plus one result event for every Pinterest ad saved to the dataset. You only pay the per-ad event when the actor actually exports a row.

Current configured pricing for the private build is:

EventPrice
Run started (start)$0.005 per run
Result extracted (result, FREE tier)$0.00025683 per ad
Result extracted (result, BRONZE tier)$0.00022333 per ad
Result extracted (result, SILVER tier)$0.00017419 per ad
Result extracted (result, GOLD tier)$0.000134 per ad
Result extracted (result, PLATINUM tier)$0.000089331 per ad
Result extracted (result, DIAMOND tier)$0.000062531 per ad

Examples before Apify platform fees or future pricing changes:

  • 50 exported ads on BRONZE: about $0.0162 ($0.005 + 50 × $0.00022333).
  • 100 exported ads on BRONZE: about $0.0273.
  • 500 exported ads on BRONZE: about $0.1167.

Exact live prices are always shown on the Apify Store pricing tab. If Pinterest returns no rows for a narrow filter, only the run-start event is charged.

Input overview

InputTypeRequiredDescription
countrystringyesRepository country code such as DE, FR, IT, ES, NL, BR, or TR
advertiserNamestringnoOptional advertiser-name filter
adCategorystringnoOptional Pinterest ad category
genderstringnoOptional audience gender filter
ageBucketstringnoOptional age bucket filter
maxItemsintegeryesMaximum ads to save

Example input

{
"country": "DE",
"maxItems": 50
}

Advertiser monitoring example

{
"country": "DE",
"advertiserName": "Meyer-Stuttgart",
"maxItems": 50
}

Category research example

{
"country": "FR",
"adCategory": "BEAUTY",
"maxItems": 100
}

Output example

{
"adId": "954903927262465448",
"advertiserNames": [],
"title": "Unsere Sommer-Buchtipps",
"description": "Packst du für den Sommerurlaub...",
"creativeType": "image",
"imageUrl": "https://i.pinimg.com/474x/...jpg",
"videoUrl": null,
"landingUrl": "https://www.example.com/page",
"landingDomain": "example.com",
"countries": ["Germany"],
"startDate": "2026-06-23",
"endDate": "2026-07-04",
"ageBuckets": ["18+"],
"genders": ["UNSPECIFIED", "FEMALE", "MALE"],
"sourceUrl": "https://ads.pinterest.com/ads-repository/954903927262465448",
"scrapedAt": "2026-07-07T07:06:29.537Z"
}

How to run

  1. Open the actor on Apify.
  2. Choose a repository country.
  3. Optionally add an advertiser name, category, gender, or age filter.
  4. Set maxItems.
  5. Click Start.
  6. Export results from the default dataset.

Tips for best results

  • Start with maxItems: 50 to validate a filter.
  • Use a country supported by Pinterest's public repository UI.
  • Leave advertiserName empty for broad market research.
  • Add adCategory when you need a cleaner niche dataset.
  • Run the same input daily or weekly to monitor new creatives.

Supported country codes

The repository UI currently exposes countries such as Austria, Belgium, Brazil, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, and Turkey.

Use the corresponding input codes: AT, BE, BR, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IT, LV, LT, LU, MT, NL, NO, PL, PT, RO, SK, SI, ES, SE, TR.

Integrations

  • Send dataset rows to Google Sheets for weekly creative reviews.
  • Store landing domains in a data warehouse for competitor tracking.
  • Trigger Slack alerts when new advertisers appear.
  • Enrich landing domains with SEO or technology-stack data.
  • Combine with other ad-library scrapers for cross-platform creative intelligence.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/pinterest-ads-library-scraper').call({
country: 'DE',
maxItems: 50
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/pinterest-ads-library-scraper').call({
'country': 'DE',
'maxItems': 50,
})
print(run['defaultDatasetId'])

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~pinterest-ads-library-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"country":"DE","maxItems":50}'

MCP usage

Use this actor from MCP-compatible tools via Apify MCP Server.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/pinterest-ads-library-scraper

Claude Code setup command:

$claude mcp add apify-pinterest-ads --transport http --url "https://mcp.apify.com/?tools=automation-lab/pinterest-ads-library-scraper"

Claude Desktop JSON config example:

{
"mcpServers": {
"apify-pinterest-ads": {
"url": "https://mcp.apify.com/?tools=automation-lab/pinterest-ads-library-scraper"
}
}
}

Cursor setup:

  1. Open Cursor Settings → MCP.
  2. Add a new HTTP MCP server named apify-pinterest-ads.
  3. Use this URL: https://mcp.apify.com/?tools=automation-lab/pinterest-ads-library-scraper.
  4. Save, reconnect the server, and select the Pinterest Ads Library Scraper tool in chat.

VS Code setup:

  1. Install an MCP-compatible extension such as GitHub Copilot Chat with MCP support.
  2. Add an HTTP MCP server named apify-pinterest-ads.
  3. Set the server URL to https://mcp.apify.com/?tools=automation-lab/pinterest-ads-library-scraper.
  4. Reload VS Code if needed, then ask the tool to run with a country and maxItems input.

Claude Desktop setup:

  1. Open Claude Desktop settings and edit the MCP server configuration.
  2. Add the JSON config above under mcpServers.
  3. Restart Claude Desktop so the Apify MCP server is discovered.
  4. In a new chat, ask Claude to use automation-lab/pinterest-ads-library-scraper with your selected input.

MCP example prompts

Example prompts showing MCP usage after adding the Apify MCP server:

  • "Use the Apify MCP Pinterest Ads Library Scraper tool for Germany and summarize the most common landing domains."
  • "Run the MCP tool to scrape 100 French beauty Pinterest ads and group creatives by advertiser."
  • "Use the Pinterest ads MCP scraper to monitor this advertiser's ads and highlight new creative angles."

Claude Desktop workflow

Add the Apify MCP server, enable the automation-lab/pinterest-ads-library-scraper tool, and ask Claude Desktop to collect recent ads for your selected market.

Data quality notes

Pinterest sometimes returns null advertiser names in list responses even when a filter is active.

When a field is not present in the public response, the actor leaves it as null or an empty array instead of inventing values.

Troubleshooting: no results

If a run returns zero ads, try a broader country/category combination or remove the advertiser filter.

Some countries and categories have fewer active ads in the selected date window.

Troubleshooting: country not available

Pinterest's repository does not expose every global country in the public UI.

Use one of the supported country codes listed above.

Legality and responsible use

This actor extracts public transparency information from the public Pinterest Ads Repository.

You should use the data responsibly, respect applicable laws, and avoid collecting or using personal data in ways that violate regulations or platform terms.

FAQ

This actor is intended for public ad-transparency research, competitor monitoring, and compliance workflows. You are responsible for using exported data lawfully and respecting applicable terms.

Why are advertiser names sometimes empty?

Pinterest may omit advertiser names in list responses even when other ad metadata is present. The actor preserves the public response instead of guessing.

Can I monitor one advertiser?

Yes. Use advertiserName with a supported country code, then schedule the actor daily or weekly and compare new adId values over time.

Changelog

  • Initial version: public Pinterest Ads Repository extraction with filters, pagination, creative fields, landing domains, dates, countries, and disclosure metadata.

Support

If you need another Pinterest repository field or a different monitoring workflow, open an issue on the actor page with your target input and expected output.