{
  "data": {
    "id": "jIWbbsbamxjaHNnmq",
    "actId": "Pt89mouHFbMvqsm0j",
    "userId": "zq8lKbpLzTjGDayPC",
    "startedAt": "2026-11-10T09:20:36.136Z",
    "finishedAt": "2026-11-10T09:20:39.424Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 3206,
      "runTimeSecs": 3.206,
      "computeUnits": 0.0035622222222222223,
      "imageSizeBytes": 320435200
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "GK9YjZRyQZVzOdoH5",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Steam Game Specs, Pricing & Media Input\",\n  \"description\": \"Choose how to find games, then collect full Steam store details: pricing, system requirements, media, DLC, tags and reviews.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"How to find games\",\n      \"description\": \"Pick one lookup method. Steam store URLs, App IDs, keyword search and Steam charts are all supported.\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"urls\",\n        \"appIds\",\n        \"search\",\n        \"browse\"\n      ],\n      \"enumTitles\": [\n        \"Steam store URLs\",\n        \"Steam App IDs\",\n        \"Search by game name\",\n        \"Browse Steam charts\"\n      ],\n      \"default\": \"urls\",\n      \"prefill\": \"urls\",\n      \"sectionCaption\": \"Games to collect\"\n    },\n    \"startUrls\": {\n      \"title\": \"Steam store URLs\",\n      \"description\": \"Full Steam store page links, for example https://store.steampowered.com/app/1174180/Red_Dead_Redemption_2/\",\n      \"type\": \"array\",\n      \"editor\": \"requestListSources\",\n      \"prefill\": [\n        {\n          \"url\": \"https://store.steampowered.com/app/570/Dota_2/\"\n        }\n      ]\n    },\n    \"appIds\": {\n      \"title\": \"Steam App IDs\",\n      \"description\": \"Numeric App IDs or store links. Example: 570 or https://store.steampowered.com/app/570/\",\n      \"type\": \"array\",\n      \"editor\": \"stringList\"\n    },\n    \"searchQueries\": {\n      \"title\": \"Game names to search\",\n      \"description\": \"Steam's search is used for each name. The top matches are collected and de-duplicated by App ID.\",\n      \"type\": \"array\",\n      \"editor\": \"stringList\"\n    },\n    \"browseCategory\": {\n      \"title\": \"Steam chart\",\n      \"description\": \"Used by Browse Steam charts mode. Top sellers, new releases, current specials, coming soon and weeklong deals are available.\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"topSellers\",\n        \"newReleases\",\n        \"specials\",\n        \"comingSoon\",\n        \"weeklongDeals\"\n      ],\n      \"enumTitles\": [\n        \"Top sellers\",\n        \"New releases\",\n        \"Current specials\",\n        \"Coming soon\",\n        \"Weeklong deals\"\n      ],\n      \"default\": \"topSellers\"\n    },\n    \"appType\": {\n      \"title\": \"App type\",\n      \"description\": \"Keep only one Steam app type in the results.\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"game\",\n        \"dlc\",\n        \"demo\",\n        \"software\",\n        \"video\",\n        \"music\",\n        \"series\",\n        \"episode\",\n        \"hardware\",\n        \"mod\",\n        \"advertising\"\n      ],\n      \"enumTitles\": [\n        \"All types\",\n        \"Games\",\n        \"DLC\",\n        \"Demos\",\n        \"Software\",\n        \"Video\",\n        \"Music\",\n        \"Series\",\n        \"Episodes\",\n        \"Hardware\",\n        \"Mods\",\n        \"Advertising\"\n      ],\n      \"default\": \"\"\n    },\n    \"maxItems\": {\n      \"title\": \"Maximum games\",\n      \"description\": \"Stop after this many game records. Each record is one Steam app.\",\n      \"type\": \"integer\",\n      \"minimum\": 1,\n      \"maximum\": 1000,\n      \"default\": 10,\n      \"prefill\": 1\n    },\n    \"maxResultsPerQuery\": {\n      \"title\": \"Matches per name\",\n      \"description\": \"How many Steam search matches to consider for each game name. Used by search mode.\",\n      \"type\": \"integer\",\n      \"minimum\": 1,\n      \"maximum\": 100,\n      \"default\": 10\n    },\n    \"country\": {\n      \"title\": \"Store country\",\n      \"description\": \"Prices, availability and age ratings come from this Steam storefront.\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"us\",\n        \"gb\",\n        \"de\",\n        \"fr\",\n        \"es\",\n        \"it\",\n        \"ca\",\n        \"au\",\n        \"br\",\n        \"mx\",\n        \"jp\",\n        \"kr\",\n        \"cn\",\n        \"ru\",\n        \"pl\",\n        \"tr\",\n        \"in\",\n        \"id\",\n        \"th\",\n        \"vn\",\n        \"ar\",\n        \"cl\",\n        \"za\",\n        \"nl\",\n        \"se\",\n        \"no\",\n        \"dk\",\n        \"fi\",\n        \"cz\",\n        \"hu\",\n        \"ro\",\n        \"ua\",\n        \"gr\",\n        \"il\",\n        \"sa\",\n        \"ae\",\n        \"sg\",\n        \"my\",\n        \"ph\",\n        \"nz\",\n        \"pt\",\n        \"ie\",\n        \"be\",\n        \"ch\",\n        \"at\"\n      ],\n      \"enumTitles\": [\n        \"United States\",\n        \"United Kingdom\",\n        \"Germany\",\n        \"France\",\n        \"Spain\",\n        \"Italy\",\n        \"Canada\",\n        \"Australia\",\n        \"Brazil\",\n        \"Mexico\",\n        \"Japan\",\n        \"South Korea\",\n        \"China\",\n        \"Russia\",\n        \"Poland\",\n        \"Turkey\",\n        \"India\",\n        \"Indonesia\",\n        \"Thailand\",\n        \"Vietnam\",\n        \"Argentina\",\n        \"Chile\",\n        \"South Africa\",\n        \"Netherlands\",\n        \"Sweden\",\n        \"Norway\",\n        \"Denmark\",\n        \"Finland\",\n        \"Czechia\",\n        \"Hungary\",\n        \"Romania\",\n        \"Ukraine\",\n        \"Greece\",\n        \"Israel\",\n        \"Saudi Arabia\",\n        \"United Arab Emirates\",\n        \"Singapore\",\n        \"Malaysia\",\n        \"Philippines\",\n        \"New Zealand\",\n        \"Portugal\",\n        \"Ireland\",\n        \"Belgium\",\n        \"Switzerland\",\n        \"Austria\"\n      ],\n      \"default\": \"us\"\n    },\n    \"language\": {\n      \"title\": \"Store language\",\n      \"description\": \"Text language for descriptions, system requirements and review labels.\",\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        \"turkish\",\n        \"dutch\",\n        \"swedish\",\n        \"danish\",\n        \"finnish\",\n        \"norwegian\",\n        \"czech\",\n        \"hungarian\",\n        \"romanian\",\n        \"ukrainian\",\n        \"thai\",\n        \"vietnamese\",\n        \"indonesian\",\n        \"arabic\",\n        \"bulgarian\",\n        \"greek\",\n        \"hebrew\"\n      ],\n      \"enumTitles\": [\n        \"English\",\n        \"German\",\n        \"French\",\n        \"Spanish\",\n        \"Italian\",\n        \"Portuguese\",\n        \"Brazilian Portuguese\",\n        \"Russian\",\n        \"Japanese\",\n        \"Korean\",\n        \"Simplified Chinese\",\n        \"Traditional Chinese\",\n        \"Polish\",\n        \"Turkish\",\n        \"Dutch\",\n        \"Swedish\",\n        \"Danish\",\n        \"Finnish\",\n        \"Norwegian\",\n        \"Czech\",\n        \"Hungarian\",\n        \"Romanian\",\n        \"Ukrainian\",\n        \"Thai\",\n        \"Vietnamese\",\n        \"Indonesian\",\n        \"Arabic\",\n        \"Bulgarian\",\n        \"Greek\",\n        \"Hebrew\"\n      ],\n      \"default\": \"english\"\n    },\n    \"includeReviews\": {\n      \"title\": \"Include review stats\",\n      \"description\": \"Collect the current Steam review summary (totals, label and score).\",\n      \"type\": \"boolean\",\n      \"default\": true,\n      \"prefill\": true,\n      \"sectionCaption\": \"Extra data\"\n    },\n    \"includeSimilarGames\": {\n      \"title\": \"Include similar games\",\n      \"description\": \"Collect the games Steam recommends in the More like this carousel, with their titles.\",\n      \"type\": \"boolean\",\n      \"default\": true,\n      \"prefill\": false\n    }\n  }\n}",
    "readme": "# Steam Game Specs, Pricing & Media Extractor\n\nSteam shows each game through a store page plus an underlying app-details feed. This actor collects both for every title you give it and returns one clean record with the commercial, technical and promotional data a catalog needs: store pricing and package options, system requirements, platform and language support, screenshots and trailers, DLC, tags, regional age ratings, review totals and Metacritic information.\n\n## Ways to select games\n\n- **Store URLs** — paste full Steam store links, including age-gated links.\n- **App IDs** — send numeric IDs or store links in any mix.\n- **Name search** — search Steam by title and collect the top matches.\n- **Steam charts** — walk top sellers, new releases, current specials, coming soon or weeklong deals.\n\nAll four paths feed the same detail collector, and duplicate App IDs are removed across the whole run. Add the optional app-type filter when you only want games, DLC, demos, software, video, music, series or episodes.\n\n## What each record contains\n\n| Group | Fields |\n| --- | --- |\n| Identity | `appId`, `appType`, `title`, `url`, `releaseDate`, `releaseDateIso`, `comingSoon`, `requiredAge`, `isFree`, `controllerSupport` |\n| Pricing | `currency`, `priceInitial`, `priceFinal`, `priceInitialFormatted`, `priceFormatted`, `discountPercent`, `packages`, `packageGroups` |\n| Descriptions | `shortDescription`, `detailedDescription`, `aboutTheGame`, `pressQuotes` |\n| Artwork | `headerImage`, `capsuleImage`, `capsuleImageV5`, `backgroundImage`, `backgroundRawImage` |\n| Media | `screenshots`, `screenshotThumbnails`, `trailers` (with HLS, DASH, MP4 and WebM links when Steam publishes them) |\n| Requirements | `windowsRequirements`, `macRequirements`, `linuxRequirements` (`minimum` / `recommended`) |\n| Support matrix | `platforms`, `supportedLanguages`, `fullyAudioLanguages` |\n| Taxonomy | `genres`, `genreIds`, `categories`, `categoryIds`, `tags` |\n| Credits and support | `developers`, `publishers`, `website`, `supportInfo` |\n| Reviews | `totalReviews`, `positiveReviews`, `negativeReviews`, `reviewScore`, `reviewScorePercent`, `positiveReviewPercent`, `recommendationsTotal`, `metacriticScore`, `metacriticUrl` |\n| Extras | `totalAchievements`, `dlcCount`, `dlcAppIds`, `dlc`, `contentDescriptors`, `contentDescriptorNotes`, `ratings`, `legalNotice`, `similarGames`, `awards`, `scrapedAt` |\n\nFields Steam genuinely does not publish for a particular app are left out of that record rather than filled with empty placeholders. That keeps every value real and makes schemas easier to validate.\n\n`reviewScorePercent` is Steam's legacy 0–9 review-band index kept for backward compatibility; `positiveReviewPercent` is the actual share of positive reviews.\n\n## Input reference\n\n| Field | Type | Default | Purpose |\n| --- | --- | --- | --- |\n| `mode` | select | `urls` | `urls`, `appIds`, `search` or `browse`. |\n| `startUrls` | URL list | – (prefill: Dota 2 page) | Steam store links for URL mode. |\n| `appIds` | string list | – | Numeric App IDs or store links for ID mode. |\n| `searchQueries` | string list | – | Game names for search mode. |\n| `browseCategory` | select | `topSellers` | Chart used by browse mode. |\n| `appType` | select | all | Keep only one Steam app type: game, DLC, demo, software, video, music, series, episode, hardware, mod or advertising. |\n| `maxItems` | integer | `10` | Maximum game records to return (1–1000). |\n| `maxResultsPerQuery` | integer | `10` | Search matches considered per name (1–100). |\n| `country` | select | `us` | Steam storefront used for prices, availability and ratings. |\n| `language` | select | `english` | Language for descriptions, requirements and review labels. |\n| `includeReviews` | boolean | `true` | Fetch the current review summary. |\n| `includeSimilarGames` | boolean | `true` | Include Steam's \"More like this\" games with titles. |\n\n### URL mode\n\n```json\n{\n  \"mode\": \"urls\",\n  \"startUrls\": [\n    { \"url\": \"https://store.steampowered.com/app/1174180/Red_Dead_Redemption_2/\" },\n    { \"url\": \"https://store.steampowered.com/app/1245620/ELDEN_RING/\" }\n  ],\n  \"country\": \"gb\",\n  \"language\": \"english\",\n  \"maxItems\": 2\n}\n```\n\n### App ID mode\n\n```json\n{\n  \"mode\": \"appIds\",\n  \"appIds\": [\"570\", \"620\", \"https://store.steampowered.com/app/292030/\"],\n  \"maxItems\": 3\n}\n```\n\n### Search mode\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"Hades II\", \"Baldur's Gate 3\"],\n  \"maxResultsPerQuery\": 3,\n  \"maxItems\": 5,\n  \"appType\": \"game\"\n}\n```\n\n### Chart browsing\n\n```json\n{\n  \"mode\": \"browse\",\n  \"browseCategory\": \"newReleases\",\n  \"maxItems\": 20,\n  \"country\": \"us\"\n}\n```\n\n## Backward compatibility\n\nExisting tasks keep working. `startUrls` remains the native URL list; legacy `urls` and `appId` are mapped to their modern modes, and `gameNames` is mapped to name search. The old input keys are not shown in the form because the current form has clearer mode-based fields.\n\n## Practical notes\n\n- Prices are returned exactly as the chosen storefront reports them. Changing `country` changes both the currency and the available packages.\n- `releaseDateIso` is built from Steam's release timestamp, so it stays consistent when you change `country` or `language`; the localized `releaseDate` text is returned alongside it. Year-only and quarter-only dates get no fabricated day.\n- The review summary is a live snapshot. Counts move constantly on popular titles.\n- Screenshots and trailers are direct Steam CDN links. Some trailer formats are streaming manifests (HLS/DASH) rather than single files; `videoUrl` picks the best published link and the format-specific fields are also included.\n- DLC titles and links are read from the store page; `dlcAppIds` comes from the app-details feed. When both sources are present they are aligned by App ID.\n- Similar-game titles cost one extra small lookup per recommendation; turn `includeSimilarGames` off for large chart runs if you only need the App IDs.\n- No Steam account, cookie, API key or proxy configuration is needed.\n\n## FAQ\n\n**Can I mix URLs, IDs and names in one run?**\nOne mode runs per execution. Use URL or ID mode for exact titles, or search mode with several names; duplicates are removed automatically inside the chosen mode.\n\n**Why is a price missing on a free game?**\nFree titles carry `isFree: true` and zero price fields instead of a paid price block. Steam does not publish a currency price for them.\n\n**Why do some games have no Metacritic fields?**\nSteam only links Metacritic for games that have a matching review page. When the link is absent the fields are omitted.\n\n**Does this actor download the videos or screenshots?**\nNo. It returns their CDN URLs so you can download only the media you need.\n\n**Is this affiliated with Valve or Steam?**\nNo. This is an independent data tool and is not endorsed by or affiliated with Valve Corporation.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "steam-game-specs-pricing-and-media-extractor",
      "title": "Steam Game Specs, Pricing & Media Extractor",
      "description": "Collect complete Steam store records for any game by URL, App ID, name search or Steam chart: pricing and package options, system requirements, platforms, languages, screenshots, trailers, DLC, tags, age ratings, review scores and Metacritic data.",
      "version": "1.1",
      "meta": {
        "templateId": "python-start"
      },
      "input": {
        "title": "Steam Game Specs, Pricing & Media Input",
        "description": "Choose how to find games, then collect full Steam store details: pricing, system requirements, media, DLC, tags and reviews.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "How to find games",
            "description": "Pick one lookup method. Steam store URLs, App IDs, keyword search and Steam charts are all supported.",
            "type": "string",
            "editor": "select",
            "enum": [
              "urls",
              "appIds",
              "search",
              "browse"
            ],
            "enumTitles": [
              "Steam store URLs",
              "Steam App IDs",
              "Search by game name",
              "Browse Steam charts"
            ],
            "default": "urls",
            "prefill": "urls",
            "sectionCaption": "Games to collect"
          },
          "startUrls": {
            "title": "Steam store URLs",
            "description": "Full Steam store page links, for example https://store.steampowered.com/app/1174180/Red_Dead_Redemption_2/",
            "type": "array",
            "editor": "requestListSources",
            "prefill": [
              {
                "url": "https://store.steampowered.com/app/570/Dota_2/"
              }
            ]
          },
          "appIds": {
            "title": "Steam App IDs",
            "description": "Numeric App IDs or store links. Example: 570 or https://store.steampowered.com/app/570/",
            "type": "array",
            "editor": "stringList"
          },
          "searchQueries": {
            "title": "Game names to search",
            "description": "Steam's search is used for each name. The top matches are collected and de-duplicated by App ID.",
            "type": "array",
            "editor": "stringList"
          },
          "browseCategory": {
            "title": "Steam chart",
            "description": "Used by Browse Steam charts mode. Top sellers, new releases, current specials, coming soon and weeklong deals are available.",
            "type": "string",
            "editor": "select",
            "enum": [
              "topSellers",
              "newReleases",
              "specials",
              "comingSoon",
              "weeklongDeals"
            ],
            "enumTitles": [
              "Top sellers",
              "New releases",
              "Current specials",
              "Coming soon",
              "Weeklong deals"
            ],
            "default": "topSellers"
          },
          "appType": {
            "title": "App type",
            "description": "Keep only one Steam app type in the results.",
            "type": "string",
            "editor": "select",
            "enum": [
              "",
              "game",
              "dlc",
              "demo",
              "software",
              "video",
              "music",
              "series",
              "episode",
              "hardware",
              "mod",
              "advertising"
            ],
            "enumTitles": [
              "All types",
              "Games",
              "DLC",
              "Demos",
              "Software",
              "Video",
              "Music",
              "Series",
              "Episodes",
              "Hardware",
              "Mods",
              "Advertising"
            ],
            "default": ""
          },
          "maxItems": {
            "title": "Maximum games",
            "description": "Stop after this many game records. Each record is one Steam app.",
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "default": 10,
            "prefill": 1
          },
          "maxResultsPerQuery": {
            "title": "Matches per name",
            "description": "How many Steam search matches to consider for each game name. Used by search mode.",
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 10
          },
          "country": {
            "title": "Store country",
            "description": "Prices, availability and age ratings come from this Steam storefront.",
            "type": "string",
            "editor": "select",
            "enum": [
              "us",
              "gb",
              "de",
              "fr",
              "es",
              "it",
              "ca",
              "au",
              "br",
              "mx",
              "jp",
              "kr",
              "cn",
              "ru",
              "pl",
              "tr",
              "in",
              "id",
              "th",
              "vn",
              "ar",
              "cl",
              "za",
              "nl",
              "se",
              "no",
              "dk",
              "fi",
              "cz",
              "hu",
              "ro",
              "ua",
              "gr",
              "il",
              "sa",
              "ae",
              "sg",
              "my",
              "ph",
              "nz",
              "pt",
              "ie",
              "be",
              "ch",
              "at"
            ],
            "enumTitles": [
              "United States",
              "United Kingdom",
              "Germany",
              "France",
              "Spain",
              "Italy",
              "Canada",
              "Australia",
              "Brazil",
              "Mexico",
              "Japan",
              "South Korea",
              "China",
              "Russia",
              "Poland",
              "Turkey",
              "India",
              "Indonesia",
              "Thailand",
              "Vietnam",
              "Argentina",
              "Chile",
              "South Africa",
              "Netherlands",
              "Sweden",
              "Norway",
              "Denmark",
              "Finland",
              "Czechia",
              "Hungary",
              "Romania",
              "Ukraine",
              "Greece",
              "Israel",
              "Saudi Arabia",
              "United Arab Emirates",
              "Singapore",
              "Malaysia",
              "Philippines",
              "New Zealand",
              "Portugal",
              "Ireland",
              "Belgium",
              "Switzerland",
              "Austria"
            ],
            "default": "us"
          },
          "language": {
            "title": "Store language",
            "description": "Text language for descriptions, system requirements and review labels.",
            "type": "string",
            "editor": "select",
            "enum": [
              "english",
              "german",
              "french",
              "spanish",
              "italian",
              "portuguese",
              "brazilian",
              "russian",
              "japanese",
              "korean",
              "schinese",
              "tchinese",
              "polish",
              "turkish",
              "dutch",
              "swedish",
              "danish",
              "finnish",
              "norwegian",
              "czech",
              "hungarian",
              "romanian",
              "ukrainian",
              "thai",
              "vietnamese",
              "indonesian",
              "arabic",
              "bulgarian",
              "greek",
              "hebrew"
            ],
            "enumTitles": [
              "English",
              "German",
              "French",
              "Spanish",
              "Italian",
              "Portuguese",
              "Brazilian Portuguese",
              "Russian",
              "Japanese",
              "Korean",
              "Simplified Chinese",
              "Traditional Chinese",
              "Polish",
              "Turkish",
              "Dutch",
              "Swedish",
              "Danish",
              "Finnish",
              "Norwegian",
              "Czech",
              "Hungarian",
              "Romanian",
              "Ukrainian",
              "Thai",
              "Vietnamese",
              "Indonesian",
              "Arabic",
              "Bulgarian",
              "Greek",
              "Hebrew"
            ],
            "default": "english"
          },
          "includeReviews": {
            "title": "Include review stats",
            "description": "Collect the current Steam review summary (totals, label and score).",
            "type": "boolean",
            "default": true,
            "prefill": true,
            "sectionCaption": "Extra data"
          },
          "includeSimilarGames": {
            "title": "Include similar games",
            "description": "Collect the games Steam recommends in the More like this carousel, with their titles.",
            "type": "boolean",
            "default": true,
            "prefill": false
          }
        }
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Steam Game Specs, Pricing & Media Extractor Output",
        "description": "One record per Steam app with pricing and package options, system requirements, platform and language support, media, DLC, tags, age ratings, review summary and Metacritic data.",
        "properties": {
          "games": {
            "type": "string",
            "title": "Steam game records",
            "description": "Dataset containing one complete record per Steam game or app.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "readme": "# Steam Game Specs, Pricing & Media Extractor\n\nSteam shows each game through a store page plus an underlying app-details feed. This actor collects both for every title you give it and returns one clean record with the commercial, technical and promotional data a catalog needs: store pricing and package options, system requirements, platform and language support, screenshots and trailers, DLC, tags, regional age ratings, review totals and Metacritic information.\n\n## Ways to select games\n\n- **Store URLs** — paste full Steam store links, including age-gated links.\n- **App IDs** — send numeric IDs or store links in any mix.\n- **Name search** — search Steam by title and collect the top matches.\n- **Steam charts** — walk top sellers, new releases, current specials, coming soon or weeklong deals.\n\nAll four paths feed the same detail collector, and duplicate App IDs are removed across the whole run. Add the optional app-type filter when you only want games, DLC, demos, software, video, music, series or episodes.\n\n## What each record contains\n\n| Group | Fields |\n| --- | --- |\n| Identity | `appId`, `appType`, `title`, `url`, `releaseDate`, `releaseDateIso`, `comingSoon`, `requiredAge`, `isFree`, `controllerSupport` |\n| Pricing | `currency`, `priceInitial`, `priceFinal`, `priceInitialFormatted`, `priceFormatted`, `discountPercent`, `packages`, `packageGroups` |\n| Descriptions | `shortDescription`, `detailedDescription`, `aboutTheGame`, `pressQuotes` |\n| Artwork | `headerImage`, `capsuleImage`, `capsuleImageV5`, `backgroundImage`, `backgroundRawImage` |\n| Media | `screenshots`, `screenshotThumbnails`, `trailers` (with HLS, DASH, MP4 and WebM links when Steam publishes them) |\n| Requirements | `windowsRequirements`, `macRequirements`, `linuxRequirements` (`minimum` / `recommended`) |\n| Support matrix | `platforms`, `supportedLanguages`, `fullyAudioLanguages` |\n| Taxonomy | `genres`, `genreIds`, `categories`, `categoryIds`, `tags` |\n| Credits and support | `developers`, `publishers`, `website`, `supportInfo` |\n| Reviews | `totalReviews`, `positiveReviews`, `negativeReviews`, `reviewScore`, `reviewScorePercent`, `positiveReviewPercent`, `recommendationsTotal`, `metacriticScore`, `metacriticUrl` |\n| Extras | `totalAchievements`, `dlcCount`, `dlcAppIds`, `dlc`, `contentDescriptors`, `contentDescriptorNotes`, `ratings`, `legalNotice`, `similarGames`, `awards`, `scrapedAt` |\n\nFields Steam genuinely does not publish for a particular app are left out of that record rather than filled with empty placeholders. That keeps every value real and makes schemas easier to validate.\n\n`reviewScorePercent` is Steam's legacy 0–9 review-band index kept for backward compatibility; `positiveReviewPercent` is the actual share of positive reviews.\n\n## Input reference\n\n| Field | Type | Default | Purpose |\n| --- | --- | --- | --- |\n| `mode` | select | `urls` | `urls`, `appIds`, `search` or `browse`. |\n| `startUrls` | URL list | – (prefill: Dota 2 page) | Steam store links for URL mode. |\n| `appIds` | string list | – | Numeric App IDs or store links for ID mode. |\n| `searchQueries` | string list | – | Game names for search mode. |\n| `browseCategory` | select | `topSellers` | Chart used by browse mode. |\n| `appType` | select | all | Keep only one Steam app type: game, DLC, demo, software, video, music, series, episode, hardware, mod or advertising. |\n| `maxItems` | integer | `10` | Maximum game records to return (1–1000). |\n| `maxResultsPerQuery` | integer | `10` | Search matches considered per name (1–100). |\n| `country` | select | `us` | Steam storefront used for prices, availability and ratings. |\n| `language` | select | `english` | Language for descriptions, requirements and review labels. |\n| `includeReviews` | boolean | `true` | Fetch the current review summary. |\n| `includeSimilarGames` | boolean | `true` | Include Steam's \"More like this\" games with titles. |\n\n### URL mode\n\n```json\n{\n  \"mode\": \"urls\",\n  \"startUrls\": [\n    { \"url\": \"https://store.steampowered.com/app/1174180/Red_Dead_Redemption_2/\" },\n    { \"url\": \"https://store.steampowered.com/app/1245620/ELDEN_RING/\" }\n  ],\n  \"country\": \"gb\",\n  \"language\": \"english\",\n  \"maxItems\": 2\n}\n```\n\n### App ID mode\n\n```json\n{\n  \"mode\": \"appIds\",\n  \"appIds\": [\"570\", \"620\", \"https://store.steampowered.com/app/292030/\"],\n  \"maxItems\": 3\n}\n```\n\n### Search mode\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"Hades II\", \"Baldur's Gate 3\"],\n  \"maxResultsPerQuery\": 3,\n  \"maxItems\": 5,\n  \"appType\": \"game\"\n}\n```\n\n### Chart browsing\n\n```json\n{\n  \"mode\": \"browse\",\n  \"browseCategory\": \"newReleases\",\n  \"maxItems\": 20,\n  \"country\": \"us\"\n}\n```\n\n## Backward compatibility\n\nExisting tasks keep working. `startUrls` remains the native URL list; legacy `urls` and `appId` are mapped to their modern modes, and `gameNames` is mapped to name search. The old input keys are not shown in the form because the current form has clearer mode-based fields.\n\n## Practical notes\n\n- Prices are returned exactly as the chosen storefront reports them. Changing `country` changes both the currency and the available packages.\n- `releaseDateIso` is built from Steam's release timestamp, so it stays consistent when you change `country` or `language`; the localized `releaseDate` text is returned alongside it. Year-only and quarter-only dates get no fabricated day.\n- The review summary is a live snapshot. Counts move constantly on popular titles.\n- Screenshots and trailers are direct Steam CDN links. Some trailer formats are streaming manifests (HLS/DASH) rather than single files; `videoUrl` picks the best published link and the format-specific fields are also included.\n- DLC titles and links are read from the store page; `dlcAppIds` comes from the app-details feed. When both sources are present they are aligned by App ID.\n- Similar-game titles cost one extra small lookup per recommendation; turn `includeSimilarGames` off for large chart runs if you only need the App IDs.\n- No Steam account, cookie, API key or proxy configuration is needed.\n\n## FAQ\n\n**Can I mix URLs, IDs and names in one run?**\nOne mode runs per execution. Use URL or ID mode for exact titles, or search mode with several names; duplicates are removed automatically inside the chosen mode.\n\n**Why is a price missing on a free game?**\nFree titles carry `isFree: true` and zero price fields instead of a paid price block. Steam does not publish a currency price for them.\n\n**Why do some games have no Metacritic fields?**\nSteam only links Metacritic for games that have a matching review page. When the link is absent the fields are omitted.\n\n**Does this actor download the videos or screenshots?**\nNo. It returns their CDN URLs so you can download only the media you need.\n\n**Is this affiliated with Valve or Steam?**\nNo. This is an independent data tool and is not endorsed by or affiliated with Valve Corporation.\n",
      "dockerfile": "../Dockerfile",
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Steam games",
              "transformation": {
                "fields": [
                  "appId",
                  "title",
                  "appType",
                  "releaseDate",
                  "developers",
                  "genres",
                  "tags",
                  "currency",
                  "priceFinal",
                  "discountPercent",
                  "platforms",
                  "reviewScore",
                  "totalReviews",
                  "metacriticScore",
                  "dlcCount",
                  "scrapedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "appId": {
                    "label": "App ID",
                    "format": "text"
                  },
                  "title": {
                    "label": "Game",
                    "format": "text"
                  },
                  "appType": {
                    "label": "Type",
                    "format": "text"
                  },
                  "releaseDate": {
                    "label": "Release Date",
                    "format": "text"
                  },
                  "developers": {
                    "label": "Developer",
                    "format": "text"
                  },
                  "genres": {
                    "label": "Genres",
                    "format": "text"
                  },
                  "tags": {
                    "label": "Tags",
                    "format": "text"
                  },
                  "currency": {
                    "label": "Currency",
                    "format": "text"
                  },
                  "priceFinal": {
                    "label": "Price",
                    "format": "number"
                  },
                  "discountPercent": {
                    "label": "Discount %",
                    "format": "number"
                  },
                  "platforms": {
                    "label": "Platforms",
                    "format": "text"
                  },
                  "reviewScore": {
                    "label": "Review Score",
                    "format": "text"
                  },
                  "totalReviews": {
                    "label": "Reviews",
                    "format": "number"
                  },
                  "metacriticScore": {
                    "label": "Metacritic",
                    "format": "number"
                  },
                  "dlcCount": {
                    "label": "DLC",
                    "format": "number"
                  },
                  "scrapedAt": {
                    "label": "Scraped At",
                    "format": "text"
                  }
                }
              }
            }
          }
        }
      }
    },
    "buildNumber": "1.1.1",
    "imageDigest": "a15b72231e351903d140202f591dfda9fa74ebb998125636c94e71ce0519bd3a",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.0035622222222222223
    }
  }
}