---
title: "Get a material property dataset by ID"
method: GET
path: "/material_property_datasets/{property_id}"
tags: ["Material Property Datasets"]
---

# Get a material property dataset by ID

`GET /material_property_datasets/{property_id}`

Retrieve a single material property dataset record by its ID.

## Path parameters

- `property_id` string, required

## Response `200`

Successful Response

- MaterialPropertyDataset — Material property dataset record as returned by the API.
  - `material_id` string, required — ID of the parent material
  - `project_id` string, required — ID of the project this property is scoped to
  - `name` string, required — User-provided dataset name, e.g. 'Electrolyte transport'
  - `columns` ColumnSpec[], required — All columns in the dataset with their units.
    - `name` string, required — Display name stored in the processed parquet
    - `unit` string — Physical unit, e.g. 'mol.L-1' or 'S.m-1'. Empty string for unitless quantities.
    - `source_column_index` integer, required — 0-based column position in the uploaded file. The column at this position is selected and stored under ``name``. Required for all uploads regardless of whether the file has a header row.
  - `id` string, required — Unique identifier
  - `organization_id` string, required — Organization that owns this record
  - `storage_path` string, required — Path to the processed parquet file in the material-property-datasets bucket.
  - `original_path` string, nullable — Path to the raw original file in the material-property-datasets bucket. NULL only for records created before this field was introduced.
  - `data_version` integer, required — Increments on every data-changing operation (file replacement or column re-processing). Downstream code can store this alongside computed results and compare against the current value to detect staleness.
  - `nan_counts` object, nullable — Number of NaN/null values per column, keyed by display name. Computed at upload time. ``None`` for records uploaded before this field was introduced.
  - `no_header` boolean — True when the uploaded CSV had no header row. Column positions are mapped via ``source_column_index`` on each column spec.
  - `created_by` string, nullable — User ID of the uploader
  - `created_at` string, date-time, required — Upload timestamp
  - `updated_at` string, date-time, required — Last update timestamp
  - `source_pipeline_id` string, nullable — FK to the pipeline this dataset was computed from.
  - `source_simple_pipeline_id` string, nullable — FK to the simple pipeline this dataset was computed from.
  - `source_analysis_id` string, nullable — FK to the analysis this dataset was computed from.
  - `source_label` string, nullable — Free-text provenance note.

## 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)
