Pinterest Scraper — Pins, Videos, Boards & Profiles
Pricing
from $1.50 / 1,000 pinterest results
Pinterest Scraper — Pins, Videos, Boards & Profiles
Export public Pinterest keyword searches and known pins, boards or profiles. Includes media URLs, source provenance, real cursor pagination and optional offline English sentiment/topic analysis. Independent tool.
Pricing
from $1.50 / 1,000 pinterest results
Rating
0.0
(0)
Developer
tingyou333 zhuang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
Pinterest Public Data — Pins, Videos, Boards & Profiles
Collect anonymous public Pinterest search results and known pins, boards, profiles or Ideas pages. Export titles, descriptions, images/video URLs, creators, available engagement fields and source provenance as JSON, CSV or Excel. Independent third-party tool; not affiliated with Pinterest.
Quick start
{"queries": ["gardening"],"type": "all-pins","limit": 30,"maxPagesPerSeed": 2}
Choose all-pins, videos, boards or profiles for keyword searches. startUrls accepts public Pinterest URLs and can be combined with queries. limit is a maximum per input, not a guarantee. Residential proxy access is enabled by default and incurs separate Apify proxy usage charges. Compute, storage and transfer are also additional to any displayed result fee. Start with a small limit to measure your own total cost.
Search, URLs and pagination
Search uses the current public BaseSearchResource feed and follows its actual returned bookmark. It preserves source ordering, deduplicates IDs across the run, and never invents result rows or pagination links. Pins and videos share an ID namespace. A requested source page size can differ from the actual returned size.
Known pin URLs return that pin. A direct board URL returns its pins by default; boardMode="board" requests metadata. A profile URL returns profile metadata by default; profileMode="pins" or "boards" collects its contents. Category/Ideas pages require an actual embedded public feed; they are not replaced with keyword results. Public short links may redirect to supported targets. Board sections and private/account pages are unsupported.
Search URLs support /search/pins/, /search/videos/, /search/boards/ and /search/users/ with q; filters=videos is supported. Unknown filters, date/price/sort constraints and unsafe URLs are rejected rather than silently ignored. language sets Accept-Language; it is not an exit-country setting or a guarantee of the language of returned pins.
Optional text analysis
Set sentinent_analysis=true (the input spelling is intentional) and/or content_analysis=true. The default analysisProvider="lexical" runs locally, without an API key or external model fees.
Sentiment uses title and image alt text with VADER 3.3.2, an MIT-licensed English sentiment tool. Outputs include a compound score in [-1,1], (score+1)/2, positive/negative/neutral label and the label's VADER text proportion in sentiment_confidence. That proportion is not a calibrated probability. Missing text omits sentiment fields and reports missing_text in _analysis.
Content classification uses title, alt text, descriptions, hashtags and destination domain. Our independent 17-topic English taxonomy covers home decor, gardening, recipes, crafts, fashion, beauty, travel, fitness, weddings, art, design, photography, pets, parenting, technology, sports and education. Matching rows receive a category label/path, rule strength and match kind (exact_label, label_terms, exact_alias, alias_terms, hashtag). No match omits category fields and reports no_taxonomy_match. Rule strengths are not calibrated probabilities. Analysis is text-only: images are never interpreted or uploaded.
Offline analysis supports requested English locales. A non-English language with offline analysis enabled fails before collection. English settings do not guarantee English source text; results on other languages are unreliable. Scores and topic labels are our own implementation and can differ from other tools; exact competitor numerical/taxonomy parity is not claimed.
For an explicit alternative, analysisProvider="openai" requires allowPaidAnalysis=true, an explicit aiModel, and PINTEREST_ANALYSIS_API_KEY in Actor environment. It makes at most maxAiRequests fixed-endpoint requests, without retries. Responses must satisfy the output schema; content match kind is model. Model fees are outside Apify spending caps. This optional BYO model route has offline adapter tests but no live model-quality/cost acceptance; use the default offline route for the verified analysis workflow.
Output
Every valid row includes type, schema, entity_type, source id, url, source_url, seed_type and seed_value, plus relevant pin, profile, board, creator, board_ref, media and extra data. IDs remain strings. _provenance records observation time, resource, source page and requested language.
Public fields are source-dependent. Missing counts are omitted, not changed to zero. Search results may contain fewer fields than direct pin detail. Media URLs are exported, not downloaded, and may expire. Source video durations are retained in milliseconds with an explicit unit. Profile/board preview image maps are normalized into arrays.
Limits and run status
| Control | Default | Meaning |
|---|---|---|
limit | 50000 | Unique saved rows per seed |
maxResults | 50000 | Global unique saved-row ceiling |
maxPagesPerSeed | 100 | Feed pages per seed |
pageSize | 25 | Requested source page size |
maxRequests | 1000 | HTTP attempts including redirects/retries |
maxRetries | 1 | Bounded GET retries on network errors/selected 5xx; no TLS or 401/403/429 retry |
requestTimeoutSecs | 25 | Timeout per source attempt |
requestDelaySecs | 1 | Sequential request spacing |
language | en-US | Requested language header |
maxAiRequests | 10 | Optional model requests only |
Read the separate SUMMARY record alongside the dataset. It contains per-input pages, actual page sizes, rows, duplicates, invalid records, errors, stop reasons and truncation. Status is SUCCEEDED, SUCCEEDED_WITH_LIMITS, EMPTY, PARTIAL or FAILED. Explicit empty feeds are distinguished from missing payloads, app shells and source errors. Partial rows are retained and the platform run fails so automation can detect incomplete collection. A result/page/request/spending ceiling is not proof of source exhaustion.
A 401/403/429 or login/challenge redirect stops the entire run before another target/proxy route. This decision happens at headers; an uncaptured body has null bytes/hash, not an empty response. TLS failures stop remaining inputs and certificate verification stays enabled. A missing target or non-public board ends that target. No personal cookies, logins or challenge solver are used.
Connections, charges and coverage
Default proxyConfiguration uses existing Apify RESIDENTIAL service. Explicit useApifyProxy=false uses direct access; direct cloud access can fail even when local access works. Supported proxy settings include groups/country and custom public HTTP(S) proxyUrls. Public target DNS/IP and TLS checks remain enforced. Only the exact SDK-injected cloud proxy gateway can use its configured private service address; custom private proxies and source destinations are blocked. Credentials are not logged. dnsResolver="google-doh" is an explicit option for fake-IP local networks; it is never an automatic fail-open.
Only valid stored rows generate the default dataset-item event when result pricing is configured. Errors and duplicates do not generate rows or duplicate charges. Apify compute/storage/transfer, Residential traffic, subscription fees and optional model costs are separate. Spending caps and small input limits should be set before larger runs.
Source endpoints are undocumented and can change. Bounded acceptance samples do not prove all queries, locales, large feeds or long-term availability. The optional analysis is independently implemented; output field compatibility does not imply identical ranking, taxonomy or scores. For schedules/API integrations, inspect both dataset and SUMMARY and alert on PARTIAL/FAILED or truncation.