{
  "data": {
    "id": "V5Fj4mAeck8IyY4z5",
    "actId": "KPyLgLf82aAPfpZTX",
    "userId": "9Um4NEFR7z42j35AD",
    "startedAt": "2026-08-16T17:57:51.321Z",
    "finishedAt": "2026-08-16T17:58:06.072Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 14680,
      "runTimeSecs": 14.68,
      "computeUnits": 0.01631111111111111,
      "imageSizeBytes": 571810304
    },
    "options": {
      "useCache": false,
      "betaPackages": false,
      "tag": "latest",
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"X Post Metrics Scraper input\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"startUrls\": {\n      \"title\": \"X post URLs\",\n      \"type\": \"array\",\n      \"description\": \"Paste up to 1,000 public X post URLs. Each URL creates one attempted metric snapshot row.\",\n      \"editor\": \"stringList\",\n      \"minItems\": 1,\n      \"maxItems\": 1000,\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"pattern\": \"^https://(www\\\\.|mobile\\\\.)?(x\\\\.com|twitter\\\\.com)/.+/status/[0-9]{5,25}(?:[/?#].*)?$\"\n      },\n      \"prefill\": [\n        \"https://x.com/OpenAI/status/2077446718728425686\"\n      ],\n      \"placeholderValue\": \"https://x.com/OpenAI/status/1234567890\"\n    }\n  },\n  \"required\": [\n    \"startUrls\"\n  ]\n}",
    "readme": "# X Post Metrics Scraper\n\n## 📊 What does X Post Metrics Scraper do?\n\nX Post Metrics Scraper turns known public X or Twitter post URLs into clean\nmetric snapshots. Use it for campaign reports, creator tracking, alerts, and\nscheduled history.\n\nEach input URL creates one stable row. It can include views, likes, replies,\nreposts, quotes, bookmarks, post text, author identity, and public profile\ncounts.\n\nThis Actor reads public logged-out X data. It does not use cookies, log in to\nX, open private posts, or run keyword searches.\n\nWith X Post Metrics Scraper, you can:\n\n- 📈 Track post engagement over time.\n- 🧑‍💻 Compare creators, brands, and campaigns.\n- 🔔 Send metric snapshots to alerts and dashboards.\n- 🆔 Keep stable post and profile IDs for matching.\n- 📦 Export clean rows to JSON, CSV, Excel, XML, RSS, or an API.\n\n## 📦 What X post data can I extract?\n\nOne dataset row represents one attempted public X post URL.\n\n| Data group         | Example fields                                                |\n| ------------------ | ------------------------------------------------------------- |\n| 🔗 Post identity   | `inputUrl`, `postUrl`, `postId`, `postType`                   |\n| 🧾 Post details    | `text`, `publishedAt`                                         |\n| 👤 Author          | `profileId`, `profileUrl`, `profileUsername`, `profileName`   |\n| 📊 Post metrics    | `views`, `likes`, `replies`, `reposts`, `quotes`, `bookmarks` |\n| 👥 Profile metrics | `profileFollowers`                                            |\n| 🎯 Quality         | `postMetricStatus`, `status`, `statusReason`                  |\n| 🕒 Observation     | `observedAt`                                                  |\n\nMissing public values stay `null`. They are never changed to a made-up zero.\nMetric status records show whether each value was present, unavailable, or not\nattempted.\n\n## ⚙️ Can I use X Post Metrics Scraper through an API?\n\nYes. Run it in Apify Console or connect it through:\n\n- Apify API\n- Python SDK\n- JavaScript SDK\n- Webhooks\n- Scheduled Tasks\n- Apify integrations\n\n## 🎯 Why collect X post metrics?\n\n| Use case            | How the data helps                               |\n| ------------------- | ------------------------------------------------ |\n| 📣 Campaign reports | Compare public results across campaign posts.    |\n| 🧑‍🎨 Creator tracking | Follow post and profile growth over time.        |\n| 🏷️ Brand monitoring | Watch known brand posts without manual checks.   |\n| 🧱 Data pipelines   | Load stable snapshots into a sheet or warehouse. |\n\n## 💵 Pricing event\n\nThe product is designed for pay-per-result pricing. One paid result means one\nsuccessful public post metric row. Invalid inputs and missing posts are not\nbillable result events.\n\nThe price ranges from $2.20 to $4.50 per 1,000 results, based on your Apify\nplan. Platform usage is included. Use Apify's maximum charge setting to cap\npaid results.\n\n## 🚀 How do I use X Post Metrics Scraper?\n\n1. Open **X Post Metrics Scraper** in Apify Console.\n2. Paste one or more public X post URLs into **Post URLs**.\n3. Click **Start**.\n4. Open the **Output** tab.\n5. Download the dataset or connect it to your workflow.\n\n## ⬇️ Input\n\nPaste up to 1,000 full public post URLs into `startUrls`.\n\n```json\n{\n  \"startUrls\": [\"https://x.com/OpenAI/status/2077446718728425686\"]\n}\n```\n\nSupported URLs contain `/status/{post ID}` and use `x.com` or `twitter.com`.\nRaw post IDs, profile URLs, searches, lists, and private posts are not\nsupported. Duplicate URLs are checked once.\n\nWhen an input URL is a repost, the row describes the original post shown by X.\n`inputUrl` keeps the URL you supplied. `postUrl`, post identity, author, text,\nand metrics describe the visible original post.\n\n## ⬆️ Output sample\n\n```json\n{\n  \"platform\": \"x\",\n  \"inputUrl\": \"https://x.com/OpenAI/status/2077446718728425686\",\n  \"postUrl\": \"https://x.com/OpenAI/status/2077446718728425686\",\n  \"postId\": \"2077446718728425686\",\n  \"postType\": \"post\",\n  \"publishedAt\": \"2026-07-01T12:00:00.000Z\",\n  \"text\": \"Example post\",\n  \"profileUrl\": \"https://x.com/OpenAI\",\n  \"profileId\": \"4398626122\",\n  \"profileUsername\": \"@OpenAI\",\n  \"profileName\": \"OpenAI\",\n  \"views\": 1200000,\n  \"likes\": 14000,\n  \"replies\": 900,\n  \"reposts\": 2100,\n  \"quotes\": 300,\n  \"bookmarks\": 1800,\n  \"postMetricStatus\": [\n    {\n      \"metric\": \"views\",\n      \"status\": \"present\",\n      \"precision\": \"exact\",\n      \"source\": \"public_post\"\n    }\n  ],\n  \"profileFollowers\": 4200000,\n  \"status\": \"ok\",\n  \"statusReason\": null,\n  \"observedAt\": \"2026-07-17T12:00:00.000Z\"\n}\n```\n\nX shows plain reposts and quotes as one repost total. Add `reposts` and\n`quotes` to match the displayed total.\n\n### 📌 Run summary\n\nThe `OUTPUT` record reports input count, unique inputs, saved rows, billable\nrows, status counts, start time, finish time, and runtime.\n\n## 🚦 Status and quality fields\n\n- `ok`: the public post identity was proven and its snapshot was saved.\n- `not_found`: the post was missing or no longer public.\n- `blocked`: X did not allow the public request at that time.\n- `rate_limited`: X asked the run to slow down.\n- `parser_miss`: X returned data without a stable post identity.\n- `invalid_input` or `unsupported_url`: the input was not a supported URL.\n- `source_error`: X could not be read for another safe, known reason.\n\nGood and failed rows use the same ordered fields. Unknown values stay `null`,\nwhich keeps CSV imports and scheduled checks stable.\n\n## 🔒 Source boundary\n\nThis Actor reads only data X shows without signing in. It does not use your X\naccount, cookies, passwords, or private tokens. It does not bypass login or\nchallenge screens.\n\n## ⚠️ Limits\n\n- Deleted, private, age-gated, region-limited, or hidden posts may fail.\n- X may not show every metric on every post.\n- Results are snapshots. Use a schedule to build history.\n- X can change its public pages, so a later run may need an Actor update.\n\n## ❓ FAQ\n\n### Does this Actor need an X login or API key?\n\nNo. It reads logged-out public X data.\n\n### Why is a metric `null`?\n\nX did not show that value publicly for the post at run time. Check the matching\nmetric status record.\n\n### How are duplicate URLs handled?\n\nThe same normalized post URL is checked once per run.\n\n## 🏠 Related Actors\n\nContinue the same workflow on this platform or compare public data across\nplatforms.\n\n### Continue on X\n\n- [X Profile Metrics Scraper](https://apify.com/chronometrica/x-profile-metrics)\n  — collect public profile details, audience counts, and activity stats.\n- [X Search & Discovery Scraper](https://apify.com/chronometrica/x-search-scraper)\n  — find public posts and profiles by keyword.\n\n### Compare metrics across platforms\n\n- [Facebook Metrics Scraper](https://apify.com/chronometrica/facebook-metrics-scraper)\n  — collect public post, Reel, video, photo, and profile metrics.\n- [Instagram Metrics Scraper](https://apify.com/chronometrica/instagram-metrics-scraper)\n  — collect public post, Reel, carousel, profile, and collaboration metrics.\n- [TikTok Metrics Scraper](https://apify.com/chronometrica/tiktok-metrics-scraper)\n  — collect public video, profile, engagement, hashtag, and music data.\n- [YouTube Metrics Scraper](https://apify.com/chronometrica/youtube-metrics-scraper)\n  — collect public video, Short, channel, and engagement metrics.\n- [Snapchat Spotlight Metrics Scraper](https://apify.com/chronometrica/snapchat-metrics-scraper)\n  — collect public Spotlight post views, engagement, creator, and media data.\n\n## 🛟 Support\n\nFor help, share the public post URL, run ID, expected result, and actual result.\nNever share passwords, cookies, or private tokens.\n\nUse public data in line with the law, X rules, and Apify rules. Do not use it\nto harass people or build sensitive personal profiles.\n",
    "changelog": "# Changelog\n\n## 1.0.0\n\n- Initial public release of X Post Metrics Scraper.\n- Collect views, likes, replies, reposts, quotes, bookmarks, post details, and\n  author details from public X post URLs.\n- Export clean rows with status and metric quality fields for reports,\n  scheduled tracking, and data pipelines.\n",
    "actorDefinition": {
      "$schema": "https://apify.com/schemas/v1/actor.ide.json",
      "actorSpecification": 1,
      "name": "x-post-metrics",
      "title": "X Post Metrics Scraper",
      "description": "Track public X post views, likes, reposts, quotes, replies, bookmarks, text, authors, and profile counts from known post URLs.",
      "seoTitle": "X Post Metrics Scraper | Twitter Tweet Analytics",
      "seoDescription": "Extract public X post views, likes, reposts, quotes, replies, bookmarks, text, and author stats from known X or Twitter URLs. No login needed.",
      "categories": [
        "SOCIAL_MEDIA"
      ],
      "version": "1.0",
      "buildTag": "latest",
      "defaultMemoryMbytes": 512,
      "maxMemoryMbytes": 512,
      "defaultRunOptions": {
        "build": "latest",
        "timeoutSecs": 1800,
        "memoryMbytes": 512
      },
      "exampleRunInput": {
        "contentType": "application/json; charset=utf-8",
        "body": "{\n  \"startUrls\": [\n    \"https://x.com/OpenAI/status/2077446718728425686\"\n  ]\n}"
      },
      "input": {
        "title": "X Post Metrics Scraper input",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "startUrls": {
            "title": "X post URLs",
            "type": "array",
            "description": "Paste up to 1,000 public X post URLs. Each URL creates one attempted metric snapshot row.",
            "editor": "stringList",
            "minItems": 1,
            "maxItems": 1000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^https://(www\\.|mobile\\.)?(x\\.com|twitter\\.com)/.+/status/[0-9]{5,25}(?:[/?#].*)?$"
            },
            "prefill": [
              "https://x.com/OpenAI/status/2077446718728425686"
            ],
            "placeholderValue": "https://x.com/OpenAI/status/1234567890"
          }
        },
        "required": [
          "startUrls"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "X Post Metrics Scraper output",
        "description": "Metric snapshot rows are in the default dataset. OUTPUT contains a compact run summary.",
        "properties": {
          "results": {
            "type": "string",
            "title": "Metric results",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          },
          "output": {
            "type": "string",
            "title": "Run summary",
            "template": "{{links.apiDefaultKeyValueStoreUrl}}/records/OUTPUT"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "fields": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "platform": {
                "title": "Platform",
                "type": "string"
              },
              "inputUrl": {
                "title": "Input URL",
                "type": "string"
              },
              "postUrl": {
                "title": "Post URL",
                "type": [
                  "string",
                  "null"
                ]
              },
              "postId": {
                "title": "Post ID",
                "type": [
                  "string",
                  "null"
                ]
              },
              "postType": {
                "title": "Post Type",
                "type": [
                  "string",
                  "null"
                ]
              },
              "publishedAt": {
                "title": "Published At",
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "text": {
                "title": "Post Text",
                "type": [
                  "string",
                  "null"
                ]
              },
              "profileUrl": {
                "title": "Profile URL",
                "type": [
                  "string",
                  "null"
                ]
              },
              "profileId": {
                "title": "Profile ID",
                "type": [
                  "string",
                  "null"
                ]
              },
              "profileUsername": {
                "title": "Profile Username",
                "type": [
                  "string",
                  "null"
                ]
              },
              "profileName": {
                "title": "Profile Name",
                "type": [
                  "string",
                  "null"
                ]
              },
              "views": {
                "title": "Views",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "likes": {
                "title": "Likes",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "replies": {
                "title": "Replies",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "reposts": {
                "title": "Reposts",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "quotes": {
                "title": "Quotes",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "bookmarks": {
                "title": "Bookmarks",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "postMetricStatus": {
                "title": "Post Metric Status",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "metric": {
                      "type": "string",
                      "enum": [
                        "views",
                        "likes",
                        "replies",
                        "reposts",
                        "quotes",
                        "bookmarks"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "present",
                        "unavailable",
                        "not_attempted"
                      ]
                    },
                    "precision": {
                      "type": "string",
                      "enum": [
                        "exact",
                        "unavailable",
                        "unknown"
                      ]
                    },
                    "source": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "enum": [
                        "public_post",
                        "public_profile",
                        null
                      ]
                    }
                  },
                  "required": [
                    "metric",
                    "status",
                    "precision",
                    "source"
                  ]
                }
              },
              "profileFollowers": {
                "title": "Profile Followers",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "status": {
                "title": "Status",
                "type": "string"
              },
              "statusReason": {
                "title": "Status Reason",
                "type": [
                  "string",
                  "null"
                ]
              },
              "observedAt": {
                "title": "Observed At",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "platform",
              "inputUrl",
              "status",
              "observedAt"
            ]
          },
          "views": {
            "overview": {
              "title": "X post metrics",
              "description": "One row per attempted public X post URL.",
              "transformation": {
                "fields": [
                  "platform",
                  "inputUrl",
                  "postUrl",
                  "postId",
                  "postType",
                  "publishedAt",
                  "text",
                  "profileUrl",
                  "profileId",
                  "profileUsername",
                  "profileName",
                  "views",
                  "likes",
                  "replies",
                  "reposts",
                  "quotes",
                  "bookmarks",
                  "postMetricStatus",
                  "profileFollowers",
                  "status",
                  "statusReason",
                  "observedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "platform": {
                    "label": "Platform",
                    "format": "text"
                  },
                  "inputUrl": {
                    "label": "Input URL",
                    "format": "link"
                  },
                  "postUrl": {
                    "label": "Post URL",
                    "format": "link"
                  },
                  "postId": {
                    "label": "Post ID",
                    "format": "text"
                  },
                  "postType": {
                    "label": "Post Type",
                    "format": "text"
                  },
                  "publishedAt": {
                    "label": "Published At",
                    "format": "date"
                  },
                  "text": {
                    "label": "Post Text",
                    "format": "text"
                  },
                  "profileUrl": {
                    "label": "Profile URL",
                    "format": "link"
                  },
                  "profileId": {
                    "label": "Profile ID",
                    "format": "text"
                  },
                  "profileUsername": {
                    "label": "Profile Username",
                    "format": "text"
                  },
                  "profileName": {
                    "label": "Profile Name",
                    "format": "text"
                  },
                  "views": {
                    "label": "Views",
                    "format": "number"
                  },
                  "likes": {
                    "label": "Likes",
                    "format": "number"
                  },
                  "replies": {
                    "label": "Replies",
                    "format": "number"
                  },
                  "reposts": {
                    "label": "Reposts",
                    "format": "number"
                  },
                  "quotes": {
                    "label": "Quotes",
                    "format": "number"
                  },
                  "bookmarks": {
                    "label": "Bookmarks",
                    "format": "number"
                  },
                  "postMetricStatus": {
                    "label": "Post Metric Status",
                    "format": "object"
                  },
                  "profileFollowers": {
                    "label": "Profile Followers",
                    "format": "number"
                  },
                  "status": {
                    "label": "Status",
                    "format": "text"
                  },
                  "statusReason": {
                    "label": "Status Reason",
                    "format": "text"
                  },
                  "observedAt": {
                    "label": "Observed At",
                    "format": "date"
                  }
                }
              }
            }
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "changelog": "# Changelog\n\n## 1.0.0\n\n- Initial public release of X Post Metrics Scraper.\n- Collect views, likes, replies, reposts, quotes, bookmarks, post details, and\n  author details from public X post URLs.\n- Export clean rows with status and metric quality fields for reports,\n  scheduled tracking, and data pipelines.\n",
      "readme": "# X Post Metrics Scraper\n\n## 📊 What does X Post Metrics Scraper do?\n\nX Post Metrics Scraper turns known public X or Twitter post URLs into clean\nmetric snapshots. Use it for campaign reports, creator tracking, alerts, and\nscheduled history.\n\nEach input URL creates one stable row. It can include views, likes, replies,\nreposts, quotes, bookmarks, post text, author identity, and public profile\ncounts.\n\nThis Actor reads public logged-out X data. It does not use cookies, log in to\nX, open private posts, or run keyword searches.\n\nWith X Post Metrics Scraper, you can:\n\n- 📈 Track post engagement over time.\n- 🧑‍💻 Compare creators, brands, and campaigns.\n- 🔔 Send metric snapshots to alerts and dashboards.\n- 🆔 Keep stable post and profile IDs for matching.\n- 📦 Export clean rows to JSON, CSV, Excel, XML, RSS, or an API.\n\n## 📦 What X post data can I extract?\n\nOne dataset row represents one attempted public X post URL.\n\n| Data group         | Example fields                                                |\n| ------------------ | ------------------------------------------------------------- |\n| 🔗 Post identity   | `inputUrl`, `postUrl`, `postId`, `postType`                   |\n| 🧾 Post details    | `text`, `publishedAt`                                         |\n| 👤 Author          | `profileId`, `profileUrl`, `profileUsername`, `profileName`   |\n| 📊 Post metrics    | `views`, `likes`, `replies`, `reposts`, `quotes`, `bookmarks` |\n| 👥 Profile metrics | `profileFollowers`                                            |\n| 🎯 Quality         | `postMetricStatus`, `status`, `statusReason`                  |\n| 🕒 Observation     | `observedAt`                                                  |\n\nMissing public values stay `null`. They are never changed to a made-up zero.\nMetric status records show whether each value was present, unavailable, or not\nattempted.\n\n## ⚙️ Can I use X Post Metrics Scraper through an API?\n\nYes. Run it in Apify Console or connect it through:\n\n- Apify API\n- Python SDK\n- JavaScript SDK\n- Webhooks\n- Scheduled Tasks\n- Apify integrations\n\n## 🎯 Why collect X post metrics?\n\n| Use case            | How the data helps                               |\n| ------------------- | ------------------------------------------------ |\n| 📣 Campaign reports | Compare public results across campaign posts.    |\n| 🧑‍🎨 Creator tracking | Follow post and profile growth over time.        |\n| 🏷️ Brand monitoring | Watch known brand posts without manual checks.   |\n| 🧱 Data pipelines   | Load stable snapshots into a sheet or warehouse. |\n\n## 💵 Pricing event\n\nThe product is designed for pay-per-result pricing. One paid result means one\nsuccessful public post metric row. Invalid inputs and missing posts are not\nbillable result events.\n\nThe price ranges from $2.20 to $4.50 per 1,000 results, based on your Apify\nplan. Platform usage is included. Use Apify's maximum charge setting to cap\npaid results.\n\n## 🚀 How do I use X Post Metrics Scraper?\n\n1. Open **X Post Metrics Scraper** in Apify Console.\n2. Paste one or more public X post URLs into **Post URLs**.\n3. Click **Start**.\n4. Open the **Output** tab.\n5. Download the dataset or connect it to your workflow.\n\n## ⬇️ Input\n\nPaste up to 1,000 full public post URLs into `startUrls`.\n\n```json\n{\n  \"startUrls\": [\"https://x.com/OpenAI/status/2077446718728425686\"]\n}\n```\n\nSupported URLs contain `/status/{post ID}` and use `x.com` or `twitter.com`.\nRaw post IDs, profile URLs, searches, lists, and private posts are not\nsupported. Duplicate URLs are checked once.\n\nWhen an input URL is a repost, the row describes the original post shown by X.\n`inputUrl` keeps the URL you supplied. `postUrl`, post identity, author, text,\nand metrics describe the visible original post.\n\n## ⬆️ Output sample\n\n```json\n{\n  \"platform\": \"x\",\n  \"inputUrl\": \"https://x.com/OpenAI/status/2077446718728425686\",\n  \"postUrl\": \"https://x.com/OpenAI/status/2077446718728425686\",\n  \"postId\": \"2077446718728425686\",\n  \"postType\": \"post\",\n  \"publishedAt\": \"2026-07-01T12:00:00.000Z\",\n  \"text\": \"Example post\",\n  \"profileUrl\": \"https://x.com/OpenAI\",\n  \"profileId\": \"4398626122\",\n  \"profileUsername\": \"@OpenAI\",\n  \"profileName\": \"OpenAI\",\n  \"views\": 1200000,\n  \"likes\": 14000,\n  \"replies\": 900,\n  \"reposts\": 2100,\n  \"quotes\": 300,\n  \"bookmarks\": 1800,\n  \"postMetricStatus\": [\n    {\n      \"metric\": \"views\",\n      \"status\": \"present\",\n      \"precision\": \"exact\",\n      \"source\": \"public_post\"\n    }\n  ],\n  \"profileFollowers\": 4200000,\n  \"status\": \"ok\",\n  \"statusReason\": null,\n  \"observedAt\": \"2026-07-17T12:00:00.000Z\"\n}\n```\n\nX shows plain reposts and quotes as one repost total. Add `reposts` and\n`quotes` to match the displayed total.\n\n### 📌 Run summary\n\nThe `OUTPUT` record reports input count, unique inputs, saved rows, billable\nrows, status counts, start time, finish time, and runtime.\n\n## 🚦 Status and quality fields\n\n- `ok`: the public post identity was proven and its snapshot was saved.\n- `not_found`: the post was missing or no longer public.\n- `blocked`: X did not allow the public request at that time.\n- `rate_limited`: X asked the run to slow down.\n- `parser_miss`: X returned data without a stable post identity.\n- `invalid_input` or `unsupported_url`: the input was not a supported URL.\n- `source_error`: X could not be read for another safe, known reason.\n\nGood and failed rows use the same ordered fields. Unknown values stay `null`,\nwhich keeps CSV imports and scheduled checks stable.\n\n## 🔒 Source boundary\n\nThis Actor reads only data X shows without signing in. It does not use your X\naccount, cookies, passwords, or private tokens. It does not bypass login or\nchallenge screens.\n\n## ⚠️ Limits\n\n- Deleted, private, age-gated, region-limited, or hidden posts may fail.\n- X may not show every metric on every post.\n- Results are snapshots. Use a schedule to build history.\n- X can change its public pages, so a later run may need an Actor update.\n\n## ❓ FAQ\n\n### Does this Actor need an X login or API key?\n\nNo. It reads logged-out public X data.\n\n### Why is a metric `null`?\n\nX did not show that value publicly for the post at run time. Check the matching\nmetric status record.\n\n### How are duplicate URLs handled?\n\nThe same normalized post URL is checked once per run.\n\n## 🏠 Related Actors\n\nContinue the same workflow on this platform or compare public data across\nplatforms.\n\n### Continue on X\n\n- [X Profile Metrics Scraper](https://apify.com/chronometrica/x-profile-metrics)\n  — collect public profile details, audience counts, and activity stats.\n- [X Search & Discovery Scraper](https://apify.com/chronometrica/x-search-scraper)\n  — find public posts and profiles by keyword.\n\n### Compare metrics across platforms\n\n- [Facebook Metrics Scraper](https://apify.com/chronometrica/facebook-metrics-scraper)\n  — collect public post, Reel, video, photo, and profile metrics.\n- [Instagram Metrics Scraper](https://apify.com/chronometrica/instagram-metrics-scraper)\n  — collect public post, Reel, carousel, profile, and collaboration metrics.\n- [TikTok Metrics Scraper](https://apify.com/chronometrica/tiktok-metrics-scraper)\n  — collect public video, profile, engagement, hashtag, and music data.\n- [YouTube Metrics Scraper](https://apify.com/chronometrica/youtube-metrics-scraper)\n  — collect public video, Short, channel, and engagement metrics.\n- [Snapchat Spotlight Metrics Scraper](https://apify.com/chronometrica/snapchat-metrics-scraper)\n  — collect public Spotlight post views, engagement, creator, and media data.\n\n## 🛟 Support\n\nFor help, share the public post URL, run ID, expected result, and actual result.\nNever share passwords, cookies, or private tokens.\n\nUse public data in line with the law, X rules, and Apify rules. Do not use it\nto harass people or build sensitive personal profiles.\n"
    },
    "buildNumber": "1.0.4",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.01631111111111111
    }
  }
}