Scrape pins from keyword searches, boards, or profiles to collect full-resolution images, videos, board details, and repin counts without login or API keys.
Instructions
Pinterest Scraper — Search, Boards & Profiles
Scrape Pinterest pins from keyword search, boards and profiles. Full-res originals, video variants, board/pinner metadata, repin counts. Pure HTTP - no browser, no login, no API key, no proxy.
Pricing (pay per event, billed to your Apify account): Pin scraped: $0.00199; Media downloaded: $0.005; platform usage billed to your account.
Runs on Apify as subimpact/pinterest-scraper.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | search = keyword search (use queries). board = every pin on a board (use boardUrls or boardIds). profile = every pin a user has published (use usernames). | search |
| queries | No | Comma-separated search keywords, e.g. `ai wallpaper, minimal interior`. Required when mode=search — leave empty to use the default query `ai wallpaper`. NOTE: Pinterest's search payload contains images only — no title, description, board or pinner. Turn on "Enrich pin details" if you need those fields. | ai wallpaper |
| boardIds | No | Comma-separated numeric board ids, e.g. `286612032474627954`. Faster than boardUrls (skips the id-resolution request). Used when mode=board. | |
| _maxItems | No | How many dataset items to return to the model (1-1000, default 50). Truncates the response only; it does not change what the Actor collects or charges for. | |
| boardUrls | No | Comma-separated board URLs or paths, e.g. `https://www.pinterest.com/les_bons_details/interior-design/` or `/les_bons_details/interior-design/`. The numeric board id is resolved automatically from the board page. Used when mode=board. | |
| imageSize | No | Which image variant to put in `imageUrl` (and to download when media download is on). `orig` is the full-resolution original. | orig |
| usernames | No | Comma-separated Pinterest usernames, e.g. `ohuhu, nasa`. A leading @ and full profile URLs are accepted. Required when mode=profile. | |
| includeRaw | No | Keep the untouched Pinterest pin object in the `raw` column. Turn off for smaller datasets. | |
| maxPinsTotal | No | Optional global cap across EVERY query / board / profile in the run, on top of max pins per source. Leave empty for no global cap (unlimited). Use this to keep long multi-source runs inside the 1-hour platform timeout. | |
| _maxChargeUsd | No | Per-run spending cap in USD (default 0.5). Passed to Apify as the run option maxTotalChargeUsd, so the run stops when it reaches this charge. | |
| downloadMedia | No | Download each pin's image (or MP4 for video pins) into the run's key-value store and link it from the dataset row. Billed per file downloaded. Off by default — the image URLs in the dataset are directly usable. | |
| enrichDetails | No | Fetch each pin's detail endpoint for extra fields. Costs one extra HTTP request per pin, so runs take noticeably longer. Worth it in search mode; usually redundant in board/profile mode, where pins already arrive with full metadata. Without a login, the detail endpoint returns a reduced field set (SEO title/description, creator) — not the complete pin record. | |
| maxPinsPerSource | No | Maximum pins to collect per query / board / profile. This is your cost ceiling: pins scraped × the per-pin price. Hard cap: 5000. | |
| proxyConfiguration | No | Not required — Pinterest's resource API responds normally to datacenter IPs. Kept as an escape hatch in case an exit IP gets throttled. |