Pinterest Pins, Profiles and Boards Collector with Filters
Collect public Pinterest Pins, profiles, boards, search results and comments by keyword or URL, with filters for saves, creator followers, verification, ads and shoppable Pins.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | Choose a collection type. Auto-detect accepts mixed public Pinterest links. |
keywords | array | optional | One or more words or phrases for search modes. |
searchTerms | array | optional | Compatibility alias for Search words. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | Choose a collection type. Auto-detect accepts mixed public Pinterest links. |
keywords | array | optional | One or more words or phrases for search modes. |
searchTerms | array | optional | Compatibility alias for Search words. |
pinUrls | array | optional | Public Pin links or numeric Pin IDs. This is also accepted as `pinterestUrls` for compatibility. |
pinterestUrls | array | optional | Compatibility alias for Pin URLs or IDs. |
usernames | array | optional | Usernames, @usernames, or public profile links. |
profiles | array | optional | Compatibility alias for Pinterest usernames. |
boardUrls | array | optional | Public board links or username/board-name paths. |
boards | array | optional | Compatibility alias for Board URLs. |
search | string | optional | Keyword to search on Pinterest. Results will be pins matching this query. |
startUrls | array | optional | List of Pinterest URLs to scrape. Supports pin URLs, user profile URLs, board URLs, and search URLs. |
maxItems | integer | optional | Maximum number of items to scrape. Set to 0 for unlimited. |
maxPages | integer | optional | Maximum pagination pages per search, profile, or board. 0 means continue until Pinterest has no next page. |
minSaves | integer | optional | 0 means no minimum. For a positive value, keep only Pins where Pinterest supplies a numeric save count at or above it. |
minCreatorFollowers | integer | optional | Keep Pins only when Pinterest supplies a creator follower count at or above this value. |
verifiedOnly | boolean | optional | Keep only rows explicitly marked verified by Pinterest. |
requireOutboundLink | boolean | optional | Keep only Pins with a public destination link supplied by Pinterest. |
imageOnly | boolean | optional | Exclude Pins that Pinterest identifies as video. |
excludeAds | boolean | optional | Exclude Pins Pinterest marks as promoted or sponsored. |
commerceOnly | boolean | optional | Keep only Pins with source-backed product or shopping metadata. |
includeComments | boolean | optional | When enabled, add one real comment/activity row for each collected Pin. Pinterest's public cookieless comment path is used automatically. |
maxComments | integer | optional | Maximum public comment/activity rows to add per Pin when comments are enabled. |
cookies | array | optional | Optional Cookie Editor JSON export. The actor works without cookies; never share this secret publicly. |
cookiesJson | string | optional | Compatibility alias for pasting a Cookie Editor JSON export. |
endPage | integer | optional | Maximum number of pages to paginate through. Set to 0 for unlimited. |
enrichDetails | boolean | optional | When enabled, collection Pins are checked on their public detail pages for creator names, follower counts, links, engagement, and media fields. Slower but more complete. |
proxy | object | optional | Proxy settings for the scraper. Uses Apify Proxy by default. |
proxyConfiguration | object | optional | Compatibility alias for proxy. Direct public Pin/profile pages also work without a proxy. |
Download the published input schema
View complete JSON
{
"description": "Collect public Pinterest Pins, profiles, boards, board Pins, search results, and comments using one simple input form. All fields are source-backed and optional.",
"properties": {
"boardUrls": {
"default": [],
"description": "Public board links or username/board-name paths.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Board URLs",
"type": "array"
},
"boards": {
"default": [],
"description": "Compatibility alias for Board URLs.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Board URLs (compatibility alias)",
"type": "array"
},
"commerceOnly": {
"default": false,
"description": "Keep only Pins with source-backed product or shopping metadata.",
"prefill": false,
"title": "Shoppable Pins only",
"type": "boolean"
},
"cookies": {
"description": "Optional Cookie Editor JSON export. The actor works without cookies; never share this secret publicly.",
"editor": "json",
"isSecret": true,
"title": "Optional Pinterest cookies",
"type": "array"
},
"cookiesJson": {
"description": "Compatibility alias for pasting a Cookie Editor JSON export.",
"editor": "textarea",
"isSecret": true,
"title": "Optional cookies JSON (alias)",
"type": "string"
},
"endPage": {
"default": 0,
"description": "Maximum number of pages to paginate through. Set to 0 for unlimited.",
"maximum": 2000,
"minimum": 0,
"title": "End Page",
"type": "integer"
},
"enrichDetails": {
"default": false,
"description": "When enabled, collection Pins are checked on their public detail pages for creator names, follower counts, links, engagement, and media fields. Slower but more complete.",
"prefill": false,
"title": "Enrich Pin details",
"type": "boolean"
},
"excludeAds": {
"default": false,
"description": "Exclude Pins Pinterest marks as promoted or sponsored.",
"prefill": false,
"title": "Exclude promoted Pins",
"type": "boolean"
},
"imageOnly": {
"default": false,
"description": "Exclude Pins that Pinterest identifies as video.",
"prefill": false,
"title": "Images only",
"type": "boolean"
},
"includeComments": {
"default": false,
"description": "When enabled, add one real comment/activity row for each collected Pin. Pinterest's public cookieless comment path is used automatically.",
"prefill": false,
"title": "Include Pin comments",
"type": "boolean"
},
"keywords": {
"default": [],
"description": "One or more words or phrases for search modes.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Search words",
"type": "array"
},
"maxComments": {
"default": 10,
"description": "Maximum public comment/activity rows to add per Pin when comments are enabled.",
"maximum": 20000,
"minimum": 1,
"prefill": 10,
"title": "Maximum comments per Pin",
"type": "integer"
},
"maxItems": {
"default": 50,
"description": "Maximum number of items to scrape. Set to 0 for unlimited.",
"maximum": 20000,
"minimum": 0,
"title": "Max Items",
"type": "integer"
},
"maxPages": {
"default": 0,
"description": "Maximum pagination pages per search, profile, or board. 0 means continue until Pinterest has no next page.",
"maximum": 2000,
"minimum": 0,
"prefill": 0,
"title": "Max pages",
"type": "integer"
},
"minCreatorFollowers": {
"description": "Keep Pins only when Pinterest supplies a creator follower count at or above this value.",
"maximum": 1000000000,
"minimum": 0,
"title": "Minimum creator followers",
"type": "integer"
},
"minSaves": {
"description": "0 means no minimum. For a positive value, keep only Pins where Pinterest supplies a numeric save count at or above it.",
"maximum": 10000000,
"minimum": 0,
"title": "Minimum saves",
"type": "integer"
},
"mode": {
"default": "auto",
"description": "Choose a collection type. Auto-detect accepts mixed public Pinterest links.",
"editor": "select",
"enum": [
"auto",
"pinDetail",
"comments",
"searchPins",
"searchVideos",
"userProfile",
"userPins",
"userBoards",
"boardDetail",
"boardPins",
"search"
],
"enumTitles": [
"Auto-detect links",
"Pin details",
"Comments for Pins",
"Search Pins",
"Search video Pins",
"Profile details",
"Pins created by a person",
"Boards owned by a person",
"Board details",
"Pins inside a board",
"Search Pins (legacy)"
],
"prefill": "auto",
"title": "What to collect",
"type": "string"
},
"pinUrls": {
"default": [],
"description": "Public Pin links or numeric Pin IDs. This is also accepted as `pinterestUrls` for compatibility.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Pin URLs or IDs",
"type": "array"
},
"pinterestUrls": {
"default": [],
"description": "Compatibility alias for Pin URLs or IDs.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Pin URLs or IDs (compatibility alias)",
"type": "array"
},
"profiles": {
"default": [],
"description": "Compatibility alias for Pinterest usernames.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Profile names or links (compatibility alias)",
"type": "array"
},
"proxy": {
"description": "Proxy settings for the scraper. Uses Apify Proxy by default.",
"editor": "proxy",
"prefill": {
"useApifyProxy": true
},
"title": "Proxy Configuration",
"type": "object"
},
"proxyConfiguration": {
"description": "Compatibility alias for proxy. Direct public Pin/profile pages also work without a proxy.",
"editor": "proxy",
"title": "Proxy configuration (alias)",
"type": "object"
},
"requireOutboundLink": {
"default": false,
"description": "Keep only Pins with a public destination link supplied by Pinterest.",
"prefill": false,
"title": "Require destination link",
"type": "boolean"
},
"search": {
"description": "Keyword to search on Pinterest. Results will be pins matching this query.",
"editor": "textfield",
"prefill": "cats",
"title": "Search Query",
"type": "string"
},
"searchTerms": {
"default": [],
"description": "Compatibility alias for Search words.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Search words (compatibility alias)",
"type": "array"
},
"startUrls": {
"description": "List of Pinterest URLs to scrape. Supports pin URLs, user profile URLs, board URLs, and search URLs.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Pinterest URLs",
"type": "array"
},
"usernames": {
"default": [],
"description": "Usernames, @usernames, or public profile links.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Pinterest usernames",
"type": "array"
},
"verifiedOnly": {
"default": false,
"description": "Keep only rows explicitly marked verified by Pinterest.",
"prefill": false,
"title": "Verified accounts only",
"type": "boolean"
}
},
"required": [],
"schemaVersion": 1,
"title": "Pinterest Data Extractor Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
results | string | optional | Dataset with scraped Pinterest data |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Pinterest Pin, profile, board and comment records with engagement counts, creator and board metadata.",
"properties": {
"results": {
"description": "Dataset with scraped Pinterest data",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Pinterest records",
"type": "string"
}
},
"title": "Pinterest Pins, Profiles and Boards Collector with Filters Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"views": {
"detailed": {
"display": {
"component": "table",
"properties": {
"board_name": {
"format": "text",
"label": "Board"
},
"board_url": {
"format": "link",
"label": "Board URL"
},
"comment_count": {
"format": "number",
"label": "Comments"
},
"created_at": {
"format": "text",
"label": "Created"
},
"description": {
"format": "text",
"label": "Description"
},
"dominant_color": {
"format": "text",
"label": "Color"
},
"id": {
"format": "text",
"label": "Pin ID"
},
"images": {
"format": "text",
"label": "Images"
},
"is_video": {
"format": "boolean",
"label": "Video"
},
"like_count": {
"format": "number",
"label": "Likes"
},
"link": {
"format": "link",
"label": "Source Link"
},
"pinner_followers": {
"format": "number",
"label": "Pinner Followers"
},
"pinner_name": {
"format": "text",
"label": "Pinner Name"
},
"pinner_username": {
"format": "text",
"label": "Pinner"
},
"reaction_count": {
"format": "number",
"label": "Reactions"
},
"reaction_counts": {
"format": "object",
"label": "Reaction breakdown"
},
"save_count": {
"format": "number",
"label": "Saves"
},
"title": {
"format": "text",
"label": "Title"
},
"url": {
"format": "link",
"label": "Pin URL"
},
"video_url": {
"format": "link",
"label": "Video URL"
}
}
},
"title": "Detailed",
"transformation": {
"fields": [
"record_type",
"id",
"title",
"description",
"url",
"link",
"created_at",
"pinner_username",
"pinner_name",
"pinner_followers",
"board_name",
"board_url",
"save_count",
"comment_count",
"like_count",
"reaction_count",
"reaction_counts",
"pinId",
"pinUrl",
"imageVariants",
"videoVariants",
"creator",
"originalCreator",
"board",
"saves",
"commentCount",
"likeCount",
"reactionCount",
"linkUrl",
"richMetadata",
"is_video",
"video_url",
"dominant_color",
"images",
"source_url",
"scraped_at"
]
}
},
"overview": {
"display": {
"component": "table",
"properties": {
"board_name": {
"format": "text",
"label": "Board"
},
"comment_count": {
"format": "number",
"label": "Comments"
},
"id": {
"format": "text",
"label": "Pin ID"
},
"is_video": {
"format": "boolean",
"label": "Video"
},
"like_count": {
"format": "number",
"label": "Likes"
},
"pinner_username": {
"format": "text",
"label": "Pinner"
},
"reaction_count": {
"format": "number",
"label": "Reactions"
},
"save_count": {
"format": "number",
"label": "Saves"
},
"title": {
"format": "text",
"label": "Title"
},
"url": {
"format": "link",
"label": "URL"
}
}
},
"title": "Overview",
"transformation": {
"fields": [
"record_type",
"id",
"title",
"url",
"pinner_username",
"board_name",
"save_count",
"comment_count",
"like_count",
"reaction_count",
"pinId",
"pinUrl",
"imageUrl",
"creatorUsername",
"creatorFollowerCount",
"saves",
"commentCount",
"likeCount",
"reactionCount",
"mediaType",
"linkUrl",
"is_video",
"source_url",
"scraped_at"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
Pinterest Pins, Profiles and Boards Collector with Filters
Pinterest's public pages carry far more structured data than what's visible on screen — save counts, creator stats, board metadata, shopping flags and more. This actor collects that data for Pins, profiles, boards, search results and public comments in one dataset, working from either a focused mode or a mixed list of public URLs, without requiring a Pinterest login.
What this actor does
- Multiple modes: searches Pins/videos, resolves Pins, profiles, boards, board Pins, creator Pins, creator boards, comments, and mixed URLs.
- Convenient inputs: accepts keywords, Pin IDs, Pin URLs, usernames, profile URLs, board URLs, and aliases.
- Source-backed filtering: filters by saves, creator followers, verification, links, media, ads, and shopping data.
- Large exports: follows Pinterest cursors, removes duplicate Pins, and pushes rows progressively.
- Truthful output: preserves published zeroes and
falsevalues while omitting unavailable data.
Output per record
Every row includes record_type, source_url, and scraped_at. record_type is pin, profile, board, or comment.
Pin fields
Pin rows can contain id, url, title, description, created_at, images, dominant_color, link, pinner_id, pinner_username, pinner_name, pinner_followers, board_id, board_name, board_url, save_count, comment_count, like_count, reaction_count, reaction_counts, is_video, video_url, pinId, pinUrl, imageVariants, imageUrl, videoVariants, mediaType, pinFormat, storyPinId, storyPages, altText, seoTitle, seoDescription, seoUrl, mobileLinkUrl, trackedLinkUrl, utmLinkUrl, domain, contentCategory, mediaMethod, creator, creatorId, creatorUsername, creatorName, creatorFollowerCount, originalCreator, board, boardId, boardName, boardUrl, boardCoverImageUrl, boardPinCount, boardFollowerCount, boardSectionCount, boardCollaboratorCount, boardPrivacy, boardCreatedAt, boardIsCollaborative, boardFollowedByMe, saves, commentCount, repinCount, shareCount, reactionCounts, reactionCount, likeCount, linkUrl, linkDomain, isPromoted, commentsDisabled, commentsEligible, isEligibleForImageDownload, isEligibleForProduct, isOutOfStock, isStaleProduct, isUnsafeForComments, isDownstreamPromotion, shouldMute, richMetadata, product, isShoppable, shoppingFlags, canonicalUrl, canonicalPinId, and canonicalPinUrl.
imageVariants and videoVariants preserve Pinterest's available resolution names and may include url, width, height, duration, and thumbnailUrl. Story Pin pages may contain pageId, layout, and blocks with type, text, images, and videos.
Profile fields
Profile rows can contain type, id, username, full_name, bio, follower_count, following_count, pin_count, board_count, image_url, website_url, is_verified, profileId, profileUrl, fullName, location, createdAt, followerCount, followingCount, pinCount, boardCount, monthlyViews, avatarUrls, avatarUrl, websiteUrl, domainUrl, isPrivate, isPartner, isVerifiedMerchant, isDomainVerified, isTastemaker, and isVerified.
Board fields
Board rows can contain type, id, name, description, url, pin_count, follower_count, privacy, owner_username, owner_name, boardId, recordType, createdAt, pinCount, followerCount, sectionCount, collaboratorCount, coverImageUrl, isCollaborative, followedByMe, and ownerUsername.
Comment fields
Comment rows can contain id, text, created_at, type, node_id, like_count, reaction_counts, reaction_by_me, helpful_count, marked_helpful_by_me, reply_count, is_edited, is_highlighted_by_pin_owner, is_translatable, tags, tagged_users, media, author_name, author_username, author_id, author_first_name, author_image, author_image_medium, author_node_id, author_is_private_profile, plus pin_id, pin_url, record_type, source_url, and scraped_at.
Missing fields are omitted. A published 0 or false remains real data; an omitted field means Pinterest did not provide it to the public response.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode |
choice | auto |
auto, pinDetail, comments, searchPins, searchVideos, userProfile, userPins, userBoards, boardDetail, boardPins, or search. |
keywords |
array of text | — | Search phrases for Pins or videos. |
searchTerms |
array of text | — | Friendly alias for keywords. |
search |
string | — | One convenient search phrase. |
pinUrls / pinterestUrls |
array | — | Pin URLs or numeric Pin IDs. |
usernames / profiles |
array | — | Usernames, @usernames, or public profile URLs. |
boardUrls / boards |
array | — | Public board URLs or username/board-name paths. |
startUrls |
array | — | Mixed public Pinterest URLs for auto. |
maxItems |
integer | 50 |
Maximum emitted records; 0 means no user cap. |
maxPages |
integer | 0 |
Maximum feed pages; 0 follows cursors until Pinterest ends the feed. |
endPage |
integer | 0 |
Alias for maxPages. |
minSaves |
integer | — | Keep Pins meeting this published save count. |
minCreatorFollowers |
integer | — | Keep Pins whose creator meets this published follower count. |
verifiedOnly |
boolean | false |
Keep only explicitly verified profiles or creators. |
requireOutboundLink |
boolean | false |
Keep only Pins with a Pinterest-published destination link. |
imageOnly |
boolean | false |
Exclude Pins with Pinterest video data. |
excludeAds |
boolean | false |
Exclude Pins explicitly marked promoted. |
commerceOnly |
boolean | false |
Keep only Pins with Pinterest shopping/product data. |
includeComments |
boolean | false |
Add public comment/activity records for each collected Pin. |
maxComments |
integer | 10 |
Maximum public comments/activity rows per Pin. |
enrichDetails |
boolean | false |
Request additional detail data for feed Pins. |
cookies / cookiesJson |
array/string | — | Optional Cookie-Editor export; not required for public data. |
proxy / proxyConfiguration |
object | — | Optional Apify proxy settings. |
Example: search Pins
{
"mode": "searchPins",
"keywords": ["small kitchen ideas", "neutral bedroom"],
"maxItems": 200
}
Example: collect a profile
{
"mode": "userProfile",
"usernames": ["nasa", "crazylaurablog"]
}
Example: large board feed
{
"mode": "boardPins",
"boardUrls": ["https://www.pinterest.com/nasa/hubble-images/"],
"maxItems": 10000,
"maxPages": 0,
"excludeAds": true
}
Example: mixed URLs with comments
{
"mode": "auto",
"startUrls": [
"https://www.pinterest.com/pin/142567144448888376/",
"https://www.pinterest.com/nasa/",
"https://www.pinterest.com/nasa/hubble-images/"
],
"includeComments": true,
"maxComments": 50
}
Use cases
- Content and competitor research by keyword, creator, board, or Pin.
- Finding image and video references with destination links and media variants.
- Building creator and board directories from public identity and count fields.
- Collecting public comment and engagement activity for moderation or research.
- Exporting large board or profile feeds for spreadsheet or database analysis.
FAQ
Do I need Pinterest cookies?
No. Public records are collected without login cookies. Optional cookies are accepted for a permitted Cookie-Editor export.
Can I request more than 10,000 rows?
Yes. maxItems supports large exports, pagination is incremental, and the actor does not hold all rows until the end. The result can still be smaller when Pinterest's public source is exhausted.
Why is a field missing from one Pin?
Pinterest does not publish every field for every Pin, account, board, or media type. Missing values are omitted rather than inferred.
Why did a private or deleted page return no row?
The actor only emits identity and values received from Pinterest's public page or resource response. It does not fabricate a row for an inaccessible object.
Are save and like counts estimates?
No. Counts are copied from Pinterest's published response. A zero count is preserved when Pinterest explicitly returns zero.
Can I combine Pin, profile, and board links?
Yes. Use auto with startUrls, or select a specific mode for one kind of output.
Can I download image or video files here?
This actor returns Pinterest media URLs and metadata. Use Pinterest Media Downloader when you need files in a key-value store.
Does commerceOnly classify text as a product?
No. It keeps records with Pinterest-provided product or shopping data only.
Is this affiliated with Pinterest?
No. This is an independent tool that reads Pinterest's public pages and is not affiliated with or endorsed by Pinterest.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build dGqaTPhOkWadL9UYJ. Documentation is regenerated from the default published build; private drafts are not included.