Pinterest Trends & Pin Scraper - Keywords, Saves & Boards avatar

Pinterest Trends & Pin Scraper - Keywords, Saves & Boards

Pricing

from $1.20 / 1,000 result scrapeds

Go to Apify Store
Pinterest Trends & Pin Scraper - Keywords, Saves & Boards

Pinterest Trends & Pin Scraper - Keywords, Saves & Boards

[💵 $3 / 1K · no start fee] Pinterest keyword research plus full pin, board and profile extraction. Related keywords scored with real engagement, accurate save counts, outbound destination links, full-resolution images and direct video URLs. No login, no API key.

Pricing

from $1.20 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

WebData Labs

WebData Labs

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Pinterest Trends & Pin Scraper

Find the Pinterest keywords that actually get saved, then pull every pin, board and profile behind them - with the destination link and the real save count attached.

Pinterest keyword research normally means logging into Pinterest Trends, reading a chart, and guessing. And most Pinterest scrapers hand you a wall of image URLs with no engagement numbers and no destination links, which are the two things that tell you whether a pin is worth copying. This Actor does both jobs: it expands a seed keyword into the related keywords Pinterest itself ranks for it, measures the top pins behind every one of them, and returns pins carrying saveCount, the outboundLink they point at, the full-resolution image and a direct videoUrl. No login, no API key, no Pinterest developer account.

✅ What you get / ❌ what this isn't

✅ What you get❌ What this isn't
Keyword research rows with median and peak saves measured from real pinsNot a trend chart you have to read by eye and retype
outboundLink - the destination URL a pin sends traffic toNot just an image URL with the money field missing
saveCount from the pin detail endpoint, the accurate aggregated numberNot repin_count, which is routinely 1000x smaller and looks like a dead pin
videoUrl as a direct MP4 fileNot an HLS playlist you cannot download
imageUrl at full original resolutionNot the 236px grid thumbnail
Five entry modes in one Actor - keywords, search, boards, profiles, pinsNot three separate Actors you chain and pay start fees for
Deterministic dominantColour, hashtags and domain rollupsNot a guessed sentiment label dressed up as analysis
No start fee, pay only for rows you keepNot a per-run charge on top of the per-result price

🔎 Why use this Actor

  • Keyword expansion with evidence. For each seed, Pinterest's own ranked related keywords come back with its relevance score, and each one is measured against the top 25 pins actually behind it: medianSaves, maxSaves, outboundLinkShare, videoShare. Every number is plain arithmetic over rows you can see, so you can recompute it yourself.
  • The destination link, not just the pin. outboundLink and sourceDomain are populated wherever Pinterest exposes them. This is the field affiliate and SEO researchers need and the one most competing Actors leave out or fill inconsistently.
  • The save count that is actually right. Pin detail is the only endpoint where Pinterest returns the aggregated save total. Search results omit it entirely, so anything reading save counts off search is reporting nulls or the much smaller per-pin repin count. Both saveCount and repinCount ship, labelled honestly.
  • Video pins are detected properly. Pinterest sets is_video: false on plenty of genuine video pins. This Actor keys off the video payload instead, so pinType: "video" does not quietly miss half the video pins.
  • Competitor input JSON just runs. queries, keywords, usernames, pinIds, startUrls, urls, limit, maxResults and type are all accepted as aliases, so a config copied from another Pinterest Actor's docs does not fail validation on the first run.
  • 100% run success across a 30-run sample, measured 2026-07-31 across all five modes before release. The figure is published because it is checkable, and because a leading Actor in this niche runs at 86%.
  • Nothing to tune. No proxy, concurrency, retry or delay fields. Session rotation and pacing are handled internally and included in the price.

👥 Who it's for

Content marketers, SEO and affiliate researchers, e-commerce merchandisers and social media agencies who need to know what Pinterest audiences save before committing to a content calendar.

  • Build a keyword map for a niche and rank it by median saves, not by guesswork.
  • Pull the destination domains already winning a keyword, to find affiliate programmes and competitors.
  • Collect the top-saved pins for a topic as a creative brief for a designer.
  • Track a competitor's boards and profile on a schedule and see what they publish.
  • Download the full-resolution images or MP4s behind the best-performing pins in a niche.

Example tasks

Ready-made configurations, each set up for one job:

⚙️ How to research a Pinterest keyword

  1. Open the Actor and put one or more seed topics into trendKeywords (for example home office).
  2. Leave relatedKeywordDepth at 1 to measure the seed plus the related keywords Pinterest ranks for it. Set it to 2 to expand the strongest of those one level further.
  3. Set country to the market you sell into. Pinterest ranks pins and related keywords differently per market, so this changes the results, not just the labels.
  4. Set maxItems to cap the run. Keyword rows are the expensive ones, because each is measured from 25 real pins.
  5. Click Start. Results appear in the Keyword research view on the Output tab, and export as CSV, JSON or Excel.

