Pinterest Scraper
Pricing
from $1.70 / 1,000 results
Pinterest Scraper
Scrape Pinterest pins, boards, users and search results at scale. Extract images, videos, engagement metrics, pinner data, SEO metadata, prices and comments. 30+ data fields per pin with multi-resolution images.
Pricing
from $1.70 / 1,000 results
Rating
0.0
(0)
Developer
SilentFlow
Maintained by CommunityActor stats
4
Bookmarked
47
Total users
5
Monthly active users
3 days ago
Last modified
Categories
Features
Share
Turn Pinterest into structured data you can actually use. Extract pins, boards, user profiles, and search results with 30+ fields per pin, including pin links that open, 9 image resolutions, saves and comments, creator info, and shopping data.
How it works

✨ Why use this scraper?
Copying Pinterest data manually? Dealing with scrapers that return 10 fields when you need 30? Getting blocked every other run?
- 📸 9 image resolutions per pin. From 170px thumbnails to full originals. No more guessing which URL gives you the size you need.
- 📊 30+ structured fields per pin. Engagement, creator, board, SEO, shopping, video, dominant color. Other scrapers skip half of these.
- 🔍 Pins, video pins, boards or profiles from one keyword list. Search several keywords in one run and pick what comes back. Paste pins, boards, board sections, profiles, idea pages or search links too. One scraper, every Pinterest content type.
- 🛒 Shopping and price data included. Enable
includeDetailsto get product prices, sale prices, and rich pin metadata. - 🔗 Pin links that open. Search and board results come back with the real pin ID whenever the pin has a public page, so
urlopens the pin, never an error page. - 💬 Comments and replies, no login. Turn on
includeCommentsto get each pin's public comments with author, date, likes and replies. - 🎨 Dominant color and visual data. Get hex color codes, dimensions, alt text, and visual annotations for every pin.
🎯 Use cases
| Team | What they build |
|---|---|
| E-commerce | Product trend reports from Pinterest shopping pins across categories |
| Design agencies | Visual mood boards with high-res images, color palettes, and engagement data |
| Content marketing | Top-performing pin analysis to guide content strategy on Pinterest |
| Academic research | Visual culture datasets with metadata, engagement, and creator demographics |
| SEO teams | Pinterest keyword research using search volume and pin engagement signals |
| Brand monitoring | Track how products and brand visuals spread across boards and repins |
📥 Input parameters
Search
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchQueries | array | * | - | Keywords to search on Pinterest, one per line. Each row says which keyword found it in searchQuery |
searchType | string | No | pins | What the keyword search collects: pins, videos (video pins only), boards or profiles |
startUrls | array | * | - | Pinterest URLs: pins, boards, board sections, profiles, idea pages (/ideas/...) or search pages |
* Either searchQueries or startUrls is required (or both). The older single search field still works.
Limits
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
maxItems | integer | No | 100 | Maximum number of results for the whole run, shared evenly between your keywords and URLs |
Options
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
includeDetails | boolean | No | false | Fetch SEO metadata, original pin source, and product prices |
includeComments | boolean | No | false | Add each pin's public comments, with author, date, likes and replies |
maxComments | integer | No | 20 | Maximum comments per pin, replies included |
Advanced
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
includeUserInfoOnly | boolean | No | false | When scraping user profiles, only return user info without their pins |
proxy | object | No | Residential | Proxy configuration |
📊 Output data
Each pin returns a structured JSON object with 30+ fields:
{"type": "pin","id": "1234567890","url": "https://www.pinterest.com/pin/1234567890/","title": "Modern Minimalist Living Room","description": "Clean lines and neutral tones for a calm, modern space","richSummary": "Interior design inspiration","imageUrl": "https://i.pinimg.com/originals/ab/cd/ef/abcdef123456.jpg","imageUrls": {"original": "https://i.pinimg.com/originals/ab/cd/ef/abcdef123456.jpg","736x": "https://i.pinimg.com/736x/ab/cd/ef/abcdef123456.jpg","474x": "https://i.pinimg.com/474x/ab/cd/ef/abcdef123456.jpg","236x": "https://i.pinimg.com/236x/ab/cd/ef/abcdef123456.jpg","170x": "https://i.pinimg.com/170x/ab/cd/ef/abcdef123456.jpg","60x60": "https://i.pinimg.com/60x60/ab/cd/ef/abcdef123456.jpg","136x136": "https://i.pinimg.com/136x136/ab/cd/ef/abcdef123456.jpg","200x150": "https://i.pinimg.com/200x150/ab/cd/ef/abcdef123456.jpg","400x300": "https://i.pinimg.com/400x300/ab/cd/ef/abcdef123456.jpg"},"videoUrl": "","isVideo": false,"saves": 3420,"comments": 87,"reactions": 215,"repinCount": 1890,"viewCount": 45200,"createdAt": "Mon, 10 Mar 2025 14:22:00 +0000","pinner": {"username": "modernhomedesign","fullName": "Modern Home Design","followerCount": 28500,"profileUrl": "https://www.pinterest.com/modernhomedesign/","imageUrl": "https://i.pinimg.com/avatars/modernhomedesign.jpg","isVerified": true},"board": {"name": "Living Room Ideas","url": "https://www.pinterest.com/modernhomedesign/living-room-ideas/","pinCount": 412,"owner": "modernhomedesign"},"dominantColor": "#D4C5B2","width": 1920,"height": 2560,"altText": "Modern minimalist living room with neutral tones","autoAltText": "Living room with white sofa and wooden coffee table","link": "https://www.homedesignmag.com/minimalist-living-room","domain": "homedesignmag.com","richPinType": "article","category": "home_decor","hashtags": ["minimalist", "livingroom", "homedecor"],"isStoryPin": false,"isCarousel": false,"isPromoted": false,"isRepin": true,"seoTitle": "20 Minimalist Living Room Ideas for 2025","seoDescription": "Discover clean, modern living room designs with neutral palettes","priceValue": 0,"priceCurrency": "","originalPin": {"id": "9876543210","pinner": {"username": "originalcreator","fullName": "Original Creator"}},"commentsList": [{"id": "5551234","text": "Love this design! Where is the sofa from?","createdAt": "Wed, 12 Mar 2025 09:15:00 +0000","author": {"username": "homelover99","fullName": "Sarah Home","profileUrl": "https://www.pinterest.com/homelover99/"},"likeCount": 12,"replyCount": 1,"replies": [{"id": "5551240","text": "Same question!","createdAt": "Wed, 12 Mar 2025 11:02:41 +0000","author": { "username": "lucasdesigns", "profileUrl": "https://www.pinterest.com/lucasdesigns/" },"likeCount": 2,"replyCount": 0}]}]}
🗂️ Data fields
Core
| Field | Type | Description |
|---|---|---|
type | string | Content type: pin, board, or user |
id | string | Pinterest pin ID |
searchQuery | string | The keyword (or idea page name) that found the row |
source | string | Where the row came from: search, board, user, ideas or pin_detail |
url | string | Full Pinterest URL |
title | string | Pin title |
description | string | Pin description |
richSummary | string | Rich pin summary text |
createdAt | string | Creation date, such as Mon, 10 Mar 2025 14:22:00 +0000 |
Images
| Field | Type | Description |
|---|---|---|
imageUrl | string | Highest resolution image URL |
imageUrls | object | All available resolutions: original, 736x, 474x, 236x, 170x, 60x60, 136x136, 200x150, 400x300 |
dominantColor | string | Hex color code of the dominant color |
width | integer | Image width in pixels |
height | integer | Image height in pixels |
altText | string | Image alt text |
autoAltText | string | Pinterest auto-generated alt text |
Video
| Field | Type | Description |
|---|---|---|
videoUrl | string | Video URL if available |
isVideo | boolean | Whether the pin contains a video |
isPlayable | boolean | Whether the video is playable |
videoDuration | float | Video duration in seconds |
Engagement
| Field | Type | Description |
|---|---|---|
saves | integer | Number of saves |
comments | integer | Number of comments |
reactions | integer | Number of reactions |
repinCount | integer | Number of repins |
viewCount | integer | Number of views |
likeCount | integer | Number of likes |
shareCount | integer | Number of shares |
Creator
| Field | Type | Description |
|---|---|---|
pinner | object | Creator info: username, fullName, followerCount, profileUrl, imageUrl, isVerified |
nativeCreator | object | Original content creator (for repins) |
board | object | Board info: name, url, pinCount, owner |
Links and source
| Field | Type | Description |
|---|---|---|
link | string | External source URL |
domain | string | Source website domain |
trackingLink | string | Click tracking URL |
canonicalUrl | string | Canonical URL |
Rich pins and shopping
| Field | Type | Description |
|---|---|---|
richPinType | string | Type: article, recipe, product, app, movie |
priceValue | float | Product price (with includeDetails) |
priceCurrency | string | Price currency code |
salePrice | float | Sale price if available |
isBuyable | boolean | Whether the product can be purchased |
shoppingInfo | object | Full shopping metadata |
productTags | array | Product tags on the pin |
SEO (with includeDetails)
| Field | Type | Description |
|---|---|---|
seoTitle | string | SEO-optimized title |
seoDescription | string | SEO meta description |
originalPin | object | Source pin info for repins |
Comments (with includeComments)
| Field | Type | Description |
|---|---|---|
commentsList | array | Public comments: id, text, createdAt, author (username, fullName, profileUrl, imageUrl), likeCount, replyCount, replies |
Content type
| Field | Type | Description |
|---|---|---|
isStoryPin | boolean | Whether it is an idea pin |
storyPinData | object | Idea pin pages and metadata |
isCarousel | boolean | Whether it is a carousel pin |
carouselCount | integer | Number of carousel slides |
category | string | Pinterest category |
hashtags | array | Hashtags on the pin |
visualAnnotations | array | Topics Pinterest attaches to the pin, such as "Sage Green Living Room" (most video pins carry them) |
isPromoted | boolean | Whether the pin is a promoted ad |
isRepin | boolean | Whether the pin is a repin |
Boards (with searchType: boards)
| Field | Type | Description |
|---|---|---|
type | string | board |
id, name, url | string | Board ID, name and link |
description | string | Board description |
pinCount, sectionCount, collaboratorCount | integer | Size of the board |
isCollaborative | boolean | Whether several people pin to it |
imageUrl, pinImageUrls | string, array | Cover image and pin thumbnails |
owner | object | Owner: username, fullName, followerCount, profileUrl |
searchQuery | string | The keyword that found the board |
Profiles (with searchType: profiles)
| Field | Type | Description |
|---|---|---|
type | string | user |
id, username, fullName, profileUrl | string | The account and its link |
followerCount, pinCount, boardCount | integer | Audience and activity |
imageUrl, imageUrlLarge | string | Profile picture |
isVerified, domainVerified | boolean | Verification badges |
searchQuery | string | The keyword that found the profile |
🚀 Examples
Search several keywords at once
{"searchQueries": ["interior design 2026", "small kitchen ideas", "boho bedroom"],"maxItems": 150}
Find boards or creators on a topic
{"searchQueries": ["meal prep"],"searchType": "boards","maxItems": 50}
Set searchType to profiles to get the accounts that post about a topic, or to videos for video pins only (add includeDetails for their MP4 files).
Scrape an idea page or a board section
{"startUrls": ["https://www.pinterest.com/ideas/beauty/935541271955/","https://www.pinterest.com/maryloueobrecht/recipes/cocktails/"],"maxItems": 100}
Extract all pins from a board
{"startUrls": ["https://www.pinterest.com/pinterest/official-news/"],"maxItems": 200}
Pull shopping data from fashion pins
{"searchQueries": ["summer dresses"],"maxItems": 100,"includeDetails": true}
Get pins with full comment threads
{"searchQueries": ["recipe ideas"],"maxItems": 50,"includeComments": true}
💻 Integrations
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("silentflow/pinterest-scraper").call(run_input={"searchQueries": ["home decor"],"maxItems": 100,"includeDetails": True})for pin in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{pin['title']}: {pin['imageUrl']}")print(f" Saves: {pin['saves']}, Color: {pin['dominantColor']}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('silentflow/pinterest-scraper').call({searchQueries: ['fashion trends'],maxItems: 100,includeDetails: true});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(pin => {console.log(`${pin.title}: ${pin.imageUrl}`);console.log(` Saves: ${pin.saves}, Color: ${pin.dominantColor}`);});
📈 Performance
| Metric | Value |
|---|---|
| Speed | ~50-100 pins per minute |
| Fields per pin | 30+ |
| Image resolutions | 9 per pin |
| Detail fetching | 5 parallel workers |
💡 Tips for best results
- Start with 10 items to test. Verify the output format matches your needs before running large jobs.
- Use board URLs for targeted data. Boards return focused, curated pins. Search results are broader but noisier.
- Enable includeDetails only when needed. It adds SEO metadata and prices but requires an extra request per pin, which increases run time.
- Combine keywords and URLs. Give
searchQueriesandstartUrlsin the same run:maxItemsis shared evenly between them, so no source crowds out the others. - Enable includeComments selectively. Comment fetching adds one request per pin. Use it only when you need the actual comment text and authors.
❓ FAQ
Can I scrape private boards? No. Only publicly visible Pinterest content is accessible.
Are videos included?
Yes. Video pins include videoUrl, videoDuration, and isPlayable fields. Set searchType to videos to keep video pins only, and turn on includeDetails to get the MP4 file in videoUrl instead of the stream.
What are idea pins?
Idea pins (formerly story pins) are multi-page pins. The scraper returns them with isStoryPin: true and the full storyPinData object.
What does includeDetails add? SEO title and description, the original pin source for repins, and product price and shopping data. These fields require an extra request per pin.
Can I get the comments of a pin?
Yes. Turn on includeComments and each pin row carries its public comments in commentsList, with author, date, likes and replies. No Pinterest account needed. Use maxComments to cap how many you get per pin.
Why is url empty on some search results?
Pinterest shows some pins in search without their public pin ID: Pinterest Preview pins it builds from a website article, and some older pins. When the real pin cannot be found, url stays empty instead of pointing to a Pinterest error page. Every other field is filled, and the article link is in link.
How many image resolutions do I get? Nine: original, 736x, 474x, 236x, 170x, 60x60, 136x136, 200x150, and 400x300.
What URL formats are supported?
Pins (/pin/123/ and /pin/title--123/), boards (/user/board-name/), board sections (/user/board-name/section/), user profiles (/username/), idea pages (/ideas/beauty/935541271955/) and search pages on any tab (/search/pins/?q=keyword, /search/videos/, /search/boards/, /search/users/).
What does an idea page return?
The pins Pinterest lists for the idea's topic, with every field. Each row has source: "ideas" and the idea's name in searchQuery.
📬 Support
Need something this scraper doesn't do yet? We ship features fast.
- Feature requests go straight to our backlog
- Enterprise needs? We do custom integrations
Response time: usually under 24 hours.
Check out our other scrapers: SilentFlow on Apify