---
title: "List models for a project"
method: GET
path: "/models"
---

# List models for a project

`GET /models`

## Request

- Base URL: `https://api.ionworks.com`
- URL: `https://api.ionworks.com/models`
- Auth: none declared

List a project's models with pagination, filtering, and sorting.

Filter parameters support Supabase filter operators, per the field's
declared policy:
- Text fields (name, description, created_by_email): use ``ilike.%value%``
  for partial match
- Date fields: use ``gte.value``, ``lte.value``, etc.
- Date range: use created_at_gt and created_at_lt for between queries

## Query parameters

- `project_id` string, uuid, required
- `limit` integer
- `offset` integer
- `q` string, nullable: Free-text search on model name and search_vector.
- `name` string, nullable
- `description` string, nullable
- `created_by_email` string, nullable
- `created_at` string, nullable
- `created_at_gt` string, nullable
- `created_at_lt` string, nullable
- `updated_at` string, nullable
- `updated_at_gt` string, nullable
- `updated_at_lt` string, nullable
- `order_by` 'name' | 'created_at' | 'updated_at'
- `order` 'asc' | 'desc'

## Response `200`

Successful Response

- PaginatedResponseModel
  - `items` Model[], required
    - `name` string, required: The name of the model.
    - `description` string, nullable: An optional description for the model.
    - `pybamm_version` string, nullable: PyBaMM version used for this model. If not provided, will be read from pybamm.__version__.
    - `chemistry` 'lithium_ion' | 'lithium_sulfur' | 'ecm' | 'generic': Model chemistry kind: 'lithium_ion' (default — assumes pybamm lithium-ion conventions), 'lithium_sulfur', 'ecm', or 'generic' (no chemistry-specific enrichment).
    - `simulation_settings` object, nullable: Optional persistent simulation kwargs (var_pts / submesh_types / spatial_methods / geometry / solver) in the flat canonical form, re-applied at simulation time. None uses the model defaults.
    - `project_id` string, nullable: Project this model belongs to. None only for the shared system catalog.
    - `id` string, required: The unique identifier for the model.
    - `user_id` string, nullable: The ID of the user who created the model. None once that account is deleted.
    - `organization_id` string, required: The ID of the organization this model belongs to.
    - `source_model_id` string, nullable: For a project's copy of a system model, the system model it was copied from. None for a model the project made itself.
    - `created_by_email` string, nullable: Email of the user who created the model.
    - `created_at` string, date-time, required: Timestamp of when the model was created.
    - `updated_at` string, date-time, required: Timestamp of when the model was last updated.
    - `is_custom_model` boolean, required: Check if this is a custom model (has compressed model data).
  - `count` integer, required
  - `total` integer, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-20** `4185f624bbb8`: 3 breaking, 2 info
  - added the new required `query` request parameter `project_id`
  - the response property `items/items/user_id` became optional for the status `200`
  - response property `items/items/user_id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - added the optional property `items/items/project_id` to the response with the `200` status
  - …1 more

[Operation history](https://skmtc.dev/ionworks/apis/ionworks-api/changes/models/get.md)

---

[API](https://skmtc.dev/ionworks/apis/ionworks-api.md) - [All operations](https://skmtc.dev/ionworks/apis/ionworks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ionworks/apis/ionworks-api/revisions/abebbbc5f60a?raw)
