---
title: "Epsilon Licensing"
canonical_url: "https://apidocs.sportradar.com/resources/epsilon-sdk/docs/modules/licensing"
markdown_url: "https://apidocs.sportradar.com/resources/epsilon-sdk/docs/modules/licensing.md"
last_updated: "2026-06-15T10:09:12Z"
---

# Epsilon Licensing

The `epsilon-licensing` module provides management for mobile SDK licensing via the **CALM API**. It handles license validation and configuration for Sportradar SDKs.

> **Warning**
>
> Do not place real production credentials directly into source code or documentation examples.

## Features

- **CALM API Integration**: Seamless validation against the CALM service.
- **Type-Safe Models**: Structured representations of license configurations and validation responses.
- **Cross-Platform**: Support for Android, iOS, JVM, and JavaScript.

## Supported Platforms

- Android
- iOS
- JVM
- JavaScript

## Key Components

### CalmApi

The primary class used to validate licenses. It requires a `CalmApiConfig`.

**Validation example**

```kotlin
val calmApi = CalmApi(
    config = CalmApiConfig(
        baseUrl = "https://licensing.sportradar.com",
        apiKey = "your_api_key",
        appIdentifier = "your_app_identifier",
        appKey = "your_app_key",
    ),
    networking = networking // An instance of the Networking module with which the requests will be made
)

val result = calmApi.validateLicense()
```

### CalmApiConfig

Configuration for the licensing client, including the base URL and optional networking settings.

## Usage

Add the dependency to your `commonMain`:

```kotlin
dependencies {
    implementation("ag.sportradar.mobile.epsilon:epsilon-licensing:<version>")
}
```

### Dependency on Networking

This module depends on `epsilon-networking` and exports it, meaning its APIs will be available to you when you include licensing.
