To scrape Pinterest, give a ready-made Actor a keyword or the URL of a pin, board, idea page or profile, and it returns one row per pin or profile: title, description, images in several sizes, the site the pin links to, likes, saves, board and pinner, plus comments and profile stats when you ask for them. On Scrape.ly that's a preset and one click, or one API call, with no Pinterest login and no developer app.
This guide covers the fields you get, the no-code presets, the same job in curl, Python, Node.js and through an AI agent, a real run from 27 October 2026, what it costs, and the one Pinterest quirk that decides which input you should use.
What data you can get from Pinterest
The Pinterest Scraper saves one row per pin or profile:
| Field | What it holds |
|---|---|
type, id, url, inputSource | pin or profile, the ID and link, and which input found it |
grid_title, description | The pin's title and description |
images | Image URLs by size, including the original (orig) |
domain | The site the pin links to, such as a shop or a blog |
like_count, repin_count, comment_count | Engagement; saves (repin_count) come with full details |
board, pinner, owner | The board it's on and the account behind it |
created_at | When the pin was created |
comments | Public comments and replies, when enabled |
username, full_name, follower_count, pin_count, board_count | Profile rows |
Pin URLs and the pins listed on a profile come back as full records, with saves, SEO fields and comments. Pins found in a search, on a board or on an idea page carry the list fields: title, description when the pinner wrote one, images, board, pinner, likes and created date. More on why in "What to watch out for".
How to scrape Pinterest without code
- Open the Pinterest Scraper in the Scrape.ly Store.
- Pick a preset that matches your input:
- Nail art pins: a quick keyword search, 10 pins.
- Pins from a board: everything on one board.
- 3 pins with details and comments: full records for pin URLs.
- Nail art pins with comments: search plus details and comments where Pinterest allows them.
The search preset fills in this input:
{
"search": "nail art",
"maxItems": 10,
"endPage": 1,
"getDetails": false,
"includeComments": false,
"includeCommentReplies": false,
"includeUserInfoOnly": false
}- Change the keyword or paste your URLs and click Start.
- Open the dataset and export it as JSON, CSV, Excel, XML, HTML or RSS.
The input fields that matter most:
startUrls: public pin, board, idea, profile or pin-search URLs. Mix them freely in one run.search: a keyword. It runs alongside any URLs.maxItems: total pins and profiles to save (default 10).endPage: the last page to fetch per list. A page holds about 25 pins or 10 comments.minLikes,minRepins: keep only pins above an engagement threshold.getDetails,includeComments,includeCommentReplies: full records, comments and replies, for the pins Pinterest opens without a login.includeUserInfoOnly: for profile URLs, save just the profile row with its counts.
How to scrape Pinterest with the API
Create a token under Settings → API & Integrations in the dashboard and store it as SCRAPELY_TOKEN. Start the run, wait for it, then read the rows:
# 1. start the run; the response's data.id is the run ID
curl -X POST "https://api.scrape.ly/v2/actors/echofield~pinterest-scraper/runs" \
-H "Authorization: Bearer $SCRAPELY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"search": "small balcony ideas", "maxItems": 50, "endPage": 2}'
# 2. wait (up to 60 s per call; repeat until status is SUCCEEDED)
curl "https://api.scrape.ly/v2/actor-runs/RUN_ID?waitForFinish=60" \
-H "Authorization: Bearer $SCRAPELY_TOKEN"
# 3. read the pins (CSV here)
curl "https://api.scrape.ly/v2/actor-runs/RUN_ID/dataset/items?format=csv" \
-H "Authorization: Bearer $SCRAPELY_TOKEN"The API docs explain each step.
In Python (pip install scrapely-client-python), this trend-spotting script searches a few keywords, keeps pins with at least 10 likes, and counts which websites those pins link to. For an ecommerce team, that's a list of who wins Pinterest traffic in your category:
import os
from collections import Counter
from scrapely_client import ScrapelyClient
client = ScrapelyClient(os.environ["SCRAPELY_TOKEN"], api_url="https://api.scrape.ly")
domains = Counter()
for keyword in ["small balcony ideas", "balcony furniture", "balcony plants"]:
run = client.actor("echofield/pinterest-scraper").call(
run_input={"search": keyword, "maxItems": 200, "endPage": 8, "minLikes": 10}
)
for pin in client.dataset(run.default_dataset_id).iterate_items():
if pin.get("type") == "pin" and pin.get("domain"):
domains[pin["domain"]] += 1
for domain, n in domains.most_common(15):
print(domain, n)In JavaScript or Node.js (npm install scrapely-client), compare brand accounts by their profile stats without collecting their pins:
import { ScrapelyClient } from 'scrapely-client';
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN, baseUrl: 'https://api.scrape.ly' });
const run = await client.actor('echofield/pinterest-scraper').call({
startUrls: ['https://www.pinterest.com/ikea/', 'https://www.pinterest.com/target/'],
includeUserInfoOnly: true,
maxItems: 2,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const p of items) console.log(p.username, p.follower_count, p.pin_count, p.board_count);The Pinterest API page shows the same Actor as a ready-made API, and the Python client docs cover paging through large datasets.
With an AI agent (MCP)
Scrape.ly runs a hosted MCP server at https://mcp.scrape.ly. In Cursor, add it to ~/.cursor/mcp.json:
{
"mcpServers": {
"scrapely": {
"url": "https://mcp.scrape.ly",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}In Claude Code, run claude mcp add --transport http scrapely https://mcp.scrape.ly, then /mcp to sign in with OAuth. Then ask: "Use scrapely to search Pinterest for 'capsule wardrobe', 100 pins, and tell me which shops the most-liked pins link to and what the top titles have in common." The MCP docs list ChatGPT, VS Code, Windsurf and the other clients.
A real run: "small balcony ideas"
We ran the Actor on 27 October 2026 with a keyword and a profile URL in one input:
{
"startUrls": ["https://www.pinterest.com/ikea/"],
"search": "small balcony ideas",
"maxItems": 8,
"endPage": 1,
"getDetails": true
}It saved 8 rows in 11 seconds: one profile and seven search pins. The pins, with the pinners left out because several are private people:
| Pin title | Links to | Likes | Created |
|---|---|---|---|
| 3 Lighting Layers Every Room Needs | indochinalight.com | 56 | 2026-06-21 |
| Cozy Balcony Ideas \ | Minimal & Aesthetic | Uploaded by user | 23 | 2026-10-02 |
| (12) Facebook | facebook.com | 8 | 2026-10-04 |
| 15 Pretty Small Balcony Ideas | midnightscribble.com | 0 | 2026-10-07 |
| Идеи для маленького балкона в квартире: удачное решение | Uploaded by user | 0 | 2026-10-12 |
| Small Balcony Ideas That Feel Like a Private Retreat | nextideadecor.com | 6 | 2026-09-10 |
| 23 Sophisticated Very Small Balcony Ideas That Actually Work | apartmentabc.com | 7 | 2026-04-01 |
The log line that matters:
2026-10-27T17:11:18.866Z [scrapely.actor] INFO [Status message]: Saved 8 results, 7 feed pins without details or comments (Pinterest only opens pin URLs and profile pins without a login).What the run shows:
- Where the clicks go. Four of the seven pins link to blogs and shops (
domain), two are uploads with no outbound link, and one points at a Facebook photo. Counting domains across a few hundred pins, as the Python script above does, shows which publishers own a topic. - Fresh pins rank. Five of the seven were created in the last two months, which tells you how quickly a seasonal topic turns over.
- Search isn't only English or on topic. One pin is in Russian and the most-liked one is about lighting, not balconies. Filter on
grid_titleordescriptionbefore you count. - Search pins carry list fields. The status message counts them: title, description, images, board and likes, but no saves or comments. For those, pass pin URLs or a profile.
- Check the profile handle.
/ikea/resolved to an older IKEA account with 59,357 followers and no public pins or boards. Open a handle in your browser before you put it in a schedule.
What it costs
The Actor charges one event per saved pin or profile, with platform usage (compute, proxy and browser) included. Price checked on the Store page on 27 October 2026: $0.000095 per result, which is $0.095 per 1,000 pins. Comments, replies and boards nested inside a row aren't charged separately.
Our run above saved 8 results for $0.00076 at list price ($0.000608 charged, because our plan has a Store discount). Examples: 10 pins cost $0.00095. A keyword taken to its limit of about 600 unique pins costs about $0.057. Ten keywords at that depth come to roughly $0.57.
At that price, Pinterest is a cheap source to add to a social or ecommerce dashboard, and the Free plan's $5 monthly credit goes a long way.
What to watch out for
- Search, board and idea pins have scrambled IDs. Without a login, Pinterest gives pins in those lists an ID that starts with
e1_, and answers "Pin not found" when anyone tries to open it, on its API, the pin page and in a real browser alike. Those rows keep the list fields but get no full details or comments. For saves, SEO fields or comments, pass pin URLs with a numeric ID, or a profile URL, whose pins open normally. - About 600 unique pins per search. Pinterest starts repeating pins after roughly 25 search pages. Use several keywords or boards for bigger jobs.
- Saves can be missing in search rows. The public search feed often omits
repin_count, sominRepinskeeps pins without a count. Filter onminLikesfor search results. - No comment likes. The public payload doesn't include like counts on comments.
- Private content is skipped. Private profiles, secret boards and anything that asks you to sign in aren't collected.
- Pinners are personal data. The pinner's username, name and follower count identify a person. Keep brands and verified accounts you target on purpose; drop or pseudonymise everyone else, as we did in the run above.
Pinterest's own API is built for apps that act on behalf of Pinterest users. Its Connect app guide says "Application requests are reviewed by Pinterest", and its rate limits page caps Trial access at "1000 requests per day for all API requests". If you're building a Pinterest integration for your users, that's the route. For research on public pins and boards, the Actor gets you there today.
Is it legal to scrape Pinterest?
The Actor reads only public pages that any logged-out visitor can see. Pinterest's Terms of Service (effective April 30, 2025, read on 27 October 2026; an update takes effect on November 12, 2026) say: "In using Pinterest, you agree not to scrape, collect, search, copy or otherwise access data or content from Pinterest in unauthorized ways, such as by using automated means (without our express prior permission)". Whether and how those terms bind you depends on your jurisdiction, whether you have a Pinterest account that accepted them, and your use.
Two more things to keep in mind. Pins are images, and images are usually copyrighted by their creators: analyse them, don't republish them. And pinners and commenters are personal data under the GDPR and similar laws, so collect only what you need and pseudonymise people in anything you publish. Our guide to whether web scraping is legal covers the basics, including the GDPR. This is not legal advice; for a commercial project, ask a lawyer about your case.
Why Scrape.ly for Pinterest
- No app review, no login. Public pins, boards, profiles and searches with one Scrape.ly token, without a developer app or daily request quota.
- Every input in one run. Keywords, pin URLs, boards, idea pages and profiles together, deduplicated by pin ID and username.
- Built for the quirks. The Actor knows which pins Pinterest will open and which it won't, fetches full details where it can, and counts the list-only rows in the run's status message.
- One platform for social data. The same token runs TikTok, TikTok comments, Instagram and YouTube; our social media scraping guide shows how they fit together.
FAQ
Can you scrape Pinterest for free?
Yes. The Free plan includes $5 of usage credit every month with no credit card, and at $0.095 per 1,000 results that covers tens of thousands of pins.
How do I scrape all pins from a Pinterest board?
Paste the board URL into startUrls and raise endPage (about 25 pins per page) and maxItems. Board pins come with the list fields; for full details on specific pins, pass their pin URLs, or use the owner's profile URL, whose pins open normally.
Can I scrape Pinterest comments?
Yes, for pin URLs with a numeric ID and pins listed on a profile: turn on includeComments, and includeCommentReplies for replies. Pins found in searches, boards and idea pages have no readable comment thread without a login.
Can I download Pinterest images?
Each row carries image URLs in several sizes, including the original. You can fetch them yourself, but images are usually copyrighted by their creators, so use them for analysis, not republishing.
Can I scrape a Pinterest profile's followers?
The Actor returns profile stats: follower, pin and board counts, name, bio and website. It doesn't list individual followers.
Can I scrape Pinterest with Python?
Yes. Install scrapely-client-python and call echofield/pinterest-scraper, as in the trend-spotting script above. The scraping runs in the cloud, so you don't reverse-engineer Pinterest's internal resources or manage proxies.




