# Go SDK

{% hint style="info" %}
LicenseSpring’s new [**Go SDK V2**](https://docs.licensespring.com/sdks/go-sdk/v2/go-sdk-v2) is now available! This version is a complete rewrite with breaking changes and will receive all future updates and support.

The legacy Go SDK (v1) is deprecated and maintained for backward compatibility only. New users should use v2.
{% endhint %}

Go SDK provides methods to call LicenseSpring APIs directly from Go.

The SDK is publicly available and can be found [**here**](https://gitlab.com/l3178/sdk-go).

#### Installation

```bash
go get -u gitlab.com/l3178/sdk-go/...
```

#### Specific Versions

If you want to install a specific version, see the list of versions [**here**](https://gitlab.com/l3178/sdk-go/-/tags). You should preferably always use the latest one.

#### Usage Examples

Usage examples for [**Go License Client**](https://docs.licensespring.com/sdks/go-sdk/v1-legacy/go-license-client) and [**Management Client**](https://docs.licensespring.com/sdks/go-sdk/v1-legacy/management-client) can be found in these docs. Another good source of examples are the [**tests**](https://gitlab.com/l3178/sdk-go/-/tree/master/tests).

{% hint style="danger" %}
**Managing API and Shared Keys in the SDK**

The SDK requires the end-user to provide an API key and a shared key for its operation. How these credentials are supplied and managed is up to the user, as it plays a critical role in ensuring security.

While our samples demonstrate using configuration files for convenience, this is only one possible approach. Users may opt for other secure methods, such as environment variables or secret management tools, based on their needs. Regardless of the method chosen, it is essential to implement safeguards to prevent unauthorized access or accidental exposure, especially in public repositories or shared environments.
{% endhint %}
