# Devolens (formerly Cryptolens) Documentation - [Introduction](https://help.cryptolens.io/index.md): Build, automate, and manage software licensing with Devolens (formerly Cryptolens). - [Basics of Devolens](https://help.cryptolens.io/basics/index.md): Core concepts for getting started with Devolens licensing. - [Products, keys, customers, and activations](https://help.cryptolens.io/basics/product-and-keys.md): Core Devolens (formerly Cryptolens) concepts and how they map to licensing models. - [Web API](https://help.cryptolens.io/basics/webapi.md): How applications, backend systems, and integrations communicate with Devolens. - [Getting started guide](https://help.cryptolens.io/getting-started/getting-started-guide.md) - [AI-assisted integration](https://help.cryptolens.io/getting-started/build-with-ai.md): Use coding agents, skills, and llms.txt files to integrate Devolens faster. - [MCP server](https://help.cryptolens.io/getting-started/mcp.md): Connect AI agents and MCP clients to your Devolens account to query usage analytics and manage licenses and customers. - [Troubleshooting guide for licensing](https://help.cryptolens.io/getting-started/troubleshooting-guide.md) - [Platforms](https://help.cryptolens.io/getting-started/platform-overview.md) - [.NET desktop application](https://help.cryptolens.io/getting-started/net-intro.md): An older tutorial on how to integrate Cryptolens licensing into a desktop application in .NET - [Unity 3D / Mono](https://help.cryptolens.io/getting-started/unity.md) - [Android and iOS](https://help.cryptolens.io/getting-started/ios-android.md) - [Rhino 3D / Grashopper](https://help.cryptolens.io/getting-started/rhino-ceros-3d-grashopper.md) - [Python/Autodesk Maya](https://help.cryptolens.io/getting-started/python-autodesk-maya.md) - [Go](https://help.cryptolens.io/getting-started/go.md): Getting started guide for the Go SDK. - [Node Js](https://help.cryptolens.io/getting-started/node.md) - [Java](https://help.cryptolens.io/getting-started/java.md): Getting started guide for the Java SDK - [C/C++](https://help.cryptolens.io/getting-started/cpp.md): Getting started guide for Cryptolens C and C++ SDK - [AutoCAD](https://help.cryptolens.io/getting-started/autocad.md) - [Excel Addins](https://help.cryptolens.io/getting-started/excel.md) - [Checklist before publishing](https://help.cryptolens.io/getting-started/checklist-before-publishing.md) - [FAQ](https://help.cryptolens.io/faq.md): Frequently asked questions about Cryptolens. - [Your Devolens account and billing](https://help.cryptolens.io/account/billing.md): Manage your Devolens subscription: cancellation, renewal invoices, payment methods, invoice payment, legacy end-user billing, and plan limits. - [Access tokens and RSA public key](https://help.cryptolens.io/getting-started/access-token.md): Find your credentials, understand every access token control, and choose permissions for activation, license creation, and support. - [Introduction](https://help.cryptolens.io/licensing-models/index.md): List of possible licensing models supported by Devolens (formerly Cryptolens). - [Perpetual licensing (try/buy)](https://help.cryptolens.io/licensing-models/perpetual.md): Explains how the simple one-time purchase model (perpetual) can be implemented in Cryptolens. - [Subscription licensing (SaaS)](https://help.cryptolens.io/licensing-models/subscription.md): Explains how you can set up recurring payments for your application, aka SaaS model. This can also be used to keep track of potential support/maintenance subscriptions. - [Usage-based licensing (pay per use)](https://help.cryptolens.io/licensing-models/usage-based.md): Explains how you can set up implement usage-based licensing / pay per use / pay per click - [Node locked licenses](https://help.cryptolens.io/licensing-models/node-locked.md): An overview of node locked licenses - [Floating licenses](https://help.cryptolens.io/licensing-models/floating.md): How to limit the number of copies of your application that can run at the same time. - [SDK licensing](https://help.cryptolens.io/licensing-models/sdk-licensing.md): Summary of how SDKs can be protected using Cryptolens Licensing. - [User authentication](https://help.cryptolens.io/licensing-models/user-credentials.md): Covers different ways that you can authenticate customers using user credentials instead of license keys. - [Per-user seats using activations](https://help.cryptolens.io/licensing-models/user-based-activations.md): Use activations to count licensed users instead of devices. - [Containerized Environments](https://help.cryptolens.io/licensing-models/containers.md): Explains how to license applications running in containerized environments, with examples for Docker and Kubernetes. - [Site license](https://help.cryptolens.io/licensing-models/site-license.md): Explains how to allow your clients to use a license on any number of machines within a physical location - [Pre-determined activations](https://help.cryptolens.io/licensing-models/pre-determined-activations.md): Explains how to allow a pre-determined list of machines to use a license key. - [Subscription vs usage-based pricing](https://help.cryptolens.io/licensing-models/subscription-vs-usage-based.md): This article focuses on when to choose subscriptions over usage-based licensing and vice versa. - [Introduction](https://help.cryptolens.io/examples/index.md) - [Key verification](https://help.cryptolens.io/examples/key-verification.md): This guide shows how to verify a license key using one of our SDKs. - [Offline verification](https://help.cryptolens.io/examples/offline-verification.md): How to verify licenses without an Internet connection, using a saved response or a manually delivered license file. - [Trial keys](https://help.cryptolens.io/examples/verified-trials.md): Introduction to verified trial keys - [User verifications](https://help.cryptolens.io/examples/user-verification.md): A simple implementation of user verifications. - [Data collection](https://help.cryptolens.io/examples/data-collection.md): Explains how data is being collected and how additional data can be supplied for better insights - [Integrate with Zapier](https://help.cryptolens.io/examples/zapier.md): By using our Zapier app, you can connect Cryptolens to 2000+ other web services. - [Integration with n8n](https://help.cryptolens.io/examples/integration-with-n8n.md) - [Key Generation](https://help.cryptolens.io/examples/key-generation.md): Example of how to create new keys using our API. - [License server](https://help.cryptolens.io/feature/license-server/index.md) - [Data analysis and reports](https://help.cryptolens.io/examples/data-analysis.md): Example of how to analyse various data sources in Cryptolens - [Manual activation of a large number of machines](https://help.cryptolens.io/examples/manual-activation.md): Example of how you can activate a large number of machines on site. - [Migrate to Cryptolens from a third party licensing system](https://help.cryptolens.io/examples/migrate.md): How to migrate to Cryptolens from a third party licensing system - [Reverse proxy](https://help.cryptolens.io/examples/reverse-proxy.md): Explains how you can connect to the Cryptolens API using your own domain - [Overview](https://help.cryptolens.io/payments/index.md): Ways to collect payments from your customers for the software you license with Devolens. - [Introduction](https://help.cryptolens.io/payments/forms/intro.md): Introduction to payment forms - [Example](https://help.cryptolens.io/payments/forms/example.md): Tutorial that includes step by step instructions on how to create a payment form that uses both Stripe and PayPal - [Request Items](https://help.cryptolens.io/payments/forms/request-items.md): Detailed description of request items. - [Custom field](https://help.cryptolens.io/payments/forms/custom-field.md): Detailed description of custom fields. - [Sessions](https://help.cryptolens.io/payments/forms/sessions.md): Explains the concept of sessions that allows you to customize the form (such as pricing, header, etc). - [(Example) Automating customer and license creation](https://help.cryptolens.io/payments/forms/automating-customer-and-license-creation.md): Description of your new file. - [Recurring payments](https://help.cryptolens.io/payments/recurring/index.md): Collect recurring payments from your customers and connect their subscriptions to software licenses. - [Setting things up](https://help.cryptolens.io/payments/recurring/setup.md): Describes how to set up products and plans in Stripe - [Managing customers](https://help.cryptolens.io/payments/recurring/managing-customers.md): Describes how to set up products and plans in Stripe - [Metered usage](https://help.cryptolens.io/payments/recurring/metered-usage.md): Describes how you can record usage for subscriptions that support metered usage (in Stripe). - [(Example) Stripe products and plans](https://help.cryptolens.io/payments/recurring/stripe-product-example.md): In this tutorial, we will focus on how to create a product and a pricing plan step by step. This is complementary material to this tutorial. The goal is to make sure that your metadata for the product and the pricing plan are set up correctly. - [Troubleshooting guide](https://help.cryptolens.io/payments/recurring/troubleshooting.md): In this guide, we have listed the most common errors and how they can be solved. If the error would persist, please reach out to us at help@devolens.com. - [Recurring payments with Stripe without Cryptolens GUI](https://help.cryptolens.io/payments/thirdparty/custom-interface.md): Using custom interface to subscribe and unsubscribe customers while using Cryptolens Stripe webhook endpoint. - [Integrating with external payment providers](https://help.cryptolens.io/payments/thirdparty/external-providers.md): Explains how you can use other payment systems to process payments - [Integration with FastSpring](https://help.cryptolens.io/payments/thirdparty/fastspring.md): Explains how FastSpring can be integrated with Cryptolens - [Zapier and n8n](https://help.cryptolens.io/payments/thirdparty/zapier-and-n8n.md) - [Control Panel and Web UI](https://help.cryptolens.io/feature/web-ui/index.md): Manage products, licenses, customers, account access, templates, and analytics in the Devolens dashboard. - [SKGL vs. SKM15](https://help.cryptolens.io/feature/web-ui/skgl-vs-skm15.md): This article compares SKGL and SKM15 key generation algorithms and suggests possible use cases for each of them. - [Searching for Licenses using Linq Queries](https://help.cryptolens.io/feature/web-ui/linq-search-product.md): Explains the way you can use linq queries on the product page to search for keys that satisfy certain properties. - [Customize which licenses are shown first](https://help.cryptolens.io/feature/web-ui/order-by-product.md) - [Delete keys](https://help.cryptolens.io/feature/web-ui/delete-keys.md) - [Feature Definitions](https://help.cryptolens.io/feature/web-ui/feature-definitions.md) - [Feature Templates](https://help.cryptolens.io/feature/web-ui/feature-templates.md): Describes the idea behind feature templates so that you can support more than 8 features. - [License Templates](https://help.cryptolens.io/feature/web-ui/license-templates.md) - [Maximum number of machines](https://help.cryptolens.io/feature/web-ui/maximum-number-of-machines.md) - [Start countdown upon activation (aka trial activation)](https://help.cryptolens.io/feature/web-ui/trial-activation.md) - [Keys that don’t expire](https://help.cryptolens.io/feature/web-ui/keys-that-dont-expire.md) - [Export Keys To Spreadsheet](https://help.cryptolens.io/feature/web-ui/export-keys-to-spreadsheet.md) - [Automatic expiration notice](https://help.cryptolens.io/feature/web-ui/automatic-expiration-notice.md): Describes the way you can send automatic email expiration notices to your customers. - [Product configuration](https://help.cryptolens.io/feature/web-ui/product-configuration.md): Describes custom configurations that can be enabled that will alter behaviour of certain operations. - [Customer secret](https://help.cryptolens.io/feature/web-ui/customer-secret.md) - [Add additional admins](https://help.cryptolens.io/feature/web-ui/multiple-admins.md) - [Restricted accounts](https://help.cryptolens.io/feature/web-ui/restricted-accounts.md) - [Company SSO and SCIM](https://help.cryptolens.io/feature/web-ui/sso-and-scim.md): Set up company sign-in, provision operator accounts, and manage dashboard access through your identity provider. - [Anomaly detection](https://help.cryptolens.io/feature/web-ui/anomaly-detection.md): Explains how the anomaly detection module can be used to detect abnormal usage patterns and fraudulent behaviour. - [KPI Dashboards (beta)](https://help.cryptolens.io/feature/web-ui/kpi-dashboards.md): Use Devolens dashboards to inspect license activity, floating capacity, and inactive licenses. - [Introduction](https://help.cryptolens.io/feature/reseller-portal/index.md): Introduction to reseller management, reseller portal and other relevant tools. - [Reseller portal for resellers](https://help.cryptolens.io/feature/reseller-portal/reseller.md) - [Reseller portal for vendors](https://help.cryptolens.io/feature/reseller-portal/vendor.md) - [License server](https://help.cryptolens.io/feature/license-server/index.md) - [Messaging API](https://help.cryptolens.io/feature/messaging/index.md) - [Updates tracking](https://help.cryptolens.io/feature/messaging/updates-tracking.md) - [Notifications](https://help.cryptolens.io/feature/messaging/notifications.md) - [Customer portal](https://help.cryptolens.io/feature/customer-portal/index.md): Introduction to the Customer portal offered by Cryptolens - [Activation Forms](https://help.cryptolens.io/feature/activation-form/index.md): Activation Forms allow your clients to download an activation file on machine that has internet access, so that they can activate machines that are air-gapped. - [Introduction](https://help.cryptolens.io/security/index.md): Summary of security measures and legal compliances. - [GDPR](https://help.cryptolens.io/security/gdpr.md): Describes GDPR and the necessary steps for compliance. - [Data processor agreement](https://help.cryptolens.io/security/dpa.md): The data processor agreement that is signed when creating a new Cryptolens account - [Data protection policy](https://help.cryptolens.io/security/data-policy.md): Details of your rights as data controller, how to be GDPR compliant and safety measures in place to safeguard your data. - [Safeguarding measures](https://help.cryptolens.io/security/safeguarding-measures.md): In this document, we discuss on a high level what safety measures are in place on our end as a data processor as well as what features are offered by Cryptolens platform that you can enable as a data controller. - [Technical and Organizational Measures implemented by Cryptolens](https://help.cryptolens.io/security/tech-and-org-measures.md) - [IPs used by the API](https://help.cryptolens.io/security/api-ips.md): The list of IP addresses used by Cryptolens Web API. - [Devolens Standard Service Level Agreement](https://help.cryptolens.io/security/sla.md): Availability commitment and service credit terms for eligible Devolens subscriptions. - [Introduction](https://help.cryptolens.io/api-reference/introduction.md) - [Welcome to Web API 3](https://help.cryptolens.io/api-reference/generated/Index.md): Welcome to the documentation of all the method available in Web API 3. This is the latest version of the API. Web API 2 should no longer be used in new projects. - [Quick Start with Devolens](https://help.cryptolens.io/api-reference/generated/QuickStart.md): The Devolens (formerly Cryptolens) API can be called from your application or from other services (e.g. CRM or payment provider). To get you up and running quickly, we will focus on how to verify a license inside... - [Authentication & Authorization](https://help.cryptolens.io/api-reference/generated/Auth.md): Web API 3 provides a new way of communicating with Cryptolens. Instead of having different access levels (where permission is given on a global level), Web API 3 provides a uniform way of authentication and authorization... - [Versioning](https://help.cryptolens.io/api-reference/generated/Versioning.md): Methods in the Web API can change over time, however, despite this, it's important that such a change does not break older implementations. In order to be able to do so, Web API 3 uses query string versioning. - [Media Types](https://help.cryptolens.io/api-reference/generated/MediaTypes.md): By default, Cryptolens Web API returns JSON formatted objects. The the most basic result always contains a message and a result. In rare cases, only a message is returned, in which case a server error has... - [Key](https://help.cryptolens.io/api-reference/generated/Key.md): These are all the methods that can be used to manipulate an existing license key. - [Activate](https://help.cryptolens.io/api-reference/generated/Activate.md): This method will perform a key activation, similar to Activate [Web API 2]. In contrast to key validation, key activation is not read only since it can change license key data depending on... - [Get Key](https://help.cryptolens.io/api-reference/generated/GetKey.md): This method will return information about a license key, similar to Validate [Web API 2]. In contrast to activation, this method (aka Key Validation) will be in read only mode. That is, it will... - [Get Keys](https://help.cryptolens.io/api-reference/generated/GetKeys.md): This method will return a list of keys for a given product. Please keep in mind that although each license key will be of the License Key type, the fields related to... - [Create Key](https://help.cryptolens.io/api-reference/generated/CreateKey.md): This method allows you to create a new license key. The license can either be standalone or associated to a specific customer. It is also possible to add a new customer and associate it with the newly created license... - [Create Trial Key](https://help.cryptolens.io/api-reference/generated/CreateTrialKey.md): This method creates a license key that is time-limited, node-locked and with the "Time-Limited" and "Trial" features set to true (which can be set by editing the... - [Deactivate](https://help.cryptolens.io/api-reference/generated/Deactivate.md): This method will 'undo' a key activation with a certain machine code. The key should not be blocked, since otherwise this method will throw an error. - [Block Key](https://help.cryptolens.io/api-reference/generated/BlockKey.md): This method will block a specific license key to ensure that the key cannot be accessible by most of the methods in the Web API (activation, validation, [optional... - [Unblock Key](https://help.cryptolens.io/api-reference/generated/UnblockKey.md): This method will unblock a specific license key to ensure that the key can be accessible by most of the methods in the Web API (activation, validation, [optional... - [Extend License](https://help.cryptolens.io/api-reference/generated/ExtendLicense.md): This method will extend a license by a certain amount of days. If the key algorithm in the product is SKGL, the key string will be changed if necessary.... - [Machine Lock Limit](https://help.cryptolens.io/api-reference/generated/MachineLockLimit.md): This method will change the maximum number of machine codes that a license key can have. - [Change Notes](https://help.cryptolens.io/api-reference/generated/ChangeNotes.md): This method will change the content of the notes field of a given license key. - [Change Customer](https://help.cryptolens.io/api-reference/generated/ChangeCustomer.md): This method will change the customer associated with a license. If the customer is not specified (for example, if CustomerId=0) or the customer with the provided ID does not exist, any customer that was previously... - [Change Reseller](https://help.cryptolens.io/api-reference/generated/ChangeReseller.md): This method will change the reseller of a license. If the reseller is not specified (for example, if ResellerId=0) or the reseller with the provided ID does not exist, any reseller that was previously associated with the... - [Trial Activation](https://help.cryptolens.io/api-reference/generated/TrialActivation.md): This method allows you to enable Trial Activation (aka. start count down upon activation) field of a license. Please note that if you do not supply the Enabled... - [Add Feature](https://help.cryptolens.io/api-reference/generated/AddFeature.md): This method will set a certain feature (F1..F8) to true. If the key algorithm in the product is SKGL, the key string will be changed if necessary. Otherwise,... - [Remove Feature](https://help.cryptolens.io/api-reference/generated/RemoveFeature.md): This method will set a certain feature (F1..F8) to false. If the key algorithm in the product is SKGL, the key string will be changed if necessary. Otherwise,... - [License Templates](https://help.cryptolens.io/api-reference/generated/LicenseTemplate.md): Methods related to license templates. You can read more about them here. - [Get License Templates](https://help.cryptolens.io/api-reference/generated/GetLicenseTemplates.md): Returns the list of license templates. A license template allows you to pre-define the parameters that are used when creating a new license. You can read more about them... - [Create Key From Template](https://help.cryptolens.io/api-reference/generated/CreateKeyFromTemplate.md): This method will create a license key based on a License Template. If you want to see all the defined license templates through the API, this can be accomplished with [Get License... - [Customer](https://help.cryptolens.io/api-reference/generated/Customer.md): Methods that allow you to interact with your customers and their licenses (see Customer Management). - [Add Customer](https://help.cryptolens.io/api-reference/generated/AddCustomer.md): This method will add new customer. To remove an existing customer, please see Remove Customer. - [Edit Customer](https://help.cryptolens.io/api-reference/generated/EditCustomer.md): This method will edit an existing customer. It will only change the properties that you specify. - [Get Customers](https://help.cryptolens.io/api-reference/generated/GetCustomers.md): This method returns the list of customers. Use ModelVersion=2 or ModelVersion=3 to include each customer's secret. By default, it preserves the legacy ordering. If SortByCreatedDescending=true, the newest customers... - [Get Customer Licenses](https://help.cryptolens.io/api-reference/generated/GetCustomerLicenses.md): This method will return a list of license keys that belong to a certain customer. - [Remove Customer](https://help.cryptolens.io/api-reference/generated/RemoveCustomer.md): This method will remove an existing customer given the customerId. To add a new customer, please see Add Customer. - [Data Object Methods](https://help.cryptolens.io/api-reference/generated/Data.md): These are all the methods that can be used to manipulate a Data Object. - [Data Objects Overview](https://help.cryptolens.io/api-reference/generated/DataObjectsIntro.md): Imagine that you would like to associate specific information with a license key, such as your customer's name, the OS version, etc. - [Add Data Object](https://help.cryptolens.io/api-reference/generated/AddDataObject.md): This method will add a new Data Object to either a license key, product, or your entire account. Please read more about access tokens in Remarks. - [List Data Objects](https://help.cryptolens.io/api-reference/generated/ListDataObjects.md): This method lists either all Data Object associated with a license key, a product or your entire account, or all of them at once. Please read more about access tokens in... - [Increment Int Value](https://help.cryptolens.io/api-reference/generated/IncrementIntValue.md): This method will increment the integer value in a Data Object by a certain constant (non-negative). You can always decrement it. Note, this method does... - [Decrement Int Value](https://help.cryptolens.io/api-reference/generated/DecrementIntValue.md): This method will decrement the integer value in a Data Object by a certain constant (non-negative). You can always increment it. Note, this method does... - [Set String Value](https://help.cryptolens.io/api-reference/generated/SetStringValue.md): This method will assign a new string value to a Data Object. Please read more about access tokens in Remarks. - [Set Int Value](https://help.cryptolens.io/api-reference/generated/SetIntValue.md): This method will assign a new integer value to a Data Object. Note, you can also increment or decrement the integer... - [Upload Values](https://help.cryptolens.io/api-reference/generated/UploadValues.md): This method will extract content from a Cryptolens log (used in offline licensing) and update existing data objects (either by incrementing or decrementing them). To call this method, you either need an "Increment Int... - [Remove Data Object](https://help.cryptolens.io/api-reference/generated/RemoveDataObject.md): This method will remove an existing Data Object. Please read more about access tokens in Remarks. - [Product](https://help.cryptolens.io/api-reference/generated/Product.md): These are all the methods for product related tasks. - [Get Products](https://help.cryptolens.io/api-reference/generated/GetProducts.md): This method will return the list of products. - [Auth Methods](https://help.cryptolens.io/api-reference/generated/AuthMethods.md): Methods listed in this category are primarily intended for security features in the Web API 3. - [Key Lock](https://help.cryptolens.io/api-reference/generated/KeyLock.md): This method will, given a license key, generate a new access token that is locked to that particular key and return the Id of that key. The scope of the access token is preserved... - [Get Token (beta)](https://help.cryptolens.io/api-reference/generated/GetToken.md): Get Token permission allows you to create access tokens on behalf of the authorizing user. This can be used to create plugins or to achieve user login authentication (for licensing). It gives you access to a range of... - [User authentication](https://help.cryptolens.io/api-reference/generated/UserAuth.md): The idea behind user authentication is to allow you to authenticate users using their credentials (i.e. username and password) to verify their license. You can use their username and password to retrieve their licenses... - [Login](https://help.cryptolens.io/api-reference/generated/Login.md): This method will return all licenses that belong to the user. This method can be called with an access token that has UserAuthNormal and UserAuthAdmin permission. - [Register](https://help.cryptolens.io/api-reference/generated/Register.md): This method will register a new user. Please note that calling this method requires a UserAuthAdmin token. - [Associate](https://help.cryptolens.io/api-reference/generated/Associate.md): Associates a user with a customer object. Please note that calling this method requires a UserAuthAdmin token. - [Dissociate](https://help.cryptolens.io/api-reference/generated/Dissociate.md): Dissociates a user from a customer customer object. Please note that calling this method requires a UserAuthAdmin token. - [Get Users](https://help.cryptolens.io/api-reference/generated/GetUsers.md): List all registered users. Please note that calling this method requires a UserAuthAdmin token. - [Change Password](https://help.cryptolens.io/api-reference/generated/ChangePassword.md): This method will change the password of a user. It supports 3 modes of operation. With an access token that has UserAuthNormal permission (i.e. without admin permission), the password can either be changed by providing... - [Reset Password Token](https://help.cryptolens.io/api-reference/generated/ResetPasswordToken.md): This method allows you to retrieve the password reset token that you can use when calling Change Password method. Please note that calling this method requires a UserAuthAdmin token. - [Remove User](https://help.cryptolens.io/api-reference/generated/RemoveUser.md): This method removes a user. Please note that calling this method requires a UserAuthAdmin token. - [Analytics](https://help.cryptolens.io/api-reference/generated/AI.md): These are all the methods that can be used to collect usage information of your application, which is then analysed using Cryptolens AI engine. - [Register Event](https://help.cryptolens.io/api-reference/generated/RegisterEvent.md): This method will register an event that has occurred in either the client app (eg. start of a certain feature or interaction within a feature) or in a third party provider (eg. a payment has occurred, etc). Events are... - [Get Events](https://help.cryptolens.io/api-reference/generated/GetEvents.md): This method will retrieve events that were registered using Register event method. Events are stored for at least 30 days. Older events may be removed. - [Get Object Log](https://help.cryptolens.io/api-reference/generated/GetObjectLog.md): This method will retrieve a list of Object Logs. These are events that are created when certain object types are added or modified to allow you to track all changes made by you and your... - [Get Web API Log](https://help.cryptolens.io/api-reference/generated/GetWebAPILog.md): This method will retrieve a list of Web API Logs. All events that get logged are related to a change of a license key or data object, eg. when license key gets activated or when a property... - [Get Daily Aggregates](https://help.cryptolens.io/api-reference/generated/GetDailyAggregates.md): This method retrieves daily aggregate Web API log metrics for one or more products. It returns one Daily Aggregate object per product and day. - [Get Daily Country Aggregates](https://help.cryptolens.io/api-reference/generated/GetDailyCountryAggregates.md): This method retrieves daily aggregate Web API log metrics grouped by country. It returns Daily Country Aggregate objects. - [Get Key Usage Summaries](https://help.cryptolens.io/api-reference/generated/GetKeyUsageSummaries.md): This method retrieves lifetime usage summaries for license keys. It returns Key Usage Summary objects. - [Get Key Devices](https://help.cryptolens.io/api-reference/generated/GetKeyDevices.md): This method retrieves aggregated device usage for license keys. It returns Key Device objects. - [Get License Activity Buckets](https://help.cryptolens.io/api-reference/generated/GetLicenseActivityBuckets.md): This method retrieves time-bucketed license activity for keys and machines. It returns License Activity Bucket objects. - [Message API](https://help.cryptolens.io/api-reference/generated/Message.md): These are all the methods for creating and broadcasting messages. You can read more about how they can be used here. - [Create Message](https://help.cryptolens.io/api-reference/generated/CreateMessage.md): This method will create a new message (which you can also manage here). - [Get Messages](https://help.cryptolens.io/api-reference/generated/GetMessages.md): This method will return a list of messages that were broadcasted. You can create new messages here. Messages can be filtered based on the time and the channel. - [Remove Message](https://help.cryptolens.io/api-reference/generated/RemoveMessage.md): This method will remove a message that was previously broadcasted (which you can also manage here). - [Payment Form](https://help.cryptolens.io/api-reference/generated/PaymentForm.md): Overview of payment form session methods and related help links. - [Create Session](https://help.cryptolens.io/api-reference/generated/PFCreateSession.md): This method will create a new session for a Payment Form. It allows you to customize appearance of the form (such as price, heading, etc). You should only create new sessions from a server side... - [Subscription](https://help.cryptolens.io/api-reference/generated/Subscription.md): These methods are related to the recurring billing module. They can all be accessed using an access token with 'Subscription' permission. - [Record Usage](https://help.cryptolens.io/api-reference/generated/RecordUsage.md): This method records uses Stripe's metered billing to record usage for a certain subscription. In order to use this mehtod, you need to have set up... - [Reseller](https://help.cryptolens.io/api-reference/generated/Reseller.md): These are all the methods that can be used to work with reseller objects. All methods require only the "Reseller" permission. Please enable the reseller module on the billing page. - [Add Reseller](https://help.cryptolens.io/api-reference/generated/AddReseller.md): This method will add new reseller. To remove an existing reseller, please see Remove Reseller. - [Edit Reseller](https://help.cryptolens.io/api-reference/generated/EditReseller.md): This method will edit an existing reseller. This method will only change the properties that you specify. - [Get Resellers](https://help.cryptolens.io/api-reference/generated/GetResellers.md): This method will return the list of resellers, with the newest resellers shown first. - [Get Reseller Customers](https://help.cryptolens.io/api-reference/generated/GetResellerCustomers.md): This method will return a list of customers that belong to a certain reseller. - [Remove Reseller](https://help.cryptolens.io/api-reference/generated/RemoveReseller.md): This method will remove an existing reseller given the resellerId. To add a new reseller, please see Add Reseller. - [Activation Data](https://help.cryptolens.io/api-reference/generated/model/ActivationData.md): A result of an activation performed using activation methods (Activate [Web API 2] or Activate [Web API 3]). - [Anomaly Properties](https://help.cryptolens.io/api-reference/generated/model/AnomalyProperties.md): Properties related to an anomaly. - [Basic License Key](https://help.cryptolens.io/api-reference/generated/model/BasicLicenseKey.md): A license key object represents information related to a specific license found inside a product. This model is a reduced version of License Key. - [Customer](https://help.cryptolens.io/api-reference/generated/model/Customer.md): A customer object is a representation of a customer that can be found in the customer panel. - [Customer (extended)](https://help.cryptolens.io/api-reference/generated/model/CustomerExtended.md): A customer object is a representation of a customer that can be found in the customer panel. - [Daily Aggregate](https://help.cryptolens.io/api-reference/generated/model/DailyAggregate.md): A daily aggregate contains Web API log totals for a product on a specific date. - [Daily Country Aggregate](https://help.cryptolens.io/api-reference/generated/model/DailyCountryAggregate.md): A daily country aggregate contains Web API log totals for a product, date, and country. - [Data Object](https://help.cryptolens.io/api-reference/generated/model/DataObject.md): The structure of a data object aka additional variable. - [Event Object](https://help.cryptolens.io/api-reference/generated/model/EventObject.md): Reference for the Event Object model. - [Feature Definitions](https://help.cryptolens.io/api-reference/generated/model/FeatureDefinitions.md): A feature definition object. It can be edited on the product page. - [Key Device](https://help.cryptolens.io/api-reference/generated/model/KeyDevice.md): A key device contains aggregate usage for a license key and machine code. - [Key Usage Summary](https://help.cryptolens.io/api-reference/generated/model/KeyUsageSummary.md): A key usage summary contains lifetime aggregate usage metrics for a license key. - [License Activity Bucket](https://help.cryptolens.io/api-reference/generated/model/LicenseActivityBucket.md): A license activity bucket contains aggregated activity for a key, machine code, and time bucket. - [License Key](https://help.cryptolens.io/api-reference/generated/model/LicenseKey.md): A license key object represents information related to a specific license found inside a product. - [License Template](https://help.cryptolens.io/api-reference/generated/model/LicenseTemplate.md): The License Template object. You can also see a list of license templates on the following page. - [Message](https://help.cryptolens.io/api-reference/generated/model/Message.md): A message object that can be broadcasted to users. You can create new messages here. - [Metadata](https://help.cryptolens.io/api-reference/generated/model/Metadata.md): Additional information about each License Key. - [Object Log](https://help.cryptolens.io/api-reference/generated/model/ObjectLog.md): Reference for the Object Log model. - [Product](https://help.cryptolens.io/api-reference/generated/model/Product.md): A product object is a representation of a product that can be found in the product panel. - [Reseller](https://help.cryptolens.io/api-reference/generated/model/Reseller.md): An object that contains information about a reseller. - [User](https://help.cryptolens.io/api-reference/generated/model/User.md): A user object. - [Web API Log](https://help.cryptolens.io/api-reference/generated/model/WebAPILog.md): A state code is a 4 digit number that stores information about a request. It allows you to tell whether a certain request was successful or unsuccessful, and in some cases, what kind of action was taken. State codes can... - [Cryptolens Licensing Client SDK Reference](https://help.cryptolens.io/libraries/index.md): A reference of client SDKs available in multiple languages. - [C++](https://help.cryptolens.io/libraries/cpp.md): Overview of the Cryptolens Client API for C++ - [.NET](https://help.cryptolens.io/libraries/dotnet.md) - [Python](https://help.cryptolens.io/libraries/python.md) - [Node JS](https://help.cryptolens.io/libraries/nodejs.md) - [Java](https://help.cryptolens.io/libraries/java.md): Examples of how to use Cryptolens Java SDK - [Go](https://help.cryptolens.io/libraries/go.md): The documentation of the Go client SDK - [PHP](https://help.cryptolens.io/libraries/php.md): PHP library for license key verification - [Rust](https://help.cryptolens.io/libraries/rust.md): Rust client SDK and examples - [C](https://help.cryptolens.io/libraries/c.md): C client SDK reference - [Introduction to Web API](https://help.cryptolens.io/libraries/web-api.md): Introduction to Cryptolens Web API - [Python SDK Reference](https://help.cryptolens.io/libraries/python-api.md): Method signatures, returned data and settings for Python 3 and the legacy Python 2 / IronPython SDK. - [Python 3: Key](https://help.cryptolens.io/libraries/python-reference/python3/key.md): Activate, retrieve, create and update license keys. - [Python 3: AI](https://help.cryptolens.io/libraries/python-reference/python3/ai.md): Read usage analytics and Web API logs, and record application events. - [Python 3: Message](https://help.cryptolens.io/libraries/python-reference/python3/message.md): Read, create and remove update messages. - [Python 3: Product](https://help.cryptolens.io/libraries/python-reference/python3/product.md): List products and search their license keys. - [Python 3: Customer](https://help.cryptolens.io/libraries/python-reference/python3/customer.md): Create customers and retrieve their associated licenses. - [Python 3: Data](https://help.cryptolens.io/libraries/python-reference/python3/data.md): Read and update data objects attached to licenses or activations. - [Python 3: PaymentForm](https://help.cryptolens.io/libraries/python-reference/python3/payment-form.md): Create payment-form sessions from your server. - [Python 3: Helpers](https://help.cryptolens.io/libraries/python-reference/python3/helpers.md): Compute machine codes and check individual license properties. - [Python 3: Subscription](https://help.cryptolens.io/libraries/python-reference/python3/subscription.md): Record metered usage for customer subscriptions. - [Python 3: User](https://help.cryptolens.io/libraries/python-reference/python3/user.md): Manage customer usernames, passwords and license associations. - [Python 3: ActivatedMachine](https://help.cryptolens.io/libraries/python-reference/python3/activated-machine.md): The activation details returned on a license. - [Python 3: Reseller](https://help.cryptolens.io/libraries/python-reference/python3/reseller.md): The reseller details returned on a license. - [Python 3: LicenseKey](https://help.cryptolens.io/libraries/python-reference/python3/license-key.md): The parsed license object, including saving and loading signed responses. - [Python 3: Response](https://help.cryptolens.io/libraries/python-reference/python3/response.md): The response envelope before its license data has been verified and parsed. - [Python 3: RSAPublicKey](https://help.cryptolens.io/libraries/python-reference/python3/rsapublic-key.md): The XML RSA public key used to check license signatures. - [Python 3: Settings](https://help.cryptolens.io/libraries/python-reference/python3/settings.md): Server address and connection settings for this Python SDK implementation. - [Python 2 / IronPython: Key](https://help.cryptolens.io/libraries/python-reference/legacy/key.md): Activate, retrieve and release licenses, and create trial keys. - [Python 2 / IronPython: Helpers](https://help.cryptolens.io/libraries/python-reference/legacy/helpers.md): Compute machine codes and compare activation identifiers. - [Python 2 / IronPython: ActivatedMachine](https://help.cryptolens.io/libraries/python-reference/legacy/activated-machine.md): The activation details returned on a license. - [Python 2 / IronPython: LicenseKey](https://help.cryptolens.io/libraries/python-reference/legacy/license-key.md): The parsed license object, including saving and loading signed responses. - [Python 2 / IronPython: Response](https://help.cryptolens.io/libraries/python-reference/legacy/response.md): The response envelope before its license data has been verified and parsed. - [Python 2 / IronPython: RSAPublicKey](https://help.cryptolens.io/libraries/python-reference/legacy/rsapublic-key.md): The XML RSA public key used to check license signatures. - [Python 2 / IronPython: Settings](https://help.cryptolens.io/libraries/python-reference/legacy/settings.md): Server address and connection settings for this Python SDK implementation. - [Changelog](https://help.cryptolens.io/changelog/index.md) ## OpenAPI Specs - [openapi](/api-reference/openapi.json) ## Optional - [Blog](https://devolens.com/blog) - [Status page](https://status.cryptolens.io) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.