Pinterest Search Scraper
Search Pinterest by keyword: pin title, description, image URL, destination link, pinner and board. No login. $1.60 per 1,000 pins.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
query,maxItems,includeVideosOnly(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.0016 per pin = $1.6 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Pin returned | Charged per pin returned in the dataset (empty searches are not charged). | $0.0016 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-24, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
query | Keywords to search Pinterest pins for (e.g. "home office setup", "minimalist tattoo"). | string |
maxItems | How many pins to collect. The scraper paginates through Pinterest's search results to reach this number. | integer |
includeVideosOnly | Return only pins that are videos. The direct video URL is included when Pinterest exposes it, but videoUrl may still be null for some video pins where Pinterest's API omits the video field. | boolean |
includePromoted | Include sponsored/promoted pins in the results. Off by default. | boolean |
notionConnector | Optional. Write each pin as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default), results are always saved to the dataset regardless. | string |
notionParentId | Optional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead. | string |
What you get
A structured dataset — each result includes fields like:
boardNameboardUrlcommentCountcreatedAtdescriptiondominantColoridimageUrlisPromotedisVideolinkpinUrlpinnerNamepinnerUsernametitlerepinCountExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
20 ready-to-run use cases
African Home Decor: Scrape Afrobohemian Pinterest Pins
Afrobohemian decor pins as a table: image URL, title, description, pinner, board and created date. Many pins carry an outbound link, not all.
Gothic Coffin Nails: Scrape Pinterest Nail Design Pins
Coffin nail pins with image URL, title, pinner and board, ready for a lookbook or a salon mood board without saving each one by hand.
Jelly Blush: Scrape Pinterest Pins to Check the Trend
Jelly blush pins with image, title, description, pinner and created date, so you can see how long the texture has circulated before betting on it.
Wedding Color Palette: Scrape Plum and Olive Pins
Plum and olive wedding pins with image URL, dominant colour, title and board, so florists and planners can quote a palette from real saved images.
Eggplant Parmesan Recipe Pins: Scrape Pinterest Food
Eggplant parmesan pins with image URL, title and description. Where a pin links out to the recipe blog behind it, that URL comes through too.
Cat Enrichment Toys: Scrape Pinterest Pet Supply Pins
Pet supply pins with image, title, description and an outbound link where there is one. Promoted pins are allowed through but none have come back yet.
Poetcore Aesthetic: Scrape Pinterest Pins for POD Ideas
Poetcore pins with image, title and description. Useful for testing whether a print-on-demand niche has an audience before you list a design.
Birth Flower Tattoo: Scrape Fine-Line Pinterest Pins
Fine-line birth flower references as a dataset: image URL, title, description, pinner and board, instead of a folder of screenshots.
Tailored Suit Women: Scrape Pinterest Tailoring Pins
Sculpted-shoulder tailoring pins with image URL, title, pinner and board. A trend board you can sort and filter rather than scroll.
Fashion Dataset: Scrape Pinterest Outfit Images in Bulk
Street style pins with the full-size image URL, title, description and dominant colour on every row. Up to 1,000 per run for labelling work.
Pinterest Keyword Research: Scrape Pins for Any Phrase
Run a buying phrase through Pinterest search and get the pins back as rows. Titles and descriptions show the wording that actually gets saved.
Christmas Gift Ideas: Scrape Pinterest Gift Guide Pins
Gift guide pins pulled months before December, with image, title, description and board. Plan the season off what people are already saving.
Aesthetic Phone Case: Scrape Pinterest Pins for Products
Phone case pins with image, title and, on many of them, the outbound link to the shop. Save counts are not part of what Pinterest hands back.
Pinterest Idea Pins: Video Pin Scraper for Creator Hunts
Filtered to video and idea pins. Pinterest search rarely returns video, so this one usually finishes empty. An all-pins task is the safer pick.
Art Deco Interior Design: Scrape Neo Deco Pinterest Pins
Neo Deco interior pins as rows: image URL, title, description, pinner and board, feeding a mood board without the click-and-save routine.
Capsule Wardrobe Essentials: Scrape the Pinterest Pins
Quiet-luxury capsule wardrobe pins with image URL, title, pinner and board, so you can see which staples keep coming up before you buy stock.
Fall Outfit Ideas: Pull Pinterest Pins to a Spreadsheet
Fall outfit pins with image, title, pinner and board. Pinterest search does not hand back save counts, so that column comes back empty.
Skincare Routine Steps: Scrape Pinterest Skincare Pins
Skincare pins with image, description, pinner and board. Promoted pins are allowed through, but Pinterest search has returned none in testing.
Boho Living Room Ideas: Scrape Pinterest Pins in Bulk
Every boho living room pin Pinterest returns for the search, with image URL, pinner, board and the outbound link where the pin has one.
Healthy Smoothie Recipes: Pinterest Video Pin Scraper
Filtered to video pins only. Pinterest search almost never returns video, so this run usually comes back empty. An all-pins task is the safer pick.
Ready-made automation using this tool
A finished workflow you can import into n8n and run — this tool does the data-gathering inside it. Free, and yours to change.
See which Pinterest keywords moved this week
Once a week it looks up the keywords you care about on Pinterest, compares them with last week, and posts what changed to Slack — what entered the top results, what dropped out, what moved. The comparison is the point: a ranking on its own tells you nothing.
Related tools in Social Media Scrapers
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
Bluesky Scraper
Scrape Bluesky posts and profiles by handle, no login. Archive keyword search needs your own app password. $2.00 per 1,000 posts.
Mastodon Scraper
Scrape public Mastodon posts by hashtag, account or timeline: text, author, followers, engagement, media and tags. $1.50 per 1,000.
Lemmy Scraper
Scrape public Lemmy posts from any instance: title, body, author, score, votes, comments and permalink. Pick the host. $1.50 per 1,000 posts.
Reddit Text Cleaner — TTS-Ready Narration
Turn raw Reddit posts into clean TTS narration. Strips markdown, links and edit stamps, splits into sentences. No AI key. $0.20 per 1,000 texts.
TikTok Comments Scraper
Scrape TikTok comments from any public video: text, likes, reply count, author and timestamp. No login. $0.25 per 1,000 comments.
TikTok Hashtag Scraper
Scrape TikTok hashtag videos: plays, likes, comments, shares, author and sound. No login or API key. $0.25 per 1,000 videos.
Where this tool sits
- Categories
- Social Media Scrapers
- Platforms
Pinterest Search Scraper: pins by keyword, with the link each one points at
Type a search the way you would type it into Pinterest and every matching pin comes back as a row: the title, the description, the full-size image, who pinned it, which board it sits on, and the outbound link. That link is the field most people are here for, because it usually goes to a product page or a recipe.
The awkward part, said up front: repin and comment counts arrive empty on every row. Pinterest stopped putting them in the search response. Across 239 pins from twelve runs both were null every time, so a "top pins by repins" pipeline cannot be built on this. reactionCount is the engagement number you do get, and it was null on about a quarter of those rows.
| Input | One search query |
| Output | One row per pin |
| Ceiling | 2,000 pins per run |
| Account needed | None, no login and nothing to paste |
| Price | $1.60 per 1,000 pins, flat on every plan |
📌 What Pinterest Search Scraper does
It runs your keywords through Pinterest's own search and pages through the results until it has as many pins as you asked for. Sponsored pins are left out unless you ask for them, and you can keep video pins only.
Paging stops early when two pages in a row bring nothing new. That is usually Pinterest running out of fresh results for a narrow query rather than anything going wrong, which is why a run can end with fewer pins than you asked for.
Keyword search is the whole scope. Boards, profiles and single pin pages are not part of it.
📥 What you give it
{
"query": "minimalist tattoo",
"maxItems": 200,
"includePromoted": false
}
| Field | Default | What it is |
|---|---|---|
query | none, and required | Your keywords, exactly as you would type them into Pinterest. The form starts with home office setup in the box. |
maxItems | 50 | How many pins to collect, 1 to 2,000. This is the dial that sets what a run costs. |
includeVideosOnly | false | Keep only pins that came through with a playable video file. Read the note under the field table before using it. |
includePromoted | false | Include sponsored pins. Off by default. |
notionConnector | none | Optional. Write every pin into Notion as a page when the run finishes. Authorize the connector once under Settings, API and Integrations, MCP connectors, then pick it here. |
notionParentId | none | Optional. The Notion data source to write into. Empty creates the pages privately in your workspace. |
proxyConfiguration | on | Optional. Leave it alone for a normal run. You can supply your own servers here if you have a reason to. |
📤 What you get back
A real row from a recent run:
{
"ok": true,
"id": "492649955299899",
"title": "ADHD-Friendly Desk Setup for Better Focus & Productivity",
"description": "Create a calmer, more organized workspace with simple ADHD-friendly desk essentials. ...",
"pinUrl": "https://www.pinterest.com/pin/492649955299899/",
"imageUrl": "https://i.pinimg.com/originals/ef/3a/d0/ef3ad07436299cc349cbf8dfddb8a30d.png",
"isVideo": false,
"videoUrl": null,
"link": "https://www.zafranorganicbd.store/2026/08/adhd-friendly-desk-setup-for-better.html",
"dominantColor": "#a99477",
"repinCount": null,
"commentCount": null,
"reactionCount": 53,
"createdAt": "2026-09-09T15:49:57.000Z",
"pinnerUsername": "nanaliv30",
"pinnerName": "Nanaliving",
"boardName": "My Home",
"boardUrl": "https://www.pinterest.com/nanaliv30/my-home/",
"isPromoted": false
}
The description is cut short above. The real one runs on with the pinner's hashtags.
| Field | What it is |
|---|---|
link | Where the pin points: the product page, article or recipe. The reason most people run this. null when the pin links nowhere. |
imageUrl | The full-size image, or the widest one Pinterest offers for that pin. |
isVideo, videoUrl | isVideo is true only when a playable video file came through, and videoUrl holds it. |
repinCount, commentCount | null on every row. Pinterest no longer sends them. |
reactionCount | Reactions on the pin. null when there are none or Pinterest leaves it out. |
dominantColor | The pin's main colour as hex, Pinterest's own value. |
createdAt | When the pin was created, in UTC. |
pinnerUsername, pinnerName, boardName, boardUrl | Who pinned it and where it lives. |
isPromoted | Whether it is a sponsored pin. |
title, description, link, createdAt, boardName, boardUrl and dominantColor can each be null when Pinterest leaves that field out for a pin.
🧾 Reading the output
Pins carry ok: true. Anything that goes wrong is written as a single row with ok: false and an errorCode rather than an empty dataset, and those rows are not charged.
| Code | What it means |
|---|---|
BAD_INPUT | No search query was given. |
NO_RESULTS | The search ran and matched nothing. With Video pins only switched on, a narrow query hits this often. |
BLOCKED | Pinterest refused the request. Run it again. |
NETWORK | Pinterest was unreachable or answered badly. |
One case has no diagnostic row: if a results page fails part-way through a long run, the pins already collected are delivered and billed and the run stops there. So a run that returns 380 of the 1,000 pins you asked for, with no error row, hit that. Run it again for the rest.
The Console's overview table includes a repinCount column, which is the one that is always empty. Nothing is missing from your data, the column has nothing to show.
▶️ How to run it
1. Open Pinterest Search Scraper and click Try for free. 2. Type your keywords into Search query. 3. Set Max pins. Start around 20 to see the shape of the output. 4. Click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost?
$1.60 per 1,000 pins. Flat on every Apify plan, no volume tiers.
You pay per pin row delivered. Diagnostic rows are not billed, and neither is a search that matches nothing. Max pins is a hard cap, so it doubles as your spending limit.
💡 What people use it for
- Pulling the outbound links behind a niche, which is a list of the sites and shops that niche
actually buys from.
- Watching which products keep resurfacing in a category, by running the same query weekly.
- Collecting reference images with their sources attached, instead of a folder of screenshots.
- Finding the boards and accounts that dominate a topic, by counting
pinnerUsernameand
boardName across a few hundred rows.
- Feeding titles and descriptions into a summariser or a Notion database for a content brief.
🚧 What it does not do
- Keyword search only. No boards, no profiles, no single pin pages, no related pins.
- No repin or comment counts. They are
nullon every row and that is Pinterest's doing. - Video pins are under-counted. A pin whose video file Pinterest leaves out of the search
response reads as an image here, so Video pins only will miss some genuine video pins.
- No login, so anything private, secret-board or account-specific is out of reach.
- Images and videos are not downloaded. You get the URLs.
- Promoted pins were not seen in testing, even with the switch on. Pinterest decides what to
serve.
- Pinterest's ranking decides the order, and a narrow query can run out of fresh pins well
before your ceiling.
- Rows are a snapshot. A pin can be edited or deleted after it was read.
🧭 Which social scraper do you need?
| If you want | Use |
|---|---|
| Pinterest pins by keyword, with their outbound links | This one |
| Public LinkedIn posts by keyword | LinkedIn Post Search Scraper |
| Instagram posts and reels under a hashtag | Instagram Hashtag Scraper |
| Instagram profiles with follower counts and bio links | Instagram Profile Scraper |
| Tweets by keyword, with advanced search operators | Twitter (X) Search Scraper |
❓ Questions people ask
Do I need a Pinterest account? No. Nothing to log into, nothing to paste.
Can I scrape a specific board or user? Not with this one. It searches pins by keyword.
Why did I get fewer pins than I asked for? Either the query ran dry, which is common on narrow searches, or the run stopped early on a failed page. A NO_RESULTS row tells the first apart; no row at all with a partial set means the second.
Can I get the video file? When Pinterest includes it, yes, in videoUrl. It is not there for every video pin.
Can I schedule it? Yes. Dedupe on id between runs and you only see pins that are new to you.
Is this legal? Pins are public, and they carry someone's account name, which data-protection law covers, so have a reason for collecting it. Apify's write-up on scraping and the law is a good start, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the query you used and the run ID. The errorCode on the diagnostic row usually names the problem on its own.