# Pinterest Board Scraper (`devcake/pinterest-board-scraper`) Actor

Download Pinterest boards with all pins including board metadata (name, description, cover, pin count), owner profiles with follower counts, Content migration, inspiration backup, and competitive research.

- **URL**: https://apify.com/devcake/pinterest-board-scraper.md
- **Developed by:** [devcake](https://apify.com/devcake) (community)
- **Categories:** E-commerce, SEO tools, Social media
- **Stats:** 84 total users, 4 monthly users, 97.5% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $4.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

## 📁 Pinterest Board Downloader

Download all pins from Pinterest boards with complete metadata including images, descriptions, engagement metrics, and creator information. Perfect for content migration, inspiration gathering, and backups.

### ✨ Features

- 📁 **Complete Board Extraction** — All pins from any public board
- 🖼️ **All Image Sizes** — Get every resolution (236x, 474x, 564x, 736x, orig)
- 📊 **Engagement Metrics** — Saves, likes, comments, repins for each pin
- 👤 **Creator Details** — Pinner username, full name, avatar, follower count
- 📦 **Board Metadata** — Name, description, pin count, follower count, owner
- 🛍️ **Product Data** — Detect and extract product pins with pricing
- 💬 **Comments Support** — Extract comments when enabled
- 🚀 **Pure API** — 10x faster than browser-based scrapers
- 🌐 **Proxy Support** — Built-in Apify Proxy integration

### 💡 Use Cases

| Use Case | Description |
|----------|-------------|
| **Content Migration** | Move pins from one account to another |
| **Inspiration Collection** | Download trending boards for reference |
| **Board Backups** | Archive your favorite boards locally |
| **Competitive Analysis** | Study competitor board strategies |
| **Product Research** | Find products across curated collections |
| **Content Repurposing** | Use downloaded images for other platforms |

### 💰 Pricing

**Pay per use** — $4 per 1,000 pins

No subscriptions, no commitments, no hidden fees. Control your spending with the Maximum Cost Per Run option.

### 🔗 Other Pinterest Scrapers

Need different Pinterest data? We offer specialized tools for every use case:

| Actor | Pricing | Link |
|-------|---------|------|
| 📎 **Pinterest Pin Scraper** | $4 per 1,000 pins | [View Actor](https://apify.com/devcake/pinterest-pin-scraping) |
| 🔍 **Pinterest Search Scraper** | $4 per 1,000 results | [View Actor](https://apify.com/devcake/pinterest-search-scraper) |
| 👤 **Pinterest Profile Scraper** | $4 per 1,000 profiles | [View Actor](https://apify.com/devcake/pinterest-profile-scraper) |
| 🎯 **All-in-One Pinterest Scraper** | $25/month unlimited | [View Actor](https://apify.com/devcake/pinterest-data-scraper) |

### 📝 Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `startUrls` | array | ✅ Yes | Pinterest board URLs |
| `maxResults` | integer | No | Max pins per board (1-1000, default: 25) |
| `includeComments` | boolean | No | Fetch comments for each pin |
| `maxComments` | integer | No | Max comments per pin (1-100) |
| `proxyConfig` | object | No | Proxy configuration (recommended) |
| `maxTotalChargeUsd` | number | No | Spending limit per run (default: $10) |

#### Supported URL Formats

```
https://www.pinterest.com/username/board-name-123456/
https://www.pinterest.com/username/board-name/
```

### 📤 Output

Each pin includes 40+ data fields. Key fields include:

#### Basic Data

- `id`, `url`, `title`, `description`, `domain`, `category`
- `images.236x`, `images.474x`, `images.564x`, `images.736x`, `images.orig`

#### Engagement

- `saves`, `like_count`, `comment_count`, `repin_count`, `share_count`

#### Creator

- `pinner` — Username, full name, avatar, follower count, verification
- `original_creator` — Original pin source for repin analysis

#### Board Info

- `board` — Name, URL, privacy, pin count, owner details
- `board_url` — Source board URL (for all pins)

#### Product Data (When Available)

- `is_product_pin` — Product pin flag
- `products` — Array with name, price, original price, stock status
- `site_name` — Source website
- `official_merchant` — Verification status, followers
- `aggregate_rating` — Rating value, rating count
- `tracked_link` — Direct product URL

### 🎯 Example

```json
{
  "startUrls": [
    {"url": "https://www.pinterest.com/designmilk/interior-design-123456/"}
  ],
  "maxResults": 500,
  "maxTotalChargeUsd": 25
}
```

```json
{
  "id": "123456789",
  "url": "https://www.pinterest.com/pin/123456789/",
  "title": "Minimalist Living Room Design",
  "board_url": "https://www.pinterest.com/designmilk/interior-design-123456/",
  "images": {
    "236x": {"url": "https://i.pinimg.com/236x/..."},
    "474x": {"url": "https://i.pinimg.com/474x/..."},
    "736x": {"url": "https://i.pinimg.com/736x/..."}
  },
  "saves": 2453,
  "pinner": {"username": "designenthusiast", "follower_count": 8900},
  "board": {"name": "Interior Design", "pin_count": 342},
  "is_product_pin": false
}
```

### 🚀 Getting Started

1. **Add board URLs** — Enter Pinterest board URLs
2. **Set max results** — Control how many pins per board (up to 1000, default: 25)
3. **Enable comments** (optional) — Fetch comments with nested replies for each pin
4. **Enable proxy** (recommended) — Use Apify Proxy for reliability
5. **Run** — Get all pins in JSON format

### 💡 Tips

- **Content Migration**: Download all pins, then upload to your new board
- **Inspiration存档**: Archive trending boards for offline reference
- **Product Discovery**: Use `is_product_pin` filter to find product pins in any board
- **Creator Research**: Study `original_creator` to find original content sources
- **Engagement Analysis**: Compare `saves` and `repin_count` to identify top-performing content

***

### ❓ FAQ

**Q: Can I download private boards?**
A: Only public boards can be accessed without authentication. For private boards, add Pinterest login cookies.

**Q: How many pins can I download per board?**
A: Up to 1,000 pins per board. For very large boards, multiple runs may be needed.

**Q: Does this include board description and metadata?**
A: Yes! The output includes board metadata (name, pin count, follower count, owner) plus all pins.

**Q: Can I get comments on board pins?**
A: Yes! Enable `includeComments: true` to fetch comments with nested replies for each pin.

**Q: What image sizes are available?**
A: Standard Pinterest sizes: 236x, 474x, 564x, 736x, and original resolution.

***

### ⚠️ Troubleshooting

**Getting blocked?**

- Enable Apify Proxy in the input (recommended)
- Lower `maxResults` to reduce request volume
- Add a `maxTotalChargeUsd` limit for controlled spending

**Missing some pins?**

- Some pins may have been deleted by the owner
- Check if board has more pins than your `maxResults` limit
- Private or reported pins may be filtered out

**Board not found?**

- Verify the URL format (username/board-name-id/)
- Check if the board exists and is public
- Try accessing the board in a browser first

**Slow downloads?**

- Large boards take time to scrape fully
- Use `maxResults` to limit scope for faster runs
- Consider multiple runs for very large boards

**Need help?** Contact us through Apify Console or check our documentation.

# Actor input Schema

## `startUrls` (type: `array`):

Add Pinterest board URLs to scrape (e.g., https://www.pinterest.com/username/board-name-123/)

## `maxResults` (type: `integer`):

Maximum number of pins to scrape from each board

## `includeComments` (type: `boolean`):

Fetch comments for each pin in the board. When enabled, includes top-level comments and nested replies.

## `maxComments` (type: `integer`):

Maximum number of comments to fetch per pin (only used when includeComments is true)

## `proxyConfig` (type: `object`):

Configure proxy rotation. Using SHARED\_PROXY is recommended for Pinterest.

## `maxTotalChargeUsd` (type: `number`):

Set a spending limit for this run. The actor will stop when this amount is reached.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.pinterest.com/designmilk/interior-design-123456/"
    }
  ],
  "maxResults": 25,
  "includeComments": false,
  "maxComments": 10,
  "maxTotalChargeUsd": 10
}
```

# Actor output Schema

## `allResults` (type: `string`):

Complete dataset with all board pins

## `overview` (type: `string`):

Pins from boards with original images, all image sizes (236x-orig), videos, engagement metrics, and board metadata with owner information

# 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 = {
    "startUrls": [
        {
            "url": "https://www.pinterest.com/designmilk/interior-design-123456/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("devcake/pinterest-board-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 = { "startUrls": [{ "url": "https://www.pinterest.com/designmilk/interior-design-123456/" }] }

# Run the Actor and wait for it to finish
run = client.actor("devcake/pinterest-board-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.pinterest.com/designmilk/interior-design-123456/"
    }
  ]
}' |
apify call devcake/pinterest-board-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=devcake/pinterest-board-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/AMdF26c5gNJGPlUj0/builds/brCIsDayHIwf4YsDv/openapi.json
