---
title: "Integration Guide"
canonical_url: "https://apidocs.sportradar.com/resources/epsilon-sdk/docs/integration_guide"
markdown_url: "https://apidocs.sportradar.com/resources/epsilon-sdk/docs/integration_guide.md"
last_updated: "2026-06-15T10:09:12Z"
---

# Integration Guide

This guide provides step-by-step instructions on how to integrate the Epsilon SDK into your project.

> **Tip**
>
> Use this page as the main setup path, then open the individual module pages for library-specific details.

1. **Configure repositories**

   Add Maven Central to your build configuration.

2. **Add the required dependencies**

   Declare the Epsilon modules you need in your shared source set.

3. **Handle iOS export if needed**

   Export Epsilon modules only when they are part of your public iOS-facing API.

4. **Initialize module entry points**

   Instantiate classes such as `Networking` when your integration requires them.

## 1. Configure Repositories

Epsilon SDK is hosted on **Maven Central**. Ensure it is included in your root `build.gradle.kts` or `settings.gradle.kts` file:

```kotlin
repositories {
    mavenCentral()
}
```

## 2. Add Dependencies

Add the required Epsilon SDK modules to your module's `build.gradle.kts`. Typically, these should be added to the `commonMain` source set in a Kotlin Multiplatform project.

```kotlin
kotlin {
    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation("ag.sportradar.mobile.epsilon:epsilon-core:<version>")
                implementation("ag.sportradar.mobile.epsilon:epsilon-networking:<version>")
                // Add other modules as needed
            }
        }
    }
}
```

> **Note**
>
> Using `api` instead of `implementation` makes the SDK's members available to the host application consuming your library.

## 3. iOS Configuration (Exporting)

If your project targets iOS, you must explicitly export the Epsilon SDK modules in your framework configuration if you want to make them visible to Swift/Objective-C code.
If Epsilon SDK is not part of your public API, this step is not necessary.

In your KMP module's `build.gradle.kts`:

```kotlin
kotlin {
    val iosCfg: KotlinNativeTarget.() -> Unit = {
        binaries {
            framework {
                baseName = "YourSharedLibrary"
                export("ag.sportradar.mobile.epsilon:epsilon-core:<version>")
                export("ag.sportradar.mobile.epsilon:epsilon-string:<version>")
                // Export other modules if they contain public APIs for iOS
            }
        }
    }

    iosArm64(iosCfg)
    iosX64(iosCfg)
    iosSimulatorArm64(iosCfg)
}
```

> **Note**
>
> In this case the dependencies in `build.gradle.kts` must be specified as `api` instead of `implementation`.

## 4. Initialization

Most Epsilon SDK modules are designed to be stateless or require explicit instantiation.

### Example: Networking

To use the networking features, create an instance of the `Networking` class:

```kotlin
val networking = Networking(
    prioritizedErrorResolvers = listOf(MyNetworkErrorResolver()),
    userAgent = "YourApp/1.0.0",
)
```

For more details on specific modules, refer to the [Module Reference](https://apidocs.sportradar.com/resources/epsilon-sdk/docs/modules/core.md).
