API Reference

API Wrapper

class epicstore_api.api.EpicGamesStoreAPI(locale='en-US', country='US', session=None)[source]

Bases: object

Class for interacting with EGS web API without user credentials TODO?.

fetch_catalog(count: int = 30, product_type: EGSProductType | str = EGSProductType.ALL_PRODUCTS, namespace: str = 'epic', sort_by: str = 'effectiveDate', sort_dir: str = 'DESC', start: int = 0, keywords: str = '', categories: list[EGSCategory] | str | None = None) dict[source]

Fetches a catalog with given parameters.

Parameters:
  • count – Count of products you need to fetch.

  • product_type – Product type(s) you need to get from EGS.

  • namespace – Products namespace (epic = all namespaces).

  • sort_by – Parameter which EGS will use to sort products.

  • sort_dir – You can use only ASC or DESC:

  • ASC: Sorts from higher sort_by parameter to lower;

  • DESC: Sorts from lower sort_by parameter to higher.

Parameters:
  • start – From which game EGS should start.

  • keywords – Search keywords.

  • categories – Categories you need to fetch.

Return type:

dict

Raises:

ValueError if sort_by not equals to ASC or DESC.

fetch_catalog_tags(namespace: str = 'epic') dict[source]

Fetches tags for a products with namespace namespace.

Parameters:

namespace – Products’ namespace (epic = all)

fetch_feed(offset: int = 0, count: int = 10, category: str = '') dict[source]

Fetches Epic Games Store feed by given params.

Parameters:
  • offset – From which news (index) we need to start.

  • count – Count of the news we need to fetch.

  • category – News categories.

fetch_media(media_ref_id: str) dict[source]

Returns media-file (type of the file, its url and so on) by the file’s media ref ID.

Parameters:

media_ref_id – File’s media ref ID.

fetch_multiple_media_files(*media_ref_ids: str)[source]

Equivalent to fetch_media function, except this one can fetch a few media files at the same moment (using only one request).

fetch_prerequisites(*offers: OfferData) dict[source]

Fetches offer(s) prerequisites.

Parameters:

offers – Offer(s) we need to get prerequisites from

fetch_promotions(namespace: str = 'epic') dict[source]

Fetches a global promotions.

Parameters:

namespace – Products’ namespace (epic = all).

fetch_store_games(count: int = 30, product_type: EGSProductType | str = EGSProductType.ALL_PRODUCTS, allow_countries: str = 'US', namespace: str = '', sort_by: str = 'title', sort_dir: str = 'ASC', release_date: str | None = None, start: int = 0, keywords: str = '', categories: list[EGSCategory] | str | None = None, *, with_price: bool = True) dict[source]

Fetches a store games with given parameters.

Parameters:
  • count – Count of products you need to fetch.

  • product_type – Product type(s) you need to get from EGS.

  • allow_countries – Products in the country. Default to ‘US’.

  • namespace – Products namespace (’’ = all namespaces).

  • sort_by – Parameter which EGS will use to sort products:

  • releaseDate: Sorts by release date;

  • title: Sorts by game title, alphabetical.

Parameters:

sort_dir – You can use only ASC or DESC:

  • ASC: Sorts from higher sort_by parameter to lower;

  • DESC: Sorts from lower sort_by parameter to higher.

Parameters:

release_date – Available when sort_by is ‘releaseDate’.

  • Date is in ISO 8601 format. General format: f’[{startDate}, {endDate}]’.

  • Example: ‘[2019-09-16T14:02:36.304Z, 2019-09-26T14:02:36.304Z]’

  • Leaving startDate or endDate blank will not limit start/end date.

Parameters:
  • start – From which game EGS should start.

  • keywords – Search keywords.

  • categories – Categories you need to fetch.

  • with_price – To fetch price or not.

Return type:

dict

Raises:

ValueError if sort_by not equals to ASC or DESC.

get_addons_by_namespace(namespace: str, categories: str = 'addons|digitalextras', count: int = 250, sort_by: str = 'releaseDate', sort_dir: str = 'DESC')[source]

Returns product’s addons by product’s namespace.

Parameters:

namespace – Product’s namespace, can be obtained using the

epicstore_api.api.EpicGamesStoreAPI.get_product() function.

Parameters:
  • categories – Addon’s categories.

  • count – Count of addon’s you want EGS to give you.

  • sort_by – By which key EGS should sort addons.

  • sort_dir – You can use only ASC or DESC:

  • ASC: Sorts from higher sort_by parameter to lower;

  • DESC: Sorts from lower sort_by parameter to higher.

get_bundle(slug: str) dict[source]

Returns a bundle’s data by slug.

Parameters:

slug – Bundle’s slug.

get_collection(collection: EGSCollectionType) dict[source]

Returns games from the collection by the given collection type (see the documentation for CollectionType class).

Parameters:

collection – Needed collection type.

get_epic_store_status() dict[source]

Returns an Epic Games Store server status.

get_free_games(allow_countries: str | None = None) dict[source]

Returns the games from “Free Games” section in the EGS.

get_offers_data(*offers: OfferData, should_calculate_tax: bool = False, include_sub_items: bool = False) dict[source]

Get offer(s) full data by offers’ id and namespace.

Parameters:
  • offers – Offers you need to get data from.

  • should_calculate_tax – Should EGS API calculate tax for offers?

  • include_sub_items – Should EGS API include sub-items for offers?

get_product(slug: str) dict[source]

Returns a product’s data by slug.

Parameters:

slug – Product’s slug.

get_product_mapping() dict[source]

Returns product mapping in {namespace: slug} format.

get_product_reviews(product_sku: str) dict[source]

Returns product’s reviews by product’s sku.

Parameters:

product_sku – SKU of the Product. Usually just slug of the

product with EPIC_ prefix.

get_store() dict[source]

Returns a JSON data about store page.

class epicstore_api.api.OfferData(namespace, offer_id)[source]

Bases: NamedTuple

namespace: str

Alias for field number 0

offer_id: str

Alias for field number 1

API Exceptions

exception epicstore_api.exc.EGSException(message, error_code=None, service_response=None)[source]

Bases: Exception

Class for EGS errors, all data about error is placed in exception_data.

exception epicstore_api.exc.EGSNotFound(message, error_code=None, service_response=None)[source]

Bases: EGSException

All errors which error code ends with not_found.