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

# Developers

- [Licensing & Management APIs](https://docs.nalpeiron.com/zentitle2-docs/developers/licensing-and-management-apis.md): Choose between Zentitle2's Licensing API for on-premises and SDK-based apps, and its Management API for SaaS and back-office integrations, and get the credentials you need to start using them.
- [API docs](https://docs.nalpeiron.com/zentitle2-docs/developers/licensing-and-management-apis/api-docs.md): Find the Zentitle2 Management API and Licensing API documentation for SaaS and on-premises applications.
- [API Rate limits](https://docs.nalpeiron.com/zentitle2-docs/developers/licensing-and-management-apis/api-rate-limits.md): Learn what can trigger Zentitle2 API rate limiting and how to request a higher rate limit from support.
- [Collecting credentials for integration](https://docs.nalpeiron.com/zentitle2-docs/developers/licensing-and-management-apis/collecting-credentials-for-integration.md): Collect the Tenant ID, API URLs, Product ID, and activation codes or client credentials you need to wire up the Zentitle2 Licensing or Management API.
- [API Versioning](https://docs.nalpeiron.com/zentitle2-docs/developers/licensing-and-management-apis/api-versioning.md): Learn how Zentitle2's date-based API versioning works and how to select or check the API version used in a request.
- [API calls and their usage](https://docs.nalpeiron.com/zentitle2-docs/developers/licensing-and-management-apis/api-calls-and-their-usage.md): Learn how Zentitle2 counts API calls across licensing models, and how to reduce call volume with longer lease periods.
- [The Licensing Client (.NET)](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net.md): Integrate your .NET application with the Zentitle2 Licensing API using the Zentitle.Licensing.Client SDK, either through the recommended IActivation class or the lower-level LicensingClient proxy.
- [Configure NuGet Source](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/configure-nuget-source.md): If you want to use a nuget package to add Zentitle Licensing Client to your application you will have to add our GitLab Package Registry as a nuget source in your IDE.
- [Configuring the Activation](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/configuring-the-activation.md): Configure a .NET Activation instance — setting the tenant ID, product ID, seat ID, storage, online/offline activation, logging, and state-transition callback — to represent a license seat in your appl
- [Configuring the SharedActivation](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/configuring-the-sharedactivation.md): Configure a .NET SharedActivation instance to add system-wide locking on top of a regular Activation, coordinating license access across multiple processes.
- [Working with SharedActivation](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/working-with-sharedactivation.md): Use the ExecuteWithLock methods on a .NET SharedActivation instance to safely run operations on a license activation shared across multiple processes.
- [Licensing API Nonce](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/licensing-api-nonce.md): Learn how the .NET SDK automatically reads, stores, and passes the Licensing API nonce as part of the activation payload.
- [IActivation interface](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/iactivation-interface.md): Use the .NET IActivation interface to read license info and features and to call activation methods such as Initialize, Activate, Deactivate, and RefreshLease.
- [Zentitle2Core Library](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/zentitle2core-library.md): Integrate the Zentitle2Core C++ library's device fingerprinting, offline activation, and secure storage functionality into your .NET application via the Licensing Client's bindings.
- [Exceptions](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/exceptions.md): Look up the common exceptions the .NET licensing SDK can throw — ActivationException, IllegalActivationOperationException, and LicensingApiException — and what each one means.
- [FAQ](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/faq.md): Frequently Asked Questions
- [Release Notes](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/release-notes.md)
- [The Licensing Client (C++)](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++.md): Integrate your native C++ application with the Zentitle2 Licensing API using the ZentitleLicensingClient SDK, either through the recommended IActivation interface or the lower-level ActivationImpl cla
- [Configuring the Activation](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++/configuring-the-activation.md): Configure a C++ Activation instance, setting the tenant ID, product ID, seat ID, storage, and online/offline activation options to represent a license seat in your native application.
- [Licensing API Nonce](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++/licensing-api-nonce.md): Learn how the C++ SDK automatically handles reading, storing, and passing the API nonce as part of the IPersistence interface.
- [IActivation interface](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++/iactivation-interface.md): The license state can be accessed and manipulated through the IActivation interface. Let's look more closely at the most common licensing use cases and how they can be handled using our SDK.
- [Zentitle2Core Library](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++/zentitle2core-library.md): Learn how the C++ Licensing Client integrates the low-level Zentitle2Core library to load its native binaries and expose device fingerprinting, offline activation, and secure storage.
- [Exceptions](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++/exceptions.md): Look up the C++ SDK's exception hierarchy — including SDKException, StateException, DataValidationException, and LicensingApiException — and what triggers each one.
- [Release Notes](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++/release-notes.md): Browse the version history and downloads for the Zentitle2 C++ SDK.
- [The Licensing Client (Java)](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java.md): Integrate the Zentitle2 Licensing API into your Java application using the IActivation interface or the lower-level LicensingApiClient class.
- [Configure JAR Source](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/configure-jar-source.md): If you want to use a JAR package to add Zentitle Licensing Client to your application you will have to add our GitLab Package Registry as a JAR source in your IDE.
- [Configuring the Activation](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/configuring-the-activation.md): Configure an Activation instance in the Java SDK by setting the tenant ID, product ID, seat ID, storage, and online or offline activation options.
- [Configuring the SharedActivation](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/configuring-the-sharedactivation.md): Configure a SharedActivation instance in the Java SDK to add system-wide locking for license activations shared across multiple processes.
- [Working with SharedActivation](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/working-with-sharedactivation.md): Execute operations safely on a SharedActivation instance in the Java SDK using the executeWithLock methods for cross-process synchronization.
- [Licensing API Nonce](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/licensing-api-nonce.md): Learn how the Java SDK automatically handles reading, storing, and passing the API nonce as part of the IPersistence interface.
- [IActivation interface](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/iactivation-interface.md): Learn how to access and manipulate license state through the Java SDK's IActivation interface, including its methods, states, and feature operations.
- [Zentitle2Core Library](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/zentitle2core-library.md): Integrate the Zentitle2Core native binaries into a Java application to enable device fingerprinting, offline activation, and secure storage.
- [Exceptions](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/exceptions.md): Look up the most common exceptions the Java SDK can throw, including ActivationException, IllegalActivationOperationException, ApiException, and LicensingApiExceptionApiError.
- [FAQ](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/faq.md): Frequently Asked Questions
- [Release Notes](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/release-notes.md): Below, you will find a list of SDK releases. You can download the zip file with source code and compiled version, or use our package registry.
- [The Zentitle2Core Library (C++)](https://docs.nalpeiron.com/zentitle2-docs/developers/the-zentitle2core-library-c++.md): The documentation presents the functionalities and potential applications of the Zentitle2Client library, developed in C++, as a tool ensuring safety and reliability in software licensing processes. ​
- [Security](https://docs.nalpeiron.com/zentitle2-docs/developers/the-zentitle2core-library-c++/security.md): Learn how the Zentitle2Core library uses FIPS 140-certified OpenSSL and a single-file C++ DLL design to secure its cryptographic operations.
- [Offline Activation](https://docs.nalpeiron.com/zentitle2-docs/developers/the-zentitle2core-library-c++/offline-activation.md): Implement offline activation in the Zentitle2Core C++ library by generating and parsing encrypted activation request and response tokens.
- [Generating Device Fingerprint](https://docs.nalpeiron.com/zentitle2-docs/developers/the-zentitle2core-library-c++/generating-device-fingerprint.md): Generate a device fingerprint with the Zentitle2Core C++ library using its FINGERPRINT\_OPTION constants and generateDeviceFingerprint functions.
- [Using the Zentitle2Core Library](https://docs.nalpeiron.com/zentitle2-docs/developers/the-zentitle2core-library-c++/using-the-zentitle2core-library.md): Generate a device fingerprint on Windows using standard C++ by dynamically loading the Zentitle2Core DLL with the default fingerprint option.
- [Troubleshooting and FAQs](https://docs.nalpeiron.com/zentitle2-docs/developers/the-zentitle2core-library-c++/troubleshooting-and-faqs.md): This page deals with frequently asked questions related to the Zentitle2Core library.
- [Platform Summary](https://docs.nalpeiron.com/zentitle2-docs/developers/platform-summary.md): Get a quick overview of the Zentitle2 platform's architecture and capabilities, including its API-first, multi-tenant, Kubernetes-based design built for SaaS, hybrid, on-prem, and hardware application
- [Turboscale architecture](https://docs.nalpeiron.com/zentitle2-docs/developers/platform-summary/turboscale-architecture.md): Learn how Zentitle2's Turboscale architecture automatically scales infrastructure — using Horizontal Pod Autoscaling, Karpenter node provisioning, and AWS RDS Aurora — to match demand across the stack
- [SaaS Application Licensing](https://docs.nalpeiron.com/zentitle2-docs/developers/platform-summary/saas-application-licensing.md): Watch a video about Zentitle2 licenses in SaaS applications.
- [On-Premise Licensing](https://docs.nalpeiron.com/zentitle2-docs/developers/platform-summary/on-premise-licensing.md): Watch a video about on-premises licensing in Zentitle2.
- [1-Step Offline Deactivation: On-Premise](https://docs.nalpeiron.com/zentitle2-docs/developers/platform-summary/on-premise-licensing/1-step-offline-deactivation-on-premise.md): Learn about the 1-step offline deactivation process for on-premises licensing.
- [2-Step Offline Activation: On-Premise](https://docs.nalpeiron.com/zentitle2-docs/developers/platform-summary/on-premise-licensing/2-step-offline-activation-on-premise.md): View the 2-step offline activation process for on-premises licensing.
- [Offline Activation](https://docs.nalpeiron.com/zentitle2-docs/developers/offline-activation.md): Learn how Zentitle2's offline activation lets client applications activate, refresh, and deactivate licenses without an internet connection using encrypted, digitally signed token exchange.
- [Offline license refresh through the Management API](https://docs.nalpeiron.com/zentitle2-docs/developers/offline-license-refresh-management-api.md): Refresh an offline activation's lease and entitlement state through your own portal using the Zentitle2 Management API.
- [Identity Provider Requirements for Account-Based Licensing](https://docs.nalpeiron.com/zentitle2-docs/developers/identity-provider-requirements-for-account-based-licensing.md): This page describes the generic Identity Provider requirements for integrating Zentitle2 Account-Based Licensing with OpenID Connect tokens in the \`IdpDemo\` application.
- [Setup ABL with Auth0](https://docs.nalpeiron.com/zentitle2-docs/developers/identity-provider-requirements-for-account-based-licensing/setup-abl-with-auth0.md): This page describes the Auth0 setup required to issue access tokens that can be used for Zentitle2 ABL seat activation, and explains how those tokens are used during the activation flow.
- [Setup ABL with Entra ID](https://docs.nalpeiron.com/zentitle2-docs/developers/identity-provider-requirements-for-account-based-licensing/setup-abl-with-entra-id.md): Configure Zentitle2 Account-Based Licensing (ABL) with Microsoft Entra ID as the OpenID Connect identity provider, using the sample application, the provisioning script, or manual Entra setup.
- [EUP Single Sign on with Okta](https://docs.nalpeiron.com/zentitle2-docs/developers/identity-provider-requirements-for-account-based-licensing/eup-single-sign-on-with-okta.md): Configure Okta as the OpenID Connect provider for Zentitle2 End User Portal sign-in, including the browser application, authorization policy, Account-Based Licensing settings, and login verification.
- [Virtual Machine Control](https://docs.nalpeiron.com/zentitle2-docs/developers/virtual-machine-control.md): Learn how Zentitle's nonce-based Licensing API prevents cloned virtual machines from abusing a single activation.
- [No-code Test Application](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-test-application.md): Get an overview of the no-code ZentitleOnPremDemo Windows application, a dummy music-conversion tool you can use to test activation, feature limits, and usage-based controls without writing any code.
- [Creating a Product and Entitlement](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-test-application/creating-a-product-and-entitlement.md): Create a matching product, features, attributes, offering, and entitlement with activation codes in the Zentitle UI so the ZentitleOnPremDemo desktop app can be tested end to end.
- [Download the demo files](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-test-application/download-the-demo-files.md): Download and unzip the OnPremDemo Windows application files, then edit the DLL config file before running the desktop test app.
- [OnPremDemo.dll.config setup](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-test-application/onpremdemo.dll.config-setup.md): Collect your ProductId, TenantId, and Zentitle URL from the Zentitle UI, then edit the ZentitleOnPremDemo.dll config file and deploy the matching Zentitle2Core native library for your OS.
- [Test the demo application](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-test-application/test-the-demo-application.md): Test the ZentitleOnPremDemo desktop application by activating a license and walking through consumption tokens, element pools, feature controls, and license deactivation between the app and the Zentit
- [Install Desktop Runtime](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-test-application/test-the-demo-application/install-desktop-runtime.md): Install the Windows runtime components prompted by the ZentitleOnPremDemo app so it can run correctly on your machine.
- [No-code SaaS Example](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example.md): Try Zentitle2's APIs with the no-code SaaS demo app to see how activation, deactivation, and usage-based feature limits work without writing code.
- [Creating a Product and Entitlement](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example/creating-a-product-and-entitlement.md): Create a test product, features, offering, entitlement, and activation codes in the Zentitle2 UI to match the SaaS demo app.
- [Download the demo files](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example/download-the-demo-files.md): Download the latest SaaS demo app files from GitHub before configuring and running the demo.
- [Collecting the serverside parameters](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example/collecting-the-serverside-parameters.md): Collect the Tenant ID, OAuth URL, API URL, Product ID, and client credentials needed to configure the SaaS demo app's config file.
- [Edit appsettings.json file for IDE based Testing](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example/edit-appsettings.json-file-for-ide-based-testing.md): Edit the demo app's appsettings.json file with your Zentitle2 credentials and test user activation codes for IDE-based testing.
- [Edit docker-compose.yml file for Docker-based Testing](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example/edit-docker-compose.yml-file-for-docker-based-testing.md): Edit the docker-compose.yml file for the no-code SaaS demo, adding your Zentitle API credentials and test user activation codes before running the app in Docker.
- [Test the demo application](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example/test-the-demo-application.md): Test the no-code SaaS demo application by logging in with your activation code and exploring how entitlement attributes, feature toggles, element pools, floating features, and consumption tokens are u
- [Using docker to test](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example/test-the-demo-application/using-docker-to-test.md): Run the no-code SaaS demo application in Docker by installing Docker Desktop, building and starting the container, and opening the app at localhost.
- [Naming conventions/Glossary](https://docs.nalpeiron.com/zentitle2-docs/developers/naming-conventions-glossary.md): Look up Zentitle2 naming conventions and definitions for terms such as grace period, lease period, plan, entitlement, edition, feature, attribute, and webhook.
- [FAQ](https://docs.nalpeiron.com/zentitle2-docs/developers/faq.md): Learn what the "Lease Expired" seat status means and how to get credentials for the Zentitle2 SDKs.


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.nalpeiron.com/zentitle2-docs/developers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
