Blog on Software Licensing, Commercialization, and Revenue Optimization

Simple Subscription Management with Web API 3

Today, we’ve released two main things that will simplify many of the tasks that are faced primarily by those that want to set up a subscription based licensing model. These are the Extend License method and the introduction of Web API 3.

Extend License method

The Extend License method offers a simple way of extending a license either before the subscription has expired or afterwards. It’s actually as simple as to simply specify the number of days you want the license to be extended with and it will do the rest. Another great thing about it is that it is encapsulated into the Web API 3 framework, which means that you have greater possibility to adjust the scope/permissions (more about that below).

Introduction of Web API 3

Several months ago, we discontinued the old Web API, and moved most of the methods into Web API 2. The introduction of Web API 3 is a bit different, though. There is no intention of trying to discontinue the 2nd version. Instead, the 3rd version is simply an extension of the 2nd, with features that are desired by our users. Here are some of the examples:

  • The 3rd version keeps all information about scopes of permissions in Access Tokens. You can specify the methods that an access token has access to as well as the products and keys it should be able to interact with. Note, IsPublic will not affect the access to a product; it’s all managed using access tokens. Moreover, you are able to revoke access at any time by removing the token from here.
  • Versioning has improved quite a lot in the 3rd version of the Web API. Now, you can explicitly specify the method version that you want access to, by adding it to the query string. It’s not required, but once we introduce new features, it will be quite simple to upgrade.

Feedback and suggesting new methods

The 3rd version of the Web API is still quite new, so if you have any problem in mind or a suggestion of a concrete method, please submit your idea here! 🙂

Not a customer yet? Sign Up for a free trial and implement our software licensing system within minutes.

Added Simplicity and Support for Sorting

There are two words that summarize what’s going to be said below: simplicity and productivity. Shortly, we’ve simplified the most difficult operations in the .NET API and added the ability to find/sort your licenses. The aim of all of these changes is to save your time as much as possible.

Simplicity in the .NET client

If you have the recent version of the .NET client SKGL Extension, you might have noticed the extension methods that we’ve added to the Key Information class. The great thing about them is that you can use SKGL Extension as a fluent API (learn more). So, say you would like to set up offline key activation, how would you take an advantage of these methods? Here’s is an example:

Productivity with Search Function

The small search field available on the product page becomes really handy when searching for specific licenses. For instance, you can search based on the creation date, features, notes as well as customer related data (if a key is assigned to a certain customer). Here’s an example of a simple query:

Other things

In addition, here are some of the other changes:

  • If you use SKM15, the key will no longer update during trial activation.
  • The Web API 2 is now entirely compatible with SKM15.
  • The Web API has a new page. Please take a look!
  • Customers can now be created in all subscription types.
  • Everyone can create a payment form as well as activation form (with or without a subscription). In some cases, a small link will be displayed.

Not a customer yet? Sign Up for a free trial and implement our software licensing system within minutes.

Key Generation supports SKM15 and Customer Management

The Key Generation method has, from now on, support for our new key generation algorithm SKM15 and the ability to assign a key to a customer.

In addition, we’ve started working on a new documentation page for the Web API, where, in future, all information (for all versions) will be located. One of the greatest things is the ability to get personalized values for some parameters.

Not a customer yet? Sign Up for a free trial and implement our software licensing system within minutes.

SKGL Mentioned in Licensing .NET Applications!

Our licensing suite Software Protector (based on SKGL) is mentioned as an example of a licensing framework in Licensing .NET Applications by Fabian Deitelhoff at Pluralsight…/licensing-dotnet-applications.

See the story behind SKGL in the InfoQ Interview:

SKGL – Serial Key Generating Library is an offline based key validation system where license information is stored directly inside the key. It’s used by individual developers as well as companies. Designed by Artem in 2010-2011.

Interested in different kinds of key generation algorithms? Check out

Not a customer yet? Sign Up for a free trial and implement our software licensing system within minutes.

Successful change of infrastructure and the way it affects the licensing model

Dear Users!

In this letter, I would like to describe the progress that we’ve made since the 9th of June as a mean to reduce downtimes, how our licensing model has changed, how it affects current customers, and finally some of the new functionality that are currently available and those that will be available soon.

First of all, I would like to thank everyone who took their time to reply to the questionnaire that was attached to the previous post. It has been really helpful and has affected the way the plan was executed. Generally, most of us share the opinion that we should have new servers and to allow SKM to be hosted on private servers. Within the same week, we changed the infrastructure from being in a shared environment to a virtual private server provided by Microsoft Azure. From now on, no more downtimes should occur as the environment is highly compatible with our application. In addition, the response speed should be a lot faster than before.

Some of the advantages of the change of infrastructure is that it makes SKM even more reliable for critical operations such as instant license validation and payment processment. However, security and reliability improvements have affected the licensing model of our application. Now, instead of just offering a cloud based software licensing system, there will be an option to host SKM on your own servers. This is particularly good for enterprises with policies that require data to be stored in the infrastructure of the company.

