{
  "data": {
    "id": "jzOeBCtohAb2PkYW6",
    "actId": "QFDd89Ia1Lh4fLqIg",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-11-06T11:26:07.250Z",
    "finishedAt": "2026-11-06T11:26:10.947Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 3632,
      "runTimeSecs": 3.632,
      "computeUnits": 0.004035555555555555,
      "imageSizeBytes": 358137344
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Pinterest Pin Comments Input\",\n  \"description\": \"Collect public Pinterest comments, replies and Tried It activity from numeric Pin URLs or IDs. No login or proxy setup is required.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"What to collect\",\n      \"type\": \"string\",\n      \"description\": \"Choose comments with replies, Tried It activity, both, or only the Pin summary.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"commentsAndActivity\",\n        \"comments\",\n        \"activity\",\n        \"pinSummary\"\n      ],\n      \"enumTitles\": [\n        \"Comments, replies and activity\",\n        \"Comments and replies\",\n        \"Tried It activity\",\n        \"Pin summary only\"\n      ],\n      \"default\": \"commentsAndActivity\",\n      \"prefill\": \"commentsAndActivity\"\n    },\n    \"urls\": {\n      \"title\": \"Pinterest Pin URLs or IDs\",\n      \"type\": \"array\",\n      \"description\": \"One or more numeric Pinterest Pin links or IDs, e.g. https://www.pinterest.com/pin/142567144448888376/. Legacy pinUrls and startUrls inputs are still accepted in code.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"prefill\": [\n        \"https://www.pinterest.com/pin/142567144448888376/\"\n      ]\n    },\n    \"domain\": {\n      \"title\": \"Pinterest region\",\n      \"type\": \"string\",\n      \"description\": \"Regional Pinterest site used for every request. Use the region shown in the Pin link.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"www.pinterest.com\",\n        \"jp.pinterest.com\",\n        \"br.pinterest.com\",\n        \"uk.pinterest.com\",\n        \"au.pinterest.com\",\n        \"nz.pinterest.com\",\n        \"co.pinterest.com\",\n        \"de.pinterest.com\",\n        \"fr.pinterest.com\",\n        \"in.pinterest.com\",\n        \"es.pinterest.com\",\n        \"it.pinterest.com\",\n        \"nl.pinterest.com\",\n        \"pl.pinterest.com\",\n        \"ru.pinterest.com\",\n        \"tr.pinterest.com\",\n        \"mx.pinterest.com\",\n        \"ar.pinterest.com\",\n        \"id.pinterest.com\",\n        \"ph.pinterest.com\",\n        \"th.pinterest.com\",\n        \"kr.pinterest.com\"\n      ],\n      \"enumTitles\": [\n        \"United States\",\n        \"Japan\",\n        \"Brazil\",\n        \"United Kingdom\",\n        \"Australia\",\n        \"New Zealand\",\n        \"Colombia\",\n        \"Germany\",\n        \"France\",\n        \"India\",\n        \"Spain\",\n        \"Italy\",\n        \"Netherlands\",\n        \"Poland\",\n        \"Russia\",\n        \"Turkey\",\n        \"Mexico\",\n        \"Argentina\",\n        \"Indonesia\",\n        \"Philippines\",\n        \"Thailand\",\n        \"South Korea\"\n      ],\n      \"default\": \"www.pinterest.com\",\n      \"prefill\": \"www.pinterest.com\"\n    },\n    \"maxComments\": {\n      \"title\": \"Maximum top-level comments per Pin\",\n      \"type\": \"integer\",\n      \"description\": \"Top-level comments to collect per Pin; replies are counted separately. Legacy limit input is still accepted in code.\",\n      \"minimum\": 1,\n      \"maximum\": 20000,\n      \"default\": 10,\n      \"prefill\": 3\n    },\n    \"includeReplies\": {\n      \"title\": \"Include replies\",\n      \"type\": \"boolean\",\n      \"description\": \"Fetch public replies for comments that have them.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"maxRepliesPerComment\": {\n      \"title\": \"Maximum replies per comment\",\n      \"type\": \"integer\",\n      \"description\": \"Reply rows to collect for each top-level comment. Set to 0 to skip replies.\",\n      \"minimum\": 0,\n      \"maximum\": 1000,\n      \"default\": 100,\n      \"prefill\": 0\n    },\n    \"maxActivity\": {\n      \"title\": \"Maximum activity rows per Pin\",\n      \"type\": \"integer\",\n      \"description\": \"Tried It and other public activity rows to collect per Pin.\",\n      \"minimum\": 0,\n      \"maximum\": 20000,\n      \"default\": 100,\n      \"prefill\": 3\n    },\n    \"includePinSummary\": {\n      \"title\": \"Include Pin summary\",\n      \"type\": \"boolean\",\n      \"description\": \"Emit one pinCommentsSummary row with the Pin, creator, board, media, commerce and engagement context.\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"commentSort\": {\n      \"title\": \"Comment order\",\n      \"type\": \"string\",\n      \"description\": \"Source keeps Pinterest's ranking; newest and oldest sort the fetched comments by their published date.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"source\",\n        \"newest\",\n        \"oldest\"\n      ],\n      \"enumTitles\": [\n        \"Pinterest ranking\",\n        \"Newest first\",\n        \"Oldest first\"\n      ],\n      \"default\": \"source\",\n      \"prefill\": \"source\"\n    },\n    \"minLikeCount\": {\n      \"title\": \"Minimum likes\",\n      \"type\": \"integer\",\n      \"description\": \"Drop comment, reply and activity rows whose published like count is lower. Rows without a published count are kept.\",\n      \"minimum\": 0,\n      \"maximum\": 1000000000,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"minHelpfulCount\": {\n      \"title\": \"Minimum helpful votes\",\n      \"type\": \"integer\",\n      \"description\": \"Drop comment, reply and activity rows whose published helpful count is lower. Rows without a published count are kept.\",\n      \"minimum\": 0,\n      \"maximum\": 1000000000,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"sinceDate\": {\n      \"title\": \"Published on or after\",\n      \"type\": \"string\",\n      \"description\": \"Optional inclusive date filter (YYYY-MM-DD) for comments, replies and activity. Leave empty for no lower bound.\",\n      \"editor\": \"textfield\",\n      \"prefill\": \"\"\n    },\n    \"untilDate\": {\n      \"title\": \"Published on or before\",\n      \"type\": \"string\",\n      \"description\": \"Optional inclusive date filter (YYYY-MM-DD) for comments, replies and activity. Leave empty for no upper bound.\",\n      \"editor\": \"textfield\",\n      \"prefill\": \"\"\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Optional proxy\",\n      \"type\": \"object\",\n      \"description\": \"Optional Apify proxy override. The actor works directly and falls back to the automatic Apify proxy without user setup.\",\n      \"editor\": \"proxy\"\n    }\n  },\n  \"required\": []\n}",
    "readme": "# Pinterest Pin Comments & Activity Extractor\n\nRead public Pinterest Pin conversations: top-level comments, reply threads, and Tried It\nactivity, together with a detailed Pin, creator and board summary. Everything is public\nand cookieless; there is no login, cookie or proxy step.\n\n## What you can collect\n\n| Mode | Returns |\n|---|---|\n| Comments, replies and activity (default) | Pin summary + comments + replies + activity |\n| Comments and replies | Pin summary + comments + replies |\n| Tried It activity | Pin summary + activity rows |\n| Pin summary only | One summary row per Pin, no comment requests |\n\nUse the mode that matches the job. Comments are ranked by Pinterest; `commentSort` can\nre-order the fetched window by newest or oldest published date.\n\n## Output\n\nEvery row carries `recordType`, `pinId`, `pinUrl`, `sourceUrl` and `scrapedAt`.\nRecords are omitted when Pinterest does not publish the value; published zeroes and\n`false` flags are preserved.\n\n### Pin summary (`recordType: \"pinCommentsSummary\"`)\n\nPin identity and context: `aggregatedPinId`, `title`, `description`, `createdAt`,\n`domain`, `linkUrl`, `linkDomain`, `seoTitle`, `seoDescription`, `altText`, `hashtags`,\n`imageUrl`, `imageWidth`, `imageHeight`, `imageSignature`, `dominantColor`, `videoUrl`,\n`videoThumbnailUrl`, `videoDurationMs`, `priceValue`, `priceCurrency`,\n`productAvailability`, `isPromoted`, `isShoppable`.\n\nEngagement: `commentCount`, `saveCount`, `repinCount`, `shareCount`, `reactionCount`,\n`reactionCounts`, `didItCount`, `didItUserCount`, plus the availability flags\n`commentsDisabled`, `commentsEligible`, `didItDisabled` and `isEligibleForTriedIt`.\n\nNested `creator`: `id`, `username`, `fullName`, `followerCount`, `avatarUrl`,\n`isVerifiedMerchant`, `domainUrl`, `profileUrl`.\n\nNested `board`: `id`, `name`, `url`, `pinCount`, `followerCount`, `ownerUsername`,\n`isCollaborative`.\n\n### Comments and replies (`recordType: \"comment\"`)\n\n`commentId`, `nodeId`, `parentCommentId` (replies), `isReply`, `replyDepth`, `text`,\n`details`, `createdAt`, `likeCount`, `reactionCounts`, `reactionByMe`, `helpfulCount`,\n`markedHelpfulByMe`, `replyCount`, `isEdited`, `isHighlightedByPinOwner`,\n`isTranslatable`, `commentType`, `isUserFirstComment`, `replyPreviewIds`,\n`attachedPin`, `pinData`, `commentResponsePin`, `commentTag`, `textTags`, `tags`,\n`taggedUsers`, `media`, and nested `author` (`id`, `nodeId`, `username`, `firstName`,\n`fullName`, `avatarUrl`, `isPrivateProfile`, `type`, `profileUrl`).\n\nReplies keep `recordType: \"comment\"` so existing consumers keep working; `isReply`,\n`parentCommentId` and `replyDepth` identify them.\n\n### Activity (`recordType: \"pinActivity\"`)\n\n`activityId`, `commentId`, `nodeId`, `text`, `details`, `doneAt`, `likeCount`,\n`likedByMe`, `reactionCounts`, `reactionByMe`, `helpfulCount`, `markedHelpfulByMe`,\n`commentCount`, `didItType`, `privacy`, `hasTryPin`, `tryPin`, `hasRecommended`,\n`recommendScore`, `recommendationReason`, `imageSignatures`, `images`,\n`imagesReformatted`, `videos`, `textTags`, `tags`, `taggedUsers`,\n`isHighlightedByPinOwner`, and nested `author`.\n\nActivity rows come from Pinterest's Tried It feed and the comments stream. They are\ndeduplicated by ID and merged so the richer published fields survive.\n\n## Input\n\n| Field | Type | Default | Purpose |\n|---|---|---|---|\n| `mode` | select | `commentsAndActivity` | What to collect. |\n| `urls` | array | — | Numeric Pin URLs or IDs. |\n| `domain` | select | `www.pinterest.com` | Regional Pinterest site. |\n| `maxComments` | integer | `10` | Top-level comments per Pin. |\n| `includeReplies` | boolean | `true` | Fetch reply threads. |\n| `maxRepliesPerComment` | integer | `100` | Cap replies per comment; `0` skips them. |\n| `maxActivity` | integer | `100` | Activity rows per Pin. |\n| `includePinSummary` | boolean | `true` | Emit the summary row. |\n| `commentSort` | select | `source` | Pinterest ranking, newest or oldest. |\n| `minLikeCount` | integer | `0` | Keep rows at or above this published like count. |\n| `minHelpfulCount` | integer | `0` | Keep rows at or above this published helpful count. |\n| `sinceDate` | string | — | Inclusive lower date bound (`YYYY-MM-DD`). |\n| `untilDate` | string | — | Inclusive upper date bound (`YYYY-MM-DD`). |\n| `proxyConfiguration` | object | — | Optional Apify proxy override; not required. |\n\n### Example: one Pin with replies\n\n```json\n{\n  \"urls\": [\"https://www.pinterest.com/pin/112027111109155913/\"],\n  \"mode\": \"commentsAndActivity\",\n  \"maxComments\": 50,\n  \"includeReplies\": true,\n  \"maxRepliesPerComment\": 25,\n  \"maxActivity\": 50,\n  \"commentSort\": \"newest\"\n}\n```\n\n### Example: recent activity only\n\n```json\n{\n  \"urls\": [\"112027111109155913\"],\n  \"mode\": \"activity\",\n  \"maxActivity\": 25,\n  \"sinceDate\": \"2024-01-01\"\n}\n```\n\n### Example: several Pins\n\n```json\n{\n  \"urls\": [\n    \"https://www.pinterest.com/pin/142567144448888376/\",\n    \"https://uk.pinterest.com/pin/155303887824034154/\"\n  ],\n  \"domain\": \"uk.pinterest.com\",\n  \"maxComments\": 100,\n  \"includePinSummary\": false\n}\n```\n\n### Legacy inputs\n\nSaved tasks that still send `pinUrls`, `startUrls`, `limit`, `cookies` or `cookiesJson`\nkeep running: the aliases are mapped in code, and cookie keys are ignored with a\nwarning because the public surface does not need them. These keys are intentionally\nnot shown in the input form.\n\n## How pagination and filters work\n\nComments are paged with Pinterest's public bookmark cursor until the source is\nexhausted or `maxComments` top-level rows are collected. Replies are fetched only for\ncomments with a published reply count and are capped by `maxRepliesPerComment`.\nActivity follows the same cursor until `maxActivity` rows are collected.\n\n`commentSort`, `minLikeCount`, `minHelpfulCount`, `sinceDate` and `untilDate` are\napplied to the rows fetched in that window. They never invent values: a row without a\npublished count or date is kept rather than assumed to be zero or out of range.\n\n## Use cases\n\n- Conversation and sentiment review for selected Pins.\n- Moderation queues with author, text, media and engagement context.\n- Recipe or product feedback, including Tried It photos and dates.\n- Reply-thread analysis without a login.\n- Recurring monitoring with date and engagement filters.\n\n## FAQ\n\n### Do I need a Pinterest account or cookies?\n\nNo. The actor reads Pinterest's public signed-out responses.\n\n### Which Pins work?\n\nNumeric Pins such as `142567144448888376`. Opaque share IDs that Pinterest sometimes\nreturns from search are list-only upstream and cannot resolve a Pin detail or comments.\n\n### Why are there fewer comments than the Pin's count?\n\nThe published count can include replies, private or removed comments, or comments\nPinterest withholds from signed-out visitors. The actor returns what the public cursor\nactually serves and never fabricates rows.\n\n### Are replies included?\n\nYes when `includeReplies` is on. Pinterest exposes one public reply level; replies are\nattached to their top-level comment with `parentCommentId`.\n\n### Why did an activity row appear even though the Tried It feed was empty?\n\nPinterest sometimes publishes activity in the comments stream only. The actor merges\nboth sources and deduplicates by activity ID.\n\n### Does `likeCount` mean all reactions?\n\nIt is Pinterest's published like/reaction type for that row. The full published\nbreakdown, when present, is in `reactionCounts`.\n\n### Can I download comment media?\n\nThe actor returns the media references Pinterest publishes (image or video URLs and\nsizes). It does not download the files.\n\n### What does an omitted field mean?\n\nPinterest did not publish that value for the object or for the signed-out session. It\ndoes not mean the actor guessed zero.\n\n### Is this affiliated with Pinterest?\n\nNo. This actor reads Pinterest's public responses and is not operated by or affiliated\nwith Pinterest, Inc.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "pinterest-pin-comments-and-activity-extractor",
      "title": "Pinterest Pin Comments & Activity Extractor",
      "description": "Collect public Pinterest comments, reply threads and Tried It activity for numeric Pins, with sort and date filters plus a rich Pin, creator and board summary. Cookieless.",
      "version": "1.1",
      "buildTag": "latest",
      "dockerfile": "../Dockerfile",
      "readme": "# Pinterest Pin Comments & Activity Extractor\n\nRead public Pinterest Pin conversations: top-level comments, reply threads, and Tried It\nactivity, together with a detailed Pin, creator and board summary. Everything is public\nand cookieless; there is no login, cookie or proxy step.\n\n## What you can collect\n\n| Mode | Returns |\n|---|---|\n| Comments, replies and activity (default) | Pin summary + comments + replies + activity |\n| Comments and replies | Pin summary + comments + replies |\n| Tried It activity | Pin summary + activity rows |\n| Pin summary only | One summary row per Pin, no comment requests |\n\nUse the mode that matches the job. Comments are ranked by Pinterest; `commentSort` can\nre-order the fetched window by newest or oldest published date.\n\n## Output\n\nEvery row carries `recordType`, `pinId`, `pinUrl`, `sourceUrl` and `scrapedAt`.\nRecords are omitted when Pinterest does not publish the value; published zeroes and\n`false` flags are preserved.\n\n### Pin summary (`recordType: \"pinCommentsSummary\"`)\n\nPin identity and context: `aggregatedPinId`, `title`, `description`, `createdAt`,\n`domain`, `linkUrl`, `linkDomain`, `seoTitle`, `seoDescription`, `altText`, `hashtags`,\n`imageUrl`, `imageWidth`, `imageHeight`, `imageSignature`, `dominantColor`, `videoUrl`,\n`videoThumbnailUrl`, `videoDurationMs`, `priceValue`, `priceCurrency`,\n`productAvailability`, `isPromoted`, `isShoppable`.\n\nEngagement: `commentCount`, `saveCount`, `repinCount`, `shareCount`, `reactionCount`,\n`reactionCounts`, `didItCount`, `didItUserCount`, plus the availability flags\n`commentsDisabled`, `commentsEligible`, `didItDisabled` and `isEligibleForTriedIt`.\n\nNested `creator`: `id`, `username`, `fullName`, `followerCount`, `avatarUrl`,\n`isVerifiedMerchant`, `domainUrl`, `profileUrl`.\n\nNested `board`: `id`, `name`, `url`, `pinCount`, `followerCount`, `ownerUsername`,\n`isCollaborative`.\n\n### Comments and replies (`recordType: \"comment\"`)\n\n`commentId`, `nodeId`, `parentCommentId` (replies), `isReply`, `replyDepth`, `text`,\n`details`, `createdAt`, `likeCount`, `reactionCounts`, `reactionByMe`, `helpfulCount`,\n`markedHelpfulByMe`, `replyCount`, `isEdited`, `isHighlightedByPinOwner`,\n`isTranslatable`, `commentType`, `isUserFirstComment`, `replyPreviewIds`,\n`attachedPin`, `pinData`, `commentResponsePin`, `commentTag`, `textTags`, `tags`,\n`taggedUsers`, `media`, and nested `author` (`id`, `nodeId`, `username`, `firstName`,\n`fullName`, `avatarUrl`, `isPrivateProfile`, `type`, `profileUrl`).\n\nReplies keep `recordType: \"comment\"` so existing consumers keep working; `isReply`,\n`parentCommentId` and `replyDepth` identify them.\n\n### Activity (`recordType: \"pinActivity\"`)\n\n`activityId`, `commentId`, `nodeId`, `text`, `details`, `doneAt`, `likeCount`,\n`likedByMe`, `reactionCounts`, `reactionByMe`, `helpfulCount`, `markedHelpfulByMe`,\n`commentCount`, `didItType`, `privacy`, `hasTryPin`, `tryPin`, `hasRecommended`,\n`recommendScore`, `recommendationReason`, `imageSignatures`, `images`,\n`imagesReformatted`, `videos`, `textTags`, `tags`, `taggedUsers`,\n`isHighlightedByPinOwner`, and nested `author`.\n\nActivity rows come from Pinterest's Tried It feed and the comments stream. They are\ndeduplicated by ID and merged so the richer published fields survive.\n\n## Input\n\n| Field | Type | Default | Purpose |\n|---|---|---|---|\n| `mode` | select | `commentsAndActivity` | What to collect. |\n| `urls` | array | — | Numeric Pin URLs or IDs. |\n| `domain` | select | `www.pinterest.com` | Regional Pinterest site. |\n| `maxComments` | integer | `10` | Top-level comments per Pin. |\n| `includeReplies` | boolean | `true` | Fetch reply threads. |\n| `maxRepliesPerComment` | integer | `100` | Cap replies per comment; `0` skips them. |\n| `maxActivity` | integer | `100` | Activity rows per Pin. |\n| `includePinSummary` | boolean | `true` | Emit the summary row. |\n| `commentSort` | select | `source` | Pinterest ranking, newest or oldest. |\n| `minLikeCount` | integer | `0` | Keep rows at or above this published like count. |\n| `minHelpfulCount` | integer | `0` | Keep rows at or above this published helpful count. |\n| `sinceDate` | string | — | Inclusive lower date bound (`YYYY-MM-DD`). |\n| `untilDate` | string | — | Inclusive upper date bound (`YYYY-MM-DD`). |\n| `proxyConfiguration` | object | — | Optional Apify proxy override; not required. |\n\n### Example: one Pin with replies\n\n```json\n{\n  \"urls\": [\"https://www.pinterest.com/pin/112027111109155913/\"],\n  \"mode\": \"commentsAndActivity\",\n  \"maxComments\": 50,\n  \"includeReplies\": true,\n  \"maxRepliesPerComment\": 25,\n  \"maxActivity\": 50,\n  \"commentSort\": \"newest\"\n}\n```\n\n### Example: recent activity only\n\n```json\n{\n  \"urls\": [\"112027111109155913\"],\n  \"mode\": \"activity\",\n  \"maxActivity\": 25,\n  \"sinceDate\": \"2024-01-01\"\n}\n```\n\n### Example: several Pins\n\n```json\n{\n  \"urls\": [\n    \"https://www.pinterest.com/pin/142567144448888376/\",\n    \"https://uk.pinterest.com/pin/155303887824034154/\"\n  ],\n  \"domain\": \"uk.pinterest.com\",\n  \"maxComments\": 100,\n  \"includePinSummary\": false\n}\n```\n\n### Legacy inputs\n\nSaved tasks that still send `pinUrls`, `startUrls`, `limit`, `cookies` or `cookiesJson`\nkeep running: the aliases are mapped in code, and cookie keys are ignored with a\nwarning because the public surface does not need them. These keys are intentionally\nnot shown in the input form.\n\n## How pagination and filters work\n\nComments are paged with Pinterest's public bookmark cursor until the source is\nexhausted or `maxComments` top-level rows are collected. Replies are fetched only for\ncomments with a published reply count and are capped by `maxRepliesPerComment`.\nActivity follows the same cursor until `maxActivity` rows are collected.\n\n`commentSort`, `minLikeCount`, `minHelpfulCount`, `sinceDate` and `untilDate` are\napplied to the rows fetched in that window. They never invent values: a row without a\npublished count or date is kept rather than assumed to be zero or out of range.\n\n## Use cases\n\n- Conversation and sentiment review for selected Pins.\n- Moderation queues with author, text, media and engagement context.\n- Recipe or product feedback, including Tried It photos and dates.\n- Reply-thread analysis without a login.\n- Recurring monitoring with date and engagement filters.\n\n## FAQ\n\n### Do I need a Pinterest account or cookies?\n\nNo. The actor reads Pinterest's public signed-out responses.\n\n### Which Pins work?\n\nNumeric Pins such as `142567144448888376`. Opaque share IDs that Pinterest sometimes\nreturns from search are list-only upstream and cannot resolve a Pin detail or comments.\n\n### Why are there fewer comments than the Pin's count?\n\nThe published count can include replies, private or removed comments, or comments\nPinterest withholds from signed-out visitors. The actor returns what the public cursor\nactually serves and never fabricates rows.\n\n### Are replies included?\n\nYes when `includeReplies` is on. Pinterest exposes one public reply level; replies are\nattached to their top-level comment with `parentCommentId`.\n\n### Why did an activity row appear even though the Tried It feed was empty?\n\nPinterest sometimes publishes activity in the comments stream only. The actor merges\nboth sources and deduplicates by activity ID.\n\n### Does `likeCount` mean all reactions?\n\nIt is Pinterest's published like/reaction type for that row. The full published\nbreakdown, when present, is in `reactionCounts`.\n\n### Can I download comment media?\n\nThe actor returns the media references Pinterest publishes (image or video URLs and\nsizes). It does not download the files.\n\n### What does an omitted field mean?\n\nPinterest did not publish that value for the object or for the signed-out session. It\ndoes not mean the actor guessed zero.\n\n### Is this affiliated with Pinterest?\n\nNo. This actor reads Pinterest's public responses and is not operated by or affiliated\nwith Pinterest, Inc.\n",
      "input": {
        "title": "Pinterest Pin Comments Input",
        "description": "Collect public Pinterest comments, replies and Tried It activity from numeric Pin URLs or IDs. No login or proxy setup is required.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "What to collect",
            "type": "string",
            "description": "Choose comments with replies, Tried It activity, both, or only the Pin summary.",
            "editor": "select",
            "enum": [
              "commentsAndActivity",
              "comments",
              "activity",
              "pinSummary"
            ],
            "enumTitles": [
              "Comments, replies and activity",
              "Comments and replies",
              "Tried It activity",
              "Pin summary only"
            ],
            "default": "commentsAndActivity",
            "prefill": "commentsAndActivity"
          },
          "urls": {
            "title": "Pinterest Pin URLs or IDs",
            "type": "array",
            "description": "One or more numeric Pinterest Pin links or IDs, e.g. https://www.pinterest.com/pin/142567144448888376/. Legacy pinUrls and startUrls inputs are still accepted in code.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "prefill": [
              "https://www.pinterest.com/pin/142567144448888376/"
            ]
          },
          "domain": {
            "title": "Pinterest region",
            "type": "string",
            "description": "Regional Pinterest site used for every request. Use the region shown in the Pin link.",
            "editor": "select",
            "enum": [
              "www.pinterest.com",
              "jp.pinterest.com",
              "br.pinterest.com",
              "uk.pinterest.com",
              "au.pinterest.com",
              "nz.pinterest.com",
              "co.pinterest.com",
              "de.pinterest.com",
              "fr.pinterest.com",
              "in.pinterest.com",
              "es.pinterest.com",
              "it.pinterest.com",
              "nl.pinterest.com",
              "pl.pinterest.com",
              "ru.pinterest.com",
              "tr.pinterest.com",
              "mx.pinterest.com",
              "ar.pinterest.com",
              "id.pinterest.com",
              "ph.pinterest.com",
              "th.pinterest.com",
              "kr.pinterest.com"
            ],
            "enumTitles": [
              "United States",
              "Japan",
              "Brazil",
              "United Kingdom",
              "Australia",
              "New Zealand",
              "Colombia",
              "Germany",
              "France",
              "India",
              "Spain",
              "Italy",
              "Netherlands",
              "Poland",
              "Russia",
              "Turkey",
              "Mexico",
              "Argentina",
              "Indonesia",
              "Philippines",
              "Thailand",
              "South Korea"
            ],
            "default": "www.pinterest.com",
            "prefill": "www.pinterest.com"
          },
          "maxComments": {
            "title": "Maximum top-level comments per Pin",
            "type": "integer",
            "description": "Top-level comments to collect per Pin; replies are counted separately. Legacy limit input is still accepted in code.",
            "minimum": 1,
            "maximum": 20000,
            "default": 10,
            "prefill": 3
          },
          "includeReplies": {
            "title": "Include replies",
            "type": "boolean",
            "description": "Fetch public replies for comments that have them.",
            "default": true,
            "prefill": false
          },
          "maxRepliesPerComment": {
            "title": "Maximum replies per comment",
            "type": "integer",
            "description": "Reply rows to collect for each top-level comment. Set to 0 to skip replies.",
            "minimum": 0,
            "maximum": 1000,
            "default": 100,
            "prefill": 0
          },
          "maxActivity": {
            "title": "Maximum activity rows per Pin",
            "type": "integer",
            "description": "Tried It and other public activity rows to collect per Pin.",
            "minimum": 0,
            "maximum": 20000,
            "default": 100,
            "prefill": 3
          },
          "includePinSummary": {
            "title": "Include Pin summary",
            "type": "boolean",
            "description": "Emit one pinCommentsSummary row with the Pin, creator, board, media, commerce and engagement context.",
            "default": true,
            "prefill": true
          },
          "commentSort": {
            "title": "Comment order",
            "type": "string",
            "description": "Source keeps Pinterest's ranking; newest and oldest sort the fetched comments by their published date.",
            "editor": "select",
            "enum": [
              "source",
              "newest",
              "oldest"
            ],
            "enumTitles": [
              "Pinterest ranking",
              "Newest first",
              "Oldest first"
            ],
            "default": "source",
            "prefill": "source"
          },
          "minLikeCount": {
            "title": "Minimum likes",
            "type": "integer",
            "description": "Drop comment, reply and activity rows whose published like count is lower. Rows without a published count are kept.",
            "minimum": 0,
            "maximum": 1000000000,
            "default": 0,
            "prefill": 0
          },
          "minHelpfulCount": {
            "title": "Minimum helpful votes",
            "type": "integer",
            "description": "Drop comment, reply and activity rows whose published helpful count is lower. Rows without a published count are kept.",
            "minimum": 0,
            "maximum": 1000000000,
            "default": 0,
            "prefill": 0
          },
          "sinceDate": {
            "title": "Published on or after",
            "type": "string",
            "description": "Optional inclusive date filter (YYYY-MM-DD) for comments, replies and activity. Leave empty for no lower bound.",
            "editor": "textfield",
            "prefill": ""
          },
          "untilDate": {
            "title": "Published on or before",
            "type": "string",
            "description": "Optional inclusive date filter (YYYY-MM-DD) for comments, replies and activity. Leave empty for no upper bound.",
            "editor": "textfield",
            "prefill": ""
          },
          "proxyConfiguration": {
            "title": "Optional proxy",
            "type": "object",
            "description": "Optional Apify proxy override. The actor works directly and falls back to the automatic Apify proxy without user setup.",
            "editor": "proxy"
          }
        },
        "required": []
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Pinterest Pin Comments & Activity Extractor Output",
        "description": "One Pin summary row per accessible Pin plus public comment, reply and Tried It activity rows selected by the input mode.",
        "properties": {
          "records": {
            "type": "string",
            "description": "Dataset containing Pinterest comment, reply, activity and Pin summary records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Pinterest comments",
              "transformation": {
                "fields": [
                  "recordType",
                  "activityType",
                  "pinId",
                  "commentId",
                  "isReply",
                  "parentCommentId",
                  "doneAt",
                  "text",
                  "title",
                  "author",
                  "likeCount",
                  "helpfulCount",
                  "sourceUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "recordType": {
                    "label": "Record type",
                    "format": "text"
                  },
                  "activityType": {
                    "label": "Pinterest activity",
                    "format": "text"
                  },
                  "pinId": {
                    "label": "Pin ID",
                    "format": "text"
                  },
                  "commentId": {
                    "label": "Comment ID",
                    "format": "text"
                  },
                  "isReply": {
                    "label": "Reply",
                    "format": "boolean"
                  },
                  "parentCommentId": {
                    "label": "Parent comment",
                    "format": "text"
                  },
                  "doneAt": {
                    "label": "Activity date",
                    "format": "text"
                  },
                  "text": {
                    "label": "Comment",
                    "format": "text"
                  },
                  "title": {
                    "label": "Pin title",
                    "format": "text"
                  },
                  "author": {
                    "label": "Author",
                    "format": "object"
                  },
                  "likeCount": {
                    "label": "Likes",
                    "format": "number"
                  },
                  "helpfulCount": {
                    "label": "Helpful votes",
                    "format": "number"
                  },
                  "sourceUrl": {
                    "label": "Pin URL",
                    "format": "link"
                  }
                }
              }
            }
          }
        }
      }
    },
    "buildNumber": "1.1.1",
    "imageDigest": "b48ab0a2d88fca98000d6945860dbc214ee9c2616f1d4e098d88bd68cf66ace1",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.004035555555555555
    }
  }
}