# Pinterest Search Scraper: Pins, Promoted Ads & Shop Trends (`tenfoldfleet/pinterest-search-scraper`) Actor

Get the pins Pinterest shows for any keyword, one row per pin: title, full-size image, outbound link and its domain, pinner, board, reactions, date, product price and stock, promoted flag. New-pins monitor, no login. $1.50 per 1,000 pins; blocked or empty searches are free.

- **URL**: https://apify.com/tenfoldfleet/pinterest-search-scraper.md
- **Developed by:** [Tenfold Fleet](https://apify.com/tenfoldfleet) (community)
- **Categories:** Social media, E-commerce, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 pins

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Not affiliated with, endorsed by or sponsored by Pinterest. This Actor reads public search results only, with no login.

### What does Pinterest Search Scraper do?

**Pinterest Search Scraper** turns a keyword into a clean list of the pins Pinterest shows for it. Type the phrases you care about ("home decor", "running shoes", "vegan recipes") and get every pin as a row: **title, description, full-size image, outbound link and its domain, pinner, board, reactions, created date, promoted flag with advertiser name, and product price, currency and stock** where Pinterest has them.

It works like a **Pinterest search API**: run it from the Apify Console, call it from the [Apify API](https://docs.apify.com/api/v2), schedule it, or let an AI agent call it through the [Apify MCP server](https://apify.com/apify/actors-mcp-server). A built-in **new-pins monitor** remembers what each keyword already returned, so a daily schedule gives you only the fresh pins.

### Why use it?

- **Trend and content research**: see which images, titles and topics win a keyword right now, and how many reactions they get.
- **Shop and product trends**: filter to product pins and read prices, currencies, discounts and stock to see which products and stores are surfacing for a search.
- **Traffic sources**: the outbound domain column shows which websites Pinterest sends clicks to for a keyword (your site, rivals, marketplaces, affiliate links).
- **Ad checks**: promoted pins come with `isPromoted: true`, the advertiser name and the landing page. Logged-out search shows few ads and mostly below the first pages: one test found 2 ads in the first 290 "home decor" pins, and many keywords show none.
- **Monitoring**: schedule a run with "Only pins not seen in earlier runs" for a feed of new pins per keyword.
- **Datasets for creative or AI work**: high-resolution image URLs, alt text, dominant colors.

### What data can it extract?

| Field | Example |
|---|---|
| `pinId`, `url` | `e1_AfqP...` and the pin page link |
| `title`, `description`, `altText` | Pin title, pin text, Pinterest's alt text |
| `createdAt` | `2026-09-02T18:42:09.000Z` (ISO) |
| `outboundLink`, `domain` | The full link the pin sends visitors to, and its domain (`nike.com`) |
| `isPromoted`, `advertiserName`, `advertiserUsername` | `true`, `Acme Home` |
| `isProductPin`, `productName`, `price`, `priceText`, `currency`, `availability`, `originalPrice`, `percentOff` | `true`, `76.48`, `US$76.48`, `USD`, `in stock`, `US$89.99`, `15` |
| `richPinType`, `siteName` | `product`, `article`, `recipe`; `Amazon.com` |
| `pinnerUsername`, `pinnerName`, `pinnerFollowers`, `pinnerUrl` | Who saved the pin |
| `boardName`, `boardUrl`, `boardPinCount` | The board it was saved to |
| `reactionCount`, `reactionCounts` | Total reactions and the split by reaction type |
| `commentCount`, `saveCount` | Pinterest search leaves these out, so they are almost always empty |
| `dominantColor`, `imageUrl`, `imageWidth`, `imageHeight` | Largest image available, usually the original upload |
| `isVideo`, `videoUrl` | Video pins |
| `query`, `position`, `scrapedAt` | Keyword, rank in the results, time of the run |

### How to scrape Pinterest search results

1. Open the Actor and enter one or more keywords in **Search keywords**.
2. Set **Max pins per keyword** (about 24 pins per results page).
3. Optional: turn on **Only product pins**, **Only promoted pins** or **Only pins not seen in earlier runs**.
4. Click **Start** and download the dataset when the run finishes.

### How much does it cost?

You pay **$1.50 per 1,000 pins** returned, plus a tiny $0.00005 start fee per run. Things that are **free**: duplicate pins, pins dropped by your filters, pins skipped by the new-pins monitor, keywords with no results and searches Pinterest blocked (those come back as a free row with an `error` and `message`). On the Apify free plan ($5 of monthly credit) you can get about 3,000 pins a month. Set a maximum cost per run in the run options and the Actor stops when it is reached.

### Input

```json
{
    "queries": ["home decor", "running shoes"],
    "maxPinsPerQuery": 100,
    "onlyProductPins": false,
    "onlyPromoted": false,
    "onlyNewPins": false
}
```

### Output

```json
{
    "pinId": "e1_AfqPShx_BgnC05FF4P13aD8YNNNGUKlsJdRuGg9mkuXx7nv-EVQ",
    "title": "Nike Initiator Running Shoe $79",
    "createdAt": "2025-07-06T15:04:55.000Z",
    "domain": "rstyle.me",
    "isPromoted": false,
    "advertiserName": null,
    "isProductPin": true,
    "productName": "Initiator Running Shoe - Women's",
    "price": 84.96,
    "currency": "USD",
    "availability": "in stock",
    "siteName": "DSW.COM",
    "pinnerUsername": "vanessarae11",
    "pinnerFollowers": 527,
    "boardName": "Shoes",
    "reactionCount": 7,
    "dominantColor": "#9e9282",
    "query": "running shoes",
    "position": 17
}
```

A keyword with nothing to return gives one free row such as `{"query": "...", "error": "no-results", "message": "Pinterest returned no pins for this search."}`. You can download the results as JSON, CSV, Excel, XML or HTML, or read them through the API.

### Tips

- Use the exact phrases people type into Pinterest. Broad keywords go many pages deep; narrow ones may end after a few pages.
- For product research, turn on **Only product pins** and sort by `price` or `domain`.
- For a monitor, keep the same keyword list, turn on **Only pins not seen in earlier runs** and add a daily schedule. Use a different **Monitor store name** per project.
- Promoted pins are rare in logged-out search. With **Only promoted pins** on, a keyword stops after 10 result pages in a row without an ad and returns a free `no-matching-pins` row.
- Keywords are matched without case or extra spaces, so `Home Decor` and `home  decor` run once.

### FAQ

#### Do I need a Pinterest account or cookies?

No. The Actor reads the same public search results a logged-out visitor sees.

#### Why are `commentCount` and `saveCount` empty?

Pinterest's search results don't include comment or save counts. The fields are kept so the columns stay the same if Pinterest adds them back; use `reactionCount` for engagement.

#### Why do some product pins have no price?

Pinterest only attaches an offer to some product pins. `isProductPin` is still `true`, and `price` stays empty.

#### How fresh is the data?

Every run fetches live results, and `createdAt` shows when each pin was first saved.

#### Is it legal to scrape Pinterest?

This Actor collects publicly visible data only. Results can include names and usernames of people who saved pins; if you are in the EU or handle data on EU residents, GDPR may apply, so process personal data only with a legitimate reason. Check with a lawyer if you are unsure.

### More tools from Tenfold Fleet

| Actor | Output |
|---|---|
| [ALDI Australia Scraper - AU Products, Unit Prices & Catalogue](https://apify.com/tenfoldfleet/aldi-australia-scraper) | product |
| [Alibaba Image Search - Reverse Lookup of Suppliers by Photo](https://apify.com/tenfoldfleet/alibaba-image-search) | matched product |
| [Alibaba Products Scraper: Wholesale Suppliers, MOQ, Price Tiers](https://apify.com/tenfoldfleet/alibaba-products-scraper) | product |
| [AliExpress Reviews Scraper: Product Feedback & Photos Monitor](https://apify.com/tenfoldfleet/aliexpress-reviews-scraper) | review |
| [AliExpress Keyword Scraper - Exact Sold Counts by Search Term](https://apify.com/tenfoldfleet/aliexpress-search-scraper) | product |
| [Amazon Product Scraper - Details, Prices & Search by ASIN](https://apify.com/tenfoldfleet/amazon-product-scraper) | product |
| [Applicant Tracking Jobs Scraper - Greenhouse, Lever & 6 More](https://apify.com/tenfoldfleet/ats-jobs-scraper) | job posting |
| [Backlinks Checker - Referring Domains, Anchors & Domain Rank](https://apify.com/tenfoldfleet/backlinks-checker) | backlink |
| [BBB Scraper: Business Leads, Ratings & New Reviews](https://apify.com/tenfoldfleet/bbb-scraper-leads-reviews) | business |
| [Bilibili Scraper - Videos, Comments, Danmaku & Search](https://apify.com/tenfoldfleet/bilibili-scraper) | video or comment |
| [Businesses Without Websites - Local Leads with Phone & Rating](https://apify.com/tenfoldfleet/businesses-without-websites) | lead |
| [Coles Product Scraper - Australian Supermarket Prices & Deals](https://apify.com/tenfoldfleet/coles-product-scraper) | product |
| [Contact Details Scraper - One Lead Record per Company Website](https://apify.com/tenfoldfleet/company-contact-finder) | website with contacts |
| [Facebook Ads Library Scraper for Marketers](https://apify.com/tenfoldfleet/facebook-ads-library-scraper) | ad |
| [Facebook Page Contact Finder - Business Leads from Page Links](https://apify.com/tenfoldfleet/facebook-page-contact-finder) | page with contact details |
| [Facebook Reels Scraper: Views & Captions Monitor for Any Page](https://apify.com/tenfoldfleet/facebook-reels-scraper) | reel |
| [Foundit Jobs Monitor: India, Singapore & Malaysia Jobs Scraper](https://apify.com/tenfoldfleet/foundit-jobs-monitor) | job listing |
| [Funding Rounds Scraper - Recently Funded Companies & Investors](https://apify.com/tenfoldfleet/funding-rounds-scraper) | funding round |
| [Google Ads Transparency Center Scraper - Competitor Ads by Site](https://apify.com/tenfoldfleet/google-ads-transparency-scraper) | ad |
| [Google AI Overviews Checker - Citations & Domain Tracker](https://apify.com/tenfoldfleet/google-ai-overviews-checker) | keyword checked |
| [Google Flights Scraper - All Fares per Route & Date (API)](https://apify.com/tenfoldfleet/google-flights-scraper) | route search |
| [Google Hotels Scraper - Nightly Prices, Stars & Booking Sites](https://apify.com/tenfoldfleet/google-hotels-scraper) | hotel |
| [Google for Jobs Scraper - Openings by City, Pay & Job Board](https://apify.com/tenfoldfleet/google-jobs-scraper) | job listing |
| [Google Keyword Planner API Alternative - Ideas, Bids & Volume](https://apify.com/tenfoldfleet/google-keyword-planner) | keyword idea |
| [Google Maps Extractor - Business Leads, Phones & Websites](https://apify.com/tenfoldfleet/google-maps-extractor) | place |
| [Google News Scraper - Articles, Real URLs & Full Text](https://apify.com/tenfoldfleet/google-news-scraper) | article |
| [Google Travel Hotel Rate Tracker - OTA Prices for Every Night](https://apify.com/tenfoldfleet/google-travel-hotel-rate-tracker) | offer |
| [Search Trends by Region & Time - Google Trends Data Scraper](https://apify.com/tenfoldfleet/google-trends-scraper) | keyword |
| [Instagram Reels Search - Keyword to Top Reels, Plays & Creators](https://apify.com/tenfoldfleet/instagram-reels-search) | reel |
| [Instagram Reels Transcript - Speech to Text for Public Reels](https://apify.com/tenfoldfleet/instagram-reels-transcript) | reel transcript |
| [Keyword Ideas & Related Keywords - Difficulty, Volume & CPC](https://apify.com/tenfoldfleet/keyword-ideas) | keyword idea |
| [Keyword Search Volume, CPC & Difficulty Checker (Bulk)](https://apify.com/tenfoldfleet/keyword-search-volume) | keyword with data |
| [Likee Scraper - Creators by Country, Video Views & Likes](https://apify.com/tenfoldfleet/likee-scraper) | video |
| [LinkedIn Ads Library Scraper - Competitor Ad Copy & Targeting](https://apify.com/tenfoldfleet/linkedin-ad-library-scraper) | ad |
| [LinkedIn Company Posts Monitor: New Posts, No Login](https://apify.com/tenfoldfleet/linkedin-company-posts-monitor) | post |
| [LinkedIn Company Scraper: Firmographics & Recent Posts](https://apify.com/tenfoldfleet/linkedin-company-scraper) | company |
| [Reddit Brand Monitoring - Keyword Alerts for Posts & Comments](https://apify.com/tenfoldfleet/reddit-brand-monitoring) | mention |
| [Reddit Post Comments Export: Threads to JSON & CSV](https://apify.com/tenfoldfleet/reddit-post-comments-export) | comment |
| [Remote Job Board Scraper - Remote Jobs Aggregator, 7 Sites](https://apify.com/tenfoldfleet/remote-jobs-aggregator) | unique remote job |
| [SEEK Jobs Scraper - Salaries & Hiring Across 8 APAC Job Boards](https://apify.com/tenfoldfleet/seek-job-scraper) | job listing |
| [SEO Agent - AI Keyword Research & Competitor Reports](https://apify.com/tenfoldfleet/seo-agent) | research report |
| [SEO Crawler - Technical SEO Audit Tool & On-Page Checker](https://apify.com/tenfoldfleet/seo-audit-tool) | page audit |
| [SEO Competitor Keywords - Domain Ranked Keywords & Keyword Gap](https://apify.com/tenfoldfleet/seo-competitor-keywords) | keyword |
| [Shopify Inventory Scraper - SKUs, Variants & In-Stock Status](https://apify.com/tenfoldfleet/shopify-products-scraper) | product |
| [Shopify App & Theme Detector - Store Analyzer & Contacts](https://apify.com/tenfoldfleet/shopify-store-analyzer) | shopify store |
| [Sitemap URL Extractor - All URLs from sitemap.xml & robots.txt](https://apify.com/tenfoldfleet/sitemap-url-extractor) | url |
| [Stock Photos & Videos Scraper for Pexels](https://apify.com/tenfoldfleet/stock-photos-scraper) | media item |
| [Website Built With Checker - Find Any Site's CMS & Tech Stack](https://apify.com/tenfoldfleet/tech-stack-detector) | website |
| [Threads Search - Keyword & Profile Posts Scraper (No Login)](https://apify.com/tenfoldfleet/threads-search) | post |
| [TikTok Ads Library Scraper: Competitor Ads in Europe](https://apify.com/tenfoldfleet/tiktok-ads-library-scraper) | ad |
| [TikTok Transcripts - Captions or Speech to Text for Any Video](https://apify.com/tenfoldfleet/tiktok-transcripts) | video transcript |
| [HTML to Text & URL to Markdown - LLM Ready Web Content](https://apify.com/tenfoldfleet/url-to-markdown) | page |
| [Website Traffic Checker - Bulk Domain Traffic Estimate](https://apify.com/tenfoldfleet/website-traffic-checker) | domain with traffic data |
| [WeChat Official Account Articles - Keyword Search to Markdown](https://apify.com/tenfoldfleet/wechat-official-account-articles) | article found |
| [Weibo Scraper - Comment Threads, Hot Search Ranks & User Stats](https://apify.com/tenfoldfleet/weibo-scraper) | comment |
| [Woolworths Product Scraper - AU Shelf Prices, Specials & GTINs](https://apify.com/tenfoldfleet/woolworths-product-scraper) | product |
| [Workday Jobs Scraper - myworkdayjobs.com API with Salary](https://apify.com/tenfoldfleet/workday-jobs-scraper) | job posting |
| [YouTube Channel Email Scraper - Creator Contact Extractor](https://apify.com/tenfoldfleet/youtube-channel-email-scraper) | channel with email |
| [YouTube Livestream & Channel Scraper - Videos, Likes & Stats](https://apify.com/tenfoldfleet/youtube-channel-scraper) | video |
| [YouTube Comments Scraper - Replies, Likes & Sort by Newest](https://apify.com/tenfoldfleet/youtube-comments-scraper) | comment |
| [YouTube Search Scraper: Keyword Video & Shorts Monitor](https://apify.com/tenfoldfleet/youtube-search-scraper) | search result |
| [YouTube Shorts Analytics Scraper - Views, Likes & Hashtags](https://apify.com/tenfoldfleet/youtube-shorts-scraper) | short |
| [YouTube Captions Downloader - Transcript & Subtitles Scraper](https://apify.com/tenfoldfleet/youtube-transcript-scraper) | transcript |

# Actor input Schema

## `queries` (type: `array`):

What you would type into the Pinterest search box, one keyword or phrase per line. Each keyword is a separate search.

## `maxPinsPerQuery` (type: `integer`):

Stop each search after this many pins (Pinterest returns about 24 per page). On the Apify free plan ($5 of monthly credit) 1,000 pins cost $1.50.

## `onlyProductPins` (type: `boolean`):

Keep only pins tagged as products. Price, currency and stock are filled when Pinterest shows an offer for the pin. Pins that don't match are skipped and not charged.

## `onlyPromoted` (type: `boolean`):

Keep only promoted pins, with the advertiser name. Logged-out search shows few or no ads in many markets, so expect a free 'no-matching-pins' row for most keywords. A keyword stops after 10 pages in a row with no match unless you set 'Max pages per keyword'.

## `onlyNewPins` (type: `boolean`):

Monitor mode: skip pins this keyword already returned in an earlier run (seen pin IDs are kept in a named key-value store in your account). Skipped pins are free. Schedule the run daily to get a feed of new pins.

## `monitorStoreName` (type: `string`):

Name of the key-value store that keeps seen pin IDs for 'Only pins not seen in earlier runs'. Use a different name per project to keep separate histories.

## `maxPagesPerQuery` (type: `integer`):

Optional cap on result pages scanned per keyword. Leave empty for automatic: enough pages for the pin limit, and up to 4x more when a filter is on (product and promoted filters stop after 10 pages in a row with no match).

## Actor input object example

```json
{
  "queries": [
    "home decor",
    "running shoes"
  ],
  "maxPinsPerQuery": 50,
  "onlyProductPins": false,
  "onlyPromoted": false,
  "onlyNewPins": false,
  "monitorStoreName": "pinterest-search-seen-pins"
}
```

# Actor output Schema

## `results` (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 = {
    "queries": [
        "home decor",
        "running shoes"
    ],
    "maxPinsPerQuery": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("tenfoldfleet/pinterest-search-scraper").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 = {
    "queries": [
        "home decor",
        "running shoes",
    ],
    "maxPinsPerQuery": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("tenfoldfleet/pinterest-search-scraper").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 '{
  "queries": [
    "home decor",
    "running shoes"
  ],
  "maxPinsPerQuery": 50
}' |
apify call tenfoldfleet/pinterest-search-scraper --silent --output-dataset

```

## MCP server setup

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

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/j89Hpd3G65HcEyRNJ/builds/PnmdrCPivC3dMIiOW/openapi.json
