# GOG Scraper: DRM-Free Games, Prices & Deals (`recordsdata/gog-games-scraper`) Actor

Scrape GOG.com: the full DRM-free catalog with regional prices, discounts, ratings, genres and platforms, deal feeds sorted by discount, and product descriptions. Export CSV, Excel, JSON, XML.

- **URL**: https://apify.com/recordsdata/gog-games-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

<p align="center">
  <img src="https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3" alt="RecordsData" width="100%" />
</p>

## 🐻 GOG Scraper - DRM-Free Games, Prices & Deals - RecordsData

> 🚀 **The GOG Scraper is an Apify actor that exports GOG.com's DRM-free catalog: 12,800+ games with regional prices, live discounts (8,624 games on sale, measured September 2026, up to -95%), user ratings, genres, tags, platforms and release dates.** Sort by trending, bestselling, rating, newest, price or biggest discount; search by title; and pull full product descriptions per ID. Export to CSV, Excel, JSON or XML.

Prices come from GOG's own catalog service in your chosen country and currency, so deal feeds are exact and localized.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Deal sites and price trackers | Discount feeds sorted by depth |
| Game marketers and analysts | The DRM-free market, quantified |
| Bot and newsletter builders | Daily deal digests per region |
| Collectors | Catalog datasets with ratings and tags |

### 📋 What the GOG Scraper does

- **Catalog rows**: title, final and base price with discount %, user rating (out of 5) and review count, developers, publishers, genres, tags, OS support, release date, cover and store link.
- **Deal mode**: only-discounted filter + biggest-discount sort = a ready deal feed.
- **Regional pricing**: any country and currency pair.
- **Product details**: full description, languages, compatibility and preorder/in-development flags per numeric ID.

> 💡 **Why it matters:** GOG is the DRM-free store with legendary sales; this actor turns its whole catalog and every discount into datasets.

### 📊 Output of the GOG catalog export

Real sample from a live run:

```json
{
  "recordType": "game",
  "gogId": "1207664663",
  "title": "The Witcher 3: Wild Hunt Remastered",
  "priceFinal": "$24.99",
  "priceBase": "$49.99",
  "discount": "-50%",
  "reviewsRating": 4.8,
  "developers": ["CD PROJEKT RED"],
  "genres": ["Role-playing", "Adventure", "Fantasy"],
  "operatingSystems": ["windows"],
  "url": "https://www.gog.com/en/game/the_witcher_3_wild_hunt_game_of_the_year_edition",
  "error": null
}
```

You can download the dataset in various formats such as JSON, CSV, Excel or XML.

### ✨ Why choose this GOG scraper

- **Six sorts including biggest discount**, purpose-built for deal feeds.
- **Regional prices** in any country/currency; rivals ship one region.
- **No $0.09 start fee** like the strongest alternative charges.
- **Detail records** with descriptions and language lists as a second event.

### 📈 How this GOG scraper compares to alternatives

Measured against the GOG actors on the Apify Store (September 2026):

| | This actor | The three alternatives |
|---|---|---|
| Deal mode (discount sort + filter) | Yes | No |
| Regional currency pricing | Yes | Fixed |
| Start fee | None | Up to $0.09 per run |
| Product descriptions | Yes | Partial |
| Price per 1,000 games | $3.50 | $2.99 + $0.09 start |

### 🚀 How to use the GOG Scraper

1. Create a free Apify account (with $5 of credit) at console.apify.com.
2. Open this actor's page and click **Try for free**.
3. Pick a sort (e.g. Biggest discount + only discounted) and country/currency.
4. Optionally search a title or paste product IDs for details.
5. Click **Start** and download CSV, Excel, JSON or XML.

### 💼 Business use cases

#### Deal aggregation

Top discounts per region, refreshed hourly during sales.

#### Price tracking

Catalog snapshots that build price histories over time.

#### Market research

DRM-free catalog composition by genre, rating and price band.

#### Bots and newsletters

Automated "GOG deals today" posts with covers and links.

### 🔌 Automating the GOG Scraper

Connect to **Make**, **Zapier**, **Slack**, **Airbyte**, **GitHub** or **Google Drive**: sale-season monitors, price-drop alerts for a wishlist, or warehouse sync.

### 🤖 Ask an AI assistant about this scraper

> "I need every GOG game currently at 80%+ discount with prices in EUR as CSV. Would the GOG Scraper on Apify (apify.com/recordsdata/gog-games-scraper) do this?"

### ❓ Frequently Asked Questions

#### 🐻 What does the rating mean?

GOG user reviews normalized to a 0-5 scale, with the review count beside it.

#### 💱 Which currencies work?

The ones GOG sells in (USD, EUR, GBP, PLN and more) via the currency input, paired with a country code.

#### 🔎 How do I get product IDs for details?

Catalog rows include `gogId`; paste those into the details input.

#### ⚖️ Is this allowed?

The actor reads GOG's public catalog service at a respectful rate for factual price data.

#### 🆓 Can I try it for free?

Yes, free users get a 10-row preview. Paid Apify plans unlock full runs.

Found a bug or missing field? Open the **Issues tab** on this actor's page. Custom solutions available on request.

# Actor input Schema

## `includeCatalog` (type: `boolean`):

Scrape the GOG catalog with the filters below.

## `searchQuery` (type: `string`):

Search games by title (e.g. witcher). Empty = browse everything.

## `sortBy` (type: `string`):

Order of catalog results.

## `onlyDiscounted` (type: `boolean`):

Keep only games currently on sale (great with 'Biggest discount' sort for deal feeds).

## `countryCode` (type: `string`):

2-letter country for regional prices.

## `currency` (type: `string`):

Price currency (USD, EUR, GBP...).

## `productIds` (type: `array`):

Numeric GOG product IDs for full descriptions (find them in catalog output as gogId).

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "includeCatalog": true,
  "sortBy": "trending",
  "onlyDiscounted": false,
  "countryCode": "US",
  "currency": "USD",
  "productIds": [],
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields per row

## `fullData` (type: `string`):

Complete dataset with all fields

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQuery": "",
    "productIds": [],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/gog-games-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQuery": "",
    "productIds": [],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/gog-games-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "",
  "productIds": [],
  "maxItems": 10
}' |
apify call recordsdata/gog-games-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/gog-games-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/aUlHAShQbPnkpKuiV/builds/3YWS83Um8eGhpE02H/openapi.json