To collect the pins themselves instead, use searchQueries, boardUrls, profiles or pinUrls and read the Pins view.

Track a competitor every week

Create a Saved Task with the competitor's profile in profiles, then add a schedule on the Actor's Schedules tab. Each run returns their profile row, their boards and their newest pins, so you can diff week over week in your own warehouse.

📥 Input

{
"trendKeywords": ["home office"],
"relatedKeywordDepth": 1,
"country": "US",
"maxItems": 25
}

Or to collect pins with a destination link and proven engagement:

{
"searchQueries": ["kitchen organization hacks"],
"minSaves": 500,
"onlyWithOutboundLink": true,
"maxItems": 100
}

Sources (any one is enough, and they can be mixed in one run):

  • searchQueries - Pinterest keyword searches. A pinterest.com/search/pins/?q=... URL works here too; the keyword is read out of it. Aliases: queries, query, keywords, search.
  • trendKeywords - seed keywords for keyword research. Returns keyword rows rather than pin rows.
  • boardUrls - full board URLs. Returns the board row, then the board's pins.
  • profiles - usernames, @handles or profile URLs. Returns the profile, its boards, then its pins. Aliases: usernames, users.
  • pinUrls - pin URLs or bare numeric pin IDs. Always fetches full detail. Alias: pinIds.
  • startUrls - a mixed bag of pin, board, profile and search URLs, routed by shape automatically. Aliases: urls, url.

Filters (filtered-out pins are never charged):

  • maxItems - total rows for the whole run. Default 100, 0 means unlimited, no hard ceiling. Aliases: maxResults, limit.
  • maxPinsPerSource - cap pins taken from each individual query, board or profile. Default 0 (no per-source cap).
  • pinType - all, image or video. Alias: type.
  • minSaves - drop pins saved fewer times than this.
  • onlyWithOutboundLink - keep only pins that link off Pinterest. The filter for affiliate and SEO work.
  • relatedKeywordDepth - 1 or 2. Only used by trendKeywords.
  • country - the market to collect from. Sets both the results and the locale.

Output shape:

  • includeBoards - when scraping a profile, also return one row per board before the pins. Default true.

There is no proxy, concurrency, retry or delay setting, by design. See Limits and caveats.

📤 Output

pinUrltitlesaveCountoutboundLinksourceDomaindominantColour
pinterest.com/pin/53972895529306045/27 Stunning Minimalist Modern Kitchen Ideas5752uniquedesignblog.com/minimalist-modern-kitchen-ideas/uniquedesignblog.com#afa093
pinterest.com/pin/703756189470269/Under-sink organization4236#d8cfc4
pinterest.com/pin/140806231400324/Pantry reset36048#c0a78c

Every row carries a resultType of pin, keyword, board, profile or error, so a mixed run is easy to split.

Pin rows

FieldWhat it is
pinId, pinUrlPinterest's pin identifier and its canonical URL
title, descriptionPin title and description, falling back to Pinterest's own alt text
mediaTypeimage or video, detected from the video payload rather than the unreliable is_video flag
imageUrl, imageWidth, imageHeightFull original resolution where Pinterest stores one
videoUrl, videoDurationMs, videoThumbnailUrlDirect MP4 file for video pins, not an HLS playlist
outboundLink, sourceDomainThe destination the pin sends traffic to, and its domain
saveCountAggregated saves across every copy of the image. null when not measured, never a fake 0
repinCountRepins of this one pin. A different, much smaller number than saveCount
commentCount, reactionCount, triedCountRemaining engagement counters
dominantColourPinterest's own dominant colour hex for the image
hashtagsExplicit hashtags, falling back to hashtags parsed out of the description
createdAtPin creation time, ISO-8601
pinnerUsername, pinnerFullName, pinnerFollowersWho published the pin
boardName, boardUrlThe board the pin sits on
isPromotedWhether Pinterest served the pin as an ad
sourceType, sourceInput, searchQueryWhich input produced the row

Keyword rows (from trendKeywords)

FieldWhat it is
keyword, seedKeyword, isSeed, depthThe keyword, the seed it expanded from, and how far out
rank, relevanceScorePinterest's own ordering and relevance score for the related keyword
pinsAnalysedHow many pins the numbers below were computed from
medianSaves, maxSaves, totalSavesSave distribution across those pins
pinsWithOutboundLink, outboundLinkShareHow commercial the keyword is
videoPins, videoShareHow much of the keyword is video
topDomainsThe domains already ranking, with a pin count each
topPinUrl, searchUrlThe best-performing pin, and the Pinterest search to eyeball it

