Pinterest Pins Videos Search & Outbound Shopping Links Scraper avatar

Pinterest Pins Videos Search & Outbound Shopping Links Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Pinterest Pins Videos Search & Outbound Shopping Links Scraper

Pinterest Pins Videos Search & Outbound Shopping Links Scraper

Pinterest Pins Videos Search Scraper extracts pins and video results from Pinterest search queries. Collect pin titles, descriptions, images, video URLs, engagement metrics, and source links. Ideal for trend research, content discovery, and market analysis.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

0

Monthly active users

a day ago

Last modified

Share

Pinterest Pins Videos Search & Outbound Shopping Links Scraper searches Pinterest by keyword, profile, or board and returns every pin's real outbound link, merchant domain, isShoppingPin flag, and a per-run topMerchants ranking as structured JSON, no HTML parsing required. It separates pins that point to a genuine product page from plain image uploads, and surfaces which merchant domains actually dominate your search results. Start a run below to pull merchant and shopping-link data straight into your dataset.

It's an Apify Actor that searches Pinterest by keyword, or fetches a specific profile/board URL, and returns each pin's content, outbound link, and merchant domain as typed JSON rows — plus a heuristic shopping-pin flag and a live merchant-domain leaderboard computed across the run. No Pinterest account or login is required: the Actor drives a headless Chromium browser against the public pinterest.com pages and search/board/profile endpoints. It's built for e-commerce and affiliate researchers, growth marketers, and developers who need Pinterest's outbound-link data without a browser extension or manual export.

What Pinterest pin data is publicly available to scrape?

Anyone browsing Pinterest without an account sees a pin's image, title, description, outbound link, and merchant domain — exactly what this Actor collects.

Data CategoryPublicRestricted (login)
Pin image, title, descriptionYes
Outbound link, merchant domainYes
Video URLYes
Pinner username, followersYesFull follower lists
Board name, pin countYes (public boards)Secret boards
Reaction countsYes
Pinterest "Shopping" pin badgeNoBusiness account only
Personalized home feedNoLogin required

This Actor only returns publicly visible data — nothing behind a login wall. isShoppingPin is its own heuristic from public link/domain fields, not Pinterest's gated classification.

Each run returns pin content and media fields, merchant/shopping-link intelligence, and run-level context for every pin matched.

Field NameDescription
node_idUnique Pinterest pin ID
pinUrlCanonical pinterest.com/pin/<id>/ deep link
typesearch_pin, board_pin, or profile_pin depending on whether the row came from a keyword search, board fetch, or profile fetch
created_atPin creation timestamp, as returned by Pinterest
titlePin title text
descriptionPin description text
boardBoard metadata (id, name, url, description, pin_count, privacy) when type is board_pin; null otherwise
search_termThe search term, profile URL, or board URL that found this pin
scrapedAtISO timestamp of when the pin was scraped
urlPin image URL
width / heightImage dimensions
image_sizeWhich image size variant was used (e.g. 236x)
dominant_colorDominant color hex code
link_to_videoVideo stream URL if the pin is a video
is_videoWhether the pin is a video pin
domainOutbound link's source domain (or "Uploaded by user" if none)
linkExternal outbound link, if available
isShoppingPintrue when the pin has a real outbound link AND a real merchant domain
topMerchantsArray of {domain, count} — the top merchant domains seen so far this run
reaction_countsObject with reaction-type counts
pinnerObject with pinner info (full_name, username, follower_count, image_url)

Pin identity & content fields

node_id, pinUrl, type, created_at, title, description, board, search_term, scrapedAt

Media fields

url, width, height, image_size, dominant_color, link_to_video, is_video

Shopping & merchant intelligence fields

domain, link, isShoppingPin, topMerchants, reaction_counts, pinner

🤖 Add-on: Need additional Pinterest data?

If you need creator profiles and board metadata as first-class results — not just the pinner/board fields attached to a pin — pair this Actor with Pinterest Search Scraper: Pin Board Details, which turns one keyword into pins, boards, and enriched creator profiles (bio, followers, website, verified badge) in a single run. Use this Actor when your focus is outbound links and merchant domains; use that one when you need board/creator enrichment as the primary output.

Pinterest's own Developer API requires an approved app and OAuth, and gates production use behind a review process; this Actor needs no app, token, or review to search any public keyword, profile, or board.

