Pinterest Pin Detail
Pricing
from $0.99 / 1,000 results
Pinterest Pin Detail
Fetch full metadata for a Pinterest pin: image, video, save count, hashtags, creator, board, and product info.
Pricing
from $0.99 / 1,000 results
Rating
0.0
(0)
Developer
Farhan Febrian Nauval
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pinterest Pin Detail Scraper
Extract full metadata for any Pinterest pin in bulk — title, description, image URL, outbound link, save count, dominant color, pinner profile, and board context — in a clean structured JSON output.
Why use this actor
- No account / no login required — just give it a Pinterest pin URL or a numeric pin ID.
- No API key needed — Pinterest's public API is locked behind a developer review; this actor returns the same data the pin page shows.
- Rich pin metadata — title, description, image URL with dimensions, dominant color, alt text, hashtags, outbound link, and the pin's save count.
- Pinner + board context — every record includes the creator's username, display name, profile picture, follower count, and the board the pin lives in.
- Bulk input — pass a list of pin URLs or IDs in one run; one clean dataset row per pin.
- Stable JSON output suitable for pipelines, spreadsheets, and databases — every row carries
_input,_source,_scrapedAtenvelope fields so you can join results back to your input list.
How it works
- You provide a list of Pinterest pin URLs (e.g.
https://www.pinterest.com/pin/424605071126047814/) or bare numeric pin IDs (424605071126047814). - The actor opens each pin the same way Pinterest's web app does and reads its record — image, title, description, link, save count, pinner, and board — then assembles a flat JSON row.
- Results stream into your dataset, ready to download as JSON, CSV, or Excel.
You do not need to manage scrapers, browsers, or rotating IPs — all handled internally.
Input
{"pins": ["https://www.pinterest.com/pin/424605071126047814/","424605071126047814"],"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["DATACENTER"]}}
| Field | Type | Description |
|---|---|---|
pins | array | List of Pinterest pin URLs or numeric pin IDs. Both https://www.pinterest.com/pin/424605071126047814/ and 424605071126047814 are accepted. |
proxyConfiguration | object | Apify Proxy settings. Datacenter works for most pins; switch to residential if you hit blocks on a particular pin. |
Output
Input: https://www.pinterest.com/pin/424605071126047814/
{"_input": "https://www.pinterest.com/pin/424605071126047814/","_source": "S2-fallback","_scrapedAt": "2026-05-18T11:30:26.926224+00:00","id": "424605071126047814","title": "Skin Tone Ranges","description": " ","link": null,"dominantColor": "#e3e0df","imageUrl": "https://i.pinimg.com/564x/b6/d0/aa/b6d0aaffbbd81bb395967401b3e5ad3d.jpg","imageWidth": 564,"imageHeight": 1002,"videoUrl": null,"isVideo": false,"saveCount": 698,"commentCount": null,"reactionCounts": null,"closeupUnifiedDescription": null,"createdAt": null,"altText": null,"hashtags": [],"pinner": {"id": "424605208526455283","username": null,"fullName": "Pinterest","profileImageUrl": "https://i.pinimg.com/60x60_RS/1c/b5/61/1cb561c8e7b9c709f78d110a4b5f0863.jpg","followerCount": 6258732},"board": {"id": "424605139806979476","name": "Official news","url": "/pinterest/official-news/","pinCount": 51},"richSummary": null,"shopMetadata": null}
| Field | Type | Description |
|---|---|---|
_input | string | The pin URL or ID exactly as you supplied it. Use this to join results back to your input list. |
_source | string | Internal tag for the path used to fetch the record. S1-primary means the fastest, richest path; values starting with S2-fallback / S3-fallback mean a fallback was used. |
_scrapedAt | string | ISO-8601 UTC timestamp when the record was scraped. |
id | string | Pinterest's numeric pin ID (stable across edits). |
title | string | Pin title or headline. May be null for image-only pins. |
description | string | Pinner-written caption. May be empty or whitespace if the pinner left it blank. |
link | string | Outbound destination URL the pin links to (article, product page, etc.). null for self-uploaded pins with no link. |
dominantColor | string | Hex color string Pinterest computes from the image (e.g. #e3e0df). Useful for palette / mood grouping. |
imageUrl | string | Direct CDN URL of the pin image at the largest available size. |
imageWidth | integer | Width of imageUrl in pixels. |
imageHeight | integer | Height of imageUrl in pixels. |
videoUrl | string | Direct video URL for video pins. null for image pins. |
isVideo | boolean | true if the pin is a video pin. |
saveCount | integer | Number of times the pin has been saved (re-pinned). |
commentCount | integer | Number of comments on the pin. May be null on the fallback path. |
reactionCounts | object | Map of reaction-type id to count (e.g. {"1": 1705, "5": 1}). May be null on the fallback path. |
closeupUnifiedDescription | string | Long-form expanded description Pinterest sometimes shows on the closeup view. |
createdAt | string | ISO timestamp when the pin was created. May be null on the fallback path. |
altText | string | Accessibility alt text the pinner set on the image. |
hashtags | array | List of hashtag strings extracted from the description. |
pinner | object | Creator profile — id, username, fullName, profileImageUrl, followerCount. |
board | object | Board context — id, name, url (relative path), pinCount. |
richSummary | object | Structured rich-pin metadata (recipe, product, article) when the pin carries it. null otherwise. |
shopMetadata | object | Shop / merchant metadata for shoppable pins. null otherwise. |
Error envelope
Pins that don't exist or fail to fetch return a structured error instead of crashing the run:
{"_input": "https://www.pinterest.com/pin/000000000000000000/","_error": "not_found","_scrapedAt": "2026-05-18T11:30:30.012345+00:00"}
Other _error values: invalid_input (pin URL could not be parsed) and fetch_failed (pin record could not be retrieved after retries). Filter on _error to triage failed rows.
Pricing
This actor is billed per result: $7.50 per 1,000 pins (Tier 5). Each successful pin = 1 result. Errors (not-found, fetch-failed) are not billed.
Other Sosmed Actors
| Platform | Actor | Best for |
|---|---|---|
| Pinterest User Profile Scraper | Pinner bio, follower / following counts, pin count | |
| Pinterest Board Scraper | Board metadata + pins inside the board | |
| Instagram Post Detail Scraper | Full metadata for any Instagram post URL | |
| Threads | Threads Post Detail Scraper | Full metadata for any Threads post |
| Tumblr | Tumblr Post Detail Scraper | Full metadata for any Tumblr post |
| Reddit Post Detail Scraper | Reddit post + body + score |
Browse the full catalog at apify.com/xtracto.
Notes
- Accepts both full pin URLs (
https://www.pinterest.com/pin/<id>/) and bare numeric IDs. - Private and deleted pins return
{"_error": "not_found", "_input": "..."}— they are not billed. - Video pins (including idea / story pins with video pages) populate
videoUrland setisVideo: true. Image-only pins leavevideoUrlasnull. - The
linkfield isnullfor self-uploaded pins that don't point anywhere outside Pinterest. - Some fields (
commentCount,reactionCounts,createdAt,altText) may benullwhen the actor falls back fromS1-primarytoS2-fallback— the core image, title, save count, pinner, and board are always populated when the pin exists.