All posts

How to Scrape Pinterest Data: Pins, Boards and Search

November 9, 2026

Short answer

To scrape Pinterest data, know first that Pinterest's API v5 reads your own account and accounts that authorize you: Get Pin returns pins the token's account owns, and pin search covers only that account's pins. For other people's public pins, boards and keyword search, the open-source gallery-dl reads Pinterest URLs, and a hosted API returns pins, boards and search results as JSON.

People scrape Pinterest for three reasons: to see what a keyword's top pins look like, to audit a competitor's boards, or to collect images and outbound links for research. The official API helps with none of those for accounts you don't control. This guide explains why, then covers the open-source and API routes, with a method to turn a board into a spreadsheet. For tool comparisons, see best Pinterest scrapers.

What Pinterest data is public

ObjectUseful fields
PinImage URLs, title, description, outbound link, saves, board, pinner, created time, video for video pins
BoardName, description, owner, pin count, the pins on it
ProfileUsername, name, bio, followers, the public boards
Search and topicsPins ranked for a keyword or an ideas page

Secret boards and anything behind a login are out of scope on every route.

What the official Pinterest API v5 reads

Pinterest's own OpenAPI spec (pinterest/api-description) describes Get Pin as returning "a Pin owned by the 'operation user_account' - or on a group board that has been shared with this account", and Search user's Pins as searching pins "for the 'operation user_account'". By default that account is the token's owner. So the API is built for your own content and for accounts that log in to your app.

Access tierHow you get itLimit
TrialEvery new app1,000 requests a day for all API requests; pins you create are sandbox entities only you can see
StandardApply with a video of your app's OAuth flow and a live API callPer-minute limits, for example 1,000 org_read calls per user per app

Sources: access tiers and rate limits. Pinterest's developer guidelines add rules that matter more than the limits: no "automated means or form of scraping" unless Pinterest permits it, no storing information from the API apart from campaign analytics for your own or authorized accounts, no training AI with Pinterest materials, and no sharing or selling API data. More in Is the Pinterest API free? and Pinterest API options.

Open-source: gallery-dl and yt-dlp

gallery-dl is the most complete free tool for Pinterest. Its supported sites table lists "All Pins, Created Pins, Pins, pin.it Links, related Pins, Search Results, Sections, User Profiles" for Pinterest, with optional cookies. Three commands cover most needs (options):

# See which metadata fields gallery-dl can read for a pin
gallery-dl -K "https://www.pinterest.com/pin/PIN_ID/"

# Save each pin's metadata as JSON, without downloading images
gallery-dl --no-download --write-metadata "https://www.pinterest.com/USER/BOARD/"

# Print image URLs only, for the first 50 pins
gallery-dl -g --range 1-50 "https://www.pinterest.com/USER/BOARD/"

Run -K first: field names come from Pinterest and can change, so check them before you write a parser. For video pins, yt-dlp's supported sites list includes Pinterest and PinterestCollection extractors.

Limits: both tools run from your machine, depend on Pinterest's page structure, and leave breakages to you. They fit one-off pulls and image archives, not a daily job.

A hosted API

A hosted API returns pins, boards, profiles and search as JSON with no Pinterest app. For example, a keyword search:

curl "https://scrapeio.com/v1/pinterest/search?query=small%20balcony%20ideas" \
  -H "x-api-key: YOUR_KEY"

Method: turn a board into a spreadsheet

  1. List the boards. Pull a profile's public boards and pick the ones that matter.
  2. Pull each board. Get the board's details and latest pins.
  3. Open the top pins. For pins you want in full, fetch each one by URL for its description, outbound link and saves.
  4. Write one row per pin: pin URL, board, title, outbound domain, saves, created date, image URL, pulled date.
  5. Group by outbound domain. This shows which sites the board actually sends traffic to.

A small script for steps 4 and 5, given a list of pin dictionaries you have already pulled:

import csv, collections, urllib.parse

def domain(link):
    return urllib.parse.urlparse(link or "").netloc.replace("www.", "")

counts = collections.Counter(domain(p.get("link")) for p in pins)
with open("board_pins.csv", "w", newline="", encoding="utf-8-sig") as f:
    w = csv.writer(f)
    w.writerow(["pin_url", "title", "outbound_domain", "saves"])
    for p in pins:
        w.writerow([p.get("url"), p.get("title"), domain(p.get("link")), p.get("saves")])
print(counts.most_common(10))

Map the keys to whatever your source returns; -K in gallery-dl or one sample API response shows them.

Data traps on Pinterest

  • Repins look like new pins. The same image appears on many boards. Dedupe by image URL before you count.
  • Saves are not clicks. A pin can be saved thousands of times and send little traffic. Treat saves as interest, not visits.
  • Old pins keep ranking. A top result for a keyword may be years old. Always keep the created date.
  • Results can vary. Search can differ by region and account. Run keyword snapshots from the same setup every time.

Which route fits

You needUse
Your own pins and analyticsPinterest API v5
An image archive of a few boardsgallery-dl
Keyword research and competitor boards on a scheduleHosted API

This is not legal advice. Terms and law change, and the answer depends on where you are and what you do with the data. Our guide to the main web scraping cases has the background.

Doing it with ScrapeIO

ScrapeIO's Pinterest search API, Pinterest pin API, Pinterest board API and user boards API cost 1 credit a call; a 30-board audit with 10 pins opened per board is about 330 calls, or $0.62. See the Pinterest platform page and the Pinterest MCP server.

FAQ

Can you scrape data from Pinterest?

Public pins, boards and profiles can be read with open-source tools such as gallery-dl or with a hosted API. Pinterest's own guidelines forbid scraping without its permission, so weigh that first.

Does Pinterest have an API for scraping?

No. API v5 reads your own account and accounts that authorize your app. It does not search all of Pinterest or read other people's boards.

Do I need to log in to scrape Pinterest boards?

Public boards are meant to be seen by anyone, and hosted APIs read them without your account. gallery-dl lists cookie support for Pinterest if you choose to use it.

How do I download Pinterest images in bulk?

gallery-dl downloads every image on a board or profile. Use -g to list image URLs first and check the count.

Is it legal to scrape Pinterest?

It depends on your country, your method and your use. Pinterest's terms and developer guidelines restrict it, and images are usually someone's copyright. Get advice for commercial use.

Sources

Checked on 9 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.

100 free credits, no card. Credits never expire.

Get API key