If you choose to host SKM on your own, there are two ways it can be achieved: dedicated and on premise. The first option gives you SKM that is specifically hosted for your company, but which is maintained and hosted by us. The latter allows you to host SKM on your own servers. Maintenance is still included in this case.

Since we have three new types of subscriptions: Standard, Professional and Ultimate, the old Premium subscription is now longer available for new customers. Thanks to all current Premium subscribers, SKM has continuously grown from just being a way to avoid duplicates in Software Protector (SKGL) to an advanced, competitive, affordable, developer friendly licensing solution with tools that ensure that you reduce the time needed to maintain software licensing and distribution. Your friendly feedback and loyalty has encouraged us to keep on adding new features in order to deliver you a great service. Therefore, all current Premium subscribers will be able to upgrade their subscriptions in the same way as before. However, if you would like to get our newest features, you are always welcome to upgrade to any other subscription!

Now, let’s have a look at what’s new in SKM. Clearly, the design has changed in many parts of the application, in order to ensure that you get a great user experience. It’s not yet perfect, but we do our best to make it as great as possible (and you are always encouraged to let us know your thoughts on the forum!). Since we want SKM to be as simple as possible, we’ve added support for a fluent interface in SKGL Extension (read more here). Moreover, to simplify customer management, we’ve added the ability to assign keys to a customer, which removes the hassle that can occur when you have to manage many licenses. From now on, it’s the customer, not the license key that should be in centre. Later this year, we will extended the Web API to allow it to be more customer based. In addition, there is support for a new algorithm for key generation, namely SKM15. This algorithm is more adjusted to an online licensing system such as SKM. Our Web API is not entirely compatible with SKM15, but everything is made to change this (here is compatibility list).

In the nearest future, we plan to open up a new version of the Web API with support for token based authentication, simplified versioning and documentation. A final date is not set because even if it set, more time will be required to review and test it, which would make the initial prediction incorrect. It will be released, that’s what can be said at the moment. In addition, we’ve started working on a cool feature that allows you to analyse the usage of your application (during activation for instance). By setting up a script, you can track down potential violations of a certain license quite easily. Again, it will be released, but there is still no solid deadline. If you would like to test our current progress, please let us know!

In conclusion, here’s what we’ve gone through. First of all, the infrastructure has changed to avoid downtimes. Secondly, support for dedicated and on premise hosting was added for those that prefer to have a private SKM server. Thirdly, current Premium customers will be able to keep their subscription as before, however, there is always an option to get new features by upgrading to a different subscription. Fourthly, we mentioned that there is an added support for customer management and there is also a new key generation algorithm optimized for SKM. Finally, it was announced that a new Web API will be released with support for token based authentication (and much more), and that soon you will be able to track down potential license violations using simple scripts. Finally, I would like to thank all of you for providing constructive feedback and suggesting new features. It has been fun to work with you, and I’m looking forward to continue working with you in order to ensure that your products are secured with a modern licensing system!

Kind Regards,


Lead Developer

Not a customer yet? Sign Up for a free trial and implement our software licensing system within minutes.

Coming Plans and New Features

Dear Users,

In the past months, many things have changed. The Web API was extended with new methods (focus on statistics) and the control panel itself received some new functions. Apart from that, as some of you might have noticed, there were some down times also. In this letter, I would like to describe our plan to tackle the down times, shortly mention the new features, and finally stress that Web API 1 will be discontinued.


I think this is quite a familiar concept to many of us; it basically means that, for some reasons, the web application is unable to respond to some or all requests. We’ve experienced several down times starting from January 2015 (3-4). Some were quite short and rarely noticeable, whilst the recent ones were quite long. The reasons varied, but many depended on the infrastructure where the application is currently stored, which is provided by another company.

For some applications, a downtime once in a while might not be of big importance. For Serial Key Manager (SKM), this is not the case. The response time of our application is a vital aspect, mainly because of the way SKM is being used. If the application is not accessible, users that depend on a valid key validation/activation will not be able to access the software.

In order to ensure that your customers are always able to work with your application, there is a series of measures that are going to be taken.

  • New servers: In the nearest time, we are going to upgrade the infrastructure. This means faster servers and reduced (if any) downtime.
  • Private hosting: This means that you will be able to host SKM on your own servers.
  • Simplified offline key validation: Since implementation of periodic key validation (even with small intervals) is a good way to enable access to the application even during a downtime, our aim is to simplify the way it is implemented. At the moment, you can read this article to get a pre-configured solution. However, the goal is to reduce this to a single method call.

If there is anything else you think we should do, please let us know here. I must admit that we’ve had constructive conversations with many SKM users these months. It’s important to keep up the friendly atmosphere where all of us can exchange ideas in order to achieve a great licensing solution! (please fill in the form to rate these ideas)

New features

Let’s now take a look at some of the new features that were added/will be added to SKM.

  • Payment Forms – a hosted payment form that will allow you to integrate the Web API together with PayPal and Stripe. A draft of the knowledge base article can be found here. The feature itself is expected to work. See an example (live).payformex
  • Web API methods
    • Get Activated Machines – list the activated machines for a given key (includes ip, machine code, time).
    • Web API Log – get the Web API log for your account, a product or a key.
  • Stats – or Analytics. It’s an easy way to get a quick overview of your account, a product or a key. Overview

