> 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 apps and its Management API for SaaS integrations, then get the credentials to start.
- [API docs](https://docs.nalpeiron.com/zentitle2-docs/developers/licensing-and-management-apis/api-docs.md): Find the Zentitle2 Management API and Licensing API reference documentation, covering entitlement operations 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 triggers Zentitle2 API rate limiting, including burst traffic and concurrency limits, and how to request a higher 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.
- [Discover Entitlements Before Activation](https://docs.nalpeiron.com/zentitle2-docs/developers/licensing-and-management-apis/discover-entitlements-before-activation.md): Authenticate once with the Licensing API, list the entitlements an end user or activation code can access, then activate a seat for the chosen product.
- [Activate Seats Through the Management API](https://docs.nalpeiron.com/zentitle2-docs/developers/licensing-and-management-apis/activate-seats-through-the-management-api.md): Activate seats from your provisioning service, CRM, or support tool through the Zentitle2 Management API, without license keys or end-user passwords.
- [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 to the Licensing or Management API.
- [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 its licensing models, and how to reduce call volume with longer lease periods on an entitlement.
- [The Licensing Client (.NET)](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net.md): Integrate a .NET application with the Zentitle2 Licensing API using the Zentitle.Licensing.Client SDK and its IActivation class or LicensingClient proxy.
- [Configure NuGet Source](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/configure-nuget-source.md): Add Nalpeiron's GitLab Package Registry as a NuGet source in your IDE so you can install the Zentitle.Licensing.Client SDK package in a .NET project.
- [Configuring the Activation](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/configuring-the-activation.md): Configure a .NET Activation instance's tenant ID, product ID, seat ID, storage, online or offline activation, logging, and state-transition callback.
- [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 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 and feature info and call methods like Initialize, Activate, Deactivate, and RefreshLease.
- [Entitlement Discovery](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/entitlement-discovery.md): Let end users sign in once, see their entitlements, and activate a seat for the product they choose with ActivationCredentialsClient in the .NET SDK.
- [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 into your .NET app via the Licensing Client SDK.
- [Exceptions](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/exceptions.md): Look up the .NET licensing SDK's exceptions — ActivationException, IllegalActivationOperationException, and LicensingApiException — and what each means.
- [FAQ](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/faq.md): Find answers on configuring proxies, generating device fingerprints, handling exceptions, and syncing feature usage in the Zentitle2 .NET licensing SDK.
- [Release Notes](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-.net/release-notes.md): Review version history and breaking changes for the Zentitle2 .NET Licensing Client SDK, including new features, bug fixes, and download links per release.
- [The Licensing Client (C++)](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++.md): Integrate a native C++ app with the Zentitle2 Licensing API using the ZentitleLicensingClient SDK's IActivation interface or ActivationImpl class.
- [Configuring the Activation](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++/configuring-the-activation.md): Configure a C++ Activation instance — tenant ID, product ID, seat ID, storage, and online or offline options — to represent a license seat in your app.
- [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): Use the C++ IActivation interface to read license state and features and call methods such as initialize, activate, deactivate, and refreshLease.
- [Zentitle2Core Library](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++/zentitle2core-library.md): See how the C++ Licensing Client's Zentitle2Core library handles device fingerprinting, offline activation, and secure license storage.
- [Exceptions](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++/exceptions.md): Browse the Zentitle C++ SDK's exception hierarchy, from SDKException down to LicensingApiException, and learn what triggers each one.
- [Release Notes](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-c++/release-notes.md): Check the Zentitle2 C++ SDK release notes for version history, bug fixes, new features, and download links for each release.
- [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): Configure Maven's settings.xml and pom.xml to add Zentitle's GitLab Package Registry as a JAR source for the Java Licensing Client.
- [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 Java licensing SDK exceptions, including ActivationException, ApiException, and LicensingApiExceptionApiError, and what triggers them.
- [FAQ](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/faq.md): Find answers to common Java licensing SDK questions, including how to generate a device fingerprint with the built-in Core Library wrapper classes.
- [Release Notes](https://docs.nalpeiron.com/zentitle2-docs/developers/the-licensing-client-java/release-notes.md): Browse Java Licensing Client SDK release notes and download the source and compiled packages, or install from the package registry.
- [The Zentitle2Core Library (C++)](https://docs.nalpeiron.com/zentitle2-docs/developers/the-zentitle2core-library-c++.md): Explore the Zentitle2Core C++ library, which provides cross-platform device fingerprinting, secure storage, and offline activation token handling.
- [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 in the Zentitle2Core C++ library](https://docs.nalpeiron.com/zentitle2-docs/developers/the-zentitle2core-library-c++/offline-activation.md): Implement offline activation with Zentitle2Core by generating activation request tokens and parsing response tokens, with required buffer sizes.
- [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): Troubleshoot the Zentitle2Core C++ library, covering logging setup, macOS and Linux permission errors, and GLIBC or musl runtime compatibility.
- [Platform Summary](https://docs.nalpeiron.com/zentitle2-docs/developers/platform-summary.md): Explore Zentitle2's API-first, multi-tenant, Kubernetes-based licensing platform architecture built for SaaS, on-premises, and hardware applications.
- [Turboscale architecture](https://docs.nalpeiron.com/zentitle2-docs/developers/platform-summary/turboscale-architecture.md): See how Zentitle2's Turboscale architecture auto-scales with Horizontal Pod Autoscaling, Karpenter node provisioning, and AWS RDS Aurora to meet demand.
- [SaaS Application Licensing](https://docs.nalpeiron.com/zentitle2-docs/developers/platform-summary/saas-application-licensing.md): Watch how Zentitle2 licenses SaaS applications, covering entitlements, seat activation, and subscription management for cloud software vendors.
- [On-Premise Licensing](https://docs.nalpeiron.com/zentitle2-docs/developers/platform-summary/on-premise-licensing.md): Learn how Zentitle2 licenses on-premises software, including offline activation, deactivation, and entitlement management for air-gapped deployments.
- [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): Walk through Zentitle2's 1-step offline deactivation process for releasing an on-premises license seat without an internet connection.
- [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): Walk through Zentitle2's 2-step offline activation process for licensing on-premises software installations without an internet connection.
- [Offline activation: how it works](https://docs.nalpeiron.com/zentitle2-docs/developers/offline-activation.md): Learn how Zentitle2's offline activation lets client applications activate, refresh, and deactivate licenses offline using encrypted, signed tokens.
- [Offline license refresh through the Management API](https://docs.nalpeiron.com/zentitle2-docs/developers/offline-license-refresh-management-api.md): Use the Zentitle2 Management API to refresh an offline activation's lease and entitlement state through your own customer portal.
- [Identity Provider Requirements for Account-Based Licensing](https://docs.nalpeiron.com/zentitle2-docs/developers/identity-provider-requirements-for-account-based-licensing.md): Learn the OpenID Connect Identity Provider requirements for integrating Zentitle2 Account-Based Licensing, from token claims to provider configuration.
- [Setup ABL with Auth0](https://docs.nalpeiron.com/zentitle2-docs/developers/identity-provider-requirements-for-account-based-licensing/setup-abl-with-auth0.md): Configure Auth0 to issue access tokens for Zentitle2 Account-Based Licensing seat activation, including claims setup and the post-login Action.
- [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 with Microsoft Entra ID as the OpenID Connect identity provider, using the sample app or manual 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 single sign-on to the Zentitle2 End User Portal, including the authorization policy and ABL settings.
- [Virtual Machine Control](https://docs.nalpeiron.com/zentitle2-docs/developers/virtual-machine-control.md): Learn how Zentitle2's nonce-based Licensing API detects cloned virtual machines and prevents clones from abusing a single software activation.
- [No-code Test Application](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-test-application.md): Test Zentitle2 licensing with the no-code ZentitleOnPremDemo Windows app, a dummy music-conversion tool for trying activation and feature limits.
- [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, offering, and entitlement with activation codes in the Zentitle UI to test the ZentitleOnPremDemo desktop app.
- [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 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 app by activating a license and walking through consumption tokens, element pools, and feature controls.
- [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 the ZentitleOnPremDemo demo app prompts for, so the Zentitle2 test application runs 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 Zentitle2 no-code SaaS demo app files from the Nalpeiron GitHub repository before configuring and running the .NET demo application.
- [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 Zentitle2 no-code SaaS demo, adding API credentials and test activation codes before running it in Docker.
- [Test the demo application](https://docs.nalpeiron.com/zentitle2-docs/developers/no-code-saas-example/test-the-demo-application.md): Test the Zentitle2 no-code SaaS demo app, logging in with an activation code to try entitlement attributes, feature toggles, and usage-based controls.
- [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, and feature.
- [FAQ](https://docs.nalpeiron.com/zentitle2-docs/developers/faq.md): Learn what the Zentitle2 "Lease Expired" seat status means and how to get credentials for downloading the Zentitle2 SDKs and LLS docker images.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
