Metadata-Version: 2.4
Name: ionworks-api
Version: 0.5.1
Summary: Python client for interacting with the Ionworks API
License-File: LICENSE.md
Requires-Python: >=3.11
Requires-Dist: iwutil>=0.4.0
Requires-Dist: numpy<2,>=1.26
Requires-Dist: pandas<3,>=2.0
Requires-Dist: polars-lts-cpu>=1.33.1
Requires-Dist: pyarrow>=14.0.0
Requires-Dist: pybamm>=25.12.2
Requires-Dist: pydantic<3,>=2.12.5
Requires-Dist: python-dotenv>=1.2.1
Requires-Dist: requests>=2.32.5
Requires-Dist: scipy>=1.12
Requires-Dist: supabase>=2.28.0
Provides-Extra: dev
Requires-Dist: pytest-cov>=7.0; extra == 'dev'
Requires-Dist: pytest>=9.0; extra == 'dev'
Requires-Dist: types-requests>=2.31.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: furo; extra == 'docs'
Requires-Dist: myst-nb>=1.0.0; extra == 'docs'
Requires-Dist: sphinx>=7.0.0; extra == 'docs'
Description-Content-Type: text/markdown

# Ionworks API Client

A Python client for interacting with the [Ionworks](https://ionworks.com) API.

## Installation

```bash
pip install ionworks-api
```

## Quick start

```python
from ionworks import Ionworks

# Initialize client (uses IONWORKS_API_KEY from environment/.env file)
client = Ionworks()

# or provide credentials directly
client = Ionworks(api_key="your_key")
```

Get your API key from the [Ionworks account settings](https://app.ionworks.com/dashboard/account).

## Sub-clients

The client exposes domain-specific sub-clients:

| Sub-client | Access | Description |
|---|---|---|
| Projects | `client.project` | Create, list, update, delete projects |
| Models | `client.model` | Create, list, update, delete models |
| Parameterized models | `client.parameterized_model` | List, create, get parameter values |
| Studies | `client.study` | Manage studies and assign simulations/measurements |
| Protocols | `client.protocol` | Validate UCP protocols |
| Simulations | `client.simulation` | Run simulations and retrieve results |
| Pipelines | `client.pipeline` | Submit parameterization pipelines |
| Optimizations | `client.optimization` | Run design optimizations |
| Cell specifications | `client.cell_spec` | Manage cell specifications |
| Cell instances | `client.cell_instance` | Manage cell instances |
| Cell measurements | `client.cell_measurement` | Upload and retrieve measurement data |
| Jobs | `client.job` | Monitor and cancel background jobs |

## Documentation

- **Guides and tutorials**: [docs.ionworks.com](https://docs.ionworks.com/api-client)
- **API reference**: [api.docs.ionworks.com](https://api.docs.ionworks.com)

## Environment variables

| Variable | Required | Default | Description |
|---|---|---|---|
| `IONWORKS_API_KEY` | Yes | — | API key from [account settings](https://app.ionworks.com/dashboard/account) |
| `IONWORKS_API_URL` | No | `https://api.ionworks.com` | API base URL |
| `PROJECT_ID` | For pipelines | — | Project ID from your project settings page |

The client loads `.env` automatically via `python-dotenv`.
