Epic Games Store game
A game's Epic Games Store page by its slug: title, ids, type, short and long description, developer, publisher, seller, release date, price, original price, discount and sale end date in the country, genres, features, platforms and every tag with its id, player rating (out of 5) and player poll results, audio and text languages, Windows and macOS system requirements (minimum and recommended), age ratings by country, social links and images. With edition_offers=1, also every offer for the game: editions (base game, editions, bundles), add_ons (DLC and in-game items) and other_offers, each with id, title, type, price, original price, discount, sale end date and images.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
slug | string | The part after store.epicgames.com/p/ (the-witcher-3-wild-hunt, fortnite). Or give url. Example: the-witcher-3-wild-hunt |
url | string | A store.epicgames.com game link instead of slug. |
country | string | Two-letter country code for prices and availability. Default US. Example: US |
locale | string | Language of texts, e.g. en-US, de, fr, ja, pt-BR. Default en-US. Example: en-US |
edition_offers | 0 | 1 | 1 to add the game's editions, add-ons and DLC with their prices. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/epic-games/v1/game?slug=the-witcher-3-wild-hunt" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/epic-games/v1/game",
params={"slug": "the-witcher-3-wild-hunt"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/epic-games/v1/game");
url.searchParams.set("slug", "the-witcher-3-wild-hunt");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).