Skip to main content
The Python SDK requires Python 3.9+.

Installation

Quick Start

Create an Account

The signup function creates a new Avala account and returns an API key. It does not require authentication.
An async variant is also available:

Authentication

The SDK authenticates using your Avala API key, which is sent via the X-Avala-Api-Key header on every request. You can provide the key directly or let the SDK read it from the environment. Option 1: Pass the key directly
Option 2: Use an environment variable

Async Support

The SDK ships with a fully async client built on top of httpx. Use AsyncClient for non-blocking I/O in async applications.
Using the async context manager:

Working with Datasets

The Python SDK ships an avala datasets upload CLI command for uploading local files. See Upload local files for the end-to-end flow, including the per-user 10 GB storage cap.

List Datasets

Get a Dataset

Working with Projects

List Projects

Get a Project

Working with Tasks

List Tasks

Get a Task

Working with Exports

The Python SDK supports full CRUD operations for agents, webhooks, storage configurations, inference providers, quality targets, consensus config, and organizations. Datasets support upload via the avala datasets upload CLI command. Projects remain read-only — use the REST API for project mutations.

Create an Export

Poll for Completion

Working with Organizations

List Organizations

Create an Organization

Manage Members

Working with Slices

List Slices

Browsing Dataset Items

List Items in a Dataset

List Sequences

Get a Sequence

Validating a Dataset After Ingest

The SDK ships typed helpers for post-ingest validation — useful for scripts or AI agents that need to verify an upload without opening Mission Control.

Dataset Health

Inspect a Single Frame

Read Calibration

Type Hints

The SDK is fully typed. All response objects are Pydantic models with complete type annotations, giving you autocomplete and type checking out of the box.

Error Handling

The SDK raises typed exceptions so you can handle different failure modes precisely.

Polling with datasets.wait()

After uploading a dataset, use wait() to block until it finishes processing:
wait() polls the dataset status at the specified interval. If the dataset does not reach the target status before the timeout, it raises TimeoutError. An async variant is also available:

Pagination

List methods return a CursorPage object. You can iterate through items directly or control pagination manually.

Fleet Management

Fleet Management is in preview. APIs described here may change.
The fleet namespace provides access to device registry, recordings, events, rules, and alerts.
See the Fleet Dashboard guide for complete examples.

Configuration

You can customize the client behavior at initialization time.