> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ionworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Projects API

> Create, list, filter, update, and delete projects programmatically with the ionworks-api Python sub-client

The [`ionworks-api`](https://github.com/ionworks/ionworks-api) Python package provides a sub-client for managing [projects](/core-concepts/projects-studies) programmatically. For installation and authentication, see the [Python API client](/api-client) page.

## Listing projects

```python theme={null}
from ionworks import Ionworks

client = Ionworks()

# List all projects
projects = client.project.list()
for project in projects:
    print(f"{project.name} (ID: {project.id})")

# Filter by name (case-insensitive substring match)
projects = client.project.list(name="NMC")

# Paginate results
projects = client.project.list(limit=10, offset=20)
print(f"Showing {projects.count} of {projects.total} projects")
```

Supported filters: `name`, `name_exact`, `created_by_email`, `created_after`, `created_before`, `updated_after`, `updated_before`, `order_by`, `order`.

## Getting a project

```python theme={null}
project = client.project.get("your-project-id")
print(f"{project.name}: {project.description}")
```

## Creating a project

```python theme={null}
project = client.project.create({
    "name": "NMC622 Characterization",
    "description": "Parameter identification for NMC622/Graphite cells",
})
print(f"Created project: {project.id}")
```

## Updating a project

```python theme={null}
project = client.project.update("your-project-id", {
    "name": "NMC622 Characterization v2",
    "description": "Updated description",
})
```

## Deleting a project

```python theme={null}
client.project.delete("your-project-id")
```

<Tip>
  You can find the ID for any resource from the Ionworks Studio web app. The
  ID is displayed in the URL when you navigate to a resource's detail page.
</Tip>
