# Installation

Install the SDK source into your application, then configure the API URL, organization, and credential for your environment. npm and PyPI publication are separate release steps; the instructions below use repository or local source packages.

## Requirements

| SDK | Requirements | Runtime dependencies |
| --- | --- | --- |
| TypeScript | Node.js 22.18 or newer; npm; an ESM application | Platform `fetch` |
| Python | Python 3.11 or newer; pip | Python standard library |

The SDK is an HTTP client. You do not need a blockchain wallet, private signing key, or local node to make authorized API reads or run the non-custodial sandbox.

## TypeScript

Use the [TypeScript source repository](https://github.com/Klineo-Ecosystem/klineo-typescript-sdk) when you have access to it:

```bash
git clone https://github.com/Klineo-Ecosystem/klineo-typescript-sdk.git
cd klineo-typescript-sdk
npm ci
npm run build
```

From your application's directory, install that built checkout. Replace the example path with its actual location:

```bash
npm install /absolute/path/to/klineo-typescript-sdk
```

If you are working from the full KlineO source checkout, build and install the package in its existing location instead:

```bash
cd /absolute/path/to/KlineoLiquidity/packages/liquidity-api/sdk/typescript
npm ci
npm run build
```

Then, from your application's directory:

```bash
npm install /absolute/path/to/KlineoLiquidity/packages/liquidity-api/sdk/typescript
```

Use an ESM project (`"type": "module"` in `package.json`) and import the client by its package name:

```ts
import { LiquidityOsClient, LiquidityOsApiError } from '@klineo/liquidity-os-sdk';
```

For an application distributed independently of the SDK checkout, package the SDK after building and install the resulting tarball:

```bash
npm pack
```

Run `npm pack` in the SDK directory. Install the resulting `.tgz` file from your application using `npm install /absolute/path/to/the-package.tgz`. Pin the source commit or package artifact you test before promoting your integration to another environment.

See the [TypeScript SDK guide](/sdks/typescript/) for request types, cancellation, and error handling.

## Python

Create an isolated environment for your application:

```bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
```

Use the [Python source repository](https://github.com/Klineo-Ecosystem/klineo-python-sdk) when you have access to it:

```bash
git clone https://github.com/Klineo-Ecosystem/klineo-python-sdk.git
python -m pip install ./klineo-python-sdk
```

If you are working from the full KlineO source checkout:

```bash
python -m pip install /absolute/path/to/KlineoLiquidity/packages/liquidity-api/sdk/python
```

Import the client using the module name, which differs from the distribution name:

```python
from klineo_liquidity_os import LiquidityOsClient, LiquidityOsApiError
```

Pin the source commit or wheel artifact used for your tested integration. See the [Python SDK guide](/sdks/python/) for typed request dictionaries, timeouts, and error handling.

## Configure your environment

Your organization administrator supplies the environment's API URL and grants the appropriate workspace access. An `ORGANIZATION_OWNER` or `KLINEO_OPERATOR` can issue an API key or OAuth client through the app's Developer workspace. Credential issuance requires recent interactive authentication; the one-time secret should be stored in your service's secret manager.

Set these values in the process environment through your local development tooling or deployment secret configuration:

| Variable | Value |
| --- | --- |
| `KLINEO_API_BASE_URL` | The environment's API root ending in `/api/liquidity-studio/v2` |
| `KLINEO_ORGANIZATION_ID` | The organization to which the credential and requests belong |
| `KLINEO_ACCESS_TOKEN` | The issued API key or an OAuth bearer access token |

For a locally running API, the example source configuration uses `http://localhost:3000/api/liquidity-studio/v2`. A local API still requires configured storage and authorization; installing an SDK does not create a workspace or issue credentials.

The SDK options `accessToken` and `access_token` accept the bearer value directly. Do not prefix the value with `Bearer`; the client adds the header format. Organization binding is supplied through `organizationId` or `organization_id`.

Start with `scores:read` for the read-only quickstart. Add `studies:write` and `studies:read` only if your service needs the sandbox create and retrieve steps. The service checks both the credential's scope and the credential owner's workspace membership and role. Follow [authentication](/developers/authentication/) for OAuth exchange and [scopes](/developers/scopes/) for the permitted service surface.

## Verify the installation

The [quickstart](/get-started/quickstart/) makes one authorized request in either language, explains the response, and provides a complete deterministic study payload. Check the schema at your environment's `GET /openapi.json` before using additional operations from the [API reference](/developers/api-overview/).
