Epic Free Games
API
No auth required. GET request:
https://store-site-backend-static.ak.epicgames.com/freeGamesPromotions?locale={locale}&country={country}&allowCountries={country}
Parameters (match user's language/region, default to zh-CN / US):
locale: BCP 47 format (e.g.zh-CN,en-US,ja-JP,ko-KR)country/allowCountries: ISO 3166-1 alpha-2 (e.g.US,CN,JP,KR)
Note: Some regions have restricted catalogs. Use US for the most complete game list.
Steps
- Fetch the API using
curl(the response is large,web_fetchmay truncate it) - Parse
data.Catalog.searchStore.elementsfrom the JSON response - Distinguish current vs upcoming by
promotionsfield:promotions.promotionalOffershas value → currently freepromotions.upcomingPromotionalOffershas value → upcoming free
- Each promotion contains
startDateandendDate(UTC ISO 8601) - Ignore entries where
offerTypeis notBASE_GAME(DLCs, add-ons, etc.)
Output Format
Group by "currently free" and "upcoming free", show game title, store link, and claim period (converted to local timezone). Date format: match the user's locale.
Store link: https://store.epicgames.com/{locale}/p/{pageSlug} where pageSlug is from offerMappings[0].pageSlug.
Scan to join WeChat group