> ## Documentation Index
> Fetch the complete documentation index at: https://new-docs.simplecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Start with Other Platforms

> Implementing the SimpleCloud Controller API in every platform, can also be Minestom

The following guide will show you how to implement our API in other platforms, like Minestom or standalone.

Our API includes the `ControllerApi` and the `PlayerApi` class. The `ControllerApi` is used to interact with SimpleCloud's [groups](/en/manual/setup/groups), [servers](/en/manual/setup/servers), and more, while the `PlayerApi` is used to interact with [players](/en/manual/droplet/player).

## Dependencies

First, we need to add the dependencies to your `build.gradle` or `pom.xml`:

<Tabs>
  <Tab title="Gradle (Kotlin)">
    ```kotlin theme={null}
    repositories {
        maven("https://repo.simplecloud.app/snapshots")
        maven("https://buf.build/gen/maven")
    }

    dependencies {
        implementation("org.jetbrains.kotlin:kotlin-stdlib:2.1.20")
        implementation("org.jetbrains.kotlin:kotlin-reflect:2.1.20")
        implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1")
        implementation("app.simplecloud.controller:controller-api:LATEST")
        implementation("app.simplecloud.droplet.player:player-api:LATEST")
    }
    ```
  </Tab>

  <Tab title="Gradle (Groovy)">
    ```groovy theme={null}
    repositories {
        maven { url 'https://repo.simplecloud.app/snapshots' }
        maven { url 'https://buf.build/gen/maven' }
    }

    dependencies {
        implementation 'org.jetbrains.kotlin:kotlin-stdlib:2.1.20'
        implementation 'org.jetbrains.kotlin:kotlin-reflect:2.1.20'
        implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1'
        implementation 'app.simplecloud.controller:controller-api:LATEST'
        implementation 'app.simplecloud.droplet.player:player-api:LATEST'
    }
    ```
  </Tab>

  <Tab title="Maven">
    ```xml theme={null}
    <repositories>
        <repository>
            <id>simplecloud-snapshots</id>
            <url>https://repo.simplecloud.app/snapshots</url>
        </repository>
        <repository>
            <id>buf-maven</id>
            <url>https://buf.build/gen/maven</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib</artifactId>
            <version>2.1.20</version>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-reflect</artifactId>
            <version>2.1.20</version>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlinx</groupId>
            <artifactId>kotlinx-coroutines-core</artifactId>
            <version>1.10.1</version>
        </dependency>
        <dependency>
            <groupId>app.simplecloud.controller</groupId>
            <artifactId>controller-api</artifactId>
            <version>LATEST</version>
        </dependency>
        <dependency>
            <groupId>app.simplecloud.droplet.player</groupId>
            <artifactId>player-api</artifactId>
            <version>LATEST</version>
        </dependency>
    </dependencies>
    ```
  </Tab>
</Tabs>

## Basic Usage

Now that you have the dependencies, you can use the SimpleCloud API in your project.

<Tabs>
  <Tab title="Kotlin">
    ```kotlin theme={null}
    import app.simplecloud.controller.api.ControllerApi

    suspend fun main() {
        val controllerApi = ControllerApi.createCoroutineApi()
        val groups = controllerApi.getGroups().getAllGroups()
        println(groups)
    }
    ```
  </Tab>

  <Tab title="Java">
    ```java theme={null}
    import app.simplecloud.controller.api.ControllerApi;

    public class Main {
        public static void main(String[] args) {
            ControllerApi.Future controllerApi = ControllerApi.createFutureApi();
            controllerApi.getGroups().getAllGroups().thenAccept(groups -> {
                System.out.println(groups);
            });
        }
    }
    ```
  </Tab>
</Tabs>
