---
title: "Update an analysis's metadata"
method: PATCH
path: "/analyses/{analysis_id}"
tags: ["Analyses"]
---

# Update an analysis's metadata

`PATCH /analyses/{analysis_id}`

Update analysis metadata fields. Does not replace the parquet.

## Path parameters

- `analysis_id` string, required

## Request body

- UpdateAnalysis — Partial update for an analysis. Does not replace the parquet.
  - `name` string, nullable — New analysis name.
  - `analysis_type` string, nullable — New analysis type (non-empty).
  - `columns` AnalysisColumnSpec[], nullable — Revised column specs.
    - `name` string, required — Column name in the parquet.
    - `unit` string — Physical unit; empty string if unitless.
    - `dtype` string, nullable — Optional dtype hint, e.g. 'float' or 'int'.
  - `metadata` object, nullable — Replacement metadata dict.
  - `notes` string, nullable — New free-text description of how the analysis was performed.
  - `source_pipeline_id` string, nullable — New source pipeline FK (null to clear).
  - `source_simple_pipeline_id` string, nullable — New source simple-pipeline FK (null to clear).
  - `source_analysis_id` string, nullable — New source analysis FK (null to clear).
  - `source_label` string, nullable — New provenance note.

## Response `200`

Successful Response

- Analysis — An analysis record as returned by the API.
  - `measurement_id` string, required — ID of the parent cell measurement this analysis is derived from.
  - `name` string, required — User-provided analysis name.
  - `analysis_type` string, required — Kind of analysis, e.g. 'ecm_from_eis'. Free-form; see KNOWN_ANALYSIS_TYPES for the advisory set the frontend offers.
  - `columns` AnalysisColumnSpec[] — Columns present in the analysis parquet, for header preview.
    - `name` string, required — Column name in the parquet.
    - `unit` string — Physical unit; empty string if unitless.
    - `dtype` string, nullable — Optional dtype hint, e.g. 'float' or 'int'.
  - `metadata` object — Loose metadata: source RPT/cycle identity, extractor parameters, etc.
  - `notes` string, nullable — Free-text human description of how the analysis was performed.
  - `source_pipeline_id` string, nullable — FK to the pipeline this analysis was computed from.
  - `source_simple_pipeline_id` string, nullable — FK to the simple pipeline this analysis was computed from.
  - `source_analysis_id` string, nullable — FK to another analysis this analysis was computed from.
  - `source_label` string, nullable — Free-text provenance note.
  - `id` string, required — Unique identifier.
  - `organization_id` string, required — Organization that owns this analysis.
  - `project_id` string, required — Project this analysis belongs to, denormalized from the parent measurement.
  - `created_by` string, nullable — User ID of the creator.
  - `created_at` string, date-time, required — Creation timestamp.
  - `updated_at` string, date-time, required — Last update timestamp.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/ionworks/apis/fastapi.md) · [All operations](https://skmtc.dev/ionworks/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ionworks/fastapi/revisions/7337a3cbdaf2/schema)
