Metadata-Version: 2.4
Name: ionworks-api
Version: 0.11.0
Summary: Python client for interacting with the Ionworks API
Project-URL: Homepage, https://ionworks.com
Project-URL: Documentation, https://packages.docs.ionworks.com/ionworks-api/
Project-URL: Repository, https://github.com/ionworks/ionworks-api
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: ionworks-schema>=0.4.0
Requires-Dist: numpy>=1.26
Requires-Dist: pandas<3,>=2.0
Requires-Dist: polars>=1.33.1
Requires-Dist: pyarrow>=14.0.0
Requires-Dist: pybamm>=25.12.2
Requires-Dist: pydantic<3,>=2.12.5
Requires-Dist: requests>=2.32.5
Requires-Dist: scipy>=1.13
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

> **This is a read-only mirror.** The source of truth is a private repo.

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)
- **Changelog**: [`CHANGELOG.md`](./CHANGELOG.md) for this package; [docs.ionworks.com/changelog](https://docs.ionworks.com/changelog) for the full Ionworks platform changelog.

## 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 |
| `IONWORKS_PROJECT_ID` | For pipelines / project-scoped calls | — | Default project ID from your project settings page. Used as the default `project_id` on the client. (`PROJECT_ID` is accepted as a deprecated fallback.) |

The client does not load `.env` files on its own. If your variables
live in a `.env`, call `load_dotenv()` yourself before constructing the
client:

```python
from dotenv import load_dotenv
load_dotenv()

from ionworks import Ionworks
client = Ionworks()
```
