---
title: "Get Simulation Cycles"
method: GET
path: "/simulations/{simulation_id}/cycles"
tags: ["Simulations"]
---

# Get Simulation Cycles

`GET /simulations/{simulation_id}/cycles`

## Request

- Base URL: `https://api.ionworks.com`
- URL: `https://api.ionworks.com/simulations/{simulation_id}/cycles`
- Auth: none declared

Get cycle-level metrics for a simulation.

Computes metrics like discharge capacity, coulombic efficiency, capacity
retention, etc. for each cycle from the steps.parquet file using
ionworksdata.cycle_metrics.get_cycle_metrics.

Parameters
----------
simulation_id : str
    ID of the simulation
user_org_client : tuple[str, str | None, AsyncClient]
    Current user_id, organization_id, and Supabase client
simulation_repository : SimulationRepository
    Repository for simulations table
simulation_data_repository : SimulationDataRepository
    Repository for simulation_data table

Returns
-------
dict
    Dictionary with cycle metrics as lists, one value per cycle.
    Keys include: Cycle number, Discharge capacity [A.h],
    Charge capacity [A.h], Coulombic efficiency, Capacity retention, etc.

Raises
------
HTTPException
    404 if no results found, 500 for computation errors

## Path parameters

- `simulation_id` string, uuid, required

## Query parameters

- `max_points` integer, nullable: Maximum rows of the cycle series

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-30** `ea3d377fec1a`: 1 breaking
  - for the `path` request parameter `simulation_id`, the format changed from no format to `uuid`

[Operation history](https://skmtc.dev/ionworks/apis/ionworks-api/changes/simulations/:simulation_id/cycles/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)
