Pinterest Ads Library Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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?
| Field | Description |
|---|---|
adId | Pinterest ad / pin identifier |
advertiserNames | Advertiser names returned by the repository |
title | Creative title |
description | Creative text or pin description |
creativeType | image, video, carousel, or unknown |
imageUrl | Public creative image URL |
videoUrl | Public creative video URL when available |
landingUrl | Destination URL when Pinterest exposes it |
landingDomain | Destination domain |
countries | Countries where the ad was shown |
startDate | Ad start date |
endDate | Ad end date |
ageBuckets | Audience age buckets |
genders | Audience gender buckets |
userCountByCountry | Public reach range by country |
euUserCount | EU reach range when available |
sourceUrl | Pinterest 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:
| Event | Price |
|---|---|
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
| Input | Type | Required | Description |
|---|---|---|---|
country | string | yes | Repository country code such as DE, FR, IT, ES, NL, BR, or TR |
advertiserName | string | no | Optional advertiser-name filter |
adCategory | string | no | Optional Pinterest ad category |
gender | string | no | Optional audience gender filter |
ageBucket | string | no | Optional age bucket filter |
maxItems | integer | yes | Maximum 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
- Open the actor on Apify.
- Choose a repository country.
- Optionally add an advertiser name, category, gender, or age filter.
- Set
maxItems. - Click Start.
- Export results from the default dataset.
Tips for best results
- Start with
maxItems: 50to validate a filter. - Use a country supported by Pinterest's public repository UI.
- Leave
advertiserNameempty for broad market research. - Add
adCategorywhen 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 ApifyClientclient = 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:
- Open Cursor Settings → MCP.
- Add a new HTTP MCP server named
apify-pinterest-ads. - Use this URL:
https://mcp.apify.com/?tools=automation-lab/pinterest-ads-library-scraper. - Save, reconnect the server, and select the Pinterest Ads Library Scraper tool in chat.
VS Code setup:
- Install an MCP-compatible extension such as GitHub Copilot Chat with MCP support.
- Add an HTTP MCP server named
apify-pinterest-ads. - Set the server URL to
https://mcp.apify.com/?tools=automation-lab/pinterest-ads-library-scraper. - Reload VS Code if needed, then ask the tool to run with a country and
maxItemsinput.
Claude Desktop setup:
- Open Claude Desktop settings and edit the MCP server configuration.
- Add the JSON config above under
mcpServers. - Restart Claude Desktop so the Apify MCP server is discovered.
- In a new chat, ask Claude to use
automation-lab/pinterest-ads-library-scraperwith 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
Is it legal to scrape Pinterest Ads Repository?
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.
Related scrapers
- https://apify.com/automation-lab/facebook-ads-library-scraper
- https://apify.com/automation-lab/google-ads-transparency-scraper
- https://apify.com/automation-lab/linkedin-ads-library-scraper
- https://apify.com/automation-lab/tiktok-ads-library-scraper
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.