curl --request PATCH \
--url https://api.ionworks.com/material_property_datasets/{property_id} \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"columns": [
{
"name": "<string>",
"source_column_index": 123,
"unit": ""
}
],
"source_pipeline_id": "<string>",
"source_simple_pipeline_id": "<string>",
"source_analysis_id": "<string>",
"source_label": "<string>"
}
'import requests
url = "https://api.ionworks.com/material_property_datasets/{property_id}"
payload = {
"name": "<string>",
"columns": [
{
"name": "<string>",
"source_column_index": 123,
"unit": ""
}
],
"source_pipeline_id": "<string>",
"source_simple_pipeline_id": "<string>",
"source_analysis_id": "<string>",
"source_label": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
columns: [{name: '<string>', source_column_index: 123, unit: ''}],
source_pipeline_id: '<string>',
source_simple_pipeline_id: '<string>',
source_analysis_id: '<string>',
source_label: '<string>'
})
};
fetch('https://api.ionworks.com/material_property_datasets/{property_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ionworks.com/material_property_datasets/{property_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'columns' => [
[
'name' => '<string>',
'source_column_index' => 123,
'unit' => ''
]
],
'source_pipeline_id' => '<string>',
'source_simple_pipeline_id' => '<string>',
'source_analysis_id' => '<string>',
'source_label' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.ionworks.com/material_property_datasets/{property_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"source_column_index\": 123,\n \"unit\": \"\"\n }\n ],\n \"source_pipeline_id\": \"<string>\",\n \"source_simple_pipeline_id\": \"<string>\",\n \"source_analysis_id\": \"<string>\",\n \"source_label\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.ionworks.com/material_property_datasets/{property_id}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"source_column_index\": 123,\n \"unit\": \"\"\n }\n ],\n \"source_pipeline_id\": \"<string>\",\n \"source_simple_pipeline_id\": \"<string>\",\n \"source_analysis_id\": \"<string>\",\n \"source_label\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ionworks.com/material_property_datasets/{property_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"source_column_index\": 123,\n \"unit\": \"\"\n }\n ],\n \"source_pipeline_id\": \"<string>\",\n \"source_simple_pipeline_id\": \"<string>\",\n \"source_analysis_id\": \"<string>\",\n \"source_label\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"material_id": "<string>",
"project_id": "<string>",
"name": "<string>",
"columns": [
{
"name": "<string>",
"source_column_index": 123,
"unit": ""
}
],
"id": "<string>",
"organization_id": "<string>",
"storage_path": "<string>",
"data_version": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"original_path": "<string>",
"nan_counts": {},
"no_header": false,
"created_by": "<string>",
"source_pipeline_id": "<string>",
"source_simple_pipeline_id": "<string>",
"source_analysis_id": "<string>",
"source_label": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Update a material property dataset's metadata or column specs
Update dataset name and/or column specs.
When columns is provided, the original uploaded file is re-parsed
and the processed parquet is rebuilt with the new column metadata.
Column names must exactly match those in the original file.
curl --request PATCH \
--url https://api.ionworks.com/material_property_datasets/{property_id} \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"columns": [
{
"name": "<string>",
"source_column_index": 123,
"unit": ""
}
],
"source_pipeline_id": "<string>",
"source_simple_pipeline_id": "<string>",
"source_analysis_id": "<string>",
"source_label": "<string>"
}
'import requests
url = "https://api.ionworks.com/material_property_datasets/{property_id}"
payload = {
"name": "<string>",
"columns": [
{
"name": "<string>",
"source_column_index": 123,
"unit": ""
}
],
"source_pipeline_id": "<string>",
"source_simple_pipeline_id": "<string>",
"source_analysis_id": "<string>",
"source_label": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
columns: [{name: '<string>', source_column_index: 123, unit: ''}],
source_pipeline_id: '<string>',
source_simple_pipeline_id: '<string>',
source_analysis_id: '<string>',
source_label: '<string>'
})
};
fetch('https://api.ionworks.com/material_property_datasets/{property_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ionworks.com/material_property_datasets/{property_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'columns' => [
[
'name' => '<string>',
'source_column_index' => 123,
'unit' => ''
]
],
'source_pipeline_id' => '<string>',
'source_simple_pipeline_id' => '<string>',
'source_analysis_id' => '<string>',
'source_label' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.ionworks.com/material_property_datasets/{property_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"source_column_index\": 123,\n \"unit\": \"\"\n }\n ],\n \"source_pipeline_id\": \"<string>\",\n \"source_simple_pipeline_id\": \"<string>\",\n \"source_analysis_id\": \"<string>\",\n \"source_label\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.ionworks.com/material_property_datasets/{property_id}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"source_column_index\": 123,\n \"unit\": \"\"\n }\n ],\n \"source_pipeline_id\": \"<string>\",\n \"source_simple_pipeline_id\": \"<string>\",\n \"source_analysis_id\": \"<string>\",\n \"source_label\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ionworks.com/material_property_datasets/{property_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"source_column_index\": 123,\n \"unit\": \"\"\n }\n ],\n \"source_pipeline_id\": \"<string>\",\n \"source_simple_pipeline_id\": \"<string>\",\n \"source_analysis_id\": \"<string>\",\n \"source_label\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"material_id": "<string>",
"project_id": "<string>",
"name": "<string>",
"columns": [
{
"name": "<string>",
"source_column_index": 123,
"unit": ""
}
],
"id": "<string>",
"organization_id": "<string>",
"storage_path": "<string>",
"data_version": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"original_path": "<string>",
"nan_counts": {},
"no_header": false,
"created_by": "<string>",
"source_pipeline_id": "<string>",
"source_simple_pipeline_id": "<string>",
"source_analysis_id": "<string>",
"source_label": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Path Parameters
Body
Partial update for a material property dataset.
If columns is provided, the stored parquet is rebuilt from the
preserved original file using the new column specs.
New dataset name
Revised column specs. Must cover exactly the columns in the original uploaded file (minus any unnamed index columns).
Show child attributes
Show child attributes
New source pipeline FK (null to clear).
New source simple-pipeline FK (null to clear).
New source analysis FK (null to clear).
New provenance note.
Response
Successful Response
Material property dataset record as returned by the API.
ID of the parent material
ID of the project this property is scoped to
User-provided dataset name, e.g. 'Electrolyte transport'
All columns in the dataset with their units.
Show child attributes
Show child attributes
Unique identifier
Organization that owns this record
Path to the processed parquet file in the material-property-datasets bucket.
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.
Upload timestamp
Last update timestamp
Path to the raw original file in the material-property-datasets bucket. NULL only for records created before this field was introduced.
Number of NaN/null values per column, keyed by display name. Computed at upload time. None for records uploaded before this field was introduced.
Show child attributes
Show child attributes
True when the uploaded CSV had no header row. Column positions are mapped via source_column_index on each column spec.
User ID of the uploader
FK to the pipeline this dataset was computed from.
FK to the simple pipeline this dataset was computed from.
FK to the analysis this dataset was computed from.
Free-text provenance note.
Was this page helpful?