Pinterest Pin Comments Scraper
Pricing
from $1.00 / 1,000 results
Pinterest Pin Comments Scraper
Collect public comments displayed on Pinterest pins. Export comment text, authors, dates, reactions and source pin references with cursor pagination.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
ScrapingMonkey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Export public comments on Pinterest pins as individual dataset records. Pinterest Pin Comments Scraper returns comment text, dates, author information, visible reactions and available attached media while keeping the source pin reference on each row.
Start with known pin URLs or IDs to prepare discussion samples for qualitative research, manual feedback review or your own text analysis.
| At a glance | Details |
|---|---|
| 📥 Input | Enter numeric Pinterest pin IDs or canonical pin URLs. Collects the main public comments feed displayed for each pin, without expanding reply threads. |
| 📤 Output | One comment per success row with the input source retained |
| 📄 Pagination | Result pages per input; page sizes and availability are controlled by Pinterest |
| 🔐 Login required | No |
| ⚡ Processing | Up to 5 HTTP requests concurrently; up to 5 attempts for temporary failures |
| 💾 Delivery | One Apify dataset view with individual records and complete nested JSON |
What the Pinterest pin comments scraper collects 💬
The Actor resolves the pin’s aggregate comment reference and paginates its public comment feed. Comment rows keep the text and author together; interface modules and other unsupported activity types are excluded.
Data can include:
- Comment IDs, text and creation dates
- Author ID, username, profile link and available avatar
- Visible reaction, helpful and reply counts when exposed
- Attached media and tagged users when present
- Input pin and aggregate-comment source references
How to collect pin comments from Pinterest 🚀
- Enter one or more supported inputs.
- Set the page budget and any collection option you need.
- Start the Actor.
- Open the Comments dataset view and review success or failed rows.
- Export the dataset or retrieve records from your application.
{"inputList": ["https://www.pinterest.com/pin/1020909809261285009/"],"pagesPerPin": 1}
The page setting applies to the public comment feed for each input pin. Pages can contain fewer comment rows after unsupported activity entries are filtered. A short page can still continue.
Pinterest pin comments output fields 📦
| Field | Type | Meaning |
|---|---|---|
input | string | Original submitted input. |
status | string | Whether this entity was successfully collected. |
page | integer or null | One-based page within this input's collection. |
source_pin | object or null | Pin requested as the source, including its distinct aggregate ID when returned. |
id | string or null | Id when supplied by Pinterest. |
text | string or null | Text when supplied by Pinterest. |
created_at | string or null | Created at when supplied by Pinterest. |
author | object or null | Author when supplied by Pinterest. |
reply_count | integer or null | Reported reply count. Reply bodies are not included in the comment export. |
helpful_count | integer or null | Helpful count when supplied by Pinterest. |
reactions | array or null | Reactions when supplied by Pinterest. |
is_edited | boolean or null | Is edited when supplied by Pinterest. |
highlighted_by_pin_owner | boolean or null | Highlighted by pin owner when supplied by Pinterest. |
images | array or null | Available image variants, preserved in one dataset cell. |
tagged_users | array or null | Tagged users when supplied by Pinterest. |
Nested field structure:
source_pin:id,url,title,aggregated_pin_id.author:id,username,name,url,image_url,image_large_url,is_verified,is_verified_merchant,is_private,follower_count.reactions[]:type,count.images[]:variant,url,width,height,dominant_color.tagged_users[]:id,username,name,url,image_url,image_large_url,is_verified,is_verified_merchant,is_private,follower_count.
The examples below use normalized public response data. Values are snapshots and may change; every top-level output field is included. Different media variants and nested objects remain inside the same row.
Complete representative success result:
{"input": "https://www.pinterest.com/pin/1020909809261285009/","status": "success","page": 1,"source_pin": {"id": "1020909809261285009","url": "https://www.pinterest.com/pin/1020909809261285009/","title": "Mariam Olivera","aggregated_pin_id": "5277747762016869223"},"id": "3143769064881031680","text": "He'll if u don't mine me Asking you a question","created_at": "2026-01-11T09:26:59Z","author": {"id": "970737032089610681","username": "wisdomsbon002","name": "Patrick","url": "https://www.pinterest.com/wisdomsbon002/","image_url": null,"image_large_url": null,"is_verified": null,"is_verified_merchant": null,"is_private": true,"follower_count": null},"reply_count": 36,"helpful_count": 0,"reactions": [{"type": "1","count": 203}],"is_edited": false,"highlighted_by_pin_owner": false,"images": [],"tagged_users": []}
Complete failed dataset item:
{"input": "invalid input","status": "failed","page": null,"source_pin": null,"id": null,"text": null,"created_at": null,"author": null,"reply_count": null,"helpful_count": null,"reactions": null,"is_edited": null,"highlighted_by_pin_owner": null,"images": null,"tagged_users": null}
A failed row preserves input, sets status to failed, and sets every other top-level field to null. The reason is written to the run log. Optional successful values remain null or empty when Pinterest omits them. The single dataset view exposes object fields as useful columns; arrays are kept in their parent row rather than expanded into additional rows or views.
Input and pagination settings ⚙️
| Parameter | Type | Required | Default | Rules |
|---|---|---|---|---|
inputList | array of strings | Yes | None | Enter numeric Pinterest pin IDs or canonical pin URLs. Collects the main public comments feed displayed for each pin, without expanding reply threads. |
pagesPerPin | integer | No | 1 | Maximum result pages per input. Website page sizes vary; short pages can still have a continuation. Preparation requests do not count as result pages. Minimum 1. |
Use supported Pinterest pin URLs or numeric pin IDs. The Actor resolves the aggregate comment identifier itself; do not substitute an aggregate identifier for a pin ID.
Use canonical HTTPS links on www.pinterest.com or pinterest.com. Country-specific hosts, shortened pin.it links and unsupported paths are not accepted.
Duplicate normalized inputs are processed once. A returned identifier is deduplicated within the pagination of one source input; the same object found under different source inputs retains each source relationship.
The first result request counts as page 1. Source validation and preparation requests do not consume result pages. A short or filtered page can continue if it supplies a usable cursor. Collection stops at the page budget or the end of pagination; a repeated cursor does not trigger an endless loop.
Pinterest pin comments use cases 🎯
Public discussion research
Collect a comment sample and review themes in the original wording. Keep dates, source pin and author references for traceability.
Feedback preparation
Export text and available reactions to prepare a dataset for your own classification or manual review. The Actor does not interpret sentiment.
Media-supported comment review
Inspect attached media where the public comment includes it. Image references remain in the same row as the corresponding comment.
Pricing and saved-result behavior 💰
Check the Actor’s Pricing tab for the active charging model and current rate. Store settings may change, so this README does not state an unverified fixed price or runtime.
Under dataset-item pricing:
- Each unique success result represents one comment for its source input.
- An invalid or unavailable input, an input with no accessible results, or a request that exhausts retries can produce a
failedrow. - Retry attempts and supporting metadata requests do not create extra dataset rows by themselves.
- Nested media, author and source fields stay inside their parent result.
- A normal empty continuation after earlier successes creates no additional result row.
- Saved failed rows are not assumed to be free. Check the active pricing configuration for their treatment.
Larger page budgets and more inputs can produce more saved rows. Start with a small run and check actual usage before increasing the workload.
Pinterest pin comments API 🔌
Replace $ACTOR_ID with the identifier shown in this Actor’s API tab and $APIFY_TOKEN with your Apify token.
curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"inputList":["https://www.pinterest.com/pin/1020909809261285009/"],"pagesPerPin":1}'
Download JSON, CSV, Excel, XML or other formats available in the Console, or retrieve the dataset through the Apify API. Schedules, webhooks and Apify integrations can connect results to Google Sheets, Make, Zapier, n8n, cloud storage or your own backend. These are connection options rather than integrations already configured by the Actor.
Reliability, retries, and public-data limits ⚠️
Collection uses pure HTTP with up to five concurrent requests. Invalid syntax and confirmed missing, removed or inaccessible targets stop without unnecessary retries. Temporary network or proxy failures, timeouts, blocking responses, malformed data, throttling and server errors are retried up to five total attempts per request.
Earlier successful pages remain saved when a later request fails. A normal end after previously saved results is not retried. An input that produces no accessible results can receive a failed row; this does not by itself prove the underlying account or collection does not exist. A later exhausted request can append a failed row while keeping earlier output.
Pinterest controls public availability, ranking, fields and pagination. Private, deleted, restricted or otherwise unavailable data can be omitted. Counts can change during collection, and media links can expire. Successful HTTP research confirms the supported request paths and pagination on tested sources, rather than future availability or exhaustive coverage.
Nested reply threads are not collected. A reply counter describes the number reported by Pinterest and does not mean the replies are included. Other activity records such as photo-based “tried it” entries are not silently relabelled as comments. Public comment availability can differ from pin-level counters.
An invalid string within a valid input list does not stop other inputs. A configuration that fails validation, such as a non-string list item or an invalid page-count type, exits before requests start. Infrastructure errors such as startup failure, unavailable dataset storage or an unrecoverable result-save error can stop the whole run. A failed dataset save is not retried as a new scraping request.
Frequently asked questions ❓
Does it include replies to comments?
No. It collects the supported public comment records from the paginated feed. Reply counts may be present, but full reply threads are not expanded.
Why is the result count lower than a pin counter?
Pinterest can expose aggregate counters, filtered activity types, unavailable comments and changing records. Your page budget also limits the sample.
Does it perform sentiment analysis?
No. It exports comment text and context. You can use those records in your own sentiment or qualitative analysis workflow.
Does it require Pinterest login or personal cookies?
No. The Actor uses HTTP requests from the public website. It does not require a Pinterest account, password or personal session cookie, and does not launch a browser.
What happens to invalid or unavailable inputs?
Invalid individual inputs are saved as failed rows without a source request. Confirmed unavailable targets stop without unnecessary retries. Temporary failures allow up to five total attempts; other inputs and previously saved results remain available.
Can I export results or schedule runs?
Yes. Download the default dataset in supported formats or retrieve it through the Apify API. Apify schedules and completion webhooks can connect repeated runs to your own workflow.
Support, responsible use, and related actors 🛟
For a reproducible issue, use the Actor’s Issues tab and provide the run ID, approximate time, safe public input, expected behavior and actual result. Include the selected mode or page count when applicable. Do not share access tokens, cookies or proxy credentials.
Use public data responsibly and follow applicable privacy, copyright, contractual and platform requirements before storing, analyzing or redistributing collected information.