Board and profile rows

FieldWhat it is
boardId, boardName, boardUrl, pinCount, followerCount, sectionCount, isPrivate, ownerUsername, ownerFullNameBoard metadata
userId, username, fullName, profileUrl, about, websiteUrl, followerCount, followingCount, pinCount, boardCount, isVerifiedProfile metadata

Four ready-made views are available on the Output tab: Pins, Keyword research, Destination links and Boards & profiles.

💵 How much does it cost?

pin-scraped is $0.003 per result on the free tier, dropping to $0.0012 at GOLD. There is no start fee, so a small lookup costs exactly what its rows cost.

TierPrice per result100 results1,000 results
FREE$0.003$0.30$3.00
BRONZE$0.0024$0.24$2.40
SILVER$0.0018$0.18$1.80
GOLD and above$0.0012$0.12$1.20

You pay per row written to the dataset. Pins removed by minSaves, pinType or onlyWithOutboundLink are never charged, so a strict filter lowers the bill rather than raising it. A keyword research run costs one row per keyword, and a depth-1 seed typically produces 11 keyword rows.

Because there is no start fee, small baskets are where the difference shows: a 10-pin lookup costs $0.03 here against $0.0445 on an Actor charging $0.00345 plus a $0.01 start fee.

🔁 Run it on the Apify platform

Schedule the Actor for a recurring keyword or competitor report, call it from the Apify API or any Apify client, and export results as JSON, CSV, Excel, XML or RSS. Datasets connect to Make, Zapier, Google Sheets, Airtable and webhooks, so a weekly keyword report can land in a spreadsheet or your warehouse without any glue code.

Use with AI agents via MCP

The Actor is exposed over Apify's MCP server, so an agent can call it directly.

Claude Code

$claude mcp add apify --transport http https://mcp.apify.com --header "Authorization: Bearer <YOUR_APIFY_TOKEN>"

Cursor or Claude Desktop - add to your MCP config:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com",
"headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }
}
}
}

Then ask the agent to run webdata_labs/pinterest-trends-scraper. Structured parameters exist precisely so an agent can fill trendKeywords: ["home office"] without having to construct a Pinterest URL.

Use this Actor in n8n

n8n ships an Apify node. Add it, authenticate with your Apify API token, choose Run Actor, select webdata_labs/pinterest-trends-scraper, and paste the input JSON above. Use Run Actor and get dataset to get rows back in the same step, then feed them into Sheets, Notion, Airtable or a database node. Pair it with an n8n Schedule Trigger for a recurring keyword report.

⚠️ Limits and caveats

Written so these do not surprise you later.

  • Save counts come from pin detail, not search. Pinterest returns no engagement stats on search results at all. Setting minSaves or pinType: "video" therefore makes search runs fetch each pin's detail, which is slower. Board and profile runs already carry save counts and need no extra fetch.
  • saveCount can be null. When a payload does not carry stats, the field is null, not 0. A minSaves filter drops those rows rather than passing them, because an unmeasured pin is not a proven one.
  • Not every pin has an outbound link. User-uploaded pins link nowhere; Pinterest labels their domain with the literal text "Uploaded by user", which this Actor emits as null rather than as a domain. Use onlyWithOutboundLink when you need the link.
  • Pinterest Trends itself is behind a login. trends.pinterest.com serves nothing to a logged-out client, so this Actor does not scrape it and does not report its absolute search-volume index. What it gives instead is Pinterest's own ranked related keywords plus engagement measured from real pins. That is a different measurement, and it is one you can verify from the pin rows.
  • relevanceScore is Pinterest's number, not ours. It ranks how related a keyword is to the seed. It is not a search volume and should not be read as one.
  • No sentiment or AI scoring. Everything returned is either a field Pinterest published or arithmetic over pins in the same dataset. There is deliberately no sentiment label, because a crude one is a liability rather than a feature.
  • Private and deleted content returns an error row. A missing board, profile or pin produces a resultType: "error" row naming the input and the reason, and the run continues. Error rows are not charged.
  • pin.it short links are not accepted. They contain no pin ID until they redirect. Open one and paste the pinterest.com/pin/... URL it lands on.
  • Proxying is handled internally. There is nothing to configure and nothing to pay for separately. Rotation and pacing are part of how the Actor works, not a knob.

