Run validation simulations for measurements
curl --request POST \
--url https://api.ionworks.com/projects/{project_id}/studies/{study_id}/validate \
--header 'Content-Type: application/json' \
--data '
{
"measurement_ids": [
"<string>"
],
"parameterized_model_id": "<string>",
"cell_specification_id": "<string>",
"start_step": 123,
"end_step": 123,
"initial_voltage": 123,
"initial_soc": 123
}
'import requests
url = "https://api.ionworks.com/projects/{project_id}/studies/{study_id}/validate"
payload = {
"measurement_ids": ["<string>"],
"parameterized_model_id": "<string>",
"cell_specification_id": "<string>",
"start_step": 123,
"end_step": 123,
"initial_voltage": 123,
"initial_soc": 123
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
measurement_ids: ['<string>'],
parameterized_model_id: '<string>',
cell_specification_id: '<string>',
start_step: 123,
end_step: 123,
initial_voltage: 123,
initial_soc: 123
})
};
fetch('https://api.ionworks.com/projects/{project_id}/studies/{study_id}/validate', 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/projects/{project_id}/studies/{study_id}/validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'measurement_ids' => [
'<string>'
],
'parameterized_model_id' => '<string>',
'cell_specification_id' => '<string>',
'start_step' => 123,
'end_step' => 123,
'initial_voltage' => 123,
'initial_soc' => 123
]),
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/projects/{project_id}/studies/{study_id}/validate"
payload := strings.NewReader("{\n \"measurement_ids\": [\n \"<string>\"\n ],\n \"parameterized_model_id\": \"<string>\",\n \"cell_specification_id\": \"<string>\",\n \"start_step\": 123,\n \"end_step\": 123,\n \"initial_voltage\": 123,\n \"initial_soc\": 123\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.ionworks.com/projects/{project_id}/studies/{study_id}/validate")
.header("Content-Type", "application/json")
.body("{\n \"measurement_ids\": [\n \"<string>\"\n ],\n \"parameterized_model_id\": \"<string>\",\n \"cell_specification_id\": \"<string>\",\n \"start_step\": 123,\n \"end_step\": 123,\n \"initial_voltage\": 123,\n \"initial_soc\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ionworks.com/projects/{project_id}/studies/{study_id}/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"measurement_ids\": [\n \"<string>\"\n ],\n \"parameterized_model_id\": \"<string>\",\n \"cell_specification_id\": \"<string>\",\n \"start_step\": 123,\n \"end_step\": 123,\n \"initial_voltage\": 123,\n \"initial_soc\": 123\n}"
response = http.request(request)
puts response.read_body{
"validations": [
{
"measurement_id": "<string>",
"simulation_id": "<string>",
"job_id": "<string>"
}
],
"errors": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
],
"skipped": [
"<string>"
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Run validation simulations for measurements
Submit drive-cycle validation simulations for one or more measurements.
Each measurement is processed independently. Partial success is returned when some measurements fail (e.g. missing columns) but at least one succeeds. A 400 error is raised only if every measurement fails.
Run validation simulations for measurements
curl --request POST \
--url https://api.ionworks.com/projects/{project_id}/studies/{study_id}/validate \
--header 'Content-Type: application/json' \
--data '
{
"measurement_ids": [
"<string>"
],
"parameterized_model_id": "<string>",
"cell_specification_id": "<string>",
"start_step": 123,
"end_step": 123,
"initial_voltage": 123,
"initial_soc": 123
}
'import requests
url = "https://api.ionworks.com/projects/{project_id}/studies/{study_id}/validate"
payload = {
"measurement_ids": ["<string>"],
"parameterized_model_id": "<string>",
"cell_specification_id": "<string>",
"start_step": 123,
"end_step": 123,
"initial_voltage": 123,
"initial_soc": 123
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
measurement_ids: ['<string>'],
parameterized_model_id: '<string>',
cell_specification_id: '<string>',
start_step: 123,
end_step: 123,
initial_voltage: 123,
initial_soc: 123
})
};
fetch('https://api.ionworks.com/projects/{project_id}/studies/{study_id}/validate', 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/projects/{project_id}/studies/{study_id}/validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'measurement_ids' => [
'<string>'
],
'parameterized_model_id' => '<string>',
'cell_specification_id' => '<string>',
'start_step' => 123,
'end_step' => 123,
'initial_voltage' => 123,
'initial_soc' => 123
]),
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/projects/{project_id}/studies/{study_id}/validate"
payload := strings.NewReader("{\n \"measurement_ids\": [\n \"<string>\"\n ],\n \"parameterized_model_id\": \"<string>\",\n \"cell_specification_id\": \"<string>\",\n \"start_step\": 123,\n \"end_step\": 123,\n \"initial_voltage\": 123,\n \"initial_soc\": 123\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.ionworks.com/projects/{project_id}/studies/{study_id}/validate")
.header("Content-Type", "application/json")
.body("{\n \"measurement_ids\": [\n \"<string>\"\n ],\n \"parameterized_model_id\": \"<string>\",\n \"cell_specification_id\": \"<string>\",\n \"start_step\": 123,\n \"end_step\": 123,\n \"initial_voltage\": 123,\n \"initial_soc\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ionworks.com/projects/{project_id}/studies/{study_id}/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"measurement_ids\": [\n \"<string>\"\n ],\n \"parameterized_model_id\": \"<string>\",\n \"cell_specification_id\": \"<string>\",\n \"start_step\": 123,\n \"end_step\": 123,\n \"initial_voltage\": 123,\n \"initial_soc\": 123\n}"
response = http.request(request)
puts response.read_body{
"validations": [
{
"measurement_id": "<string>",
"simulation_id": "<string>",
"job_id": "<string>"
}
],
"errors": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
],
"skipped": [
"<string>"
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Body
application/json
Payload for the POST validate endpoint.
IDs of measurements to validate
Minimum array length:
1ID of the parameterized model to simulate
ID of the cell specification (for model ownership verification)
First step index to include (inclusive)
Last step index to include (inclusive)
Custom initial voltage [V]. Overrides auto-detection.
Custom initial SOC (0-1). Overrides voltage-based init.
Was this page helpful?
⌘I