Pinterest Board Downloader
Pricing
$4.99/month + usage
Pinterest Board Downloader
Pinterest Board Downloader scrapes every pin from any public board, collecting images and metadata automatically, so you can archive boards or pull Pinterest content into research workflows without doing it by hand.
Pricing
$4.99/month + usage
Rating
0.0
(0)
Developer

ZeroBreak
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Pinterest Board Downloader: scrape and save entire Pinterest boards
Pinterest Board Downloader pulls every pin from any public Pinterest board and stores the results as structured data. Give it a board URL and it returns pin images, titles, descriptions, source links, save counts, and creator details without any manual clicking.
It handles pagination on its own, so boards with hundreds or thousands of pins work the same as small ones. You can run it against one board or a list of boards in a single job.
Use cases
- Competitive research: see what content competitors are saving and how popular those pins are
- Board archiving: save a complete snapshot of any board before it gets deleted or reorganized
- Content planning: pull inspiration from curated boards into a spreadsheet or content calendar
- Design and mood boarding: collect reference images from public boards for offline use in design tools
- Market research: analyze what gets pinned in a niche by scraping popular boards and sorting by save count
- SEO and link analysis: extract source URLs from pins to find what content performs on Pinterest
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
boardUrl | string | - | Single Pinterest board URL. Use for one board. |
boardUrls | array | - | List of Pinterest board URLs. One per line. Use for bulk runs. |
maxPins | integer | 100 | Max pins to collect across all boards. Set to 0 for no limit. |
imageQuality | string | high | Image resolution: high (original), medium (564px), or low (236px). |
timeoutSecs | integer | 300 | Total run time limit in seconds. Raise this for very large boards. |
requestTimeoutSecs | integer | 30 | Per-request timeout in seconds. |
proxyConfiguration | object | Datacenter (Anywhere) | Proxy type and location for requests. Supports Datacenter, Residential, Special, and custom proxies. Optional. |
Example input
{"boardUrls": ["https://www.pinterest.com/apify/web-scraping/"],"maxPins": 200,"imageQuality": "high","proxyConfiguration": { "useApifyProxy": true }}
What data does this actor extract?
The actor stores one record per pin in an Apify Dataset. Example output:
{"pinId": "987654321012345678","pinUrl": "https://www.pinterest.com/pin/987654321012345678/","pinTitle": "Modern Minimalist Home Office","pinDescription": "Clean desk setup with natural lighting and wooden accents","imageUrl": "https://i.pinimg.com/originals/aa/bb/cc/aabbcc123.jpg","videoUrl": null,"isVideo": false,"imageWidth": 736,"imageHeight": 1104,"sourceUrl": "https://www.apartmenttherapy.com/home-office-ideas","dominantColor": "#d6c5b0","boardId": "123456789","boardName": "Home Office Inspiration","boardUrl": "/designstudio/home-office-inspiration/","pinnerUsername": "designstudio","pinnerFullName": "Design Studio","saveCount": 3842,"createdAt": "2024-06-01T08:30:00Z","scrapedAt": "2025-03-11T10:15:22.341Z"}
| Field | Type | Description |
|---|---|---|
pinId | string | Unique Pinterest pin ID |
pinUrl | string | Full URL to the pin on Pinterest |
pinTitle | string | Pin title text |
pinDescription | string | Pin description or alt text |
imageUrl | string | Direct image URL at the selected quality |
videoUrl | string | Video URL (only for video pins) |
isVideo | boolean | True if the pin is a video |
imageWidth | integer | Original image width in pixels |
imageHeight | integer | Original image height in pixels |
sourceUrl | string | External URL the pin links to |
dominantColor | string | Dominant hex color of the image |
boardId | string | Pinterest board ID |
boardName | string | Board display name |
boardUrl | string | Relative board path |
pinnerUsername | string | Username of the person who saved the pin |
pinnerFullName | string | Full name of the pinner |
saveCount | integer | Number of times the pin has been saved |
createdAt | string | When the pin was created (ISO 8601) |
scrapedAt | string | When this record was scraped (ISO 8601) |
How it works
- Opens the Pinterest board in a headless Chromium browser to establish a session
- Reads session cookies and the CSRF token from the browser context
- Calls Pinterest's internal board feed API directly using those credentials
- Paginates through results using Pinterest's bookmark system until all pins are collected (or the max_pins limit is reached)
- Extracts and saves structured data for each pin to the Apify Dataset
FAQ
Does it work with private boards? No. Pinterest requires a login to view private boards. This actor only works with public boards.
How many pins can it scrape per run?
There is no hard limit in the actor. Pinterest uses bookmark-based pagination, so boards with 1,000+ pins work fine. Set maxPins to 0 to collect everything, or cap it to control costs.
Can I download the actual image files? The actor outputs direct image URLs in the dataset. To download the files, you can pass those URLs to Apify's downloader actors, or use the URLs directly in your workflow.
What image quality options are available? High returns the original resolution (up to 736px wide or full originals where available). Medium returns 564px wide. Low returns 236px thumbnail size.
Does it handle video pins?
Yes. Video pins include a videoUrl field with a direct link to the MP4 file. The isVideo field is set to true for these pins.
Will it break if Pinterest changes their internal API? Pinterest's internal API does change from time to time. If the actor stops returning data, check the Apify console for error messages and open an issue on GitHub.
Integrations
Connect Pinterest Board Downloader with other apps using Apify integrations. You can pipe results into Google Sheets, Airtable, Slack, or any downstream actor. Use webhooks to trigger a notification or another workflow whenever a run finishes.