{
  "data": {
    "id": "OXfVT16eHbhbNWgJb",
    "actId": "OES3JKkI5b2ZDKZB9",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-11-11T09:00:15.496Z",
    "finishedAt": "2026-11-11T09:00:19.913Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 4215,
      "runTimeSecs": 4.215,
      "computeUnits": 0.004683333333333334,
      "imageSizeBytes": 319115776
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Steam Store Games Scraper Input\",\n  \"description\": \"Collect Steam store game records from keyword search, storefront charts, App IDs, or store URLs.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"sectionCaption\": \"What to scrape\",\n      \"title\": \"Mode\",\n      \"description\": \"Choose how to find games: keyword search, a Steam chart, specific App IDs, or pasted store URLs.\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"browse\",\n        \"appDetail\",\n        \"urls\",\n        \"featured\"\n      ],\n      \"enumTitles\": [\n        \"Search by keyword\",\n        \"Browse a Steam chart\",\n        \"Look up App IDs\",\n        \"Paste store URLs\",\n        \"Featured mix (top sellers, new, specials, coming soon)\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\"\n    },\n    \"searchQueries\": {\n      \"title\": \"Search queries\",\n      \"description\": \"One or more game names or keywords. Used when mode is Search by keyword.\",\n      \"type\": \"array\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [\n        \"adventure\"\n      ],\n      \"prefill\": [\n        \"Hades\"\n      ]\n    },\n    \"browseCategory\": {\n      \"title\": \"Steam chart\",\n      \"description\": \"Which storefront chart to browse. Used when mode is Browse a Steam chart.\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"topSellers\",\n        \"newReleases\",\n        \"specials\",\n        \"comingSoon\",\n        \"weeklongDeals\",\n        \"popularNew\",\n        \"featuredMix\"\n      ],\n      \"enumTitles\": [\n        \"Top sellers\",\n        \"New releases\",\n        \"Current specials\",\n        \"Coming soon\",\n        \"Weeklong deals\",\n        \"Popular new releases\",\n        \"Featured mix (all four featured lists)\"\n      ],\n      \"default\": \"topSellers\",\n      \"prefill\": \"topSellers\"\n    },\n    \"appIds\": {\n      \"title\": \"Steam App IDs\",\n      \"description\": \"Numeric App IDs or store URLs, one per line. Used when mode is Look up App IDs.\",\n      \"type\": \"array\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"prefill\": [\n        \"1245620\"\n      ]\n    },\n    \"storeUrls\": {\n      \"title\": \"Steam store URLs\",\n      \"description\": \"Full store URLs, one per line. Used when mode is Paste store URLs.\",\n      \"type\": \"array\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"prefill\": [\n        \"https://store.steampowered.com/app/570/\"\n      ]\n    },\n    \"appTypeFilter\": {\n      \"sectionCaption\": \"Filters\",\n      \"title\": \"App type\",\n      \"description\": \"Keep only games, DLC, demos, or software. 'All' keeps every app type Steam returns.\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"all\",\n        \"game\",\n        \"dlc\",\n        \"demo\",\n        \"software\"\n      ],\n      \"enumTitles\": [\n        \"All app types\",\n        \"Games\",\n        \"DLC\",\n        \"Demos\",\n        \"Software\"\n      ],\n      \"default\": \"all\",\n      \"prefill\": \"all\"\n    },\n    \"sortBy\": {\n      \"title\": \"Sort order\",\n      \"description\": \"How Steam should order search and chart results before filtering.\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"relevance\",\n        \"released\",\n        \"priceAsc\",\n        \"priceDesc\",\n        \"reviews\",\n        \"metacritic\",\n        \"nameAsc\"\n      ],\n      \"enumTitles\": [\n        \"Relevance\",\n        \"Release date (newest)\",\n        \"Price (low to high)\",\n        \"Price (high to low)\",\n        \"User reviews\",\n        \"Metacritic score\",\n        \"Name (A to Z)\"\n      ],\n      \"default\": \"relevance\",\n      \"prefill\": \"relevance\"\n    },\n    \"onlyDiscounted\": {\n      \"title\": \"Only discounted games\",\n      \"description\": \"Drop records that are not currently on sale.\",\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"minDiscount\": {\n      \"title\": \"Minimum discount (%)\",\n      \"description\": \"Keep records whose discount is at least this percentage. 0 disables the filter.\",\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"maximum\": 100,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"maxPrice\": {\n      \"title\": \"Maximum price\",\n      \"description\": \"Keep records whose final price is at or below this amount in the storefront currency. Leave empty for no limit.\",\n      \"type\": \"number\",\n      \"minimum\": 0,\n      \"maximum\": 10000\n    },\n    \"minMetacritic\": {\n      \"title\": \"Minimum Metacritic score\",\n      \"description\": \"Keep records with a Metacritic score at or above this value. 0 disables the filter.\",\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"maximum\": 100,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"country\": {\n      \"sectionCaption\": \"Storefront and output\",\n      \"title\": \"Store country\",\n      \"description\": \"Two-letter Steam store country code, e.g. us, gb, de, ca. Controls currency and regional availability.\",\n      \"type\": \"string\",\n      \"editor\": \"textfield\",\n      \"default\": \"us\",\n      \"prefill\": \"us\"\n    },\n    \"language\": {\n      \"title\": \"Store language\",\n      \"description\": \"Language Steam uses for app names, descriptions, and store-page text.\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"english\",\n        \"german\",\n        \"french\",\n        \"spanish\",\n        \"italian\",\n        \"portuguese\",\n        \"brazilian\",\n        \"russian\",\n        \"japanese\",\n        \"korean\",\n        \"schinese\",\n        \"tchinese\",\n        \"polish\",\n        \"dutch\",\n        \"danish\",\n        \"finnish\",\n        \"norwegian\",\n        \"swedish\",\n        \"czech\",\n        \"hungarian\",\n        \"romanian\",\n        \"turkish\",\n        \"thai\",\n        \"vietnamese\",\n        \"ukrainian\",\n        \"bulgarian\",\n        \"greek\",\n        \"indonesian\",\n        \"latam\"\n      ],\n      \"default\": \"english\",\n      \"prefill\": \"english\",\n      \"enumTitles\": [\n        \"English\",\n        \"German\",\n        \"French\",\n        \"Spanish\",\n        \"Italian\",\n        \"Portuguese\",\n        \"Portuguese (Brazil)\",\n        \"Russian\",\n        \"Japanese\",\n        \"Korean\",\n        \"Simplified Chinese\",\n        \"Traditional Chinese\",\n        \"Polish\",\n        \"Dutch\",\n        \"Danish\",\n        \"Finnish\",\n        \"Norwegian\",\n        \"Swedish\",\n        \"Czech\",\n        \"Hungarian\",\n        \"Romanian\",\n        \"Turkish\",\n        \"Thai\",\n        \"Vietnamese\",\n        \"Ukrainian\",\n        \"Bulgarian\",\n        \"Greek\",\n        \"Indonesian\",\n        \"Spanish (Latin America)\"\n      ]\n    },\n    \"includeTags\": {\n      \"title\": \"Include Steam tags\",\n      \"description\": \"Read the public store page for its community tags and DLC names. Adds one request per record.\",\n      \"type\": \"boolean\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"includeReviewSummary\": {\n      \"title\": \"Include review summary\",\n      \"description\": \"Add Steam's positive/negative review totals and review label. Adds one request per record.\",\n      \"type\": \"boolean\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"maxItems\": {\n      \"title\": \"Maximum records\",\n      \"description\": \"Stop after this many records have been saved.\",\n      \"type\": \"integer\",\n      \"minimum\": 1,\n      \"maximum\": 1000,\n      \"default\": 20,\n      \"prefill\": 1\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# Steam Game Pricing & Metacritic Scraper\n\nSteam's storefront is a catalog, a chart board, and a price list at the same time. This actor reads those public surfaces without a login, API key, cookie, or proxy setup, and returns one clean record per app: localized price and discount, Metacritic score, review totals, community tags, media, DLC, platforms, and release information.\n\n## Five ways to build a dataset\n\n| Mode | What it does |\n|---|---|\n| `search` | Matches one or more keywords against Steam's own store search and pages through the results. |\n| `browse` | Walks a chart: top sellers, new releases, current specials, coming soon, weeklong deals, popular new releases, or the legacy featured mix. |\n| `appDetail` | Looks up numeric App IDs, or store URLs pasted into the App ID field. |\n| `urls` | Accepts full `store.steampowered.com/app/<id>/` URLs and resolves each one. |\n| `featured` | Keeps the old behavior: top sellers, new releases, specials, and coming soon, in that order. |\n\nSearch and chart modes paginate through Steam's 50-result pages until `maxItems` is reached or the source runs out. Every record is deduplicated by App ID, so overlapping queries and chart pages do not create duplicates.\n\n## What lands in each record\n\n- **Identity** — `appId`, `appName`, `appType`, `appUrl`, `recordType`, `scrapedAt`\n- **People** — `developer`, `publisher`, plus `developers[]` and `publishers[]`\n- **Pricing** — `currentPrice`, `originalPrice`, `priceCurrency`, `priceInitialCents`, `priceFinalCents`, `discountPercent`, `isDiscounted`, `isFree`, `packages[]`, `packageOptions[]`\n- **Critical reception** — `metacriticScore`, `metacriticUrl`, `recommendationsTotal`, `pressQuotes[]`\n- **User reviews** — `reviewScore`, `reviewScoreDesc`, `totalReviews`, `totalPositive`, `totalNegative`, `positiveReviewPercent`\n- **Classification** — `genres[]`, `categories[]`, `tags[]`, `controllerSupport`, `requiredAge`, `contentDescriptors[]`, `platforms`\n- **Release** — `releaseDate`, `releaseDateIso`, `comingSoon`\n- **Content** — `shortDescription`, `detailedDescription`, `website`, `supportedLanguages`\n- **Media** — `headerImage`, `capsuleImage`, `capsuleImageV5`, `backgroundImage`, `backgroundRawImage`, `screenshots[]`, `screenshotThumbnails[]`, `movies[]`\n- **Extras** — `achievementsTotal`, `dlcAppIds[]`, `dlc[]`, `supportUrl`, `supportEmail`\n\nSteam does not publish every field for every app. Missing values are omitted from the record rather than written as `null`, `\"\"`, or a made-up placeholder.\n\n## Input\n\n| Field | Type | Default | Notes |\n|---|---|---|---|\n| `mode` | select | `search` | `search`, `browse`, `appDetail`, `urls`, or `featured`. |\n| `searchQueries` | string list | `[\"adventure\"]` | One or more keywords for `search`. |\n| `browseCategory` | select | `topSellers` | Chart used by `browse`; also `newReleases`, `specials`, `comingSoon`, `weeklongDeals`, `popularNew`, `featuredMix`. |\n| `appIds` | string list | – | Numeric IDs or store URLs for `appDetail`. |\n| `storeUrls` | string list | – | Full store URLs for `urls`. |\n| `appTypeFilter` | select | `all` | Keep only `game`, `dlc`, `demo`, or `software`. |\n| `sortBy` | select | `relevance` | `released`, `priceAsc`, `priceDesc`, `reviews`, `metacritic`, or `nameAsc`. |\n| `onlyDiscounted` | boolean | `false` | Drop records that are not on sale. |\n| `minDiscount` | integer | `0` | Minimum discount percentage (0–100). |\n| `maxPrice` | number | – | Maximum final price in the storefront currency. |\n| `minMetacritic` | integer | `0` | Minimum Metacritic score (0–100). |\n| `country` | text | `us` | Two-letter Steam store country, e.g. `us`, `gb`, `de`, `ca`. Controls currency. |\n| `language` | select | `english` | Steam store language for names, descriptions, and store-page text. |\n| `includeTags` | boolean | `true` | Read the public store page for community tags and DLC names. |\n| `includeReviewSummary` | boolean | `true` | Add Steam's positive/negative review totals and label. |\n| `maxItems` | integer | `20` | Stop after this many saved records (1–1000). |\n\n### Daily test / smallest useful run\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"Hades\"],\n  \"maxItems\": 1,\n  \"includeTags\": false,\n  \"includeReviewSummary\": false\n}\n```\n\n### Browse current specials, deep discounts only\n\n```json\n{\n  \"mode\": \"browse\",\n  \"browseCategory\": \"specials\",\n  \"onlyDiscounted\": true,\n  \"minDiscount\": 50,\n  \"maxPrice\": 20,\n  \"maxItems\": 25\n}\n```\n\n### Look up specific games\n\n```json\n{\n  \"mode\": \"appDetail\",\n  \"appIds\": [\"1245620\", \"570\", \"730\"],\n  \"maxItems\": 3\n}\n```\n\n### Localized prices from pasted URLs\n\n```json\n{\n  \"mode\": \"urls\",\n  \"storeUrls\": [\n    \"https://store.steampowered.com/app/1245620/\",\n    \"https://store.steampowered.com/app/1091500/\"\n  ],\n  \"country\": \"de\",\n  \"language\": \"german\",\n  \"maxItems\": 2\n}\n```\n\n## Compatibility with saved tasks\n\nOlder tasks keep working. The actor still reads the former input keys and maps them in code:\n\n- `searchQuery` → `searchQueries`\n- `appId` → `appIds`\n- `urls` / `startUrls` → `storeUrls`\n- `appType` → `appTypeFilter` (including the old empty-string value, which means `all`)\n- `mode: \"featured\"` → the featured top sellers / new releases / specials / coming soon mix\n\nThe current production prefill (`mode=featured`, `searchQuery=adventure`, `maxItems=20`) still runs and returns records.\n\n## FAQ\n\n**Do I need a Steam account, API key, cookie, or proxy?**\nNo. The actor reads Steam's public store endpoints and product pages. No credentials are required and no proxy configuration is needed.\n\n**Why is `metacriticScore` missing for some games?**\nSteam only publishes a Metacritic score for a subset of titles. When the store has no score, the field is omitted.\n\n**Why is `discountPercent` missing on a game that is on sale?**\nThe field is written only when Steam reports a non-zero discount at the moment of the run. A zero discount is not treated as a sale.\n\n**Why do prices differ from my region?**\nSteam localizes prices by store country. Set `country` to the storefront you want; `priceCurrency` and the formatted price follow that storefront.\n\n**What is the difference between `tags` and `genres`?**\n`genres` and `categories` come from Steam's app metadata. `tags` are the community tags shown on the public store page, capped at the 20 Steam displays.\n\n**How fresh is the data?**\nEvery run reads Steam live. Prices, discounts, chart positions, review totals, and tags reflect the moment the actor runs.\n\n**Are review numbers the same as Metacritic?**\nNo. `reviewScore` and the review totals are Steam user reviews. `metacriticScore` is the critic score Steam displays from Metacritic.\n\n**Can I get more than 50 results from a chart?**\nYes. Search and chart modes page through 50-result pages up to `maxItems` (maximum 1000) or until the chart/search is exhausted. Steam's featured new-releases block is a fixed 30-item list, and the featured mix is a fixed set of featured blocks; those are source limits, not pagination bugs.\n\n## Data source\n\nPublic Steam Store pages: `store.steampowered.com/api/appdetails`, `featuredcategories`, `search/results`, the product page, and `ajaxappreviews`. The actor is independent and not affiliated with Valve or Steam.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "steam-game-pricing-and-metacritic-scraper",
      "title": "Steam Game Pricing & Metacritic Scraper",
      "description": "Search Steam by keyword, browse its storefront charts, or look up App IDs and store URLs. Each record carries localized pricing and discount, Metacritic score, review totals, community tags, genres, platforms, media, DLC, and release dates.",
      "version": "2.0",
      "buildTag": "latest",
      "dockerfile": "../Dockerfile",
      "readme": "# Steam Game Pricing & Metacritic Scraper\n\nSteam's storefront is a catalog, a chart board, and a price list at the same time. This actor reads those public surfaces without a login, API key, cookie, or proxy setup, and returns one clean record per app: localized price and discount, Metacritic score, review totals, community tags, media, DLC, platforms, and release information.\n\n## Five ways to build a dataset\n\n| Mode | What it does |\n|---|---|\n| `search` | Matches one or more keywords against Steam's own store search and pages through the results. |\n| `browse` | Walks a chart: top sellers, new releases, current specials, coming soon, weeklong deals, popular new releases, or the legacy featured mix. |\n| `appDetail` | Looks up numeric App IDs, or store URLs pasted into the App ID field. |\n| `urls` | Accepts full `store.steampowered.com/app/<id>/` URLs and resolves each one. |\n| `featured` | Keeps the old behavior: top sellers, new releases, specials, and coming soon, in that order. |\n\nSearch and chart modes paginate through Steam's 50-result pages until `maxItems` is reached or the source runs out. Every record is deduplicated by App ID, so overlapping queries and chart pages do not create duplicates.\n\n## What lands in each record\n\n- **Identity** — `appId`, `appName`, `appType`, `appUrl`, `recordType`, `scrapedAt`\n- **People** — `developer`, `publisher`, plus `developers[]` and `publishers[]`\n- **Pricing** — `currentPrice`, `originalPrice`, `priceCurrency`, `priceInitialCents`, `priceFinalCents`, `discountPercent`, `isDiscounted`, `isFree`, `packages[]`, `packageOptions[]`\n- **Critical reception** — `metacriticScore`, `metacriticUrl`, `recommendationsTotal`, `pressQuotes[]`\n- **User reviews** — `reviewScore`, `reviewScoreDesc`, `totalReviews`, `totalPositive`, `totalNegative`, `positiveReviewPercent`\n- **Classification** — `genres[]`, `categories[]`, `tags[]`, `controllerSupport`, `requiredAge`, `contentDescriptors[]`, `platforms`\n- **Release** — `releaseDate`, `releaseDateIso`, `comingSoon`\n- **Content** — `shortDescription`, `detailedDescription`, `website`, `supportedLanguages`\n- **Media** — `headerImage`, `capsuleImage`, `capsuleImageV5`, `backgroundImage`, `backgroundRawImage`, `screenshots[]`, `screenshotThumbnails[]`, `movies[]`\n- **Extras** — `achievementsTotal`, `dlcAppIds[]`, `dlc[]`, `supportUrl`, `supportEmail`\n\nSteam does not publish every field for every app. Missing values are omitted from the record rather than written as `null`, `\"\"`, or a made-up placeholder.\n\n## Input\n\n| Field | Type | Default | Notes |\n|---|---|---|---|\n| `mode` | select | `search` | `search`, `browse`, `appDetail`, `urls`, or `featured`. |\n| `searchQueries` | string list | `[\"adventure\"]` | One or more keywords for `search`. |\n| `browseCategory` | select | `topSellers` | Chart used by `browse`; also `newReleases`, `specials`, `comingSoon`, `weeklongDeals`, `popularNew`, `featuredMix`. |\n| `appIds` | string list | – | Numeric IDs or store URLs for `appDetail`. |\n| `storeUrls` | string list | – | Full store URLs for `urls`. |\n| `appTypeFilter` | select | `all` | Keep only `game`, `dlc`, `demo`, or `software`. |\n| `sortBy` | select | `relevance` | `released`, `priceAsc`, `priceDesc`, `reviews`, `metacritic`, or `nameAsc`. |\n| `onlyDiscounted` | boolean | `false` | Drop records that are not on sale. |\n| `minDiscount` | integer | `0` | Minimum discount percentage (0–100). |\n| `maxPrice` | number | – | Maximum final price in the storefront currency. |\n| `minMetacritic` | integer | `0` | Minimum Metacritic score (0–100). |\n| `country` | text | `us` | Two-letter Steam store country, e.g. `us`, `gb`, `de`, `ca`. Controls currency. |\n| `language` | select | `english` | Steam store language for names, descriptions, and store-page text. |\n| `includeTags` | boolean | `true` | Read the public store page for community tags and DLC names. |\n| `includeReviewSummary` | boolean | `true` | Add Steam's positive/negative review totals and label. |\n| `maxItems` | integer | `20` | Stop after this many saved records (1–1000). |\n\n### Daily test / smallest useful run\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"Hades\"],\n  \"maxItems\": 1,\n  \"includeTags\": false,\n  \"includeReviewSummary\": false\n}\n```\n\n### Browse current specials, deep discounts only\n\n```json\n{\n  \"mode\": \"browse\",\n  \"browseCategory\": \"specials\",\n  \"onlyDiscounted\": true,\n  \"minDiscount\": 50,\n  \"maxPrice\": 20,\n  \"maxItems\": 25\n}\n```\n\n### Look up specific games\n\n```json\n{\n  \"mode\": \"appDetail\",\n  \"appIds\": [\"1245620\", \"570\", \"730\"],\n  \"maxItems\": 3\n}\n```\n\n### Localized prices from pasted URLs\n\n```json\n{\n  \"mode\": \"urls\",\n  \"storeUrls\": [\n    \"https://store.steampowered.com/app/1245620/\",\n    \"https://store.steampowered.com/app/1091500/\"\n  ],\n  \"country\": \"de\",\n  \"language\": \"german\",\n  \"maxItems\": 2\n}\n```\n\n## Compatibility with saved tasks\n\nOlder tasks keep working. The actor still reads the former input keys and maps them in code:\n\n- `searchQuery` → `searchQueries`\n- `appId` → `appIds`\n- `urls` / `startUrls` → `storeUrls`\n- `appType` → `appTypeFilter` (including the old empty-string value, which means `all`)\n- `mode: \"featured\"` → the featured top sellers / new releases / specials / coming soon mix\n\nThe current production prefill (`mode=featured`, `searchQuery=adventure`, `maxItems=20`) still runs and returns records.\n\n## FAQ\n\n**Do I need a Steam account, API key, cookie, or proxy?**\nNo. The actor reads Steam's public store endpoints and product pages. No credentials are required and no proxy configuration is needed.\n\n**Why is `metacriticScore` missing for some games?**\nSteam only publishes a Metacritic score for a subset of titles. When the store has no score, the field is omitted.\n\n**Why is `discountPercent` missing on a game that is on sale?**\nThe field is written only when Steam reports a non-zero discount at the moment of the run. A zero discount is not treated as a sale.\n\n**Why do prices differ from my region?**\nSteam localizes prices by store country. Set `country` to the storefront you want; `priceCurrency` and the formatted price follow that storefront.\n\n**What is the difference between `tags` and `genres`?**\n`genres` and `categories` come from Steam's app metadata. `tags` are the community tags shown on the public store page, capped at the 20 Steam displays.\n\n**How fresh is the data?**\nEvery run reads Steam live. Prices, discounts, chart positions, review totals, and tags reflect the moment the actor runs.\n\n**Are review numbers the same as Metacritic?**\nNo. `reviewScore` and the review totals are Steam user reviews. `metacriticScore` is the critic score Steam displays from Metacritic.\n\n**Can I get more than 50 results from a chart?**\nYes. Search and chart modes page through 50-result pages up to `maxItems` (maximum 1000) or until the chart/search is exhausted. Steam's featured new-releases block is a fixed 30-item list, and the featured mix is a fixed set of featured blocks; those are source limits, not pagination bugs.\n\n## Data source\n\nPublic Steam Store pages: `store.steampowered.com/api/appdetails`, `featuredcategories`, `search/results`, the product page, and `ajaxappreviews`. The actor is independent and not affiliated with Valve or Steam.\n",
      "input": {
        "title": "Steam Store Games Scraper Input",
        "description": "Collect Steam store game records from keyword search, storefront charts, App IDs, or store URLs.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "sectionCaption": "What to scrape",
            "title": "Mode",
            "description": "Choose how to find games: keyword search, a Steam chart, specific App IDs, or pasted store URLs.",
            "type": "string",
            "editor": "select",
            "enum": [
              "search",
              "browse",
              "appDetail",
              "urls",
              "featured"
            ],
            "enumTitles": [
              "Search by keyword",
              "Browse a Steam chart",
              "Look up App IDs",
              "Paste store URLs",
              "Featured mix (top sellers, new, specials, coming soon)"
            ],
            "default": "search",
            "prefill": "search"
          },
          "searchQueries": {
            "title": "Search queries",
            "description": "One or more game names or keywords. Used when mode is Search by keyword.",
            "type": "array",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [
              "adventure"
            ],
            "prefill": [
              "Hades"
            ]
          },
          "browseCategory": {
            "title": "Steam chart",
            "description": "Which storefront chart to browse. Used when mode is Browse a Steam chart.",
            "type": "string",
            "editor": "select",
            "enum": [
              "topSellers",
              "newReleases",
              "specials",
              "comingSoon",
              "weeklongDeals",
              "popularNew",
              "featuredMix"
            ],
            "enumTitles": [
              "Top sellers",
              "New releases",
              "Current specials",
              "Coming soon",
              "Weeklong deals",
              "Popular new releases",
              "Featured mix (all four featured lists)"
            ],
            "default": "topSellers",
            "prefill": "topSellers"
          },
          "appIds": {
            "title": "Steam App IDs",
            "description": "Numeric App IDs or store URLs, one per line. Used when mode is Look up App IDs.",
            "type": "array",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "prefill": [
              "1245620"
            ]
          },
          "storeUrls": {
            "title": "Steam store URLs",
            "description": "Full store URLs, one per line. Used when mode is Paste store URLs.",
            "type": "array",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "prefill": [
              "https://store.steampowered.com/app/570/"
            ]
          },
          "appTypeFilter": {
            "sectionCaption": "Filters",
            "title": "App type",
            "description": "Keep only games, DLC, demos, or software. 'All' keeps every app type Steam returns.",
            "type": "string",
            "editor": "select",
            "enum": [
              "all",
              "game",
              "dlc",
              "demo",
              "software"
            ],
            "enumTitles": [
              "All app types",
              "Games",
              "DLC",
              "Demos",
              "Software"
            ],
            "default": "all",
            "prefill": "all"
          },
          "sortBy": {
            "title": "Sort order",
            "description": "How Steam should order search and chart results before filtering.",
            "type": "string",
            "editor": "select",
            "enum": [
              "relevance",
              "released",
              "priceAsc",
              "priceDesc",
              "reviews",
              "metacritic",
              "nameAsc"
            ],
            "enumTitles": [
              "Relevance",
              "Release date (newest)",
              "Price (low to high)",
              "Price (high to low)",
              "User reviews",
              "Metacritic score",
              "Name (A to Z)"
            ],
            "default": "relevance",
            "prefill": "relevance"
          },
          "onlyDiscounted": {
            "title": "Only discounted games",
            "description": "Drop records that are not currently on sale.",
            "type": "boolean",
            "default": false,
            "prefill": false
          },
          "minDiscount": {
            "title": "Minimum discount (%)",
            "description": "Keep records whose discount is at least this percentage. 0 disables the filter.",
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "default": 0,
            "prefill": 0
          },
          "maxPrice": {
            "title": "Maximum price",
            "description": "Keep records whose final price is at or below this amount in the storefront currency. Leave empty for no limit.",
            "type": "number",
            "minimum": 0,
            "maximum": 10000
          },
          "minMetacritic": {
            "title": "Minimum Metacritic score",
            "description": "Keep records with a Metacritic score at or above this value. 0 disables the filter.",
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "default": 0,
            "prefill": 0
          },
          "country": {
            "sectionCaption": "Storefront and output",
            "title": "Store country",
            "description": "Two-letter Steam store country code, e.g. us, gb, de, ca. Controls currency and regional availability.",
            "type": "string",
            "editor": "textfield",
            "default": "us",
            "prefill": "us"
          },
          "language": {
            "title": "Store language",
            "description": "Language Steam uses for app names, descriptions, and store-page text.",
            "type": "string",
            "editor": "select",
            "enum": [
              "english",
              "german",
              "french",
              "spanish",
              "italian",
              "portuguese",
              "brazilian",
              "russian",
              "japanese",
              "korean",
              "schinese",
              "tchinese",
              "polish",
              "dutch",
              "danish",
              "finnish",
              "norwegian",
              "swedish",
              "czech",
              "hungarian",
              "romanian",
              "turkish",
              "thai",
              "vietnamese",
              "ukrainian",
              "bulgarian",
              "greek",
              "indonesian",
              "latam"
            ],
            "default": "english",
            "prefill": "english",
            "enumTitles": [
              "English",
              "German",
              "French",
              "Spanish",
              "Italian",
              "Portuguese",
              "Portuguese (Brazil)",
              "Russian",
              "Japanese",
              "Korean",
              "Simplified Chinese",
              "Traditional Chinese",
              "Polish",
              "Dutch",
              "Danish",
              "Finnish",
              "Norwegian",
              "Swedish",
              "Czech",
              "Hungarian",
              "Romanian",
              "Turkish",
              "Thai",
              "Vietnamese",
              "Ukrainian",
              "Bulgarian",
              "Greek",
              "Indonesian",
              "Spanish (Latin America)"
            ]
          },
          "includeTags": {
            "title": "Include Steam tags",
            "description": "Read the public store page for its community tags and DLC names. Adds one request per record.",
            "type": "boolean",
            "default": true,
            "prefill": false
          },
          "includeReviewSummary": {
            "title": "Include review summary",
            "description": "Add Steam's positive/negative review totals and review label. Adds one request per record.",
            "type": "boolean",
            "default": true,
            "prefill": false
          },
          "maxItems": {
            "title": "Maximum records",
            "description": "Stop after this many records have been saved.",
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "default": 20,
            "prefill": 1
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Steam Game Pricing & Metacritic Scraper Output",
        "description": "Steam store records with pricing, discount, Metacritic score, review summary, tags, media, DLC, and platform data.",
        "properties": {
          "results": {
            "type": "string",
            "title": "Results",
            "description": "All scraped Steam store records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Steam Store Games Scraper",
              "transformation": {
                "fields": [
                  "appName",
                  "appType",
                  "currentPrice",
                  "discountPercent",
                  "metacriticScore",
                  "reviewScoreDesc",
                  "developer",
                  "tags",
                  "appUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "2.0.1",
    "imageDigest": "10d7c2d855b7e174d5f04038af1f08c5f44539fff3140e4ca527a49764980153",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "2.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.004683333333333334
    }
  }
}