Web API 1

As it was mentioned in this article, Web API will be discontinued. We’ve now removed all documentation, but the API itself is still working. Within 10 days from now, we plan to turn it off completely. If this will affect you negatively, please let us know so that we can come to a solution.


In this letter, we went through the strategy to decrease the impact of/reduce downtime. Later, we briefly looked at the new features (payment forms & analytics). Finally, it was stressed that Web API 1 will be discontinued soon. If anyone would have some questions, please contact us!


Not a customer yet? Sign Up for a free trial and implement our software licensing system within minutes.

Additional security for multiple products

Along with the update of SKGL Extension (see release notes), we’ve added support for signing of product id (pid), user id (uid) and activation date. These fields solve the following problem that was reported by a user:

Before, it was possible to use the same KeyInformation file (serialized by SaveKeyInformationToFile) to unlock other products (that used the same Public Key, i.e. by the same software vendor). For some, it worked out by specifying this information in the Notes field.

This change mostly affects those that use offline key validation or some sort of periodic activation with multiple products in the same account. By checking the product id during activation/validation, you can ensure that only the correct key information object is used for a given product.

In addition, the activation date is currently signed also. This means that the client user is unable to change the activation date, which ensures that activation files are only valid for a certain period of time. A tip here is to try to use the TimeCheck method.

If you would have question about the way you can take an advantageb of this security measure, please send a question on our forum.

Not a customer yet? Sign Up for a free trial and implement our software licensing system within minutes.

Discontinuing Web API 1.0, Important information

The Web API 1.0, also referred to as the old API, is the first version of an API that could perform actions such as Validation and Activation. A good way to find out whether you are using this version of the API is by looking at where requests are sent. If they look similar to, this is a sign of the old API. If you are using the newest version of SKGL Extension, then you are using the new version, 2.0. In this letter, we are going to look at why you should upgrade to Web API 2.0, when we plan to discontinue the old version and finally how you can get more support if you would have questions.

Why Upgrade to Web API 2.0

There are many advantages of upgrading to the newer version, some of them are going to be listed below.

  • It is actively maintained: In contrast to the old API, the new one is kept up-to-date and actively maintained. This means that you will get all important security updates and new features in the new version of the API. In addition, all of the client APIs (SKGL Extension) are configured to work with it.
  • Many new features: The new API supports new features such as deactivation, optional field (allows to have quotas), standardized input/output format and ability to perform some actions that would otherwise require you to log in into the control panel.
  • Structure and easy troubleshooting: The structure of the API methods is designed to allow you to easily see what parameters are required and what kind of information that is going to be returned. This is great especially for those of you that access the API through another environment which is currently not supported by a client API (such as SKGL Extension for .NET or Java). Moreover, if you would run into trouble, you will receive an error that makes sense. This makes it possible to easily troubleshoot errors.
  • Fast integration with Get the Code: You might have already noticed a new icon we have added in the control panel, namely </>. Once you see such icon, it means that you can get code/pre-configured requests that you can paste into your application and make it work right away.
  • Statistics implies security: Each time a method is executed (right now, we support activation, deactivation, validation, optional field), it is stored in the database. Right now, you have the ability to see the number of successful and unsuccessful requests in total, but we plan to add a better interface that will allow you to see more complex presentation of the data (which at this stage includes the date and the IP address). This implies security. The ability to know to where requests come from is a great way to prevent users from guessing the key and allow you to take measures before anything bad has happened. This is only available in Web API 2.0.
  • Faster evaluation of requests: The new API is considerably faster than the old one and is always kept updated to ensure that it can handle large number of requests.

To sum up, upgrading to the new version of the API gives you many new features. Some of them ensure that everything is safe and fast, and some that allow faster integration.

When the old Web API (1.0) is discontinued

Technically speaking, the old API is no longer supported by any client that many use to access it (such as SKGL Extension). However, those of you that did not update SKGL Extension still have access to the old API. In fact, it still works to access it and get some support on how to use it. In several months, we plan to remove support for it and eventually turn it off. Below, a time schedule of this procedure:

  • Starting from 20th of May, support pages are going to be removed as well as the documentation
  • 1st of June, the Web API 1.0 will be unavailable. Note, if you still want to have access to it, please send a message directly to info (at) serialkeymanager dot com.
  • From 1st of July up to 1st of September, we plan to remove support for it entirely. There is no set date when this is going to be done in that time interval, however, it all depends on what is best for you. It could take up to the 1st of September, but ideally, it would be done already the 1st of July. In any case, we will notify you in advance.

This upgrade means that you would need to update the SKGL Extension version on your clients’ machines before the 1st of July. We have tried to make this step as easy as possible (for instance, there is already pre-configured code available in the control panel), but if you would need any assistance, please submit a question on our forum ( Since many might have similar questions, by asking it there allows others to learn from it. We encourage everyone to try it out!

Not a customer yet? Sign Up for a free trial and implement our software licensing system within minutes.