This Actor collects only content Pinterest serves publicly to a logged-out browser: public pins, public boards, public profiles and the related keywords Pinterest itself shows on its search pages. It does not log in, does not bypass any access control, and never touches private boards, secret boards, direct messages or personal data behind an account.

Scraping publicly available data is broadly lawful in the EU and the US, and the US Ninth Circuit's decision in hiQ Labs v. LinkedIn held that scraping public pages does not violate the Computer Fraud and Abuse Act. That is not the whole story for you, though: what you then do with the data is regulated separately. Copyright stays with the people who made the images and videos, so treat pin media as licensed material and not as free stock. If you handle anything that identifies a person, GDPR and similar laws apply to your use of it. Pinterest's own Terms of Service govern your relationship with Pinterest. None of this is legal advice - if your use case is commercial redistribution rather than research, talk to a lawyer.

Part of a visual marketing and creative research stack. Each one answers a different half of "what should we publish, and what is already working?"

  • TikTok Hashtag Trends Scraper - the same trend question on TikTok, so you can compare which platform a topic is peaking on before committing a content calendar.
  • TikTok Creative Center Ad Intelligence - the paid creative behind a trend, when you want to know what a topic looks like once someone puts budget on it.
  • Meta Ads Library Scraper - run the sourceDomain values from a keyword report through it to see what those advertisers are running on Facebook and Instagram.
  • Google Ads Transparency Scraper - the same competitors' search and display ads, to confirm whether Pinterest traffic is their main channel or a side bet.
  • Google Shopping Scraper - for product pins, the prices and merchants behind the products people are saving.

❓ FAQ

Do I need a Pinterest account or API key?

No. The Actor reads the same public endpoints a logged-out browser reads. There is nothing to authenticate and no developer account to apply for.

Am I charged for pins that my filters remove?

No. You are charged per row written to the dataset. Pins dropped by minSaves, pinType or onlyWithOutboundLink never reach it. Error rows are not charged either.

Why is saveCount empty on some rows?

Because Pinterest did not return stats for that pin in that payload. Search results carry no engagement data at all, so a plain search run without minSaves returns null there by design. Set minSaves, or use pinUrls, boardUrls or profiles, to get measured save counts.

What is the difference between saveCount and repinCount?

saveCount is Pinterest's aggregated total across every copy of the same image, which is the number Pinterest itself displays. repinCount counts only the specific pin you asked for. On one measured pin these were 5,752 and 6. Both ship because they answer different questions: how strong the image is, versus how strong that one posting of it is.

Not the trends.pinterest.com product, which requires a login. It returns Pinterest's own ranked related keywords for your seed, plus engagement measured from the top pins behind each one. See Limits and caveats.

How reliable is it?

100% of runs succeeded across a 30-run pre-release sample on 2026-07-31, spread over search, board, profile, pin and keyword modes. Two of those runs were pointed at board URLs that do not exist; they returned a named error row and stayed green rather than failing, which is the intended behaviour. The live figure on the Store card is the one to trust as runs accumulate.

Which countries are supported?

country accepts United States, United Kingdom, Canada, Australia, Germany, France, Spain, Italy, Netherlands, Portugal, Brazil, Mexico, Poland, Sweden, Japan and India. Each one changes which pins and keywords Pinterest ranks, not just the interface language.

Can I download the images and videos?

Yes. imageUrl is the full-resolution file and videoUrl is a direct MP4. Both are ordinary URLs you can fetch. Copyright in the media belongs to whoever made it, so check before republishing.

Set onlyWithOutboundLink to true. Combine it with minSaves to get only pins that both drive traffic somewhere and have proven they get saved.

🛠️ Support

Something wrong or missing? Open an issue on the Actor's Issues tab with the run URL, the input you used and what you expected. That is the fastest route to a fix, and issues drive what gets built next.

⭐ Rate this Actor

If this saved you time, please leave a rating on the Reviews tab. Review count is the main trust signal a new Actor has, and reviews tell us which parts of the output are worth deepening. If something is broken, please open an issue first so it can be fixed - that helps you faster than a low rating does.

Changelog

0.1 - 2026-07-31

  • First release. Five entry modes: keyword research, search, boards, profiles and individual pins.
  • Keyword rows with Pinterest's ranked related keywords plus median, peak and total saves, outbound-link share, video share and domain rollups measured from real pins.
  • Pin rows with the outbound destination link, aggregated save count, repin count, full-resolution image, direct MP4 video URL, dominant colour, hashtags and board and pinner context.
  • Competitor field-name aliases accepted so existing input JSON runs unchanged.
  • Pay per result as pin-scraped, no start fee.