GOG Scraper: DRM-Free Games, Prices & Deals
Pricing
Pay per event
GOG Scraper: DRM-Free Games, Prices & Deals
Scrape GOG.com: the DRM-free catalog with regional prices in any currency, discounts, user ratings, genres, tags and platforms, deal feeds sorted by biggest discount, and full product descriptions. Export CSV, Excel, JSON, XML. No login or API key. 8,000+ games.
Pricing
Pay per event
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
🐻 GOG Scraper: DRM-Free Games, Prices & Deals
GOG Scraper extracts GOG.com's DRM-free game catalog into CSV, Excel, JSON or XML: title, regional price, discount, rating, genres, tags, platforms, age ratings and release date. Filter by genre, tag, system, language, price, year and rating, compare prices across up to 25 countries, paste GOG URLs or IDs, and add system requirements and DLC links. No login, no API key. Priced $0.01 per game row ($10 per 1,000).
GOG Scraper reads GOG's own catalog service, so every row carries the real price in the country and currency you choose. On 2026-10-04 the US catalog listed 8,234 games and packs, and 5,748 of them were on sale, with discounts up to -95%. Deal sites, price trackers and game market analysts use it to get that data as a clean table.
🎮 What does GOG Scraper do?
- Catalog scraping for a title, genre, tag or the whole DRM-free store, with filters GOG applies itself: genres, tags, systems, languages, features, release status, price range and release years.
- Deals feed: turn on "Only discounted" and sort by "Biggest discount".
- Multi-country prices: compare every game in up to 25 countries in one row, with the cheapest country flagged.
- Product pages, listing pages or numeric IDs pasted in, one row per product.
- Full details: system requirements, install size, DLC and bundle links, trailers, languages, age-rating descriptors.
📊 What data can you extract from GOG?
76 columns in total: 73 data columns plus error, errorType and hint, which appear only on free error rows.
| Group | Fields |
|---|---|
| Identity | recordType, gogId, title, slug, productType, gameType, url, scrapedAt |
| Price as text | priceFinal, priceBase, discount (for example $2.99, $19.99, -85%) |
| Price as numbers | priceFinalAmount, priceBaseAmount, discountPercent, currency, isFree, isOnSale |
| Multi-country | priceByCountry, lowestPriceCountry, lowestPriceUsd, isOnSaleAnywhere (when countries is set) |
| Rating and people | reviewsRating (0-5), reviewsCount, developers, publishers |
| Classification | genres, tags, features, operatingSystems, series |
| Dates | releaseDate, releaseDateIso, isPreorder, inDevelopment |
| Age ratings | pegiAge, esrbAge, uskAge, brAge, gogAge, plus descriptors on detail rows |
| Languages | languages, hasEnglishText, hasEnglishAudio, textLanguages, audioLanguages |
| Media and text | coverUrl, logoUrl, screenshots, trailers, description (up to 6,000 characters), summary |
| Requirements and related | systemRequirements (per OS), installSizeMb, dlcIds, includesIds, editions, bonuses |
Requirements, install size, related-product IDs, trailers, descriptors and bonuses come with detail rows and with catalog rows when includeDetails is on. Fields GOG does not provide are left out of the row. Not included on purpose: a DRM-free flag (true for every GOG product) and reviewer text or handles.
🧾 GOG Scraper sample output
Real catalog row from a run on 2026-10-04 (predates the newer columns):
{"recordType": "game","gogId": "1207658930","title": "The Witcher 2: Assassins of Kings Enhanced Edition","priceFinal": "$2.99","priceBase": "$19.99","discount": "-85%","reviewsRating": 4.7,"reviewsCount": 14522,"developers": ["CD PROJEKT RED"],"genres": ["Role-playing", "Action", "Fantasy"],"tags": ["Action", "Fantasy", "Story Rich"],"operatingSystems": ["windows", "linux", "osx"],"releaseDate": "2012.04.17","url": "https://www.gog.com/en/game/the_witcher_2","scrapedAt": "2026-10-04T05:10:07.016Z"}
Prices change daily, so your numbers will differ.
💵 How much does it cost to scrape GOG?
Pay per event: you pay only for rows saved to your dataset.
| Event | When it is charged | Price (Free plan) |
|---|---|---|
game-record | One catalog game row | $0.01 ($10 per 1,000), same on every plan |
detail-record | One product detail row, or one catalog row with includeDetails on | $0.015 ($15 per 1,000) |
Higher plans discount detail rows: $0.01425 Bronze, $0.0135 Silver, $0.0125 Gold and above. There is no start fee, and multi-country prices add no charge (you pay per game row, not per country). You are not charged for error rows, "product not found" rows, invalid-input rows, empty searches or duplicate games. The actor stops cleanly at your maximum charge per run.
Worked examples at Free plan prices:
- 1,000 catalog game rows: 1,000 x $0.01 = $10.00.
- 1,000 catalog rows with
includeDetailson: each row bills as one detail record, 1,000 x $0.015 = $15.00 (not $25). - 1,000 catalog rows plus 100 product-page rows: $10.00 + $1.50 = $11.50.
- 200 RPG deals priced in 5 countries: 200 x $0.01 = $2.00.
🚀 How to scrape GOG in 3 steps
- Choose a sort, filters, a country and a currency, or paste GOG URLs or product IDs.
- Optionally add details or countries.
- Click Start, then download the dataset as CSV, Excel, JSON or XML.
⚙️ GOG Scraper input
| Field | Default | What it does |
|---|---|---|
includeCatalog, searchQuery | true, empty | Scrape the catalog; title keyword such as witcher |
sortBy | trending | trending, bestselling, rating, newest, price-low, price-high, discount, oldest, title |
onlyDiscounted | false | Keep only games on sale |
productTypes | game, pack | Add dlc to include add-ons |
genres, tags, operatingSystems | empty | 55 genres, 203 tags (any match), windows, osx, linux |
languages, features, releaseStatuses | empty | 30 languages, 9 features, new-arrival, upcoming, early-access |
minPrice, maxPrice, releaseYearFrom, releaseYearTo | empty | Price range in the chosen currency; release years |
minRating, excludeUnreleased | empty, false | Minimum stars (0 to 5); drop coming-soon rows. Applied by the actor |
countryCode, currency | US, USD | Country and currency for prices |
countries | empty | Up to 25 more country codes for priceByCountry |
startUrls, productIds | empty | GOG product pages, listing pages or numeric IDs |
includeDetails | false | Add requirements, install size, DLC IDs, trailers and more to catalog rows |
maxItems | 10 | Max rows overall. Free users are capped at 10 |
GOG applies the genre, tag, system, language, feature, status, price and year filters itself, so paging and the 10-row Free cap stay exact. Only minRating and excludeUnreleased are filtered by the actor.
RPG deals compared in several countries:
{"genres": ["rpg"],"onlyDiscounted": true,"sortBy": "discount","minRating": 4,"countryCode": "US","currency": "USD","countries": ["DE", "PL", "BR"],"maxItems": 100}
📦 GOG Scraper output
Each run writes one dataset with a default table view. Rows are deduplicated by game ID across the catalog, URLs and Product IDs, and maxItems counts all rows together. A search with no matches finishes as succeeded and charges nothing; if GOG blocks every request, the run fails. There is no monitor mode: schedule runs and compare snapshots with scrapedAt.
🆚 GOG scraper vs alternatives
Read on 2026-10-10 from each Store page.
| This actor | solidcode | unfenced-group | |
|---|---|---|---|
| Catalog filters | Genres, tags, OS, languages, features, status, price, years, rating | Similar, 34 genres and 40 tags, no rating filter listed | Genres, OS, price, rating, dates; no tags or languages listed |
| Multi-country prices | Up to 25 countries in one row, cheapest flagged | One storefront per run, 49 regions | Several storefronts per run, 18 |
| Detail data | Requirements, install size, DLC, trailers, ratings | Similar; adds RSS export | Descriptions, DLC, videos; requirements not stated |
| URL or ID input | Product, listing, IDs | Browse and game URLs | Game URLs and IDs |
| Price per 1,000 | $10 | $3.00 plus $0.005 start | $0.99 |
Two other listings are cheaper and thinner. benthepythondev (about $2.50 per 1,000) documents only a keyword, a sort and a limit. parseforge ($3.13 per 1,000) takes one listing URL and has no filter fields. None of the four states a monitor mode. solidcode offers RSS export that we do not. We cost 3.3 to 10 times more per row. Pick this actor for country price comparison, the rating filter and the detail columns in one run. For a bulk title dump at the lowest cost, unfenced-group fits better.
💡 Use cases
Daily deal feeds by region, regional price checks, price-history tracking from scheduled snapshots, market research by genre and price band, compatibility lists, and a release radar for upcoming titles.
🔌 Run GOG Scraper via API and integrations
curl -X POST "https://api.apify.com/v2/acts/RecordsData~gog-games-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"sortBy":"discount","onlyDiscounted":true,"countries":["DE","PL"],"maxItems":50}'
Use the Apify API, schedules and webhooks, or connect to Zapier, Make, n8n, Google Sheets and Slack.
🤖 GOG Scraper MCP server for AI agents (Claude, Cursor, VS Code)
Connect this actor to any MCP client through the Apify MCP server:
https://mcp.apify.com?tools=RecordsData/gog-games-scraper
Config for clients that take a JSON MCP config:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=RecordsData/gog-games-scraper"}}}
Example agent prompt: "Use the GOG Scraper to find the 20 deepest discounts on GOG for RPGs rated 4 stars or more, compare the price in Germany, Poland and Brazil, and tell me which country is cheapest for each game."
An agent should choose this tool when it needs current GOG.com prices, discounts, ratings, requirements or product details for DRM-free games.
⚖️ Is it legal to scrape GOG?
The actor reads public catalog data (titles, prices, ratings) from GOG's public catalog service at a polite rate. It does not log in, bypass paywalls or collect personal data. Check GOG's terms of service for your use case.
❓ Frequently asked questions
Why did my GOG scrape return 0 results?
Your search or filter matched no games, for example a nonsense keyword or "Only discounted" with a very narrow genre and price range. GOG search is fuzzy, so a slightly misspelled title usually still returns results. The run still succeeds with a clear message and charges nothing. Loosen the filters and try again.
How do I get a game's full description from GOG?
Paste the game's GOG page link into startUrls, or collect gogId values with a first run and paste them into productIds, then switch off includeCatalog for details only. Each product returns one detail row with the full description (up to 6,000 characters), languages and platforms, billed at $0.015 on the Free plan.
Which currencies and countries work in GOG Scraper?
The GOG Scraper accepts any country and currency pair that GOG itself sells in, such as USD, EUR, GBP or PLN. Set both countryCode and currency, for example DE and EUR, and every priceFinal and priceBase value is returned for that regional store.
What does the GOG rating in the dataset mean?
It is GOG's own user rating on a 0-5 scale in reviewsRating, with the number of reviews in reviewsCount. The sample row for The Witcher 2 shows 4.7 from 14,522 reviews. Games with no ratings on GOG omit these fields. Use minRating to keep only games above a star threshold.
Can I get only discounted GOG games?
Yes. Turn on onlyDiscounted and set sortBy to discount to get the deepest deals first. On 2026-10-04 the US catalog listed 5,748 discounted games and packs out of 8,234, with discounts up to -95%. Pair it with countryCode and currency for your region, or with countries to compare several.
How many games can I scrape from GOG in one run?
The US catalog held 8,234 games and packs on 2026-10-04. Free Apify plan users are limited to 10 rows per run as a preview, while paid users can set maxItems up to 1,000,000. At $0.01 per catalog row, scraping 1,000 GOG games costs $10 on the Free plan.
Am I charged for failed GOG lookups?
No. Error rows, product-not-found rows, invalid-input rows, empty searches and duplicate games are never billed, and a failed run delivers and charges nothing. You pay only for catalog and detail rows saved to your dataset, and the run stops cleanly at your maximum charge per run.
What happens if I send an empty or invalid input to GOG Scraper?
An empty input {} is safe: it runs the default 10-row trending catalog sample. A value outside the allowed list, such as an unknown sortBy, is rejected with a 400 error before any run starts. If the input cannot produce any work, the run ends as succeeded with one free error row (errorType: invalid-input plus a hint).
Can I schedule GOG Scraper to track prices?
Yes. Schedule the GOG Scraper in Apify to run hourly, daily or weekly and send the results to Google Sheets, a webhook or your own database. Each row carries a scrapedAt timestamp and the regional price, so repeated runs build a price history or a deals feed. There is no built-in only-new mode, so compare snapshots yourself.
How do I compare GOG prices across countries?
Set countries to up to 25 codes, for example ["DE","PL","BR"]. Each game row then gets priceByCountry, which holds the local final price, base price, discount percent and the USD equivalent for every country, plus lowestPriceCountry, lowestPriceUsd and isOnSaleAnywhere. It stays one row per game and adds no extra charge.
Does GOG apply the filters, or does the actor?
GOG applies genres, tags, operating systems, languages, features, release status, price range and release years, so paging and the 10-row Free cap stay exact. GOG has no rating filter, so minRating is applied by the actor after rows arrive, and so is excludeUnreleased. With a rating filter, a run may scan more pages than it returns rows.
Can I scrape specific GOG URLs or IDs?
Yes. startUrls accepts product pages, listing pages and bare numeric IDs. Listing page filters (genres, tags, systems, languages, features, status, price, years, discounted, query and order) are mapped to catalog filters. An invalid URL gets a free error row, and rows are deduplicated against productIds and the catalog.
Can I get system requirements and install size?
Yes. Detail rows, and catalog rows with includeDetails switched on, carry systemRequirements per operating system (minimum and recommended), additionalRequirements and installSizeMb, plus dlcIds, trailers, series and text and audio language lists. An includeDetails catalog row bills as one detail record at $0.015 on the Free plan.
Does it return age ratings?
Yes. pegiAge, esrbAge, uskAge, brAge and gogAge come with every catalog row at no extra cost, so you can filter a deals feed by age in a spreadsheet or script. Rating descriptors (pegiDescriptors, esrbDescriptors, esrbCategory) come with detail rows and with includeDetails on.
Why does an invalid country or currency fail for free?
The actor checks your country and currency against GOG's own price list first. GOG would otherwise fall back to US prices for an unknown country, or return hundreds of unpriced upcoming rows for a currency not sold there. So the run ends as succeeded with one free invalid-input row and a hint.
🛟 Support
Found a bug or a missing field? Open the Issues tab or write to contact.punkrecordsdata@gmail.com.
Last updated: 2026-10-11