Bundles API
The GG.deals API offers programmatic access to our comprehensive bundle data.
To utilize this API, you will need a unique API key. You can generate this key in your settings.
Retrieve Game Bundles by Steam App ID
To obtain the list of bundles containing a game associated with a specific Steam App ID*, make a GET request to the following URL:
https://api.gg.deals/v1/bundles/by-steam-app-id/
* Steam App IDs correspond to store pages such as https://store.steampowered.com/app/<id>/.
Query Parameters
-
key- Your unique API key, which can be generated in your settings. -
ids- A comma-separated list of Steam App IDs (e.g.,1,2,3,4), with a maximum of 100 IDs permitted per request. -
region(optional) - The region code for which bundle data should be returned. By default, bundles available in the USA are provided.
Valid region codes include:au,be,br,ca,ch,de,dk,es,eu,fi,fr,gb,ie,it,nl,no,pl,seandus.
Response
The response will be a JSON object containing a data field with a list of GameBundles objects for the requested
Steam App IDs, indexed by their respective IDs.
If a game is not found in our database for a specified Steam App ID, null will be returned for that ID.
The GameBundles object contains the following fields:
-
title- The title of the game in our database. -
url- The URL of the game in our database. -
bundles- An array containing a list ofBundleobjects representing bundles that contain this game.
The Bundle object contains the following fields:
-
title- The name of the bundle. -
url- The URL to the news article featuring this bundle (nullif this bundle was never featured in a news article on GG.deals). -
dateFrom- The date (in UTC) indicating when the bundle became available. -
dateTo- The date (in UTC) indicating when the bundle expires/expired (nullif the bundle has no known end date). -
tiers- An array containing a list ofBundleTierobjects representing the different pricing tiers available for this bundle.
The BundleTier object contains the following fields:
-
price- The price of this tier, represented as a string with two decimal places. -
currency- The three-letter currency code used for the price (e.g., USD, EUR, PLN). -
gamesCount- The number of games a customer can select from the available games list in this tier. This field is relevant only for "Build your own Bundle" type offerings. For example, ifgamesCountis2and thegamesfield contains 10 games, the customer can select any two games from that list.
This field isnullfor standard bundles, indicating that all games listed in the tier are included. -
games- An array containing a list ofBundleTierGameobjects representing all games available in this tier.
The BundleTierGame object contains the following fields:
-
title- The title of the game in our database. -
url- The URL of the game in our database.
Example
curl "https://api.gg.deals/v1/bundles/by-steam-app-id/?ids=1,420,252410&key=mySecretKey®ion=pl"
{
"success": true,
"data": {
"1": null,
"420": {
"title": "Half-Life 2: Episode Two",
"url": "https://gg.deals/game/half-life-2-episode-two/",
"bundles": []
},
"252410": {
"title": "SteamWorld Dig",
"url": "https://gg.deals/game/steamworld-dig/",
"bundles": [
{
"title": "Humble Indie Bundle 12",
"url": null,
"dateFrom": "2014-09-09 22:00:00",
"dateTo": "2014-09-23 22:00:00",
"tiers": [
{
"price": "0.04",
"currency": "PLN",
"gamesCount": null,
"games": [
{
"title": "Gunpoint",
"url": "https://gg.deals/game/gunpoint/"
},
...
]
},
{
"price": "3.76",
"currency": "PLN",
"gamesCount": null,
"games": [
...
]
},
{
"price": "25.43",
"currency": "PLN",
"gamesCount": null,
"games": [
...
]
},
{
"price": "37.62",
"currency": "PLN",
"gamesCount": null,
"games": [
...
]
}
]
},
...
{
"title": "Fanatical - Build your own All Stars Bundle",
"url": "https://gg.deals/bundle/fanatical-build-your-own-all-stars-bundle/",
"dateFrom": "2021-04-08 17:00:00",
"dateTo": "2021-05-10 09:00:00",
"tiers": [
{
"price": "4.23",
"currency": "PLN",
"gamesCount": 1,
"games": [
...
]
},
{
"price": "12.66",
"currency": "PLN",
"gamesCount": 5,
"games": [
...
]
},
{
"price": "21.13",
"currency": "PLN",
"gamesCount": 10,
"games": [
...
]
}
]
}
]
}
}
} Retrieve Game Bundles by Steam Sub ID
To obtain the list of bundles containing a game associated with a specific Steam Sub ID*, make a GET request to the following URL:
https://api.gg.deals/v1/bundles/by-steam-sub-id/
* Steam Sub IDs correspond to store pages such as https://store.steampowered.com/sub/<id>/.
Query Parameters
-
key- Your unique API key, which can be generated in your settings. -
ids- A comma-separated list of Steam Sub IDs (e.g.,1,2,3,4), with a maximum of 100 IDs permitted per request. -
region(optional) - The region code for which bundle data should be returned. By default, bundles available in the USA are provided.
Valid region codes include:au,be,br,ca,ch,de,dk,es,eu,fi,fr,gb,ie,it,nl,no,pl,seandus.
Response
The response will be a JSON object containing a data field with a list of GameBundles objects for the requested
Steam Sub IDs, indexed by their respective IDs.
If a game is not found in our database for a specified Steam Sub ID, null will be returned for that ID.
The GameBundles object contains the following fields:
-
title- The title of the game in our database. -
url- The URL of the game in our database. -
bundles- An array containing a list ofBundleobjects representing bundles that contain this game.
The Bundle object contains the following fields:
-
title- The name of the bundle. -
url- The URL to the news article featuring this bundle (nullif this bundle was never featured in a news article on GG.deals). -
dateFrom- The date (in UTC) indicating when the bundle became available. -
dateTo- The date (in UTC) indicating when the bundle expires/expired (nullif the bundle has no known end date). -
tiers- An array containing a list ofBundleTierobjects representing the different pricing tiers available for this bundle.
The BundleTier object contains the following fields:
-
price- The price of this tier, represented as a string with two decimal places. -
currency- The three-letter currency code used for the price (e.g., USD, EUR, PLN). -
gamesCount- The number of games a customer can select from the available games list in this tier. This field is relevant only for "Build your own Bundle" type offerings. For example, ifgamesCountis2and thegamesfield contains 10 games, the customer can select any two games from that list.
This field isnullfor standard bundles, indicating that all games listed in the tier are included. -
games- An array containing a list ofBundleTierGameobjects representing all games available in this tier.
The BundleTierGame object contains the following fields:
-
title- The title of the game in our database. -
url- The URL of the game in our database.
Example
curl "https://api.gg.deals/v1/bundles/by-steam-sub-id/?ids=1,7,1257696&key=mySecretKey®ion=pl"
{
"success": true,
"data": {
"1": null,
"7": {
"title": "Counter-Strike: Condition Zero Pack",
"url": "https://gg.deals/pack/counter-strike-condition-zero-pack/",
"bundles": []
},
"1257696": {
"title": "Capcom Arcade Stadium Complete Pack",
"url": "https://gg.deals/pack/capcom-arcade-stadium-complete-pack/",
"bundles": [
{
"title": "Humble Capcom Retro Revival Pack",
"url": "https://gg.deals/bundle/the-new-humble-capcom-bundle-gets-you-over-60-games-for-just-20/",
"dateFrom": "2025-09-10 18:00:00",
"dateTo": "2025-09-23 18:00:00",
"tiers": [
{
"price": "89.54",
"currency": "PLN",
"gamesCount": null,
"games": [
{
"title": "Dungeons & Dragons: Chronicles of Mystara",
"url": "https://gg.deals/game/dungeons-dragons-chronicles-of-mystara/"
},
...
]
}
]
},
...
{
"title": "Fanatical - Build your own Capcom Masters Bundle",
"url": "https://gg.deals/bundle/fanaticals-byo-capcom-masters-bundle-packs-a-punch-with-top-tier-games/",
"dateFrom": "2026-04-29 13:05:00",
"dateTo": "2026-06-03 07:00:00",
"tiers": [
{
"price": "122.89",
"currency": "PLN",
"gamesCount": 2,
"games": [
...
]
},
{
"price": "180.99",
"currency": "PLN",
"gamesCount": 3,
"games": [
...
]
},
{
"price": "232.53",
"currency": "PLN",
"gamesCount": 4,
"games": [
...
]
}
]
}
]
}
}
} Retrieve Game Bundles by Steam Bundle ID
To obtain the list of bundles containing a game associated with a specific Steam Bundle ID*, make a GET request to the following URL:
https://api.gg.deals/v1/bundles/by-steam-bundle-id/
* Steam Bundle IDs correspond to store pages such as https://store.steampowered.com/bundle/<id>/.
Query Parameters
-
key- Your unique API key, which can be generated in your settings. -
ids- A comma-separated list of Steam Bundle IDs (e.g.,1,2,3,4), with a maximum of 100 IDs permitted per request. -
region(optional) - The region code for which bundle data should be returned. By default, bundles available in the USA are provided.
Valid region codes include:au,be,br,ca,ch,de,dk,es,eu,fi,fr,gb,ie,it,nl,no,pl,seandus.
Response
The response will be a JSON object containing a data field with a list of GameBundles objects for the requested
Steam Bundle IDs, indexed by their respective IDs.
If a game is not found in our database for a specified Steam Bundle ID, null will be returned for that ID.
The GameBundles object contains the following fields:
-
title- The title of the game in our database. -
url- The URL of the game in our database. -
bundles- An array containing a list ofBundleobjects representing bundles that contain this game.
The Bundle object contains the following fields:
-
title- The name of the bundle. -
url- The URL to the news article featuring this bundle (nullif this bundle was never featured in a news article on GG.deals). -
dateFrom- The date (in UTC) indicating when the bundle became available. -
dateTo- The date (in UTC) indicating when the bundle expires/expired (nullif the bundle has no known end date). -
tiers- An array containing a list ofBundleTierobjects representing the different pricing tiers available for this bundle.
The BundleTier object contains the following fields:
-
price- The price of this tier, represented as a string with two decimal places. -
currency- The three-letter currency code used for the price (e.g., USD, EUR, PLN). -
gamesCount- The number of games a customer can select from the available games list in this tier. This field is relevant only for "Build your own Bundle" type offerings. For example, ifgamesCountis2and thegamesfield contains 10 games, the customer can select any two games from that list.
This field isnullfor standard bundles, indicating that all games listed in the tier are included. -
games- An array containing a list ofBundleTierGameobjects representing all games available in this tier.
The BundleTierGame object contains the following fields:
-
title- The title of the game in our database. -
url- The URL of the game in our database.
Example
curl "https://api.gg.deals/v1/bundles/by-steam-bundle-id/?ids=1,232,13014&key=mySecretKey®ion=pl"
{
"success": true,
"data": {
"1": null,
"7": {
"title": "Counter-Strike: Condition Zero Pack",
"url": "https://gg.deals/pack/counter-strike-condition-zero-pack/",
"bundles": []
},
"1257696": {
"title": "Capcom Arcade Stadium Complete Pack",
"url": "https://gg.deals/pack/capcom-arcade-stadium-complete-pack/",
"bundles": [
{
"title": "Humble Capcom Retro Revival Pack",
"url": "https://gg.deals/bundle/the-new-humble-capcom-bundle-gets-you-over-60-games-for-just-20/",
"dateFrom": "2025-09-10 18:00:00",
"dateTo": "2025-09-23 18:00:00",
"tiers": [
{
"price": "89.54",
"currency": "PLN",
"gamesCount": null,
"games": [
{
"title": "Dungeons & Dragons: Chronicles of Mystara",
"url": "https://gg.deals/game/dungeons-dragons-chronicles-of-mystara/"
},
...
]
}
]
},
{
"title": "Fanatical - Build your own Capcom Masters Bundle",
"url": "https://gg.deals/bundle/fanaticals-byo-capcom-masters-bundle-packs-a-punch-with-top-tier-games/",
"dateFrom": "2026-04-29 13:05:00",
"dateTo": "2026-06-03 07:00:00",
"tiers": [
{
"price": "122.89",
"currency": "PLN",
"gamesCount": 2,
"games": [
...
]
},
{
"price": "180.99",
"currency": "PLN",
"gamesCount": 3,
"games": [
...
]
},
{
"price": "232.53",
"currency": "PLN",
"gamesCount": 4,
"games": [
...
]
}
]
}
]
}
}
} Retrieve All Active Bundles
To obtain a complete list of all currently active bundles featured on GG.deals, make a GET request to the following URL:
https://api.gg.deals/v1/bundles/active/
Query Parameters
-
key- Your unique API key, which can be generated in your settings. -
region(optional) - The region code for which bundle data should be returned. By default, bundles available in the USA are provided.
Valid region codes include:au,be,br,ca,ch,de,dk,es,eu,fi,fr,gb,ie,it,nl,no,pl,seandus. -
cursor(optional) - A pagination token used to retrieve subsequent pages of results. This parameter is automatically provided in thenextandpreviousURLs of the response and should not be constructed manually. -
offset(optional) - Used with thecursorparameter to specify the position within the result set. This parameter is automatically provided in pagination URLs and should not be modified manually.
Response
The response will be a JSON object containing a data field with an object that includes the following fields:
-
previous- The URL to the previous page of results (nullif the current response represents the first page of results). This URL contains acursorparameter, which is valid for one hour from the initial request. -
next- The URL to the next page of results (nullif the current response represents the last page of results). This URL contains acursorparameter, which is valid for one hour from the initial request. -
totalCount- The total number of active bundles available across all pages. -
bundles- An array containing a list ofBundleobjects representing the current page of active bundles.
The Bundle object contains the following fields:
-
title- The name of the bundle. -
url- The URL to the news article featuring this bundle (nullif this bundle was never featured in a news article on GG.deals). -
dateFrom- The date (in UTC) indicating when the bundle became available. -
dateTo- The date (in UTC) indicating when the bundle expires/expired (nullif the bundle has no known end date). -
tiers- An array containing a list ofBundleTierobjects representing the different pricing tiers available for this bundle.
The BundleTier object contains the following fields:
-
price- The price of this tier, represented as a string with two decimal places. -
currency- The three-letter currency code used for the price (e.g., USD, EUR, PLN). -
gamesCount- The number of games a customer can select from the available games list in this tier. This field is relevant only for "Build your own Bundle" type offerings. For example, ifgamesCountis2and thegamesfield contains 10 games, the customer can select any two games from that list.
This field isnullfor standard bundles, indicating that all games listed in the tier are included. -
games- An array containing a list ofBundleTierGameobjects representing all games available in this tier.
The BundleTierGame object contains the following fields:
-
title- The title of the game in our database. -
url- The URL of the game in our database.
Example
curl "https://api.gg.deals/v1/bundles/active/?key=mySecretKey®ion=pl"
{
"success": true,
"data": {
"previous": null,
"next": "https://api.gg.deals/v1/bundles/active/?key=mySecretKey&cursor=gzobstyv6LzYBZMukmtrnztDrLUvLDnQ®ion=pl&offset=100",
"totalCount": 102,
"bundles": [
{
"title": "Fanatical - Build your own Frightmare Bundle (Halloween 2024)",
"url": "https://gg.deals/bundle/fanaticals-build-your-own-frightmare-bundle-is-here-craft-a-pack-of-nightmares-from-666/",
"dateFrom": "2024-10-28 17:00:00",
"dateTo": "2024-11-26 07:00:00",
"tiers": [
{
"price": "28.20",
"currency": "PLN",
"gamesCount": 2,
"games": [
{
"title": "The Evil Within",
"url": "https://gg.deals/game/the-evil-within/"
},
...
]
},
{
"price": "49.36",
"currency": "PLN",
"gamesCount": 4,
"games": [
...
]
},
...
]
},
{
"title": "Fanatical - Build your own Tabletop Wargame Bundle",
"url": "https://gg.deals/bundle/fanatical-build-your-own-tabletop-wargame-bundle-is-a-strategic-choice-for-great-leaders/",
"dateFrom": "2024-10-29 17:00:00",
"dateTo": null,
"tiers": [
...
]
},
...
]
}
} Rate Limits
Your API key allows you to retrieve up to 100 records per minute,
with a maximum of 1000 per hour.
For the by-steam-app-id,
by-steam-sub-id and
by-steam-bundle-id endpoints, each ID counts as one record against your limits.
For the active endpoint, each request counts as one record regardless of the number of bundles returned.
Note that any invalid request also counts against these limits.
All API responses include the following headers with rate limit information:
x-ratelimit-limit- The total number of allowed requests within the current time frame.x-ratelimit-remaining- The number of remaining requests available within the current time frame.x-ratelimit-reset- The timestamp when the rate limits will reset.
If you exceed your rate limit, a 429 error (Too Many Requests) will be returned with
the following response:
{
"success": false,
"data": {
"name": "Too Many Requests",
"message": "You can fetch bundles info only for 100 games per minute. Try again later.",
"code": 429,
"status": 429
}
} 429 is also returned if you attempt to fetch more items than your remaining limit allows.
For example, if you try to fetch bundles for 10 games but your remaining limit is only 5, a 429 error will occur and no data will be returned. In such cases, you should either reduce the number of requested IDs or wait until your rate limit resets.
Changelog
This section tracks API changes and updates over time. If you want to be notified about changes in API, subscribe to this discussion on our forum.
-
2026-04-30 - Added
by-steam-sub-idandby-steam-bundle-idendpoints. - 2025-05-19 - Initial API release.