# Pinterest Pins Scraper (`nifty.codes/pinterest-pins-scraper`) Actor

Extract Pins from Pinterest search results, boards, and feeds with titles, images, and save counts. Powered by Pinterest Scraper.

- **URL**: https://apify.com/nifty.codes/pinterest-pins-scraper.md
- **Developed by:** [Nifty](https://apify.com/nifty.codes) (community)
- **Categories:** Social media, Marketing
- **Stats:** 7 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

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

This actor extracts Pins from Pinterest search results, boards, and feeds. It collects visual data, engagement metrics, and pinner information from any page displaying a list of Pins. The data is returned in a structured format for analysis or monitoring.

***

#### Want more from Pinterest?

This actor covers Pins only. The full **Pinterest Scraper** browser extension also includes **Boards, Profiles, Users, Followers, Pins, Comments** with unlimited personal use, real-time scraping with your logged-in sessions, CSV/Excel/JSON export, field customization, and scheduled monitoring.

**[Get the Pinterest Scraper extension](https://nifty.codes/e/pinterest-scraper?utm_source=apify\&utm_medium=actor_readme\&utm_content=pinterest-pins-scraper)**

***

#### Data Fields

| Field Name | Description | Example |
| --- | --- | --- |
| Title | The title of the Pin | "Modern Kitchen Design Ideas" |
| Description | The text description of the Pin | "Minimalist kitchen with marble countertops." |
| Auto Alt Text | AI generated alt text for the image | "A white kitchen with a large island." |
| Unified Title | Normalized title field | "Modern Kitchen Design Ideas" |
| Created Date | When the Pin was published | "2023-10-12T14:30:00Z" |
| Domain | The source website domain | "interiordesign.com" |
| Link | The outbound destination URL | "https://interiordesign.com/kitchens" |
| Dominant Color | Primary hex color of the image | "#f4f4f4" |
| All Images | Array of image URLs at different sizes | \["https://i.pinimg.com/orig/1.jpg"] |
| Board Name | Name of the board containing the Pin | "Home Decor" |
| Board URL | Link to the board | "https://www.pinterest.com/user/home-decor/" |
| Board Owner Name | Display name of board owner | "Jane Doe" |
| Board Owner Username | Username of board owner | "janedoe123" |
| Pinner Name | Name of the person who pinned it | "Jane Doe" |
| Pinner Username | Username of the pinner | "janedoe123" |
| Pinner Profile URL | Link to pinner profile | "https://www.pinterest.com/janedoe123/" |
| Save Count | Number of times saved | 1250 |
| Is Promoted | Boolean for paid content | false |
| Product Pin | Boolean if it is a product | false |
| Story Pin | Boolean if it is a story | false |
| Pin URL | Direct link to the Pin | "https://www.pinterest.com/pin/12345/" |

#### Input

- `urls`: Array of Pinterest URLs. Works on search results, boards, and feeds.
- `maxItems`: Maximum number of Pins to extract per URL. Default is 100.

#### Example Input

```json
{
  "urls": ["https://www.pinterest.com/search/pins/?q=interior%20design"],
  "maxItems": 50
}
```

#### Example Output

```json
[
  {
    "Title": "Scandinavian Living Room",
    "Description": "Bright and airy living room setup.",
    "Auto Alt Text": "A living room with a grey sofa.",
    "Unified Title": "Scandinavian Living Room",
    "Created Date": "2023-11-01T09:00:00Z",
    "Domain": "homestyle.com",
    "Link": "https://homestyle.com/scandi",
    "Dominant Color": "#e0e0e0",
    "All Images": ["https://i.pinimg.com/736x/a1.jpg"],
    "Board Name": "Living Room Inspo",
    "Board URL": "https://www.pinterest.com/user/living-room-inspo/",
    "Board Owner Name": "Alice Smith",
    "Board Owner Username": "alicesmith",
    "Pinner Name": "Alice Smith",
    "Pinner Username": "alicesmith",
    "Pinner Profile URL": "https://www.pinterest.com/alicesmith/",
    "Save Count": 450,
    "Is Promoted": false,
    "Product Pin": false,
    "Story Pin": false,
    "Pin URL": "https://www.pinterest.com/pin/98765/"
  },
  {
    "Title": "DIY Garden Planter",
    "Description": "How to build a wooden planter box.",
    "Auto Alt Text": "A wooden box with flowers.",
    "Unified Title": "DIY Garden Planter",
    "Created Date": "2023-11-05T12:15:00Z",
    "Domain": "gardenersworld.com",
    "Link": "https://gardenersworld.com/diy-planter",
    "Dominant Color": "#4b5320",
    "All Images": ["https://i.pinimg.com/736x/b2.jpg"],
    "Board Name": "Garden Projects",
    "Board URL": "https://www.pinterest.com/user/garden-projects/",
    "Board Owner Name": "Bob Jones",
    "Board Owner Username": "bobjones",
    "Pinner Name": "Bob Jones",
    "Pinner Username": "bobjones",
    "Pinner Profile URL": "https://www.pinterest.com/bobjones/",
    "Save Count": 890,
    "Is Promoted": false,
    "Product Pin": true,
    "Story Pin": false,
    "Pin URL": "https://www.pinterest.com/pin/54321/"
  }
]
```

#### Disclaimer

This tool extracts publicly available data. Users are responsible for compliance with applicable terms of service.

# Actor input Schema

## `urls` (type: `array`):

URLs to scrape. Must match: pinterest.com

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

Maximum number of items to extract per URL

## `enablePagination` (type: `boolean`):

Load more results beyond the first page.

## `maxPages` (type: `integer`):

Maximum number of pagination actions (pages, scrolls, or loads)

## Actor input object example

```json
{
  "urls": [
    "https://www.pinterest.com/search/pins/?q=outfit&rs=typed"
  ],
  "maxItems": 100,
  "enablePagination": true,
  "maxPages": 1
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("nifty.codes/pinterest-pins-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 = {}

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

```

## MCP server setup

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

```

## OpenAPI specification

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