# Pinterest Scraper (`novashieldai/pinterest-scraper`) Actor

Scrape Pinterest for pins, boards, and user profiles. Search pins by keyword, get pin details, user profiles with follower counts, and board contents with all pin data.

- **URL**: https://apify.com/novashieldai/pinterest-scraper.md
- **Developed by:** [Ali haydar Karadaş](https://apify.com/novashieldai) (community)
- **Categories:** Social media, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Scraper

Pinterest Scraper extracts pins, boards, and user profiles from Pinterest into structured JSON data. Built for content marketers, trend researchers, and anyone who needs Pinterest data at scale without manual scrolling.

### What does Pinterest Scraper do?

This actor has four modes that cover everything you'd want to pull from Pinterest. **Search** finds pins by keyword with sorting options for relevance, recency, or popularity. **Pin** fetches full details for a specific pin including rich metadata, image dimensions, tags, and embed data. **User** pulls a complete profile -- follower counts, bio, monthly views, boards, and more. **Board** extracts board details along with all pins inside it.

You can pass either IDs or full Pinterest URLs -- the scraper figures out what you mean. Want pins from a specific board? Just paste the board URL. Want details on a pin? Paste the pin link or enter the numeric ID. It handles both.

Results include image URLs at full resolution, save counts, comment counts, and external links. For video pins, you get embed data too.

### What data do you get?

**Pin results:**
- **id**, **title**, **description**
- **image_url**, **image_urls** (multiple resolutions)
- **link** (external URL from the pin)
- **pinner_name**, **pinner_username**, **board_name**
- **save_count**, **comment_count**, **url**
- **is_video**, **created_at**

**Pin details (additional):**
- **rich_metadata** (article, recipe, product data)
- **source_url**, **dominant_color**, **width**, **height**
- **embed** (video embed data), **tags**, **related_pins_count**

**User profiles:**
- **username**, **name**, **bio**
- **follower_count**, **following_count**, **pin_count**, **board_count**
- **avatar_url**, **is_verified**, **monthly_views**
- **website**, **location**, **boards** (list of user's boards)

**Board results:**
- **id**, **name**, **slug**, **description**
- **pin_count**, **follower_count**, **owner_username**
- **cover_image**, **url**, **is_secret**, **created_at**

### Who is this for?

- **Content marketers** -- research trending pins and popular content formats for your niche
- **E-commerce brands** -- find product inspiration and track competitor Pinterest strategies
- **Social media managers** -- analyze board structures and pin performance metrics
- **Trend researchers** -- identify visual trends across categories at scale
- **Developers** -- build Pinterest analytics tools or content recommendation engines

### How to use it

1. Open the actor in Apify Console and select a mode (search, pin, user, or board).
2. Enter your search query, pin ID/URL, username, or board URL.
3. Set the sort order and result limit if needed.
4. Click "Start" to run the scraper.
5. Export results as JSON, CSV, or Excel from the Dataset tab.

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| mode | string | search | Scraping mode: search, pin, user, or board |
| query | string | -- | Search keywords (for search mode) |
| pin_id | string | -- | Pin ID or full Pinterest pin URL (for pin mode) |
| username | string | -- | Pinterest username or profile URL (for user and board modes) |
| board_url | string | -- | Full Pinterest board URL (for board mode) |
| board_slug | string | -- | Board URL slug -- requires username (for board mode) |
| sort | string | -- | Sort order: relevance, recency, or popularity |
| limit | integer | 25 | Maximum results to return (1-250) |

### Sample output

```json
{
  "id": "846254323178",
  "title": "Modern Living Room Decor Ideas",
  "description": "Minimalist living room design with neutral tones and natural textures",
  "image_url": "https://i.pinimg.com/originals/ab/cd/ef/abcdef123456.jpg",
  "image_urls": [
    "https://i.pinimg.com/150x150/ab/cd/ef/abcdef123456.jpg",
    "https://i.pinimg.com/564x/ab/cd/ef/abcdef123456.jpg",
    "https://i.pinimg.com/originals/ab/cd/ef/abcdef123456.jpg"
  ],
  "link": "https://www.designblog.com/modern-living-room",
  "pinner_name": "Interior Design Daily",
  "pinner_username": "interiordesigndaily",
  "board_name": "Living Room Inspiration",
  "save_count": 4823,
  "comment_count": 42,
  "url": "https://www.pinterest.com/pin/846254323178",
  "is_video": false,
  "created_at": "2026-03-15T10:30:00Z"
}
````

### How much does it cost?

Each result costs **$0.003**. Scraping 1,000 pins costs $3, and 10,000 pins costs $30.

Apify gives every new user $5 in free monthly credits, so you can scrape roughly 1,600 results for free.

### Common questions

**Can I get full-resolution images?**
Yes. The scraper returns image URLs at multiple resolutions, including the original full-size version.

**Does it work with private boards?**
No. The scraper can only access publicly visible content. Private and secret boards are not accessible.

**Can I scrape all pins from a specific board?**
Yes. Use board mode and provide the board URL or the username plus board slug. Set the limit high enough to capture all pins.

### Contact & Custom Solutions

Need a custom scraper, higher volume, or a specific integration? We're here to help.

If anything isn't working right or you need support, don't hesitate to reach out.

- Telegram: [t.me/novashield\_dev](https://t.me/novashield_dev)
- Email: novashield.dev@gmail.com

# Actor input Schema

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

Scraping mode: search pins, get pin details, user profile, or board contents

## `query` (type: `string`):

Search keywords (for 'search' mode)

## `pin_id` (type: `string`):

Pin ID (numeric) or full Pinterest pin URL (for 'pin' mode)

## `username` (type: `string`):

Pinterest username or profile URL (for 'user' and 'board' modes)

## `board_url` (type: `string`):

Full Pinterest board URL (for 'board' mode)

## `board_slug` (type: `string`):

Board URL slug — requires username (for 'board' mode)

## `sort` (type: `string`):

Sort order for search results

## `limit` (type: `integer`):

Max Results

## Actor input object example

```json
{
  "mode": "search",
  "query": "home decor ideas",
  "limit": 25
}
```

# 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 = {
    "query": "home decor ideas"
};

// Run the Actor and wait for it to finish
const run = await client.actor("novashieldai/pinterest-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 = { "query": "home decor ideas" }

# Run the Actor and wait for it to finish
run = client.actor("novashieldai/pinterest-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 '{
  "query": "home decor ideas"
}' |
apify call novashieldai/pinterest-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Pinterest Scraper",
        "description": "Scrape Pinterest for pins, boards, and user profiles. Search pins by keyword, get pin details, user profiles with follower counts, and board contents with all pin data.",
        "version": "1.0",
        "x-build-id": "tRKh76WDdIzFSb1D4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/novashieldai~pinterest-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-novashieldai-pinterest-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/novashieldai~pinterest-scraper/runs": {
            "post": {
                "operationId": "runs-sync-novashieldai-pinterest-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/novashieldai~pinterest-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-novashieldai-pinterest-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "pin",
                            "user",
                            "board"
                        ],
                        "type": "string",
                        "description": "Scraping mode: search pins, get pin details, user profile, or board contents",
                        "default": "search"
                    },
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search keywords (for 'search' mode)"
                    },
                    "pin_id": {
                        "title": "Pin ID or URL",
                        "type": "string",
                        "description": "Pin ID (numeric) or full Pinterest pin URL (for 'pin' mode)"
                    },
                    "username": {
                        "title": "Username",
                        "type": "string",
                        "description": "Pinterest username or profile URL (for 'user' and 'board' modes)"
                    },
                    "board_url": {
                        "title": "Board URL",
                        "type": "string",
                        "description": "Full Pinterest board URL (for 'board' mode)"
                    },
                    "board_slug": {
                        "title": "Board Slug",
                        "type": "string",
                        "description": "Board URL slug — requires username (for 'board' mode)"
                    },
                    "sort": {
                        "title": "Sort",
                        "enum": [
                            "relevance",
                            "recency",
                            "popularity"
                        ],
                        "type": "string",
                        "description": "Sort order for search results"
                    },
                    "limit": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 250,
                        "type": "integer",
                        "description": "Max Results",
                        "default": 25
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
