# License Activation & Deactivation

The following articles explain how to activate or deactivate Licenses.

### License Activation Types

The API provides options for activating/deactivating licenses using either the Online method or Offline method. For details, see [**License Activation Types**](/license-entitlements/license-activation-types.md).

### License Authorization Method

There are two types of product licenses based on how the client application authorizes itself to interact with a license:

#### Key-based product licenses

Each license assigned to the product requires the client to provide a license key in order to activate, check or deactivate the license (property `license_key` in the request body).

The license response object will contain the `license_key` property, and the property `product_details.authorization_method` will be the string `license_key`.

#### User-based product licenses

Each license assigned to the product has a corresponding "license user" instead of a license key. There are multiple ways a user-based product license can be accessed when making a request:

* By providing the values for `username` and `password` for the license user
* By providing the values for `id_token` and `customer_account_code` if using single sign-on authentication using Implicit grant
* By providing the values for `code` and `customer_account_code` if using single sign-on authentication using Authorization code grant

In the license response object, `product_details.authorization_method` will have the string value `user` and the response object will contain the `user` object with information on the license user.

### License Types

The `license_type` property defines one of the 4 types of licenses based on their duration and how the license is used:

* Perpetual: `perpetual`
* Time-limited: `time-limited`
* Subscription: `subscription`
* Consumption: `consumption`

For more information see: [**License Types**](/license-entitlements/license-types.md)

### API Methods

For more information see: [**License Types**](/license-entitlements/license-types.md)

### API Methods

* [**Activate License (Online Method)**](/license-api/license-activation-and-deactivation/activate-license-online-method.md)
* [**Activate License (Offline Method)**](/license-api/license-activation-and-deactivation/activate-license-offline-method.md)
* [**Activate Bundle (Online Method)**](/license-api/license-activation-and-deactivation/activate-bundle-online-method.md)
* [**Activate Bundle (Offline Method)**](/license-api/license-activation-and-deactivation/activate-bundle-offline-method.md)
* [**Deactivate License (Online Method)**](/license-api/license-activation-and-deactivation/deactivate-license-online-method.md)
* [**Deactivate License (Offline Method)**](/license-api/license-activation-and-deactivation/deactivate-license-offline-method.md)
* [**Deactivate Bundle (Online Method)**](/license-api/license-activation-and-deactivation/deactivate-bundle-online-method.md)
* [**Deactivate Bundle (Offline Method)**](/license-api/license-activation-and-deactivation/deactivate-bundle-offline-method.md)


---

# Agent Instructions: 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/license-api/license-activation-and-deactivation.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.
