Pinterest Scraper — Pins, Boards, Profiles & Search
Under maintenancePricing
from $1.20 / 1,000 results
Pinterest Scraper — Pins, Boards, Profiles & Search
Under maintenanceExtract comprehensive data from Pinterest: pins, boards, creator profiles, keyword search results, trending boards, and engagement metrics.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
CodeCrawler
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 hours ago
Last modified
Categories
Share
📌 Pinterest Scraper — Apify Actor
Extract structured data from Pinterest at scale: pins, boards, user profiles, keyword searches, and trending content — all with engagement metrics.
Built with Crawlee + Playwright + Apify SDK.
✨ Features
| Feature | Description |
|---|---|
| 🖼️ Pin Extraction | Get pin details: images, videos, descriptions, links, creator info |
| 📋 Board Scraping | Extract board metadata + all pins within a board |
| 👤 User Profiles | Full profile data: bio, stats, boards, recent pins |
| 🔍 Keyword Search | Search Pinterest by keyword with automatic pagination |
| 🔥 Trending/Discovery | Get trending boards and popular content |
| 📊 Engagement Metrics | Saves, comments, reactions, followers, monthly views |
| 🔄 Auto-Pagination | Follows bookmark cursors until hitting your configured limit |
| 🛡️ Anti-Detection | Session rotation, browser fingerprinting, residential proxies |
🚀 Quick Start
On Apify Platform
- Go to Apify Store and find Pinterest Scraper
- Click Try for free
- Configure your input (see below)
- Run and download results
Locally
# Clone and installcd pinterest-scrapernpm install# Create input filecat > ./storage/key_value_stores/default/INPUT.json << 'EOF'{"keywords": ["minimalist interior design"],"maxResultsPerEndpoint": 50}EOF# Runnpm start
📥 Input Configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
urls | string[] | [] | Direct Pinterest URLs (pins, boards, profiles) |
keywords | string[] | [] | Search queries |
usernames | string[] | [] | Usernames to extract profiles |
boards | string[] | [] | Board paths (username/board-name) |
maxResultsPerEndpoint | integer | 1000 | Max results per keyword/user/board |
includeEngagementMetrics | boolean | true | Include saves, comments, followers |
outputFormat | string | "json" | Output format: json, csv, jsonl |
proxyUrl | string | "" | Custom proxy URL (optional) |
cookies | string[] | [] | Pre-set session cookies (optional) |
Example Input
{"urls": ["https://www.pinterest.com/pin/123456789/","https://www.pinterest.com/nike/"],"keywords": ["fashion trends 2025", "home office ideas"],"usernames": ["nike", "wholefoodsmarket"],"boards": ["nike/just-do-it"],"maxResultsPerEndpoint": 500,"includeEngagementMetrics": true,"outputFormat": "json"}
📤 Output Format
Pin
{"id": "123456789","type": "pin","title": "Summer Outfit Ideas","description": "Perfect summer looks for 2025...","link": "https://example.com/article","url": "https://www.pinterest.com/pin/123456789/","dominantColor": "#e8d5b7","images": {"small": "https://i.pinimg.com/236x/...","medium": "https://i.pinimg.com/474x/...","large": "https://i.pinimg.com/736x/...","original": "https://i.pinimg.com/originals/..."},"video": null,"creator": {"id": "987654321","username": "fashionbrand","fullName": "Fashion Brand Official","avatarUrl": "https://..."},"board": {"id": "111222333","name": "Summer Collection","url": "/fashionbrand/summer-collection/"},"engagement": {"saves": 15420,"comments": 234,"reactions": {}},"metadata": {"createdAt": "2025-06-15T10:30:00Z","isPromoted": false,"isVideo": false,"isShoppable": true,"domain": "example.com","richMetadata": null},"scrapedAt": "2025-07-05T06:00:00Z"}
Board
{"id": "111222333","type": "board","name": "Summer Collection","description": "Our best summer looks","url": "https://www.pinterest.com/fashionbrand/summer-collection/","privacy": "public","owner": {"id": "987654321","username": "fashionbrand","fullName": "Fashion Brand Official"},"engagement": {"pinCount": 342,"followerCount": 12500,"collaboratorCount": 0},"pins": [ ... ]}
User Profile
{"id": "987654321","type": "user","username": "fashionbrand","fullName": "Fashion Brand Official","bio": "Inspiring style since 2010","profileUrl": "https://www.pinterest.com/fashionbrand/","avatarUrl": "https://...","engagement": {"followerCount": 250000,"followingCount": 120,"pinCount": 5430,"boardCount": 28,"monthlyViews": 1500000},"boards": [ ... ],"recentPins": [ ... ]}
🏗️ Architecture
pinterest-scraper/├── apify.json # Actor manifest & input schema├── Dockerfile # node:20 + Playwright + Chromium├── package.json├── README.md├── INPUT_SCHEMA.md└── src/├── index.js # Entry point — orchestrator├── config.js # API endpoints, headers, rate limits├── controllers/│ ├── pinController.js # Pin extraction│ ├── boardController.js # Board metadata + pin listing│ ├── userController.js # User profiles + boards + pins│ └── searchController.js # Search, trending, discovery└── utils/├── httpClient.js # Authenticated HTTP client└── parser.js # Response normalization
Data Flow
Input (URLs/keywords/usernames/boards)│▼PlaywrightCrawler → Visit pinterest.com → Extract cookies + CSRF│▼PinterestHttpClient (authenticated fetch)│├──▶ PinController → /resource/PinResource/get/├──▶ BoardController → /resource/BoardResource/get/├──▶ UserController → /resource/UserResource/get/└──▶ SearchController → /resource/BaseSearchResource/get/│▼Parser (normalize JSON) → Apify Dataset
⚙️ Technical Details
Authentication
The Actor uses Playwright to visit Pinterest and obtain session cookies + CSRF token automatically. Optionally, you can provide pre-set cookies in the input for faster startup.
Rate Limiting
- 40 requests/minute (configurable)
- 1.5 second delay between API calls
- 3 retries on failure with exponential backoff
- Max concurrency: 5 parallel requests
Pagination
All Pinterest endpoints use bookmark-based cursor pagination. The Actor follows cursors until results are exhausted or the maxResultsPerEndpoint limit is reached.
Proxy Strategy
- Uses Apify residential proxies by default when running on the platform
- Supports custom proxy URLs for self-hosted runs
- Session rotation on proxy failures
💰 Pricing Estimate
| Volume | Est. Cost | Notes |
|---|---|---|
| 100 results | ~$0.20 | Quick test |
| 1,000 results | ~$1.99 | Standard run |
| 10,000 results | ~$15 | Large extraction |
| 100,000 results | ~$120 | Enterprise batch |
Costs depend on proxy usage, compute time, and Apify plan.
📋 Limitations
- Pinterest may change internal API endpoints without notice
- Anonymous sessions have lower rate limits than authenticated ones
- Video content URLs may expire after a few hours
- Some promoted/ad pins may have limited metadata
📄 License
ISC