{
  "openapi": "3.0.1",
  "info": {
    "title": "Steam Reviews Scraper",
    "description": "Steam game reviews by link, app ID or name on Valve's new reviews API (the old appreviews endpoint shuts down 22 Oct 2026). Review text, recommended, playtime, votes, language, Steam Deck, refunds, developer replies. Exact date windows, playtime filters, only new reviews.",
    "version": "0.1",
    "x-build-id": "9PRmU45bOYgz4cWhn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/s_actors~steam-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-s_actors-steam-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/s_actors~steam-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-s_actors-steam-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/s_actors~steam-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-s_actors-steam-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "games": {
            "title": "🎮 Steam games",
            "type": "array",
            "description": "One per line: Steam store links (store.steampowered.com/app/1145360/Hades/), app IDs (the number in the link) or game names (the best Steam store search match is taken). Community and SteamDB app links work too. Any number of games.",
            "items": {
              "type": "string"
            }
          },
          "maxReviewsPerGame": {
            "title": "🔢 Max reviews per game",
            "minimum": 0,
            "type": "integer",
            "description": "Limit for each game. 0 = every review that matches the filters (popular games have hundreds of thousands).",
            "default": 100
          },
          "sort": {
            "title": "↕️ Sort",
            "enum": [
              "recent",
              "helpful",
              "updated",
              "funny"
            ],
            "type": "string",
            "description": "Order of the reviews. Most recent goes through every review; Most helpful is the order of the Steam store page (all time, or within the date window).",
            "default": "recent"
          },
          "reviewType": {
            "title": "👍 Positive or negative",
            "enum": [
              "all",
              "positive",
              "negative"
            ],
            "type": "string",
            "description": "Only recommended, only not recommended, or both.",
            "default": "all"
          },
          "languages": {
            "title": "🌐 Languages",
            "type": "array",
            "description": "Only reviews written in these languages. Empty = all languages.",
            "items": {
              "type": "string",
              "enum": [
                "english",
                "schinese",
                "tchinese",
                "russian",
                "spanish",
                "latam",
                "brazilian",
                "portuguese",
                "german",
                "french",
                "italian",
                "polish",
                "turkish",
                "ukrainian",
                "japanese",
                "koreana",
                "thai",
                "vietnamese",
                "indonesian",
                "dutch",
                "swedish",
                "danish",
                "finnish",
                "norwegian",
                "czech",
                "hungarian",
                "romanian",
                "greek",
                "bulgarian",
                "arabic"
              ],
              "enumTitles": [
                "English",
                "Chinese (Simplified)",
                "Chinese (Traditional)",
                "Russian",
                "Spanish (Spain)",
                "Spanish (Latin America)",
                "Portuguese (Brazil)",
                "Portuguese (Portugal)",
                "German",
                "French",
                "Italian",
                "Polish",
                "Turkish",
                "Ukrainian",
                "Japanese",
                "Korean",
                "Thai",
                "Vietnamese",
                "Indonesian",
                "Dutch",
                "Swedish",
                "Danish",
                "Finnish",
                "Norwegian",
                "Czech",
                "Hungarian",
                "Romanian",
                "Greek",
                "Bulgarian",
                "Arabic"
              ]
            }
          },
          "dateFrom": {
            "title": "📅 Reviews from",
            "type": "string",
            "description": "Only reviews written on or after this date: 2026-10-01, or relative: 7 days, 2 weeks, 6 months, 1 year. The window is exact (no reviews from outside it)."
          },
          "dateTo": {
            "title": "📅 Reviews until",
            "type": "string",
            "description": "Only reviews written on or before this date (the whole day counts): 2026-10-12, or relative: 30 days. Empty = until now."
          },
          "minPlaytimeHours": {
            "title": "⏱️ Min playtime at review (hours)",
            "minimum": 0,
            "type": "integer",
            "description": "Only reviewers who had played at least this many hours when they wrote the review. Filters out \"2 hours in\" first impressions."
          },
          "maxPlaytimeHours": {
            "title": "⏱️ Max playtime at review (hours)",
            "minimum": 0,
            "type": "integer",
            "description": "Only reviewers who had played at most this many hours when they wrote the review (first impressions, refund-window reviews)."
          },
          "steamDeckOnly": {
            "title": "🕹️ Steam Deck players only",
            "type": "boolean",
            "description": "Only reviews by players who played mostly on Steam Deck when they wrote the review.",
            "default": false
          },
          "purchaseType": {
            "title": "🛒 Purchase type",
            "enum": [
              "all",
              "steam",
              "other"
            ],
            "type": "string",
            "description": "Steam purchases only is what the store page counts in its score; keys include Humble, Kickstarter and review copies.",
            "default": "all"
          },
          "includeOffTopic": {
            "title": "💣 Include review bombs",
            "type": "boolean",
            "description": "Steam hides reviews from off-topic review bombing periods by default. Turn on to get them too.",
            "default": false
          },
          "onlyNewReviews": {
            "title": "🔔 Only new reviews",
            "type": "boolean",
            "description": "For scheduled runs (save the input as a task and add a schedule, for example every hour). The first run collects up to Max reviews per game and remembers the newest one; later runs return only reviews written since then. Sort is always Most recent.",
            "default": false
          },
          "monitorName": {
            "title": "🏷️ Monitor name",
            "type": "string",
            "description": "Name of the memory used by Only new reviews. Use a different name for each task, otherwise two tasks share what they have seen.",
            "default": "default"
          },
          "includeGameDetails": {
            "title": "🧾 Game details",
            "type": "boolean",
            "description": "Add the game name, developer, publisher, release date, price, genres and header image to every row (one store request per game).",
            "default": true
          },
          "maxConcurrency": {
            "title": "⚡ Games in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many games are collected at the same time. Steam limits keyless requests per IP; the Actor moves to proxy IPs when that happens.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy",
            "type": "object",
            "description": "Requests go direct first and move to Apify datacenter proxies (a new IP per request) when Steam rate-limits the current IP. The default works for most runs.",
            "default": {
              "useApifyProxy": true
            }
          },
          "debugLog": {
            "title": "🐞 Debug log",
            "type": "boolean",
            "description": "Log every retried request (for troubleshooting).",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}