# Pinterest Keyword Search - Full Pin Details & Images (`ryyos/pinterest-keyword-search-scraper`) Actor

\[$1/1000] Search Pinterest by keyword and get every pin's full details - board, pinner, stats and ready-to-download original image URLs. No login needed.

- **URL**: https://apify.com/ryyos/pinterest-keyword-search-scraper.md
- **Developed by:** [Rio Dwi Saputra](https://apify.com/ryyos) (community)
- **Categories:** Social media, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 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.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

### What does Pinterest Keyword Search Scraper do?

**Pinterest Keyword Search Scraper** searches [Pinterest](https://www.pinterest.com) by keyword and returns every matching pin with full details in a single run - title, description, board, pinner info, engagement stats, and a **direct, ready-to-download image URL at original resolution** for each pin. No Pinterest login, no browser, no captcha-solving required - it talks directly to Pinterest's own public search API.

Try it with any keyword - product ideas, design inspiration, recipes, fashion trends - and get structured, exportable data back in seconds. Run it on demand, on a schedule, or wire it into your pipeline via the [Apify API](https://docs.apify.com/api/v2) and integrations (Zapier, Make, Google Sheets, and more).

### Why use Pinterest Keyword Search Scraper?

- **Market and trend research** - see what content, products, and visuals are trending around a topic on Pinterest.
- **Content and design inspiration at scale** - collect hundreds of reference images for a mood board, campaign, or product line without manual browsing.
- **Image dataset building** - every result ships with a direct original-resolution image URL, ready to bulk-download for ML datasets, catalogs, or archives.
- **Competitive and influencer monitoring** - track which boards and pinners are ranking for keywords relevant to your niche.

### How to use Pinterest Keyword Search Scraper

1. Click **Try for free** (or **Run**) on this Actor's page.
2. Open the **Input** tab, keep **Mode** set to `search`, and enter one or more keywords under **Search keywords**.
3. Set **Max results per keyword** (default 50) and, if you want full engagement stats per pin, enable **Include full pin details**.
4. Click **Start** and wait for the run to finish.
5. Open the **Output** tab to preview results as a table, or export the dataset as JSON, CSV, Excel, or HTML.

Already have specific pin URLs and just want their full details? Switch **Mode** to `pin_detail` and paste the pin URLs (or bare pin IDs) instead of searching.

### Input

The Actor has two modes, selected via the **Mode** field:

| Mode | What it does | Key fields |
|---|---|---|
| `search` | Search Pinterest by keyword and return matching pins | `searchQueries`, `maxResultsPerQuery`, `includeFullDetails` |
| `pin_detail` | Fetch full details for specific pins you already know | `pinUrls` |

`proxyConfiguration` (optional, available in both modes) routes requests through [Apify Proxy](https://apify.com/proxy) - recommended for larger runs to reduce the chance of Pinterest rate-limiting requests.

See the **Input** tab or `.actor/input_schema.json` for the full field list and defaults.

Example input for `search` mode:

```json
{
  "mode": "search",
  "searchQueries": ["minimalist logo design", "cottagecore aesthetic"],
  "maxResultsPerQuery": 50,
  "includeFullDetails": true
}
```

### Output

Each dataset item is one Pinterest pin. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

```json
{
  "pinId": "37717715627875388",
  "pinUrl": "https://www.pinterest.com/pin/37717715627875388/",
  "title": "Create Your Perfect Business Logo Online",
  "description": "Create your perfect brand logo online with our logo maker.",
  "link": "https://example.com/logo-maker",
  "domain": "example.com",
  "imageUrl": "https://i.pinimg.com/originals/a6/57/fe/a657fe23e61f4d94f67ad7eeb28df433.jpg",
  "imageWidth": 2048,
  "imageHeight": 2048,
  "thumbnailUrl": "https://i.pinimg.com/236x/a6/57/fe/a657fe23e61f4d94f67ad7eeb28df433.jpg",
  "pinnerUsername": "hadarba7",
  "pinnerFullName": "hadar ben ami",
  "boardName": "Logo designs",
  "boardUrl": "https://www.pinterest.com/hadarba7/logo-designs/",
  "commentCount": 0,
  "saveCount": 8,
  "shareCount": 2,
  "reactionCount": 31,
  "isVideo": false,
  "searchKeyword": "minimalist logo design"
}
```

#### Data table

| Field | Description |
|---|---|
| `pinId` / `pinUrl` | Pinterest's pin ID and its canonical page URL |
| `title` / `description` | Pin text content |
| `imageUrl` | Direct, downloadable image URL at original resolution |
| `imageWidth` / `imageHeight` | Original image dimensions in pixels |
| `thumbnailUrl` | Smaller 236px preview URL |
| `link` / `domain` | External destination the pin points to, if any |
| `pinnerUsername` / `pinnerFullName` / `pinnerFollowerCount` | The pin's author |
| `boardName` / `boardUrl` | The board the pin belongs to |
| `commentCount` / `saveCount` / `shareCount` / `reactionCount` | Engagement stats (full detail requests only) |
| `isVideo` | Whether the pin is a video pin |
| `searchKeyword` | The keyword that returned this pin (`search` mode only) |

### Pricing / Cost estimation

Pinterest Keyword Search Scraper is priced at **$1 per 1,000 results** - cheaper than comparable Pinterest scrapers on Apify Store. A run collecting 500 pins for a handful of keywords typically finishes in well under a minute of platform time. Enabling **Include full pin details** adds one extra request per pin, so runs take proportionally longer but stay well within typical free-tier usage for small to medium jobs.

### Tips and advanced options

- Leave **Include full pin details** off for the fastest, lightest runs when you only need images, titles, and board/pinner info.
- Turn it on when you need engagement stats (saves, comments, shares) for ranking or filtering results.
- Enable **Proxy configuration** for large multi-keyword runs to reduce the chance of temporary rate-limiting.
- Use `pin_detail` mode to re-fetch or refresh data for a known set of pins without re-running a search.

### FAQ, disclaimers, and support

This Actor only reads publicly accessible Pinterest pages and data - it does not require login credentials and does not access private boards or accounts. It is intended for legitimate research, inspiration gathering, and dataset building. Always review [Pinterest's Terms of Service](https://policy.pinterest.com/en/terms-of-service) and respect content ownership and copyright when reusing images.

Pinterest occasionally changes its internal page structure, which may require an update to this Actor. If you notice missing or malformed results, please report it via the **Issues** tab on this Actor's page. Need a custom version (extra fields, board scraping, profile scraping)? Reach out through the Issues tab as well.

# Actor input Schema

## `mode` (type: `string`):

Choose what to fetch. Other fields below only apply to the selected mode (see the '(mode: ...)' prefix on each field) - the Apify input schema does not support conditional show/hide.

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

(mode: search) One or more keywords to search on Pinterest, e.g. 'minimalist logo design'. Each keyword is scraped separately.

## `maxResultsPerQuery` (type: `integer`):

(mode: search) Maximum number of pins to fetch for each keyword.

## `includeFullDetails` (type: `boolean`):

(mode: search) When enabled, each result also gets an extra request to fetch full stats (comment count, save count, share count, full description). Slower but more complete - leave off for fast, lightweight runs.

## `pinUrls` (type: `array`):

(mode: pin\_detail) Pinterest pin URLs (e.g. https://www.pinterest.com/pin/1234567890/) or bare numeric pin IDs to fetch full details for.

## `proxyConfiguration` (type: `object`):

Recommended for larger runs to reduce the chance of Pinterest rate-limiting requests. Leave off for small test runs.

## Actor input object example

```json
{
  "mode": "search",
  "searchQueries": [
    "minimalist logo design"
  ],
  "maxResultsPerQuery": 50,
  "includeFullDetails": false,
  "pinUrls": [
    "https://www.pinterest.com/pin/1234567890/"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (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": [
        "minimalist logo design"
    ],
    "pinUrls": [
        "https://www.pinterest.com/pin/1234567890/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ryyos/pinterest-keyword-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": ["minimalist logo design"],
    "pinUrls": ["https://www.pinterest.com/pin/1234567890/"],
}

# Run the Actor and wait for it to finish
run = client.actor("ryyos/pinterest-keyword-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": [
    "minimalist logo design"
  ],
  "pinUrls": [
    "https://www.pinterest.com/pin/1234567890/"
  ]
}' |
apify call ryyos/pinterest-keyword-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ryyos/pinterest-keyword-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/padVLPnTbUJ5UVldk/builds/LiGMlkZKyd1iyK9sk/openapi.json