FeaturePinterest Developer APIThis Scraper
Access requirementRegistered app + OAuth; Trial approval, then a separate review for Standard accessNone — enter search terms and run
Content scopeThe authenticated app's own connected account (its pins, boards, analytics)Any public keyword search, profile, or board
Sandbox restrictionTrial-tier content is only visible to its creator until Standard access is grantedReturns whatever is already public on pinterest.com
Rate limitsTrial: capped per app per day; Standard: capped per minute per user/appGoverned by this Actor's own proxy/retry logic, not a published API cap
Setup timeApp creation, OAuth, Trial approval, then Standard reviewProvide search terms and start the run
Merchant/outbound-link rankingNot a built-in featureisShoppingPin heuristic and topMerchants aggregation on every run

Use Pinterest's Developer API as an approved developer managing your own account. Use this Actor to search any public keyword, profile, or board for outbound-link/merchant data without an approval process.

This Actor runs on the Apify platform — no separate signup or API key beyond an Apify account is needed to start a run from the Console.

  1. Open the Actor's page in the Apify Store and click Try for free (or Run).
  2. Add one or more entries to merchantSearchTerms — keywords, profile URLs, or board URLs (no field is technically required, but the Actor exits immediately if this array is empty).
  3. Optionally set maxPinsPerTerm, contentFilter, onlyLinkedPins, or merchantDomainFilter to narrow the results.
  4. Click Start and monitor progress in the run log.
  5. Download results as JSON or CSV from the Dataset tab, or read the MERCHANT-SUMMARY record from the Key-value store tab.

How to scale to bulk Pinterest pin/video extraction

merchantSearchTerms is an array, so a single run can process any number of keywords, profile URLs, or board URLs — each one is scraped in turn, up to maxPinsPerTerm results, and topMerchants accumulates across all of them. There is no separate "bulk mode" input; add as many entries to merchantSearchTerms as you need in one run instead of starting a new run per term.

  • An affiliate researcher screening a niche uses onlyLinkedPins plus domain to pull only pins with a real merchant link, skipping user-uploaded images with no destination.
  • A dropshipper scoping demand uses merchantDomainFilter (e.g. ["amazon.com", "etsy.com"]) to see only pins driving traffic to specific marketplaces for a keyword.
  • A market researcher uses the topMerchants ranking and the MERCHANT-SUMMARY key-value record to see which merchant domains dominate outbound clicks for a search term or set of terms.
  • A content strategist uses is_video/link_to_video with contentFilter set to Videos to collect only video pins for a topic, along with title/description for messaging research.
  • An AI agent building a shopping-trend assistant feeds title, description, domain, and topMerchants into a RAG pipeline to answer questions like "which merchants are trending for running shoes on Pinterest right now" with current, structured data instead of stale training knowledge.

The Actor drives a headless Chromium browser (Playwright) rather than calling Pinterest's internal API directly, and starts every run without a proxy. If a fetch fails, times out, or returns a blocked/403/429-style response, it automatically retries with a datacenter proxy (Apify's SHADER group), and if that also fails, retries up to three more times on a residential proxy, waiting between attempts. Pagination follows Pinterest's own bookmark cursor via a direct resource request instead of relying purely on scroll timing, which keeps large result sets from being silently truncated or duplicated. Malformed or unusual pin nodes are skipped individually with a log line rather than failing the whole batch, and a search term that returns nothing is logged and skipped so the run continues with the remaining terms. No CAPTCHA-solving is performed; if all proxy tiers fail for a given term, that term simply returns zero results rather than stopping the run.

⬇️ Input

