Client SDK
Give your callback to the SDK: RunFeature for entitlements, RunMeteredFeature for counters. The SDK handles requests, signatures, cache and heartbeats.
Go SDK · Java · C · C++ · C# / .NET · Python · JavaScript · Rust · Ruby
Where do initialization arguments come from?
Product ID: Console > Products. Trusted keys: the same product’s Signing public keys, mapped from key ID to public key. Put them in the product ID and trustedKeys arguments. Read licenseKey from your activation form.
The official server is the SDK default. Basic integration needs no configuration file or software release. Pass private deployment, proxy or version settings directly in the SDK configuration object when needed.
Install the SDK
Install a pinned version in your application project. Select a language above to see its platform’s installation instructions. Installing the public SDK does not require a vendor management API key.
Version:
How to reference the installed SDK
| Language | Project integration |
|---|---|
| Go | import licentivo "github.com/spf86/licentivo-sdk" |
| Java | import licentivo.Client; |
| C / C++ | find_package(Licentivo 0.11 REQUIRED) · target_link_libraries(MyApp PRIVATE Licentivo::C) / Licentivo::CPP |
| C# | using Licentivo; |
| Python | from licentivo import Client |
| Node.js | import {Client} from '@licentivo/sdk' |
| Rust | use licentivo::Client; |
| Ruby | require 'licentivo' |
Run protected business through the SDK and close client on exit.
Loading code…Connect initialization and feature checks to your software → · Integrate your own software with AI →
How do I run the management example?
First set these server environment variables LICENTIVO_URL and LICENTIVO_API_KEY, set the license server URL and full management Key. The example reads the product list and prints the HTTP status and response.
Returns HTTP 200 containing data.items, the request succeeded. For 401, check whether the Key is complete, expired or revoked. Key creation and permissions are described in Management API key.
Follow the AI workflow to license your own software →
How to display authorization status
Status and FeatureStatus read locally without requests or waiting for background verification. Use status notifications to update your UI.
| Status | Meaning |
|---|---|
active | The last online verification succeeded; local authorization is valid. |
offline_valid | The local signature is valid; online confirmation has not succeeded since startup. |
verification_required | No usable signature. Activate or refresh online. |
| expired / revoked / released | The server explicitly denied authorization. Stop protected operations. |
quota_exhausted | This metered request exceeded its allowance; other entitled features remain available. |
allowed describes local authorization validity; metered features still request units. lease_valid_until is the signed cache deadline, not final license expiry. code, request_id and retryable identify the error, log reference and whether retry is possible.
See sdk/README.md in the download for each language’s methods, notification callbacks and package usage. The instructions above list package-manager installation by language. The website also provides versioned packages, common installers and offline installation.
Where does this belong in your application?
| Application stage | What to do |
|---|---|
| On startup or after key entry | Call OpenWithLicense (constructor and Start in C++). The SDK activates and starts heartbeats according to the policy. |
| Before paid features | Pass your callback to RunFeature; use RunMeteredFeature for counters |
| While the application runs | Keep client alive; the SDK sends heartbeats at the policy interval. |
| On application exit | Close / Dispose / Destroy stops heartbeats, returns floating seats and preserves device-bound registrations. |
| When the user unbinds | Call Deactivate, then close client. |
Method names in the table identify operations; use the exact names in your language's example. For heartbeats, offline caches and online refresh, see Heartbeats and offline access.