# Pinterest Search Scraper: Keyword to Pins (`themineworks/pinterest-search-scraper`) Actor

Search Pinterest by keyword and get every matching pin: image URL, save count, board, destination link and timestamp. No login, no API key. Works in Claude, ChatGPT and any MCP compatible AI agent.

- **URL**: https://apify.com/themineworks/pinterest-search-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Social media, Lead generation, MCP servers
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 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?

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 Search Scraper: Keyword to Pins

🏆 Part of The Mine Works' 149-actor portfolio · 40,000+ runs · 200,000+ results delivered across our full distribution stack · 99.9%+ success rate

💰 $1.00 / 1,000 results.

⚡ Keyword in, every matching public pin out: image URL, save count, board, destination link and timestamp. No login, no API key.

💸 An empty search or a blocked run is never charged.

Search Pinterest by keyword or phrase and get every matching public pin back as structured data: image URL, save count, board, destination link and timestamp. No login, no browser session to manage, no API key. Built for AI agents (Claude, ChatGPT, and any MCP-compatible client) as much as for people running it from the Apify console.

### What it does

Pinterest's own search only shows pins one page at a time inside a JavaScript app with no public API. This actor walks that search feed for you and returns clean rows: what the pin shows, how many times it has been saved, which board it lives on, where the "click to shop / read more" link actually goes, and when it was posted. Point it at a brand name, a product line, a style keyword, or a competitor's collection name and get back everything Pinterest is currently surfacing for that search.

### Input

- **searchQueries** (required): one or more keywords or phrases, e.g. `"Cartier Trinity ring"` or `"minimalist wedding invitations"`. Specific brand or collection vocabulary returns far cleaner results than generic single words, which tend to return visual noise.
- **maxItems**: caps how many pins come back per query. Default 40, maximum 250.

### Example output

```json
{
  "pin_id": "849302918475",
  "title": "Cartier Trinity ring, three-tone gold",
  "description": "Rose, white and yellow gold woven band...",
  "image_url": "https://i.pinimg.com/originals/...",
  "save_count": 1847,
  "board": "Fine Jewelry Inspiration",
  "destination_url": "https://www.cartier.com/...",
  "pinner_username": "luxejewelrycurator",
  "created_at": "2026-06-14T00:00:00.000Z"
}
```

### Run it on a schedule

Pinterest is a discovery and inspiration channel, so a brand or agency tracking a competitor's collection, a seasonal trend, or its own campaign's reach benefits from checking back on a schedule rather than once.

1. Run it once with the query you want repeated, then click **Save as a task** so that exact input is attached to every future run.
2. In the Apify Console go to **Schedules** and add the saved task, either on a preset (daily / weekly) or a cron expression.
3. Weekly is a reasonable default for tracking new pins on a keyword. Go daily around a launch or campaign window.

Dedup on `pin_id` against your previous run so you only act on genuinely new pins. Nothing is charged for a schedule existing.

### Why a separate listing from Pinterest Profile Scraper

This actor and [pinterest-profile-scraper](https://apify.com/themineworks/pinterest-profile-scraper) share the same underlying transport, but they answer different questions: this one finds pins by keyword across all of Pinterest, the other pulls everything about one specific account. Splitting them means a buyer searching for exactly one of those jobs finds a listing named for it, rather than a generic multi-purpose tool they have to read the description of to understand.

### Frequently asked questions

**Does this need my Pinterest login?** No. Search results are public and this actor never asks for or stores any Pinterest credential.

**What counts as a result I'm charged for?** Each pin delivered in the output. An empty search, or a run that Pinterest blocks before returning any pins, is never charged.

**Can I search in a language other than English?** Yes, Pinterest's search indexes pins regardless of caption language; results depend on what Pinterest itself has indexed for that term.

**Why did I get fewer pins than maxItems?** Pinterest's own search feed for a narrow or very new keyword may simply not have that many pins yet. The run log states how many were found versus requested.

**Does it tell me who pinned it, not just what the pin shows?** Yes. Every record carries `pinner_username` and the `board` the pin sits on, which is what makes board and curator discovery workable.

### Use from Claude, ChatGPT & any MCP agent

Hosted MCP endpoint, no install, OAuth on first connect:

```
https://mcp.apify.com/?tools=themineworks/pinterest-search-scraper
```

Claude Desktop / Cursor config (token auth):

```json
{
  "mcpServers": {
    "pinterest-search-scraper": {
      "url": "https://mcp.apify.com/?tools=themineworks/pinterest-search-scraper",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
```

Ask your agent: *"Search Pinterest for '\[keyword]' and show me the highest-save pins with their destination links."*

### Pricing

| Event | Price | You pay when |
| --- | --- | --- |
| Pin | $0.001 | A pin is delivered to your dataset |

Flat pricing, not tiered by Apify plan, and no separate Actor Start charge.
Pay per pin delivered. An empty search or a blocked run is never charged.

Keywords: Pinterest search scraper, Pinterest keyword scraper, Pinterest pin data API, Pinterest trend monitoring, Pinterest scraper no login, Pinterest competitive research, Pinterest board discovery

# Actor input Schema

## `searchQueries` (type: `array`):

SEARCH MODE. Keyword search across all public pins. Use specific brand/collection vocabulary (e.g. 'Cartier Trinity', 'Tiffany Lock') — generic terms return noise.

## `maxItems` (type: `integer`):

Max pins to collect for each board, seed pin, or search query. Default 40, max 250.

## Actor input object example

```json
{
  "searchQueries": [
    "cartier trinity ring"
  ],
  "maxItems": 40
}
```

# 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 = {
    "searchQueries": [
        "cartier trinity ring"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/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 = { "searchQueries": ["cartier trinity ring"] }

# Run the Actor and wait for it to finish
run = client.actor("themineworks/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 '{
  "searchQueries": [
    "cartier trinity ring"
  ]
}' |
apify call themineworks/pinterest-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/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/zymGF2cZ2ibLB4Vf5/builds/6YdgBAlEffStFAdjC/openapi.json
