Skip to content

Releases: Fortnite-API/py-wrapper

v3.3.0

Choose a tag to compare

@Luc1412 Luc1412 released this 02 Nov 22:45
d2bf52c

Breaking Changes

  • Drop support for Python 3.9. The minimum supported Python version is now 3.10.

New Features

  • Added support for CosmeticType.SIDEKICK.

Bug Fixes

  • Fixed an issue that caused Asset.resize to raise TypeError instead of ValueError when the given size isn't a power of 2.
  • Fixed an issue that caused ServiceUnavailable to be raised with a static message as a fallback for all unhandled http status codes. Instead HTTPException is raised with the proper error message.
  • Fixed typing of our internal "Enum-like" classes. They are now typed as a Enum.

Miscellaneous

  • Added official support for Python 3.14.

v3.2.1

Choose a tag to compare

@Luc1412 Luc1412 released this 16 Dec 23:40

Bugfixes

  • Fixed an issue due a change from Epic that causes VariantBean to not have a CustomGender. It now uses CustomGender.UNKNOWN in such case instead of raising an exception.
  • Fixed typo within fallback system for TileSize as raise keyword was used instead of return.
  • Fixed an issue that caused a KeyError to be raised when using Client.search_br_cosmetics or SyncClient.search_br_cosmetics without multiple parameter.

v3.2.0

Choose a tag to compare

@Luc1412 Luc1412 released this 25 Nov 10:42

This version introduces support for new Shoes cosmetic type, drops support for Python 3.8, and adds safeguards and future proofing against potential API changes.

Breaking Changes

  • Drop support for Python 3.8. The minimum supported Python version is now 3.9.
  • CreatorCode.status and CreatorCode.disabled have been removed, since both returned a static value. Disabled creator codes always raise NotFound when trying to fetch them.
  • CreatorCode.verified has been removed, since it isn't used within the affiliate system. It always returns False.
  • All enums now use an internal "Enum-like" class to handle unknown values, instead of the built-in enum.Enum. This potentially breaks type checks, but does not break core functionality or change the enum interface; you can use them the same.

New Features

  • Added support for CosmeticType.SHOES.

Documentation

  • Document Forbidden to be raised by Client.fetch_br_stats and SyncClient.fetch_br_stats.

Miscellaneous

  • Add safeguards against Epic Games' API changing or providing invalid values in API responses.
    • All enums now can handle unknown values via an internally defined "Enum-like" class. If the API returns a value not in the enum, it will be stored as an attribute on the enum object. The interface for using this class is the same as using enum.Enum.
    • TileSize no longer raises ValueError when an unknown value is passed to it. Instead, it now has a fallback value of -1 for both width and height.

v3.1.0

Choose a tag to compare

@Luc1412 Luc1412 released this 23 Oct 17:34
efe345b

This version introduces new data for shop-related objects, reflecting the updated shop layouts and the Fortnite webshop. Additionally, it includes functions that were omitted in version v3.0.0 and addresses a design decision that results in a breaking change.

Breaking Changes

  • ShopEntryNewDisplayAsset has been renamed to NewDisplayAsset.
  • Alias BannerColor.colour has been removed for consistency. The API does not use aliases, use BannerColor.color instead.

New Features

  • Added new object ProductTag.
  • Added attribute MaterialInstance.product_tag.
  • Added new object ShopEntryOfferTag.
  • Added new object ShopEntryColors.
  • Added new object RenderImage.
  • Added attribute ShopEntryLayout.rank.
  • Added attribute NewDisplayAsset.render_images.
  • Added attribute ShopEntry.offer_tag.
  • Added attribute ShopEntry.colors.

Bug Fixes

  • Fixed an issue where type and time_window parameters were not respected when fetching stats.
  • Playlist.images now returns None when no images are available, instead of an empty dict.
  • Bug fix for returning naive datetime objects in rare cases. All datetime objects are UTC aware.

Documentation

  • Added response flags documentation to explain how to use the ResponseFlags class, how to enable response flags, which response flags are available, and when you should enable them.
  • Added opt-in directive in the documentation on attributes that require a specific response flag to be set. This ensures users know of the response flags required to access certain attributes when using the API.

Miscellaneous

  • Previously, fetching specific game mode news raised ServiceUnavailable due to improper handling from Fortnite-API.com. This has been fixed within the API. Now, when no news is available, NotFound is raised instead. This change is also reflected in the documentation.

v3.0 Wrapper Rewrite

Choose a tag to compare

@Luc1412 Luc1412 released this 30 Aug 14:01

This release encompasses the Version 3.0 bump of the Fortnite API Python wrapper. This major transition gives the library a complete facelift, focusing on asynchronous functionality while still supporting the synchronous library you've come to know.

Features and Additions

  • Complete overhaul of every object, method, and property in the library. Now, fetching information from the API is done through methods on a Client and SyncClient class. This is to make the library easier to use and maintain, while still being welcoming for new programmers.
  • Complete overhaul of documentation. This includes a major shift to readthedocs powered by Sphinx for easier documentation.
  • Speed improvements for large endpoints, such as fetching all available game cosmetics at once.
  • Strictly type hinted with high code standards.

Migration & Getting started

Version 3.0 introduces breaking changes, so existing projects will need updates. To assist you, we've created a migration guide, to help make the transition as smooth as possible.

For new users, the new documentation provides everything you need to get started. Visit it at https://fortnite-api.readthedocs.io/.

Here's a quick example of how the new Client works:

import asyncio
import fortnite_api 

async def main() -> None:
    async with fortnite_api.Client() as client:
        all_cosmetics: fortnite_api.CosmeticsAll = await client.fetch_cosmetics_all()

        for br_cosmetic in all_cosmetics.br:
            print(br_cosmetic.name) 

if __name__ == "__main__":
    asyncio.run(main())

Fix offer image being optional

Choose a tag to compare

@Luc1412 Luc1412 released this 08 Aug 22:44
  • ShopMaterialInstanceImages.offer_image_url is now optional

Fix issue with new CosmeticCompatibleModes

Choose a tag to compare

@Luc1412 Luc1412 released this 24 May 14:14
  • Implemented a temporary fix, to handle new values for CosmeticCompatibleMode

New Shop Tile Sizes

Choose a tag to compare

@Luc1412 Luc1412 released this 03 May 19:47
  • Added new QUAD_WIDE and PENTA_WIDE ShopTileSizes

Update shop tile sizes

Choose a tag to compare

@Luc1412 Luc1412 released this 18 Apr 07:52
  • Update the values of the ShopTileSize, since with the latest shop rotation all have been changed

Fix issue with BrCosmeticType Booster value

Choose a tag to compare

@Luc1412 Luc1412 released this 29 Mar 11:38
  • BrCosmeticType booster cosmetic type got an inproper enum value that has been fixed