---
title: "How to Scrape Pinterest Pins and Boards | Scrape.ly"
description: "Scrape Pinterest pins, boards, profiles and search results without a login: titles, images, domains, likes, saves and comments. Code, costs and limits."
url: https://scrape.ly/blog/scrape-pinterest
markdown: https://scrape.ly/blog/scrape-pinterest.md
---

[Tutorials](https://scrape.ly/blog/category/tutorials.md)

# How to Scrape Pinterest: Pins, Boards, Profiles, Search Results and Comments

Scrape Pinterest pins, boards, profiles, idea pages and search results without a login: title, description, images, source domain, likes, saves, board, comments and profile stats. No-code presets, curl, Python, Node.js and MCP, plus a real run, exact costs and the limits that matter.

[Echofield Actor publisher on the Scrape.ly Store](https://scrape.ly/blog/author/echofield.md)

- Published

  Oct 27, 2026

- Reading time

  8 min read

![Pixel-art robot with an orange >\_ on its terminal head pulls an image pin with a red save button off a cork board topped with the red Pinterest logo and covered in photo pins of different heights, and drops it into a crate](https://scrape.ly/media/scrape-pinterest.png?w=1080)

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](https://scrape.ly/store/echofield/pinterest-scraper.md) 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

1. Open the Pinterest Scraper in the Scrape.ly Store.
2. Pick a preset that matches your input:

- [Nail art pins](https://scrape.ly/store/echofield/pinterest-scraper/presets/search-light.md): a quick keyword search, 10 pins.
- [Pins from a board](https://scrape.ly/store/echofield/pinterest-scraper/presets/board-url.md): everything on one board.
- [3 pins with details and comments](https://scrape.ly/store/echofield/pinterest-scraper/presets/pin-url-details-comments.md): full records for pin URLs.
- [Nail art pins with comments](https://scrape.ly/store/echofield/pinterest-scraper/presets/search-details-comments.md): search plus details and comments where Pinterest allows them.

The search preset fills in this input:

```json
{
  "search": "nail art",
  "maxItems": 10,
  "endPage": 1,
  "getDetails": false,
  "includeComments": false,
  "includeCommentReplies": false,
  "includeUserInfoOnly": false
}
```

3. Change the keyword or paste your URLs and click **Start**.
4. 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.

Scrape.ly Store Pinterest Scraper Public Pinterest pins, boards, idea pages, search results, comments and profiles without a login: titles, images, source domains, likes, saves and profile stats.

[Try it free](https://scrape.ly/store/echofield/pinterest-scraper.md) [Browse the Store](https://scrape.ly/store.md)

## 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:

```shell
# 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](https://scrape.ly/docs/api-actors.md) 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:

```python
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:

```javascript
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](https://scrape.ly/api/pinterest-api.md) page shows the same Actor as a ready-made API, and the [Python client](https://scrape.ly/docs/client-python.md) 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`:

```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](https://scrape.ly/docs/mcp.md) 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:

```json
{
  "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:

```plaintext
20261027T17: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_title` or `description` before 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`, so `minRepins` keeps pins without a count. Filter on `minLikes` for 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](https://developers.pinterest.com/docs/getting-started/connect-app/) says "Application requests are reviewed by Pinterest", and its [rate limits page](https://developers.pinterest.com/docs/reference/rate-limits/) 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](https://policy.pinterest.com/en/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](https://scrape.ly/blog/is-web-scraping-legal.md) 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](https://scrape.ly/blog/tiktok-scraping.md), [TikTok comments](https://scrape.ly/blog/scrape-tiktok-comments.md), [Instagram](https://scrape.ly/blog/scrape-instagram.md) and YouTube; our [social media scraping](https://scrape.ly/blog/social-media-scraping.md) 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.

Scrape.ly Store Start with the nail art preset Run a keyword search as-is or paste pin, board and profile URLs. Titles, images, domains, likes and comments at $0.095 per 1,000 results, platform usage included.

[Try it free](https://scrape.ly/store/echofield/pinterest-scraper.md) [Browse the Store](https://scrape.ly/store.md)

About the author

[Echofield](https://scrape.ly/blog/author/echofield.md) Actor publisher on the Scrape.ly Store

Posts, reels, comments and creator stats, from TikTok and YouTube to Weibo and Bluesky. For social listening, creator research and catching a trend while it is still small. A Scrapely studio.

- [Website](https://scrape.ly/users/echofield.md)

Keep reading

## More in Tutorials

- [![Pixel-art robot with an orange >\_ on its terminal head pulls a job card with a briefcase off a cork job board topped with the black Upwork logo and pinned with job cards, and drops it into a crate](https://scrape.ly/media/scrape-upwork-jobs.png?w=750)](https://scrape.ly/blog/scrape-upwork-jobs.md)
  ### [How to Scrape Upwork Jobs: Titles, Budgets, Skills and Client Stats](https://scrape.ly/blog/scrape-upwork-jobs.md)
  [Scrape Upwork jobs by keyword or search URL: title, description, budget or hourly range, skills, experience level, posting time and the client's country, rating and spend. No-code steps, curl, Python, Node.js and MCP, with a real run from 27 October 2026 and its exact cost.](https://scrape.ly/blog/scrape-upwork-jobs.md)
- [![Pixel-art robot with an orange >\_ on its terminal head pulls a company card with a small building and a blue line out of a monitor showing the blue Crunchbase logo above rows of company profiles with blue funding bars, and drops it into a crate](https://scrape.ly/media/scrape-crunchbase.png?w=750)](https://scrape.ly/blog/scrape-crunchbase.md)
  ### [How to Scrape Crunchbase Company Data: Search, Profiles, Ranks and IDs](https://scrape.ly/blog/scrape-crunchbase.md)
  [Scrape Crunchbase company data without an account: search by name or open organization pages for permalink, UUID, categories, location, website, employee band and rank. No-code steps, curl, Python, Node.js and MCP, plus real runs from 27 October 2026 and their exact cost.](https://scrape.ly/blog/scrape-crunchbase.md)
- [![Pixel-art robot with an orange >\_ on its terminal head pulls a comment bubble out of a phone showing the TikTok note logo above a list of comments, and drops it into a crate](https://scrape.ly/media/scrape-tiktok-comments.png?w=750)](https://scrape.ly/blog/scrape-tiktok-comments.md)
  ### [How to Scrape TikTok Comments: Text, Likes, Reply Counts and Creator Engagement](https://scrape.ly/blog/scrape-tiktok-comments.md)
  [Scrape TikTok comments from any public video, profile, hashtag or search: comment text, time, likes, reply count and whether the creator liked or pinned it, plus the video's own stats. No-code steps, curl, Python, Node.js and MCP, with real runs from 27 October 2026 and their exact cost.](https://scrape.ly/blog/scrape-tiktok-comments.md)

## The internet is full of data. Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

[Get Started Free](https://my.scrape.ly/register) [Chat with Support](mailto:hello@scrape.ly?subject=Question%20about%20Scrape.ly\&body=Hi%2C%20I%20have%20a%20question%20about%20Scrape.ly.)

No credit card. No setup calls.
