# Pinterest Data Scraper (`devcake/pinterest-data-scraper`) Actor

Extract pins, boards, profiles, search, and comments from Pinterest. Get rich metadata, engagement metrics, product pins, and creator info in clean JSON. No login needed.

- **URL**: https://apify.com/devcake/pinterest-data-scraper.md
- **Developed by:** [devcake](https://apify.com/devcake) (community)
- **Categories:** Social media, E-commerce, Lead generation
- **Stats:** 41 total users, 9 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 All-in-One Scraper

Extract comprehensive data from Pinterest including **pins**, **boards**, **user profiles**, **search results**, and **comments**. Get 50+ fields per pin, 50+ fields per profile, and nested comment threads in clean JSON format.

### ✨ Features

- 🔗 **Multiple URL Types** — Scrape pins, boards, user profiles, and search results
- 🖼️ **All Image Sizes** — Extract every resolution (236x, 474x, 564x, 736x, orig)
- 📊 **Engagement Metrics** — Get saves, reactions, shares, and comment counts
- 💬 **Comments with Nested Replies** — Extract full comment threads including replies
- 🛍️ **Product Pin Detection** — 40+ e-commerce fields for shopping pins (prices, stock, merchant info, ratings)
- 👤 **Original Creator Tracking** — Distinguish repinner from original creator (product pins)
- 🚀 **No Login Required** — Works without cookies for most operations
- 🌐 **Proxy Support** — Built-in Apify Proxy integration for reliability
- 📦 **Structured Output** — Clean JSON dataset with all pin/profile metadata

### 💡 Use Cases

| Use Case | Description |
|----------|-------------|
| **Market Research** | Track trending topics, styles, and engagement across niches |
| **Competitive Intelligence** | Monitor competitor pins, boards, and product pricing |
| **Content Planning** | Discover popular visual themes and formats in your industry |
| **Influencer Discovery** | Identify creators by followers, engagement, and verification |
| **E-commerce Research** | Extract 40+ product fields with prices, stock, merchant data |
| **Data Analytics** | Feed clean data into dashboards and analysis tools |

### 💰 Pricing

**Pay per use model** — Only pay for what you extract.

| Item | Price |
|------|-------|
| **All-in-One Subscription** | $25/month (unlimited scraping) |
| **Specialized Actors** | $4 per 1,000 results |

### 🔗 Other Pinterest Scrapers

Looking for specialized scraping tools? Check out our focused Pinterest actors above in the **Pricing** section — each optimized for specific use cases with competitive pay-per-event pricing.

| 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) |
| 📁 **Pinterest Board Scraper** | $4 per 1,000 pins | [View Actor](https://apify.com/devcake/pinterest-board-scraper) |

### 🎯 What You Get

#### Pin Data (50+ fields)

| Category | Fields |
|----------|--------|
| **Basic** | id, url, type, node\_id, title, description, dominant\_color |
| **Media** | images (236x, 474x, 564x, 736x, orig with dimensions), videos |
| **Engagement** | saves, like\_count, reaction\_count, comment\_count, repin\_count, share\_count |
| **Pinner** | id, username, full\_name, avatar\_url, follower\_count, type |
| **Board** | id, name, url, pin\_count, follower\_count |
| **Original Creator** | id, username, full\_name, follower\_count (product pins only) |
| **Timestamps** | created\_at, closeup\_description, description\_html |

#### Product Pin Data (40+ e-commerce fields)

| Category | Fields |
|----------|--------|
| **Detection** | is\_product\_pin, price\_currency, is\_oos\_product, is\_stale\_product |
| **Products** | products\[] with id, name, price, standard\_price, min\_price, max\_price, in\_stock |
| **Merchant** | official\_merchant (id, username, full\_name, follower\_count, is\_verified, avatar\_url) |
| **Ratings** | aggregate\_rating (rating\_value, rating\_count, review\_count) |
| **Links** | tracked\_link, rich\_metadata\_url, tracking\_params |
| **SEO** | seo\_breadcrumbs\[], visual\_annotations\[], annotations\_with\_links\[], seo\_canonical\_url |
| **Details** | site\_name, domain, ships\_to\_user\_country, affiliate\_disclosure |

#### Profile Data (50+ fields)

| Category | Fields |
|----------|--------|
| **Basic** | id, node\_id, url, type, username, full\_name, first\_name, last\_name |
| **About** | bio, location |
| **Images** | avatar\_url, image\_medium\_url, profile\_cover |
| **Stats** | follower\_count, following\_count, pin\_count, board\_count |
| **Verification** | verified, is\_partner, is\_verified\_merchant, domain\_verified |
| **Business** | is\_gco\_account, business\_account, catalog\_available |
| **Website** | website\_url, instagram\_data |
| **Contact** | contact\_email |
| **SEO** | indexed\_text, eligible\_profile\_tabs |
| **Content** | pins\[], collections\[] (boards with full metadata) |

#### Board Data (40+ fields)

| Category | Fields |
|----------|--------|
| **Basic** | id, name, description, url, privacy |
| **Stats** | pin\_count, follower\_count |
| **Owner** | id, username, full\_name, avatar\_url, follower\_count |
| **Cover** | cover\_image\_url |
| **Collaboration** | collaborator\_count, is\_collaborative |

#### Comments (with nested replies)

| Field | Description |
|-------|-------------|
| **id** | Comment ID |
| **pin\_id** | Parent pin ID |
| **text** | Comment text |
| **created\_at** | Creation timestamp |
| **pinner** | Author username and full\_name |
| **like\_count** | Number of likes |
| **replies** | Array of nested replies with same structure |

### 📝 Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `startUrls` | array | No | Pinterest URLs to scrape (pins, boards, profiles) |
| `searchQueries` | array | No | Search terms to find pins |
| `maxResults` | integer | No | Max pins per source (1-250, 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) |

#### Supported URL Formats

```
Pin:     https://www.pinterest.com/pin/123456789/
Board:   https://www.pinterest.com/username/board-name-123/
Profile: https://www.pinterest.com/username/
Search:  https://www.pinterest.com/search/pins/?q=vintage+furniture
```

### 📤 Output

#### Pin Output Example

```json
{
  "id": "109916047150383819",
  "url": "https://www.pinterest.com/pin/109916047150383819/",
  "type": "pin",
  "title": "Coffee Aesthetic",
  "description": "A cup of coffee...",
  "dominant_color": "#FFFFFF",
  "images": {
    "236x": {"url": "https://i.pinimg.com/236x/ab/c3/ef/ab3cef.jpg", "width": 236, "height": 236},
    "474x": {"url": "https://i.pinimg.com/474x/ab/c3/ef/ab3cef.jpg", "width": 474, "height": 474},
    "564x": {"url": "https://i.pinimg.com/564x/ab/c3/ef/ab3cef.jpg", "width": 564, "height": 564},
    "736x": {"url": "https://i.pinimg.com/736x/ab/c3/ef/ab3cef.jpg", "width": 736, "height": 736},
    "orig": {"url": "https://i.pinimg.com/originals/ab/c3/ef/ab3cef.jpg"}
  },
  "videos": null,
  "saves": 1234,
  "like_count": 56,
  "reaction_count": 0,
  "comment_count": 12,
  "repin_count": 45,
  "share_count": 5,
  "pinner": {
    "id": "109916047150383820",
    "type": "user",
    "username": "username",
    "full_name": "Full Name",
    "avatar_url": "https://i.pinimg.com/75x75_RS/ab/c3/ef/ab3cef.jpg",
    "follower_count": 1234
  },
  "board": {
    "id": "109916047150383821",
    "name": "Board Name",
    "url": "https://www.pinterest.com/username/board-name/"
  },
  "original_creator": {
    "id": "109916047150383822",
    "username": "original_author",
    "full_name": "Original Author",
    "follower_count": 5000
  },
  "created_at": "2024-01-01T00:00:00Z"
}
```

#### Product Pin Output Example (40+ e-commerce fields)

```json
{
  "id": "123456789012345",
  "url": "https://www.pinterest.com/pin/123456789012345/",
  "title": "Urban Ruched Plain Midi Skirt",
  "description": "Stylish midi skirt from SHEIN",
  "domain": "us.shein.com",
  "is_product_pin": true,
  "price_currency": "USD",
  "is_oos_product": false,
  "is_stale_product": false,
  "images": {
    "236x": {"url": "https://i.pinimg.com/236x/..."},
    "474x": {"url": "https://i.pinimg.com/474x/..."},
    "564x": {"url": "https://i.pinimg.com/564x/..."},
    "736x": {"url": "https://i.pinimg.com/736x/..."},
    "orig": {"url": "https://i.pinimg.com/originals/..."}
  },
  "pinner": {
    "username": "SHEINofficial",
    "full_name": "SHEIN",
    "avatar_url": "https://i.pinimg.com/75x75_RS/...",
    "follower_count": 8135012
  },
  "products": [
    {
      "id": "276790249248944",
      "name": "Urban Ruched Plain Midi Skirt",
      "price": "US$12.99",
      "standard_price": "US$24.99",
      "min_price": null,
      "max_price": null,
      "in_stock": true
    }
  ],
  "site_name": "SHEIN",
  "official_merchant": {
    "id": "144537606699354878",
    "username": "SHEINofficial",
    "full_name": "SHEIN",
    "follower_count": 8135012,
    "is_verified_merchant": true,
    "avatar_url": "https://i.pinimg.com/75x75_RS/..."
  },
  "tracked_link": "https://us.shein.com/urban-ruched-plain-midi-skirt.html",
  "aggregate_rating": {
    "rating_value": 4.5,
    "rating_count": 123,
    "review_count": 100
  },
  "seo_breadcrumbs": [
    {"name": "Women", "url": "/ideas/women-fashion/..."},
    {"name": "Skirts", "url": "/ideas/skirts/..."}
  ],
  "visual_annotations": ["Midi Skirt", "Ruched Skirt", "Casual Wear"],
  "saves": 1234,
  "like_count": 56
}
```

#### Profile Output Example

```json
{
  "id": "623185804595825927",
  "node_id": "623185804595825927",
  "url": "https://pinterest.com/username/",
  "type": "user",
  "username": "username",
  "full_name": "Full Name",
  "first_name": "Full",
  "last_name": "Name",
  "bio": "Description here",
  "location": "New York, USA",
  "avatar_url": "https://i.pinimg.com/280x280_RS/...",
  "image_medium_url": "https://i.pinimg.com/400x400_RS/...",
  "profile_cover": "https://i.pinimg.com/..."
  "follower_count": 1234,
  "following_count": 56,
  "pin_count": 7618,
  "board_count": 22,
  "verified": false,
  "is_partner": true,
  "is_verified_merchant": false,
  "is_gco_account": false,
  "business_account": true,
  "domain_verified": true,
  "website_url": "https://example.com",
  "instagram_data": null,
  "contact_email": "contact@example.com",
  "indexed_text": "..."
}
```

#### Board Output Example

```json
{
  "id": "623185804595825928",
  "name": "Board Name",
  "description": "Board description here",
  "url": "https://www.pinterest.com/username/board-name/",
  "pin_count": 150,
  "follower_count": 500,
  "privacy": "PUBLIC",
  "collaborator_count": 0,
  "is_collaborative": false,
  "cover_image_url": "https://i.pinimg.com/..."
  "owner": {
    "id": "623185804595825927",
    "username": "username",
    "full_name": "Full Name",
    "avatar_url": "https://i.pinimg.com/75x75_RS/...",
    "follower_count": 1234
  }
}
```

#### Comments Output Example (nested replies)

```json
{
  "id": "comment_123",
  "pin_id": "123456789012345",
  "text": "Where can I buy this?",
  "created_at": "2024-01-15T10:30:00Z",
  "pinner": {
    "username": "user1",
    "full_name": "User One"
  },
  "like_count": 5,
  "replies": [
    {
      "id": "reply_456",
      "pin_id": "123456789012345",
      "text": "It's from IKEA!",
      "created_at": "2024-01-15T11:00:00Z",
      "pinner": {
        "username": "user2",
        "full_name": "User Two"
      },
      "like_count": 2,
      "replies": []
    }
  ]
}
```

### 🚀 Usage Examples

#### Basic Pin Scraping

```json
{
  "startUrls": [
    {"url": "https://www.pinterest.com/pin/123456789/"}
  ],
  "maxResults": 50
}
```

#### Search Queries

```json
{
  "searchQueries": ["coffee aesthetic", "vintage furniture"],
  "maxResults": 25
}
```

#### With Comments

```json
{
  "startUrls": [
    {"url": "https://www.pinterest.com/pin/123456789/"}
  ],
  "includeComments": true,
  "maxComments": 50
}
```

#### With Proxy

```json
{
  "startUrls": [
    {"url": "https://www.pinterest.com/pin/123456789/"}
  ],
  "maxResults": 100,
  "proxyConfig": {
    "useApifyProxy": true
  }
}
```

### 💡 Tips

- Filter by `is_product_pin: true` to get only product pins with e-commerce data
- Use `products[].price` vs `products[].standard_price` to calculate discounts
- Check `official_merchant.is_verified_merchant` for trusted sellers
- Monitor `is_oos_product` for stock status changes
- Extract nested replies from `comments[].replies[]` for full conversation context
- Use `seo_breadcrumbs` and `visual_annotations` for product categorization
- Profile data includes `pins[]` (recent pin URLs) and `collections[]` (boards with metadata)

# Actor input Schema

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

Add Pinterest URLs to scrape. Supports: pins (/pin/123/), boards (/username/board-123/), profiles (/username/), searches (/search/pins/?q=query), and ideas (/ideas/category/123/)

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

Enter search terms to find pins on Pinterest (optional if URLs are provided)

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

Maximum number of pins to scrape from each URL or search query

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

Fetch comments for each pin. 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.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.pinterest.com/pin/320529698499610833/"
    },
    {
      "url": "https://www.pinterest.com/designmilk/"
    },
    {
      "url": "https://www.pinterest.com/nike/nike-air-max/"
    },
    {
      "url": "https://www.pinterest.com/search/pins/?q=interior+design"
    },
    {
      "url": "https://www.pinterest.com/ideas/general-ideas/939271767955/"
    }
  ],
  "searchQueries": [],
  "maxResults": 25,
  "includeComments": false,
  "maxComments": 10
}
```

# Actor output Schema

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

Complete dataset with all scraped items

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

Pinterest search results with engagement metrics - optimized for SEO and trend analysis

## `profiles` (type: `string`):

Pinterest user profiles with influencer and business data - verification status, follower counts, contact emails

# 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/pin/320529698499610833/"
        },
        {
            "url": "https://www.pinterest.com/designmilk/"
        },
        {
            "url": "https://www.pinterest.com/nike/nike-air-max/"
        },
        {
            "url": "https://www.pinterest.com/search/pins/?q=interior+design"
        },
        {
            "url": "https://www.pinterest.com/ideas/general-ideas/939271767955/"
        }
    ],
    "searchQueries": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("devcake/pinterest-data-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/pin/320529698499610833/" },
        { "url": "https://www.pinterest.com/designmilk/" },
        { "url": "https://www.pinterest.com/nike/nike-air-max/" },
        { "url": "https://www.pinterest.com/search/pins/?q=interior+design" },
        { "url": "https://www.pinterest.com/ideas/general-ideas/939271767955/" },
    ],
    "searchQueries": [],
}

# Run the Actor and wait for it to finish
run = client.actor("devcake/pinterest-data-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/pin/320529698499610833/"
    },
    {
      "url": "https://www.pinterest.com/designmilk/"
    },
    {
      "url": "https://www.pinterest.com/nike/nike-air-max/"
    },
    {
      "url": "https://www.pinterest.com/search/pins/?q=interior+design"
    },
    {
      "url": "https://www.pinterest.com/ideas/general-ideas/939271767955/"
    }
  ],
  "searchQueries": []
}' |
apify call devcake/pinterest-data-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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