> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.cargovision.app/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.cargovision.app/_mcp/server.

# Client SDKs

The `cargovision-sdk` repository contains clients generated from the same OpenAPI specification as the [API reference](/api-reference). The SDKs cover the REST API only; live video is a direct WebSocket connection from the edge device to the dashboard.

> **Note**
>
> The packages are not published to public registries yet. Install them from a checkout of the `cargovision-sdk` repository.

## Languages

TypeScript, Python, Go, Rust, Ruby, Java, Kotlin, Scala, C#, Swift, Dart, PHP, Perl, Elixir, Haskell, C, C++, Zig, and Shell. The TypeScript client also has a convenience wrapper, `@cargovision/sdk-wrapper`, that creates every API group from one configuration.

Generated method names come from the HTTP method, the endpoint's tag, and its path. For example, `GET /v1/containers` is `getContainersV1Containers` in TypeScript and `get_containers_v1_containers` in Python.

## Examples

**`TypeScript`**

```ts TypeScript
// npm install /path/to/cargovision-sdk/wrappers/typescript
import { createCargoVisionClient } from "@cargovision/sdk-wrapper";

const client = createCargoVisionClient({
  baseUrl: "https://api.cargovision.app",
  accessToken: process.env.CARGOVISION_JWT,
});

const containers = await client.containers.getContainersV1Containers({
  page: 1,
  limit: 20,
});
```

**`Python`**

```python Python
# python3 -m pip install /path/to/cargovision-sdk/clients/python
import os

import cargovision_api_client
from cargovision_api_client.api.containers_api import ContainersApi

configuration = cargovision_api_client.Configuration(
    host="https://api.cargovision.app",
    access_token=os.environ["CARGOVISION_JWT"],
)

with cargovision_api_client.ApiClient(configuration) as api_client:
    containers = ContainersApi(api_client).get_containers_v1_containers(page=1, limit=20)
```

## Choosing credentials

| Caller                         | Configure                                                               |
| ------------------------------ | ----------------------------------------------------------------------- |
| People and dashboard-like apps | A JWT as the bearer access token (`accessToken`, `access_token`)        |
| Trusted edge devices           | The edge API key (`apiKey`, or `api_key={"apiKeyAuth": ...}` in Python) |

Never configure the edge API key in browser or mobile code. See [Authentication](/authentication).