{
  "openapi": "3.0.1",
  "info": {
    "title": "GOG Games Scraper",
    "description": "Reads GOG’s public JSON catalog and returns records for games, packs, and DLC. Each result can include its title, slug, release date, developers, publishers, genres, tags, operating systems, review data, and cover URL. Choose product types, search terms, genres, and regional catalog settings.",
    "version": "0.1",
    "x-build-id": "ItqMlpdhqyv1VI1o5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~gog-games-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-gog-games-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/axiomworks~gog-games-scraper/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-gog-games-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/axiomworks~gog-games-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-gog-games-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": {
          "searchQuery": {
            "title": "Title keywords (e.g. witcher)",
            "type": "string",
            "description": "Title keywords, e.g. \"witcher\", up to 200 characters; accepts text, not URLs or product IDs. Omit or leave empty to browse trending games and packs. Every query word must occur in the returned title. All supplied filters apply together; no matches returns zero rows successfully. Adjust keywords or remove filters."
          },
          "discountedOnly": {
            "title": "Sale filter (true or false)",
            "type": "boolean",
            "description": "Include only currently discounted products when true, e.g. true. Default false includes both sale and full-price products. Combines with searchQuery, genres, productTypes and price bounds.",
            "default": false
          },
          "genres": {
            "title": "Genre slugs (e.g. rpg)",
            "type": "array",
            "description": "GOG genre slugs as a string array, e.g. [\"rpg\", \"action\"]. Default [] applies no genre filter. Use slugs rather than display names; role-playing is also accepted as rpg. Other filters still apply.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "productTypes": {
            "title": "Product types (game, pack, dlc)",
            "type": "array",
            "description": "Product types as a string array, e.g. [\"game\", \"dlc\"]. Allowed values: game, pack, dlc. Default [\"game\", \"pack\"] excludes DLC; an empty array also uses that default.",
            "items": {
              "type": "string",
              "enum": [
                "game",
                "pack",
                "dlc"
              ]
            },
            "default": [
              "game",
              "pack"
            ]
          },
          "sortBy": {
            "title": "Sort field (e.g. price)",
            "enum": [
              "trending",
              "price",
              "releaseDate",
              "title",
              "reviewsRating"
            ],
            "type": "string",
            "description": "Catalog sort field: trending, price, releaseDate, title or reviewsRating, e.g. \"price\". Default trending returns trending products first with the default desc order. Set sortOrder to asc for lowest price or alphabetical title first.",
            "default": "trending"
          },
          "sortOrder": {
            "title": "Sort direction (asc or desc)",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Sort direction for sortBy: \"asc\" or \"desc\", e.g. \"asc\" with sortBy \"price\" for cheapest first. Default desc gives highest prices, newest release dates or highest ratings first for those fields.",
            "default": "desc"
          },
          "countryCode": {
            "title": "Pricing country (e.g. US)",
            "type": "string",
            "description": "Two-letter country code for regional availability and prices, e.g. \"US\" or \"DE\"; default US. Use with currencyCode, such as DE and EUR. Does not choose the text language; locale does that.",
            "default": "US"
          },
          "currencyCode": {
            "title": "Price currency (e.g. USD)",
            "type": "string",
            "description": "Three-letter currency code for priceFinal, priceBase and price bounds, e.g. \"USD\" or \"EUR\"; default USD. Combine with countryCode for the desired pricing region. Currency availability depends on GOG.",
            "default": "USD"
          },
          "locale": {
            "title": "Text locale (e.g. en-US)",
            "type": "string",
            "description": "Text language locale, two letters with an optional two-letter region, e.g. \"en-US\" or \"de-DE\"; default en-US. Does not set currency. Search title keywords must match the titles returned for this locale.",
            "default": "en-US"
          },
          "maxItems": {
            "title": "Total row limit (e.g. 20)",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Total row limit across all catalog pages, 1-10000, e.g. 20; default 50. Returns exactly this many when enough products match, otherwise fewer. Combined filters may exhaust results earlier; this is not a per-page limit.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy settings (e.g. no proxy)",
            "type": "object",
            "description": "Apify proxy settings object, e.g. {\"useApifyProxy\": false}; default runs without a proxy. Enable {\"useApifyProxy\": true} if catalog requests are blocked. Persistent blocking returns zero rows successfully with guidance to retry or change proxy settings.",
            "default": {
              "useApifyProxy": false
            }
          },
          "minPrice": {
            "title": "Minimum current price (e.g. 5)",
            "type": "number",
            "description": "Inclusive minimum current selling price in currencyCode, e.g. 5. Non-negative number; editor default 0. Omit to leave the lower bound unset. Use with maxPrice for a range; must not exceed maxPrice. Country and currency affect matching products.",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum current price (e.g. 10)",
            "type": "number",
            "description": "Inclusive maximum current selling price in currencyCode, e.g. 10. Non-negative number; editor default 1000000. Omit to leave the upper bound unset. Use with minPrice for a range; must be at least minPrice. All other filters still apply.",
            "default": 1000000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}