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

# Installation

> Add Ekso.Sdk to your .NET project via NuGet.

## Prerequisites

* **.NET 10 SDK** or later (`dotnet --version`).
* The **install URL** — the address of your self-hosted Ekso (e.g. `https://ekso.acme.com`). This is the `PublicUrl` set during the `/startup` wizard.
* Either a stored **API key** (for `ApiKeyAuth`) or an **OAuth token pair** (for `RefreshableBearerAuth`). See [Authentication](/sdk/authentication) for how to obtain each.

## Install

From your project directory:

```bash theme={null}
dotnet add package Ekso.Sdk
```

Or in your `.csproj`:

```xml theme={null}
<PackageReference Include="Ekso.Sdk" Version="0.5.0" />
```

Pin a major-minor version in production code; the SDK follows semver and may evolve the typed surface in major bumps.

## Verify

A minimal program that constructs a client and authenticates:

```csharp theme={null}
using Ekso.Sdk;
using Ekso.Sdk.Authentication;

var client = new EksoClient(new EksoClientOptions
{
    BaseUrl = "https://ekso.acme.com",
    Auth = new ApiKeyAuth("ek_live_xxx"),
});

// Sanity check — list field definitions on the install
var fields = await client.Api.Field.GetAsync();
Console.WriteLine($"Install has {fields?.TypeText?.Count ?? 0} text fields configured.");
```

If the dependency is wired correctly, this compiles and (with a valid API key) prints the count.

## Dependencies

`Ekso.Sdk` declares:

| Package                                   | Why                                               |
| ----------------------------------------- | ------------------------------------------------- |
| `Microsoft.Kiota.Abstractions`            | Core abstractions for the generated client.       |
| `Microsoft.Kiota.Http.HttpClientLibrary`  | Default HTTP transport.                           |
| `Microsoft.Kiota.Serialization.Json`      | JSON request/response (default content type).     |
| `Microsoft.Kiota.Serialization.Form`      | `application/x-www-form-urlencoded` (auth flows). |
| `Microsoft.Kiota.Serialization.Multipart` | Multipart upload (file attachments).              |
| `Microsoft.Kiota.Serialization.Text`      | `text/plain` responses.                           |

Most of these are transitive — you don't need to add them to your `.csproj`. They're listed so you know what's actually in your dependency graph.

## Pre-release builds

To pin a specific pre-release:

```bash theme={null}
dotnet add package Ekso.Sdk --version 0.5.0
```

Pre-release versions surface new API operations as soon as the backend ships them. Stable releases gate behind a release cycle that matches the backend's minor versions.

## Next steps

* **[Authentication](/sdk/authentication)** — pick `ApiKeyAuth` or `RefreshableBearerAuth`.
* **[Quickstart](/sdk/quickstart)** — your first authenticated call against the API.
