Pinterest Pins Videos Search & Outbound Shopping Links Scraper
Pricing
$19.99/month + usage
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
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Pinterest Pin Scraper — Videos, Outbound Links & Merchant Domains
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.
What is Pinterest Pins Videos Search & Outbound Shopping Links Scraper?
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 Category | Public | Restricted (login) |
|---|---|---|
| Pin image, title, description | Yes | — |
Outbound link, merchant domain | Yes | — |
| Video URL | Yes | — |
| Pinner username, followers | Yes | Full follower lists |
| Board name, pin count | Yes (public boards) | Secret boards |
| Reaction counts | Yes | — |
| Pinterest "Shopping" pin badge | No | Business account only |
| Personalized home feed | No | Login 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.
What data can I extract with Pinterest Pins Videos Search & Outbound Shopping Links Scraper?
Each run returns pin content and media fields, merchant/shopping-link intelligence, and run-level context for every pin matched.
| Field Name | Description |
|---|---|
node_id | Unique Pinterest pin ID |
pinUrl | Canonical pinterest.com/pin/<id>/ deep link |
type | search_pin, board_pin, or profile_pin depending on whether the row came from a keyword search, board fetch, or profile fetch |
created_at | Pin creation timestamp, as returned by Pinterest |
title | Pin title text |
description | Pin description text |
board | Board metadata (id, name, url, description, pin_count, privacy) when type is board_pin; null otherwise |
search_term | The search term, profile URL, or board URL that found this pin |
scrapedAt | ISO timestamp of when the pin was scraped |
url | Pin image URL |
width / height | Image dimensions |
image_size | Which image size variant was used (e.g. 236x) |
dominant_color | Dominant color hex code |
link_to_video | Video stream URL if the pin is a video |
is_video | Whether the pin is a video pin |
domain | Outbound link's source domain (or "Uploaded by user" if none) |
link | External outbound link, if available |
isShoppingPin | true when the pin has a real outbound link AND a real merchant domain |
topMerchants | Array of {domain, count} — the top merchant domains seen so far this run |
reaction_counts | Object with reaction-type counts |
pinner | Object 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.
How does Pinterest Pins Videos Search & Outbound Shopping Links Scraper differ from the official Pinterest API?
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.
| Feature | Pinterest Developer API | This Scraper |
|---|---|---|
| Access requirement | Registered app + OAuth; Trial approval, then a separate review for Standard access | None — enter search terms and run |
| Content scope | The authenticated app's own connected account (its pins, boards, analytics) | Any public keyword search, profile, or board |
| Sandbox restriction | Trial-tier content is only visible to its creator until Standard access is granted | Returns whatever is already public on pinterest.com |
| Rate limits | Trial: capped per app per day; Standard: capped per minute per user/app | Governed by this Actor's own proxy/retry logic, not a published API cap |
| Setup time | App creation, OAuth, Trial approval, then Standard review | Provide search terms and start the run |
| Merchant/outbound-link ranking | Not a built-in feature | isShoppingPin 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.
How to use Pinterest Pins Videos Search & Outbound Shopping Links Scraper
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.
- Open the Actor's page in the Apify Store and click Try for free (or Run).
- 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). - Optionally set
maxPinsPerTerm,contentFilter,onlyLinkedPins, ormerchantDomainFilterto narrow the results. - Click Start and monitor progress in the run log.
- Download results as JSON or CSV from the Dataset tab, or read the
MERCHANT-SUMMARYrecord 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.
What can you do with Pinterest outbound shopping link data?
- An affiliate researcher screening a niche uses
onlyLinkedPinsplusdomainto 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
topMerchantsranking and theMERCHANT-SUMMARYkey-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_videowithcontentFilterset toVideosto collect only video pins for a topic, along withtitle/descriptionfor messaging research. - An AI agent building a shopping-trend assistant feeds
title,description,domain, andtopMerchantsinto 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.
How does Pinterest Pins Videos Search & Outbound Shopping Links Scraper handle rate limits and blocking?
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
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
merchantSearchTerms | No | array | Pinterest 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"] |
maxPinsPerTerm | No | integer | Maximum number of pins to scrape per search term (1–1000). Default is 50. Also accepts the base actor's maxItems key. | 50 |
contentFilter | No | string | Filter results: All (pins + videos) or Videos only. Also accepts the base actor's filtre key. | "Videos" |
onlyLinkedPins | No | boolean | When true, keep only pins with a real outbound link plus a real merchant domain (not "Uploaded by user") — the isShoppingPin heuristic. Default false. | true |
merchantDomainFilter | No | array | Keep 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"] |
topMerchantsCount | No | integer | How many top merchant domains to include in the topMerchants ranking on every row and in the final MERCHANT-SUMMARY record. Default is 5. | 5 |
proxyConfiguration | No | object | Proxy 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.
Calling Pinterest Pins Videos Search & Outbound Shopping Links Scraper programmatically
from apify_client import ApifyClientclient = 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.
Is it legal to scrape Pinterest pins?
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.
Related scrapers
| Scraper Name | What it extracts |
|---|---|
| Pinterest Search Scraper: Pin Board Details | Pins, boards, and creator profiles from one keyword |
| Amazon Search Products Scraper: Top Rated & Best Reviewed | Amazon results re-ranked by a Bayesian weighted rating |
| eBay Product Scraper | eBay listing price, availability, seller, category |
| TikTok Trending Videos Scraper With Author Profile | Trending videos with creator profile and engagement rate |
| Facebook Ads Library Scraper & Creative Media | Ad 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.