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

# SDKs

> Official Vers SDKs for 9 languages — auto-generated from the OpenAPI spec by Sterling

# SDKs

Vers publishes official SDKs for **9 languages**, all auto-generated from the OpenAPI spec and published to package registries on every API change.

## Installation

<Tabs>
  <Tab title="TypeScript">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    npm install vers-sdk
    ```

    ```typescript theme={"theme":{"light":"min-light","dark":"min-dark"}}
    import { VersSdkClient } from "vers-sdk";

    const client = new VersSdkClient({ apiKey: process.env.VERS_API_KEY });
    const vms = await client.listVms();
    ```

    [GitHub](https://github.com/hdresearch/ts-sdk) · [npm](https://www.npmjs.com/package/vers-sdk)
  </Tab>

  <Tab title="Python">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    pip install vers-sdk
    ```

    ```python theme={"theme":{"light":"min-light","dark":"min-dark"}}
    from vers_sdk import VersSdkClient

    client = VersSdkClient(api_key=os.environ["VERS_API_KEY"])
    vms = client.list_vms()
    ```

    [GitHub](https://github.com/hdresearch/python-sdk) · [PyPI](https://pypi.org/project/vers-sdk/)
  </Tab>

  <Tab title="Go">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    go get github.com/hdresearch/go-sdk
    ```

    ```go theme={"theme":{"light":"min-light","dark":"min-dark"}}
    import vers "github.com/hdresearch/go-sdk"

    client := vers.NewVersSdkClient(os.Getenv("VERS_API_KEY"))
    vms, err := client.ListVms(nil)
    ```

    [GitHub](https://github.com/hdresearch/go-sdk)
  </Tab>

  <Tab title="Rust">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    cargo add vers-sdk
    ```

    ```rust theme={"theme":{"light":"min-light","dark":"min-dark"}}
    use vers_sdk::VersSdkClient;

    let client = VersSdkClient::new(std::env::var("VERS_API_KEY")?);
    let vms = client.list_vms(None).await?;
    ```

    [GitHub](https://github.com/hdresearch/rust-sdk) · [crates.io](https://crates.io/crates/vers-sdk)
  </Tab>

  <Tab title="Ruby">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    gem install vers-sdk
    ```

    ```ruby theme={"theme":{"light":"min-light","dark":"min-dark"}}
    require "vers_sdk"

    client = VersSdk::Client.new(api_key: ENV["VERS_API_KEY"])
    vms = client.list_vms
    ```

    [GitHub](https://github.com/hdresearch/ruby-sdk) · [RubyGems](https://rubygems.org/gems/vers-sdk)
  </Tab>

  <Tab title="C#">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    dotnet add package vers-sdk
    ```

    ```csharp theme={"theme":{"light":"min-light","dark":"min-dark"}}
    using VersSdk;

    var client = new VersClient(Environment.GetEnvironmentVariable("VERS_API_KEY"));
    var vms = await client.ListVmsAsync();
    ```

    [GitHub](https://github.com/hdresearch/csharp-sdk) · [NuGet](https://www.nuget.org/packages/vers-sdk)
  </Tab>

  <Tab title="Java">
    ```xml theme={"theme":{"light":"min-light","dark":"min-dark"}}
    <!-- Maven — coming soon to Maven Central -->
    <dependency>
      <groupId>com.vers</groupId>
      <artifactId>vers-sdk</artifactId>
      <version>0.1.8</version>
    </dependency>
    ```

    ```java theme={"theme":{"light":"min-light","dark":"min-dark"}}
    import com.vers.sdk.VersClient;

    VersClient client = new VersClient(System.getenv("VERS_API_KEY"));
    List<VM> vms = client.listVms(null);
    ```

    [GitHub](https://github.com/hdresearch/java-sdk)
  </Tab>

  <Tab title="Kotlin">
    ```kotlin theme={"theme":{"light":"min-light","dark":"min-dark"}}
    // Gradle
    implementation("com.vers:vers-sdk:0.1.8")
    ```

    ```kotlin theme={"theme":{"light":"min-light","dark":"min-dark"}}
    import com.vers.sdk.VersClient

    val client = VersClient(System.getenv("VERS_API_KEY"))
    val vms = client.listVms()
    ```

    [GitHub](https://github.com/hdresearch/kotlin-sdk)
  </Tab>

  <Tab title="PHP">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    composer require vers/sdk
    ```

    ```php theme={"theme":{"light":"min-light","dark":"min-dark"}}
    use VersSdk\VersClient;

    $client = new VersClient(getenv('VERS_API_KEY'));
    $vms = $client->listVms();
    ```

    [GitHub](https://github.com/hdresearch/php-sdk)
  </Tab>
</Tabs>

## Features

All SDKs include:

* **Full API coverage** — 63 operations across VMs, commits, repositories, domains, environment variables, and tags
* **Typed models** — Request/response types generated from the OpenAPI schema
* **Error handling** — Typed error responses with status codes
* **Automatic retries** — Configurable retry with exponential backoff and `Retry-After` support
* **Request options** — Per-request timeout, headers, and idempotency key overrides
* **Query parameters** — Typed parameter interfaces for filtering and pagination
* **Platform detection** — `User-Agent` header with SDK version, language runtime, and OS info

## Authentication

All SDKs accept an API key via constructor or environment variable:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
export VERS_API_KEY="your-api-key"
```

Get your API key from [vers.sh/billing](https://vers.sh/billing).

## Source

SDKs are auto-generated by [Sterling](https://github.com/hdresearch/sterling) from the [Chelsea OpenAPI spec](https://github.com/hdresearch/chelsea) and published on every API change.
