> For the complete documentation index, see [llms.txt](https://docs.licensespring.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.licensespring.com/sdks/python-sdk/python-changelog.md).

# Python Changelog

### 3.12.0 (09.04.2026)

* **Added** - optional flag `enable_airgapped_skip_time_check` to skip time check on airgap licenses
* **Fix** - handling infinite overages on licenses
* **Added** - support for multiple redirect\_uris from sso\_url endpoint
* **Added** - User license retrieval via SSO credentials

### 3.11.1 (27.02.2026)

* **Fix** - offline signature verification for OAuth

### 3.11.0 (11.2.2026)

* **Added** - license feature borrow support

### 3.10.0 (8.1.2026)

* **Added** - SSO support on the `floating_borrow` method
* **Added** - optional `device_variables` to `deactivate_offline`

### 3.9.0 (4.12.2025)

* **Added** - `activation_date` getter to the `License` object

### 3.8.2 (14.11.2025)

* **Fix** - handling non ascii characters

### 3.8.1 (11.11.2025)

* **Fix** - handling feature local consumptions

### 3.8.0 (28.9.2025)

* **Added** Floating server v2 support
* **Added** support for the offline signature v2
* **Removed** support for the python 3.9 version ([**EOL**](https://devguide.python.org/versions/))

### 3.7.0 (13.6.2025)

* **Added** bundle support
* **Added** company getter on License object

### 3.6.1 (23.5.2025)

* Code improvements via refactoring

### 3.6.0 (25.4.2025)

* **Added** `product_details` method inside the `LicenseManager`
* **Added** [**demo app**](https://sdk.licensespring.com/Python%20SDK/v3.6.0/sample_app.zip)

### 3.5.0 (24.3.2025)

* **Added** optional param `env` on `license check` and `product details`

### 3.4.1 (17.3.2025)

* **Fix** - Windows licensefile path setter method

### 3.4.0 (5.3.2025)

* **Added** OAuth support

### 3.3.0 (14.2.2025)

licensefile

* **Added** `get_sso_url` (SSO) method

### 3.2.0 (5.2.2025)

* **Packages update**:
  * Updated `requests` from `2.31.0` to `2.32.3`
  * Updated `pycryptodome` from `3.19.0` to `3.21.0`
  * Updated `winregistry` from `1.1.1` to `2.1.0`
  * Updated `charset-normalizer` from `3.3.0` to `3.4.1`
  * Updated `idna` from `3.4` to `3.10`
  * Updated `urllib3` from `2.0.7` to `2.3.0`
* As of [**Python 3.8's end of life**](https://devguide.python.org/versions/), we no longer support **Python 3.8**. Please upgrade to **Python 3.9 or later**.

### 3.1.8 (3.2.2025)

* License agreemnt updated
* **Added** the new hardware id provider: `HardwareIdProviderSource` licensefile
* **Added** `order_store_id` method

### 3.1.7 (11.11.2024)

* **licensefile**
  * **Added** `allow_negative_consumptions` support
  * **License**
    * Methods: `check`, `deactivate`, `sync_feature_consumption`, `sync_consumption`, `floating_borrow`, `floating_release`, `check_feature` are supported for **Floating Server**
* **Added** `FloatingAPIClient`
  * **Added** `auth`, `register_user`, `unregister_user`, `unregister_all`, `borrow`, `add_consumption`, `add_feature_consumption`, `feature_register`, `feature_release`
* **Added** `FloatingManager`

### 3.1.6 (3.10.2024)

licensefile

* **LicenseManager**
  * **Added** `get_air_gap_activation_code`
  * **Added** `activate_air_gap_license`
* **License**
  * **Added** `get_deactivation_code`
  * **Added** `deactivate_air_gap`

### 3.1.5 (18.09.2024)

licensefile

* **Added** `BaseManager` object:
  * **Added** `current_config`, `reconfigure`, `is_license_file_corrupted`, `clear_local_storage`, `data_location`, `license_file_name`
* LicenseManager:
  * **Added** `get_version_list`
  * **Added** `get_installation_file`
  * **Added** `get_customer_license_users`
  * **Added** `get_user_licenses`
  * **Added** optional argument `throw_e` inside `is_online` method

api

* **Added** `user_licenses`

### 3.1.4 (23.08.2024)

licensefile

* removed `get_custom_field` method from License

### 3.1.3 (21.08.2024)

API

* added optional `license_id` argument to support user based licensing

licensefile

* added `DateTimeHelper` for handling time operations
* added optional `unique_license_id` argument to support user based licensing
* added various getter methods

### 3.1.1

API

* added optional `variables` argument to `activate_license` and `activate_offline_dump` methods

licensefile

* added **FeatureWatchDogs** : `setup_feature_watch_dog`, `stop_feature_watch_dog`

### 3.1.0

Licensefile

* **Added Device Variables** :`get_device_variables`, `get_device_variable`, `send_device_variables` and `set_device_variables`
* **Added Product Details**: `product_details`
* **Added Trial key**: `get_trial_license`
* **Grace period bug fix** (exception argument added)

### 3.0.0

API

* removed unused `hardware_id` argument from `activate_offline_load` method
* added `check_offline_load` method for reading license refresh files
* removed `password` argument from `deactivate_license`, `deactivate_offline_dump`, `add_consumption`, `add_feature_consumption`

Licensefile

* added argument `password` on `floating_borrow` method
* added offline activation and deactivation
* guard file
* update offline license method

{% hint style="warning" %}
Breaking changes:

API

* removed unused arguments from: `activate_offline_load`, `deactivate_license`, `deactivate_offline_dump`, `add_consumption, add_feature_consumption`

Licensefile

* added argument `password` on `floating_borrow` method
  {% endhint %}

### 2.0.1

API

* added optional `bundle_code` argument to `APIClient` methods which also accept `product` argument

Licensefile

* Added functionality for working with local license
* Added consumption feature
* Added borrowing and releasing of floating license
* Added license feature check
* Added thread safety for licensefile
* Watchdog
* Added license monitoring in a background threads
* Support for 3.8+ Python version

### 2.0.0

* `hardware` - hardware id provider logic extracted from `api` to its own `hardware` module
* `webhook` - added `webhook` module for receiving and validating webhook events
* `api` - APIClient methods `deactivate_license`, `deactivate_offline`, `floating_release`, `change_password` and `floating_feature_release` return textual data as received instead of boolean
* `licensefile` - added `licensefile` module used for working with local license files

### 1.3.1

* added `include_latest_version` and `include_custom_fields` optional arguments to `product_details`

### 1.3.0

* `track_device_variables` returns device variables data instead of a boolean
* added `check_license_feature` and `floating_feature_release` api functions
* deprecated signature v1 checks
* added signature v2 check on every response with returned content
* updated dependencies

### 1.2.0

* Added SSO params for license activation

### 1.1.0

* Added `PlatformIdProvider`

### 1.0.7

* Fix SDK version definition

### 1.0.6

* Added license signature v2 check on offline activation

### 1.0.5

* Added `response_type` argument for `sso_url` function

### 1.0.4

* Added license signature v2 check

### 1.0.3

* Docs typo fix (add\_consumption -> add\_feature\_consumption)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.licensespring.com/sdks/python-sdk/python-changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
