Epic Games APIstore.epicgames.com ↗
Access Epic Games Store data via API: free games, catalog browsing, game details, search, genres, news, and homepage features across 11 endpoints.
What is the Epic Games API?
The Epic Games Store API covers 11 endpoints that surface game catalog data, pricing, free game promotions, and editorial content from store.epicgames.com. The get_free_games endpoint returns current and upcoming free titles with promotional date ranges, while get_game_details retrieves per-title data including genres, ESRB rating, star rating, developer, publisher, and description by passing a URL slug.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/af5648f3-99a5-49a7-a148-2369345fc030/get_discover_something_new' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace store-epicgames-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Epic Games Store SDK — discover free games, browse catalog, get details."""
from parse_apis.epic_games_store_api import EpicGames, Sort, SortDir, FreeGameStatus, GameNotFound
client = EpicGames()
# List currently free games — capped iteration
for game in client.freegames.list_available_now(limit=3):
print(game.name, game.status, game.offer_date_range)
# Search for a game by keyword
result = client.searchresults.search(query="fortnite", limit=1).first()
if result:
print(result.title, result.price)
# Browse catalog sorted by price ascending
for game in client.cataloggames.browse(sort_by=Sort.PRICE, sort_dir=SortDir.DESC, count=3, limit=3):
print(game.title, game.price, game.discount_percentage)
# Fetch full game details with typed error handling
try:
detail = client.games.get(game_slug="fortnite")
print(detail.title, detail.star_rating, detail.publisher)
except GameNotFound as exc:
print(f"Game not found: {exc.game_slug}")
# Get latest news
article = client.newsarticles.list(limit=1).first()
if article:
print(article.title, article.date, article.url)
print("exercised: freegames.list_available_now / searchresults.search / cataloggames.browse / games.get / newsarticles.list")
Returns games from the Discover Something New section on the Epic Games Store homepage. These are recently highlighted or newly released titles with pricing and badges.
No input parameters required.
{
"type": "object",
"fields": {
"items": "array of game objects with title, price_label, badge, image_url, product_url, timestamp"
},
"sample": {
"data": {
"items": [
{
"badge": null,
"title": "ZERO PARADES: For Dead Spies",
"image_url": "https://cdn1.epicgames.com/spt-assets/4b09c4deba1d4d36acdcd079dfe698ff/zero-parades-11fr0.jpg",
"timestamp": "2026-06-11T03:02:37.849987+00:00",
"price_label": "$39.99",
"product_url": "https://store.epicgames.com/en-US/p/zero-parades-ed90f8"
}
]
},
"status": "success"
}
}About the Epic Games API
Catalog and Search
browse_games exposes the full EGS catalog with offset-based pagination via the start parameter. You can filter by category (e.g. games/edition/base, Apps), tag for genre identifiers, and control ordering via sort_by and sort_dir. Each result in items includes title, price, original_price, discount_percentage, image_url, product_url, and offer_type. search_games accepts a query string and returns up to 20 matches ranked by relevance, each with title, type, price, and product_url.
Game Details and Metadata
get_game_details takes a game_slug string — the URL identifier from an EGS product page, such as ghostrunner-2 — and returns a detailed record. Response fields include description, genres (array of strings), features, developer, publisher, price, esrb_rating, and star_rating out of 5. If ESRB or rating data is unavailable for a title, those fields return null.
Free Games and Promotions
get_free_games returns both currently free and upcoming free titles, each with name, status (FREE NOW or COMING SOON), and offer_date_range. The list refreshes weekly in line with Epic's promotional cycle. get_free_games_now and get_free_games_coming_soon are pre-filtered subsets of the same data, useful when you only want one status type without client-side filtering.
Homepage and Editorial Content
get_homepage_featured returns the hero carousel items with title, tagline, badge, and product_url. get_discover_something_new and get_top_new_releases surface two additional homepage sections with pricing and badge metadata. get_popular_genres lists genre categories with name, slug, and image_url. get_news returns recent store news articles including title, summary, date, category, image_url, and url.
The Epic Games API is a managed, monitored endpoint for store.epicgames.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when store.epicgames.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official store.epicgames.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a free games alert bot using
get_free_games_nowandoffer_date_rangeto notify users before a promotion ends. - Track game pricing and discounts across the catalog by polling
browse_gameswithdiscount_percentageandoriginal_pricefields. - Populate a game database with structured metadata — genres, features, ESRB rating, publisher — via
get_game_details. - Display a homepage widget showing featured promotions and hero carousel items using
get_homepage_featured. - Build a genre discovery UI with cover images by pulling category names and slugs from
get_popular_genres. - Aggregate EGS news articles by category and date for a gaming news aggregator using
get_news. - Enable game search autocomplete in a third-party app by querying
search_gameswith a user-typed keyword.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Epic Games have an official public developer API?+
How does `get_game_details` differ from `browse_games` in terms of returned data?+
browse_games returns summary-level data per title: title, price, original_price, discount_percentage, image_url, product_url, and offer_type. get_game_details goes deeper for a single title identified by game_slug, adding description, genres, features, developer, publisher, esrb_rating, and star_rating. Use browse_games to scan the catalog and get_game_details to enrich individual records.How fresh is the free games data, and does the API reflect mid-week changes?+
get_free_games endpoint reflects the current promotional state at the time of the request. If Epic makes an unscheduled change mid-cycle, the data will reflect that change on the next fetch, but the API does not push updates — it is pull-based.Does the API return user reviews or written review text for games?+
get_game_details returns a numeric star_rating out of 5 but does not include individual user review text, review counts, or review breakdowns. You can fork this API on Parse and revise it to add an endpoint that retrieves per-game review content.Can I retrieve DLC or add-on listings separately from base games?+
browse_games endpoint supports a category parameter that can be set to games/edition/base to target base games, or Game and Apps for broader filtering. DLC as a distinct filterable category is not explicitly documented in the current endpoint set. You can fork the API on Parse and revise the browse_games endpoint to add a DLC-specific category filter.