ParameterRequiredTypeDescriptionExample Value
merchantSearchTermsNoarrayPinterest search keywords, profile URLs (e.g. https://www.pinterest.com/username/), or usernames to find shopping/outbound-link pins for. Supports bulk input. Also accepts the base actor's searchTerms key.["running shoes", "home decor"]
maxPinsPerTermNointegerMaximum number of pins to scrape per search term (1–1000). Default is 50. Also accepts the base actor's maxItems key.50
contentFilterNostringFilter results: All (pins + videos) or Videos only. Also accepts the base actor's filtre key."Videos"
onlyLinkedPinsNobooleanWhen true, keep only pins with a real outbound link plus a real merchant domain (not "Uploaded by user") — the isShoppingPin heuristic. Default false.true
merchantDomainFilterNoarrayKeep only pins whose outbound domain contains one of these strings (case-insensitive substring match). Leave empty to keep all merchant domains.["amazon.com", "etsy.com"]
topMerchantsCountNointegerHow many top merchant domains to include in the topMerchants ranking on every row and in the final MERCHANT-SUMMARY record. Default is 5.5
proxyConfigurationNoobjectProxy settings. Default is no proxy; the Actor automatically falls back to datacenter, then residential proxy (3 retries) if Pinterest blocks the request.{ "useApifyProxy": false }

Example input

{
"merchantSearchTerms": ["running shoes", "home decor"],
"maxPinsPerTerm": 50,
"contentFilter": "Videos",
"onlyLinkedPins": true,
"merchantDomainFilter": ["amazon.com", "etsy.com"],
"topMerchantsCount": 5,
"proxyConfiguration": { "useApifyProxy": false }
}

⬆️ Output

Every matching pin is written to the Actor's dataset as one typed JSON row, with a consistent schema across runs. Export results as JSON, CSV, Excel, or any other format the Apify dataset export supports. Only rows that are actually pushed to the dataset are billed under the pin_result charged event — pins dropped by onlyLinkedPins/merchantDomainFilter, or skipped because they carried no usable content, are never pushed and never charged.

Example output

{
"node_id": "4362930884162196",
"pinUrl": "https://www.pinterest.com/pin/4362930884162196/",
"type": "search_pin",
"created_at": "Wed, 17 Sep 2025 21:05:25 +0000",
"url": "https://i.pinimg.com/236x/aa/bb/cc/running-shoes.jpg",
"pinner": {
"full_name": "Sofia Ortiz",
"username": "sofiacamposflor",
"follower_count": 412,
"image_url": "https://i.pinimg.com/280x280_RS/default_avatar.jpg"
},
"domain": "amazon.com",
"isShoppingPin": true,
"topMerchants": [
{ "domain": "amazon.com", "count": 6 },
{ "domain": "etsy.com", "count": 3 }
],
"reaction_counts": { "1": 1877 },
"width": 236,
"height": 236,
"image_size": "236x",
"dominant_color": "#88a549",
"link": "https://amazon.com/dp/B0EXAMPLE",
"title": "Best running shoes 2026",
"description": "Lightweight running shoes for daily training",
"link_to_video": null,
"is_video": false,
"board": null,
"search_term": "running shoes",
"scrapedAt": "2026-07-25T12:00:00Z"
}

A MERCHANT-SUMMARY key-value record is also saved at the end of each run, with the run's totalPinsScraped, totalShoppingPins, uniqueMerchantDomains, final topMerchants ranking, and the full domainCounts map.

How does it work?

The Actor drives a real headless Chromium browser (via Playwright) to the relevant Pinterest search, board, or profile page, intercepting Pinterest's own internal resource_response XHR calls as they load, with a fallback scan of embedded page JSON for board/profile pages that skip those calls. Pagination follows Pinterest's own bookmark cursor through a direct resource fetch rather than only scrolling and hoping, so larger result sets are collected deterministically. If Pinterest blocks a request, the Actor retries through a datacenter proxy and then a residential proxy before giving up on that term. Every field returned — image, video, link, domain, pinner, board — is exactly what a logged-out visitor sees on the page; no private or login-gated data is ever accessed. Because the output schema is defined by this Actor rather than scraped directly from Pinterest's HTML structure, field names stay stable even when Pinterest changes its page layout.

Integrations

Pinterest Pins Videos Search & Outbound Shopping Links Scraper runs on the Apify platform, so it works with anything that can call Apify — your own code, no-code automation tools, or AI agents.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("Scraper-Engine/pinterest-pins-videos-search-outbound-shopping-links-scraper").call(
run_input={
"merchantSearchTerms": ["running shoes", "home decor"],
"onlyLinkedPins": True,
"merchantDomainFilter": ["amazon.com", "etsy.com"],
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["domain"], item["link"])

Works in Go, Ruby, Node.js, cURL — any language that can make an HTTP request.

MCP integration for AI agents

This Actor is callable through Apify's official MCP server at https://mcp.apify.com (Bearer-token auth) or locally via npx @apify/actors-mcp-server, which lets an MCP client discover and run any Apify Actor — including this one, by its ID Scraper-Engine/pinterest-pins-videos-search-outbound-shopping-links-scraper — and page through its dataset results. Compatible with Claude, Claude Code, and any other MCP-aware agent client that supports Streamable HTTP or stdio transport.

No-code tools (n8n, Make, LangChain)

In n8n, use the Apify node (or the HTTP Request node against the Actor's run endpoint) to trigger a run and pull the resulting dataset into your workflow. In Make, the Apify app module runs an Actor and passes its output straight into your scenario. In LangChain, wrap the Actor with the built-in Apify integration (ApifyWrapper/ApifyActorsTool) to load merchant/outbound-link data straight into a chain or agent.

Scraping publicly available Pinterest data is generally lawful; this Actor only returns what a logged-out visitor can already see on Pinterest's search, board, and profile pages. Most of the output — pin content, outbound link, merchant domain, board metadata — is business/product data rather than personal data, so Pinterest's own Terms of Service and content-reuse framing apply rather than a personal-data regime. The pinner object is the one exception: it carries a public full_name, username, and follower_count tied to an individual Pinterest user, so GDPR/CCPA principles apply to that portion of the data if you store or reuse it. Consult legal counsel if your use case involves bulk storage of pinner personal data.

Frequently asked questions

What Pinterest pin fields does this Actor return?

The top fields are link, domain, isShoppingPin, topMerchants, and title/description on every pin, alongside pin identity, media, and pinner fields. See the full field table above.

Does this Actor require a Pinterest account or login?

No. It reads only Pinterest's public search, board, and profile pages — no login, cookies, or API key from you are needed.

How many pins can I extract in one run?

There's no fixed cap in the Actor itself: maxPinsPerTerm allows up to 1,000 pins per search term, and merchantSearchTerms accepts as many keywords, profile URLs, or board URLs as you add — so total yield scales with how many terms you configure.

What happens if a search returns zero results?

The Actor logs a warning for that specific term and moves on to the next one rather than failing the whole run; that term simply contributes zero rows to the dataset and to the MERCHANT-SUMMARY counts.

Can I scrape multiple Pinterest searches, profiles, or boards at once?

Yes. merchantSearchTerms is an array — mix keywords, profile URLs, and board URLs, and each one is scraped within the same run, with topMerchants accumulating across all of them.

Does this Actor work with Claude, ChatGPT, and other AI agent tools?

Yes. It's reachable through Apify's official MCP server (https://mcp.apify.com) for MCP-aware clients like Claude, and callable as a plain HTTP endpoint by any other agent framework via the Apify API.

How does this scraper compare to other Pinterest pin scrapers?

Most Pinterest pin scrapers stop at pin content and rely on blind scrolling for pagination. This one adds a real merchant/outbound-link layer — the isShoppingPin heuristic and the topMerchants domain leaderboard — computed from the same link/domain fields other scrapers already extract, and follows Pinterest's own bookmark cursor for pagination instead of scrolling alone, which reduces silently missed or duplicated pins on larger result sets.

Does this Actor return data in a format LLMs can use directly?

Yes. Output is typed, normalized JSON with consistent field names across runs — no HTML, no CSS selectors. Pass it directly to an LLM, index it into a vector store, or feed it to an agent tool.

What happens when Pinterest changes its layout or anti-bot system?

The Actor is maintained and its output schema is designed to stay stable across Pinterest layout changes — only the internal extraction logic needs updating. No specific fix turnaround time is promised.

Can I use this Actor without managing proxies or browser infrastructure?

Yes. The Actor runs its own headless Chromium browser and handles the no-proxy → datacenter → residential fallback ladder internally; you only need to choose a proxyConfiguration if you want to override the default behavior.

Which fields work best for AI training data and RAG indexing?

For RAG, index title, description, and domain — the highest-information text fields for describing what a pin is about and where it points. For structured training data, isShoppingPin, topMerchants, width, height, and is_video return as consistent typed primitives (booleans, arrays, integers) across every row.

Scraper NameWhat it extracts
Pinterest Search Scraper: Pin Board DetailsPins, boards, and creator profiles from one keyword
Amazon Search Products Scraper: Top Rated & Best ReviewedAmazon results re-ranked by a Bayesian weighted rating
eBay Product ScrapereBay listing price, availability, seller, category
TikTok Trending Videos Scraper With Author ProfileTrending videos with creator profile and engagement rate
Facebook Ads Library Scraper & Creative MediaAd Library creatives — images, videos, copy, analytics

Your feedback

Found a bug or missing a field? Let us know through the Actor's Issues tab on Apify, or contact Scraper-Engine support directly from the Actor's Store page — we actively maintain this Actor and use that feedback to prioritize fixes.