Pinterest Pins Scraper — Pin Details & Media
Pricing
from $5.00 / 1,000 detailed pinterest pins
Pinterest Pins Scraper — Pin Details & Media
Extract clean, detailed records from exact public Pinterest Pin URLs. Return image and video media, captions, saves, boards, destination links, and creator data in a flat, API-ready schema.
Pricing
from $5.00 / 1,000 detailed pinterest pins
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What is Pinterest Pins Scraper — Pin Details & Media?
Pinterest Pins Scraper — Pin Details & Media turns exact public Pinterest Pin links into clean, one-row-per-Pin dataset records. Each row returns the Pin ID and URL, title, description, hashtags, creation time, original image URL with width and height, video URL and video flag, save, comment and share counts, board name and URL, destination link and domain, and the creator's username, display name, follower count and profile URL. Content researchers, ecommerce and affiliate teams, trend analysts, data teams and AI agents use it to enrich a known list of Pins with media and engagement, with no Pinterest login or cookies.
Best fit for this Actor
- Designed for Pin enrichment. Use it when your workflow already has specific Pin links and needs reliable media URLs, captions, engagement and creator fields.
- Short links welcome. Regular
pinterest.com/pin/...URLs andpin.itshort links both work, and duplicates are removed before the run cap applies. - Validated rows only. Every saved row has a Pin ID and at least one usable image or video URL, so downstream image pipelines get clean input.
- Discovery first, details here. For finding Pins by keyword, start with Pinterest Search Scraper, then pass the Pin URLs into
pinUrlshere. - Video files next. When a row has
isVideo: trueand you want the MP4 and HLS links, continue with Pinterest Video Downloader.
What people and AI agents ask this Actor to do
Get the full image URL, title and save count for these Pins. Which board and creator posted each of these Pins? Enrich my list of 80 Pin links with captions and hashtags.
| Request | Input to send |
|---|---|
| One Pin | {"pinUrls": ["https://www.pinterest.com/pin/1125266656923168531/"]} |
| A short link | {"pinUrls": ["https://pin.it/XXXXXXXXX"]} |
| A capped batch | {"pinUrls": ["https://www.pinterest.com/pin/1125266656923168531/", "https://www.pinterest.com/pin/123456789012345678/"], "maxPins": 50} |
Workflow example: a visual trend board for a home-decor brand
A content strategist starts with 60 Pin links saved from a kitchen-design mood board and pastes them into pinUrls with maxPins set to 60. The dataset returns each Pin's imageUrl, title, hashtags, saveCount and boardName. The strategist sorts by saveCount, exports the top Pins with their images to the team's design sheet, and compares hashtags across the most-saved Pins to brief the next photo shoot. A monthly rerun of the same list shows which Pins keep gaining saves.
How to scrape Pinterest Pin details
- Paste one public Pin URL or
pin.itshort link per line in Pin URLs. - Set Maximum Pins to process to cap the run.
- Click Start, then export the dataset as JSON, CSV or Excel or read it through the API.
Input
{"pinUrls": ["https://www.pinterest.com/pin/1125266656923168531/"],"maxPins": 10}
| Field | Type | What it controls |
|---|---|---|
pinUrls | array | Exact public Pin URLs or pin.it short links, one per line. |
maxPins | integer | Pins processed after deduplication, 1 to 100. Default 10. |
Output
| Field group | Fields |
|---|---|
| Identity | pinId, pinUrl, sourceUrl |
| Content | title, description, hashtags, createdAt |
| Media | imageUrl, imageWidth, imageHeight, videoUrl, isVideo |
| Engagement | saveCount, commentCount, shareCount |
| Context | boardName, boardUrl, link, sourceDomain |
| Creator | pinnerUsername, pinnerName, pinnerFollowers, pinnerProfileUrl |
| Provenance | scrapedAt, pinSource (the collection route that produced the row) |
{"pinId": "1125266656923168531","pinUrl": "https://www.pinterest.com/pin/1125266656923168531/","title": "Modern Minimalist Kitchen Design Ideas | Luxury Contemporary Kitchen Decor with Warm Wood Finishes","description": "Discover this elegant modern minimalist kitchen featuring clean lines, warm wood cabinetry, soft ambient lighting, a stylish kitchen island, and luxurious marble-inspired surfaces.\n#ModernKitchen #KitchenDesign #MinimalistKitchen","imageUrl": "https://i.pinimg.com/originals/91/1f/34/911f347d660d1b950b536bc22dec109f.png","imageWidth": 736,"imageHeight": 1105,"videoUrl": null,"isVideo": false,"saveCount": 791,"commentCount": 0,"shareCount": 51,"link": null,"sourceDomain": null,"boardName": "Kitchen decor","boardUrl": "https://www.pinterest.com/nordhomeinteriors/kitchen-decor/","pinnerUsername": "nordhomeinteriors","pinnerName": "Nord Home Interiors","pinnerFollowers": 3,"pinnerProfileUrl": "https://www.pinterest.com/nordhomeinteriors/","hashtags": ["#ModernKitchen", "#KitchenDesign", "#MinimalistKitchen"],"createdAt": "2026-07-01T02:42:02.000Z","scrapedAt": "2026-10-01T01:37:29.525Z","sourceUrl": "https://www.pinterest.com/pin/1125266656923168531/"}
Fields a Pin leaves empty come back as null, and hashtags is always an array. link and sourceDomain fill in when the Pin points to an outside page. Each run also writes OUTPUT and RUN_SUMMARY to the default key-value store with an outcome of COMPLETE, PARTIAL, VALID_EMPTY or INVALID_INPUT.
Pricing
This Actor uses Pay per event plus Apify platform usage. Two events apply: Actor Start once per run, and Detailed Pinterest Pin once per validated Pin record written to the dataset. Duplicate links and links that return no usable record add no Pin events. For example, a batch of 50 unique Pin links creates up to 50 Detailed Pinterest Pin events plus one Actor Start event, plus the platform usage for the run. The live Pricing tab on this page shows the current event prices.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~pinterest-pins-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"pinUrls": ["https://www.pinterest.com/pin/1125266656923168531/"], "maxPins": 10}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/pinterest-pins-scraper").call(run_input={"pinUrls": ["https://www.pinterest.com/pin/1125266656923168531/"],"maxPins": 10,})for pin in client.dataset(run["defaultDatasetId"]).iterate_items():print(pin["pinUrl"], pin["imageUrl"], pin["saveCount"])
Use with AI agents through Apify MCP
Connect this Actor to Claude, ChatGPT, Cursor or any MCP client through Apify MCP, then ask:
For these Pinterest Pin links, return the title, original image URL, save count, board name and creator for each, then rank them by saves and tell me the run outcome.
Agent checklist:
- Pass exact Pin links in
pinUrlsand setmaxPinsas the cost ceiling. - Read
OUTPUT.outcome;PARTIALmeans some rows were saved and some links had nothing usable. - Read rows with
get-dataset-itemsand citepinUrlandscrapedAt. - Route keyword discovery to Pinterest Search Scraper and video files to Pinterest Video Downloader.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| A new downstream mapping | Start with one known public Pin | A quick check of your field mapping |
| Links copied from the app | Use canonical pinterest.com/pin/... URLs where you can | A direct path to each Pin |
| Large lists | Batch up to 100 Pins with maxPins | Predictable cost per batch |
| Video Pins | Check isVideo and videoUrl | Video rows ready for the downloader |
| Tracking engagement | Rerun the same list and compare saveCount by pinId | Save growth per Pin |
Builder's note
I built this as an enrichment step, because most Pinterest workflows already know which Pins matter and need dependable details for them. I found that a flat record with the original image URL and its dimensions is what image pipelines want, so every saved row is validated to carry usable media. My goal was honest billing, which is why duplicates and links with no usable record add no Pin events.
FAQ
Do I need a Pinterest account?
No. The Actor reads public Pin pages and needs no login, cookies or credentials.
Can it search Pinterest or crawl boards?
It focuses on exact Pin links. Use Pinterest Search Scraper for discovery, then pass the Pin URLs here.
Why is a field null?
Pinterest shows different fields on different Pins, and the Actor keeps the key with null rather than guessing a value.
Are pin.it short links supported?
Yes. The Actor resolves them to the full Pin before reading it.
Responsible use
Only process public Pin URLs you are entitled to use, and respect Pinterest's terms, creators' intellectual-property rights and privacy laws such as the GDPR and CCPA. Redistribute images only where you have the rights to do so. Pinterest is a trademark of its owner, and this independent Actor is not affiliated with or endorsed by Pinterest.