{
  "openapi": "3.0.1",
  "info": {
    "title": "Steam Store Scraper 🎮 (price, reviews, metadata)",
    "description": "Scrape Steam store pages for price, discount, developer, genres, platforms, Metacritic score, release date and review scores by search term or app ID, plus unlimited individual reviews with language and sentiment filters. No login, no browser, no API key needed.",
    "version": "0.1",
    "x-build-id": "FhPmIpaHhOYLmPNmU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tagadanar~steam-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tagadanar-steam-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/tagadanar~steam-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tagadanar-steam-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/tagadanar~steam-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tagadanar-steam-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": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Store search terms (e.g. <code>roguelike</code>, <code>portal</code>, <code>city builder</code>). Each match is enriched with its full store record.",
            "items": {
              "type": "string"
            }
          },
          "appIds": {
            "title": "App IDs",
            "type": "array",
            "description": "Specific Steam app IDs to scrape, e.g. <code>400</code> (Portal), <code>620</code> (Portal 2).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Store URLs",
            "type": "array",
            "description": "Steam store page URLs — the app ID is read from each, e.g. <code>https://store.steampowered.com/app/400/Portal/</code>.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country (price region)",
            "type": "string",
            "description": "Two-letter country code for pricing/currency (e.g. <code>us</code>, <code>fr</code>, <code>de</code>).",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Store language code (e.g. <code>en</code>, <code>fr</code>).",
            "default": "en"
          },
          "includeReviewSummary": {
            "title": "Include review score summary",
            "type": "boolean",
            "description": "Add the aggregate review score (e.g. <i>Overwhelmingly Positive</i>), positive/negative/total counts and positive %. One lightweight request per app.",
            "default": true
          },
          "maxReviewsPerApp": {
            "title": "Reviews per app",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Scrape up to this many individual reviews per app as separate dataset items (<code>type: \"review\"</code> — full text, votes, playtime, author stats). Set it high to download <b>ALL reviews</b> of a game; cursor pagination handles hundreds of thousands. 0 = summary only.",
            "default": 0
          },
          "reviewLanguage": {
            "title": "Review language",
            "type": "string",
            "description": "Steam language code (e.g. <code>english</code>, <code>french</code>, <code>schinese</code>) or <code>all</code>.",
            "default": "all"
          },
          "reviewType": {
            "title": "Review type",
            "enum": [
              "all",
              "positive",
              "negative"
            ],
            "type": "string",
            "description": "Keep only positive or only negative reviews.",
            "default": "all"
          },
          "reviewDayRange": {
            "title": "Review look-back (days)",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Only reviews from the last N days — e.g. <code>30</code> for last-month sentiment. 0 = all time.",
            "default": 0
          },
          "types": {
            "title": "Keep only these types",
            "type": "array",
            "description": "Filter by store item type. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "game",
                "dlc",
                "demo",
                "music",
                "video",
                "hardware",
                "mod",
                "application"
              ],
              "enumTitles": [
                "Game",
                "DLC",
                "Demo",
                "Music",
                "Video",
                "Hardware",
                "Mod",
                "Application"
              ]
            },
            "default": []
          },
          "minReviews": {
            "title": "Minimum total reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only apps with at least this many reviews (needs review summary on)."
          },
          "maxPrice": {
            "title": "Maximum price",
            "type": "integer",
            "description": "Keep only apps priced at or below this (in the region's currency units, e.g. dollars)."
          },
          "maxResults": {
            "title": "Max apps",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many app records.",
            "default": 500
          },
          "proxyConfiguration": {
            "title": "Proxy (optional)",
            "type": "object",
            "description": "Steam's public endpoints work without a proxy. Enable Apify Proxy for large runs to avoid rate limits.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}