Generate a UCP protocol from a natural-language description.
When the description leaves a value undecided that would change what runs
on the channel, the response carries questions and no protocol. Answer
them and call again with the full clarifications history.
Any protocol that is returned has already passed the same validation as
POST /protocols/validate and contains no unresolved input["..."]
references, so it can be saved as an experiment template directly.
Parameters
body : GenerateProtocolRequest
The natural-language prompt, any answers already given, and an
optional existing protocol to edit rather than replace.
Returns
GenerateProtocolResponse
Either the generated YAML with a suggested name, an explanation, and
the assumptions made — or the questions needed to write it.
Raises
ExternalServiceError
If the model could not produce a valid protocol.
Cell the test will run on. Its voltage limits, capacity and rate limits are given to the generator as facts, so it stops guessing (or asking) about them.
Allow the protocol to carry input["..."] references for values supplied per run, and offer parametric saved protocols as matches. Leave false where every value has to be pinned before the protocol can run, as it does for a scheduled test.
Response
Successful Response
A protocol, the questions needed to write one, or an existing match.
Exactly one branch is populated. Callers should check questions and
matches before reading protocol_yaml — both leave it empty.
A saved protocol that already does what was asked for.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ionworks Studio","colors":{"primary":"#FF87B7","light":"#FF87B7","dark":"#374151"},"logo":{"light":"https://mintcdn.com/ionworkstechnologiesinc/78EDZUH_SxrAKpqF/logo/ionworks-logo.svg?fit=max\u0026auto=format\u0026n=78EDZUH_SxrAKpqF\u0026q=85\u0026s=0bcd01f69aecbd26dc769194049dd31d","dark":"https://mintcdn.com/ionworkstechnologiesinc/78EDZUH_SxrAKpqF/logo/ionworks-logo.svg?fit=max\u0026auto=format\u0026n=78EDZUH_SxrAKpqF\u0026q=85\u0026s=0bcd01f69aecbd26dc769194049dd31d"},"favicon":"https://mintcdn.com/ionworkstechnologiesinc/78EDZUH_SxrAKpqF/logo/favicon.svg?fit=max\u0026auto=format\u0026n=78EDZUH_SxrAKpqF\u0026q=85\u0026s=55aa94615d149907650ce4517af33da6","api":{"playground":{"display":"none"}},"background":{"color":{"light":"#FAFAFA","dark":"#111827"}},"navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Go to Studio","href":"https://studio.ionworks.com"}},"footer":{"socials":{"github":"https://github.com/ionworks","linkedin":"https://www.linkedin.com/company/ionworks-technologies"}},"seo":{"metatags":{"og:site_name":"Ionworks Studio","og:type":"website","twitter:card":"summary_large_image","twitter:site":"@ionworks"},"indexing":"all"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://ionworks.com/blog"},{"anchor":"Changelog","icon":"star","href":"/changelog"},{"anchor":"ionworks-schema","icon":"python","href":"https://schema.docs.ionworks.com/"},{"anchor":"Python API","icon":"python","href":"https://api.docs.ionworks.com/"},{"anchor":"ionworksdata","icon":"python","href":"https://data.docs.ionworks.com/"},{"anchor":"PyBaMM","icon":"python","href":"https://docs.pybamm.org/en/latest/index.html"}]},"languages":[{"language":"en","href":"introduction"},{"language":"ja","navbar":{"links":[{"href":"mailto:[email protected]","label":"サポート"}],"primary":{"type":"button","label":"Studio を開く","href":"https://studio.ionworks.com"}},"href":"ja/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ionworkstechnologiesinc","hasAudioNarration":false,"actualSubdomain":"ionworkstechnologiesinc","customDomains":["docs.ionworks.com"],"gitSource":{"type":"github","owner":"ionworks","repo":"ionworks-app","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf6b79b80f21f06112fc6b","collectionId":"37809b0c-45e8-441e-a98b-743c8d605980","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf6b79b80f21f06112fc6b"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae13e02c744e5bde8c34ba1","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"API Reference","count":255},{"language":"en","tag":"Documentation","count":67},{"language":"ja","tag":"ドキュメント","count":61},{"language":"en","tag":"Guide","count":35},{"language":"ja","tag":"ガイド","count":35},{"language":"default","tag":"Cell Measurements","count":24},{"language":"en","tag":"Build","count":22},{"language":"default","tag":"parameterized_models","count":22},{"language":"ja","tag":"モデル構築","count":17},{"language":"en","tag":"Parameterize","count":16},{"language":"en","tag":"Batteries 101","count":15},{"language":"ja","tag":"Batteries 101","count":15},{"language":"default","tag":"Model builders","count":15},{"language":"en","tag":"Physics-based","count":14},{"language":"default","tag":"discovery","count":14},{"language":"default","tag":"Pipeline","count":14},{"language":"default","tag":"Cell Specifications","count":13},{"language":"en","tag":"Parameterization","count":12},{"language":"ja","tag":"パイプライン","count":12},{"language":"default","tag":"optimizations","count":12},{"language":"ja","tag":"パラメータ化","count":11},{"language":"en","tag":"Data Fitting","count":10},{"language":"en","tag":"Data","count":10},{"language":"ja","tag":"データ","count":10},{"language":"default","tag":"Cyclers","count":10},{"language":"default","tag":"Planned Measurements","count":10},{"language":"en","tag":"Simulate","count":9},{"language":"ja","tag":"物理ベース","count":9},{"language":"ja","tag":"データフィッティング","count":9},{"language":"ja","tag":"シミュレーション","count":8}]},"assistantConfig":{"deflection":{"enabled":true,"email":"[email protected]","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#navbar-transition{pointer-events:none}#navbar-transition>*{pointer-events:auto}#content-area{padding-top:5rem}footer a[href*=\"mintlify.com\"]{display:none}"}],"page":{"pagePath":"api-reference/protocols/generate-protocol-endpoint","slug":"/api-reference/protocols/generate-protocol-endpoint","pageMetadata":{"title":"Generate Protocol Endpoint","description":"Generate a UCP protocol from a natural-language description.\n\nWhen the description leaves a value undecided that would change what runs\non the channel, the response carries ``questions`` and no protocol. Answer\nthem and call again with the full ``clarifications`` history.\n\nAny protocol that *is* returned has already passed the same validation as\n``POST /protocols/validate`` and contains no unresolved ``input[\"...\"]``\nreferences, so it can be saved as an experiment template directly.\n\nParameters\n----------\nbody : GenerateProtocolRequest\n The natural-language prompt, any answers already given, and an\n optional existing protocol to edit rather than replace.\n\nReturns\n-------\nGenerateProtocolResponse\n Either the generated YAML with a suggested name, an explanation, and\n the assumptions made — or the questions needed to write it.\n\nRaises\n------\nExternalServiceError\n If the model could not produce a valid protocol.","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/generate","href":"/api-reference/protocols/generate-protocol-endpoint","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n em: \"em\",\n h2: \"h2\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Generate a UCP protocol from a natural-language description.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"When the description leaves a value undecided that would change what runs\\non the channel, the response carries \", _jsx(_components.code, {\n children: \"questions\"\n }), \" and no protocol. Answer\\nthem and call again with the full \", _jsx(_components.code, {\n children: \"clarifications\"\n }), \" history.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Any protocol that \", _jsx(_components.em, {\n children: \"is\"\n }), \" returned has already passed the same validation as\\n\", _jsx(_components.code, {\n children: \"POST /protocols/validate\"\n }), \" and contains no unresolved \", _jsx(_components.code, {\n children: \"input[\\\"...\\\"]\"\n }), \"\\nreferences, so it can be saved as an experiment template directly.\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Parameters\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"body : GenerateProtocolRequest\\nThe natural-language prompt, any answers already given, and an\\noptional existing protocol to edit rather than replace.\"\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Returns\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"GenerateProtocolResponse\\nEither the generated YAML with a suggested name, an explanation, and\\nthe assumptions made — or the questions needed to write it.\"\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Raises\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"ExternalServiceError\\nIf the model could not produce a valid protocol.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Generate Protocol Endpoint","description":"Generate a UCP protocol from a natural-language description.\n\nWhen the description leaves a value undecided that would change what runs\non the channel, the response carries ``questions`` and no protocol. Answer\nthem and call again with the full ``clarifications`` history.\n\nAny protocol that *is* returned has already passed the same validation as\n``POST /protocols/validate`` and contains no unresolved ``input[\"...\"]``\nreferences, so it can be saved as an experiment template directly.\n\nParameters\n----------\nbody : GenerateProtocolRequest\n The natural-language prompt, any answers already given, and an\n optional existing protocol to edit rather than replace.\n\nReturns\n-------\nGenerateProtocolResponse\n Either the generated YAML with a suggested name, an explanation, and\n the assumptions made — or the questions needed to write it.\n\nRaises\n------\nExternalServiceError\n If the model could not produce a valid protocol.","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/generate","href":"/api-reference/protocols/generate-protocol-endpoint","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["protocols"],"summary":"Generate Protocol Endpoint","description":"Generate a UCP protocol from a natural-language description.\n\nWhen the description leaves a value undecided that would change what runs\non the channel, the response carries ``questions`` and no protocol. Answer\nthem and call again with the full ``clarifications`` history.\n\nAny protocol that *is* returned has already passed the same validation as\n``POST /protocols/validate`` and contains no unresolved ``input[\"...\"]``\nreferences, so it can be saved as an experiment template directly.\n\nParameters\n----------\nbody : GenerateProtocolRequest\n The natural-language prompt, any answers already given, and an\n optional existing protocol to edit rather than replace.\n\nReturns\n-------\nGenerateProtocolResponse\n Either the generated YAML with a suggested name, an explanation, and\n the assumptions made — or the questions needed to write it.\n\nRaises\n------\nExternalServiceError\n If the model could not produce a valid protocol.","operationId":"generate_protocol_endpoint_protocols_generate_post","requestBody":"7e937389-d6f4-46b6-bf73-1ca368963c62","responses":{"200":"c9852d42-cb92-42a8-818b-f753f91f1398","422":"27280851-f5bc-43e1-b25d-14ca2e98c993"},"x-hidden":false,"method":"post","type":"path","servers":["1fa0a4e8-aec7-46b2-a2e0-d1dab32ea873"],"security":[],"path":"/protocols/generate","baseUrlOptions":["https://api.ionworks.com"],"title":"Generate Protocol Endpoint","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"prompt":{"type":"string","maxLength":4000,"minLength":1,"title":"Prompt","description":"Plain-English description of the test to run, e.g. '1C/1C cycling for 200 cycles between 4.2 V and 2.5 V with 10-minute rests'.","isRequired":true,"uniqueKey":"prompt","typeLabel":"string"},"current_protocol":{"oneOf":[{"type":"string","title":"Current Protocol","description":"Optional existing protocol as UCP YAML. When supplied the prompt is treated as an edit to it rather than a fresh protocol.","maxLength":100000,"uniqueKey":"current_protocol.oneOf.0","typeLabel":"string"},{"type":"null","title":"Current Protocol","description":"Optional existing protocol as UCP YAML. When supplied the prompt is treated as an edit to it rather than a fresh protocol.","uniqueKey":"current_protocol.oneOf.1","typeLabel":"null"}],"uniqueKey":"current_protocol","typeLabel":"string | null"},"clarifications":{"items":{"properties":{"question":{"type":"string","maxLength":2000,"title":"Question","isRequired":true,"uniqueKey":"clarifications.items.[INDEX].question","typeLabel":"string"},"answer":{"type":"string","maxLength":4000,"title":"Answer","isRequired":true,"uniqueKey":"clarifications.items.[INDEX].answer","typeLabel":"string"}},"type":"object","required":["question","answer"],"title":"ClarificationAnswer","description":"One question the user has already answered.","uniqueKey":"clarifications.items.[INDEX]","typeLabel":"ClarificationAnswer · object"},"type":"array","maxItems":20,"title":"Clarifications","description":"Answers to questions a previous call returned, oldest first. Send the full history each time — the exchange is stateless.","uniqueKey":"clarifications","typeLabel":"ClarificationAnswer · object[]"},"cell_specification_id":{"oneOf":[{"type":"string","title":"Cell Specification Id","description":"Cell the test will run on. Its voltage limits, capacity and rate limits are given to the generator as facts, so it stops guessing (or asking) about them.","uniqueKey":"cell_specification_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Cell Specification Id","description":"Cell the test will run on. Its voltage limits, capacity and rate limits are given to the generator as facts, so it stops guessing (or asking) about them.","uniqueKey":"cell_specification_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"cell_specification_id","typeLabel":"string | null"},"skip_existing":{"type":"boolean","title":"Skip Existing","description":"Skip the saved-protocol search and write a new protocol. Set when the user rejects the suggested matches.","default":false,"uniqueKey":"skip_existing","typeLabel":"boolean"},"allow_inputs":{"type":"boolean","title":"Allow Inputs","description":"Allow the protocol to carry `input[\"...\"]` references for values supplied per run, and offer parametric saved protocols as matches. Leave false where every value has to be pinned before the protocol can run, as it does for a scheduled test.","default":false,"uniqueKey":"allow_inputs","typeLabel":"boolean"}},"type":"object","required":["prompt"],"title":"GenerateProtocolRequest","description":"Request body for generating a protocol from natural language.","uniqueKey":"","typeLabel":"GenerateProtocolRequest · object"},"examples":{"Example":{"title":"Example","value":{"prompt":"\u003cstring>","current_protocol":"\u003cstring>","clarifications":[{"question":"\u003cstring>","answer":"\u003cstring>"}],"cell_specification_id":"\u003cstring>","skip_existing":false,"allow_inputs":false}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"c9852d42-cb92-42a8-818b-f753f91f1398":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"protocol_yaml":{"type":"string","title":"Protocol Yaml","default":"","uniqueKey":"protocol_yaml","typeLabel":"string"},"name":{"type":"string","title":"Name","default":"","uniqueKey":"name","typeLabel":"string"},"explanation":{"type":"string","title":"Explanation","default":"","uniqueKey":"explanation","typeLabel":"string"},"assumptions":{"items":{"type":"string","uniqueKey":"assumptions.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Assumptions","uniqueKey":"assumptions","typeLabel":"string[]"},"questions":{"items":{"properties":{"question":{"type":"string","title":"Question","isRequired":true,"uniqueKey":"questions.items.[INDEX].question","typeLabel":"string"},"why":{"type":"string","title":"Why","default":"","uniqueKey":"questions.items.[INDEX].why","typeLabel":"string"},"options":{"items":{"type":"string","uniqueKey":"questions.items.[INDEX].options.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Options","uniqueKey":"questions.items.[INDEX].options","typeLabel":"string[]"}},"type":"object","required":["question"],"title":"ClarifyingQuestionResponse","description":"A question the user must answer before the protocol can be written.","uniqueKey":"questions.items.[INDEX]","typeLabel":"ClarifyingQuestionResponse · object"},"type":"array","title":"Questions","uniqueKey":"questions","typeLabel":"ClarifyingQuestionResponse · object[]"},"matches":{"oneOf":[{"type":"object","title":"ExistingProtocolMatchResponse","description":"A saved protocol that already does what was asked for.","required":["template_ids"],"properties":{"template_ids":{"items":{"type":"string","uniqueKey":"matches.oneOf.0.template_ids.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Template Ids","isRequired":true,"uniqueKey":"matches.oneOf.0.template_ids","typeLabel":"string[]"},"note":{"type":"string","title":"Note","default":"","uniqueKey":"matches.oneOf.0.note","typeLabel":"string"}},"uniqueKey":"matches.oneOf.0","typeLabel":"ExistingProtocolMatchResponse · object"},{"type":"null","uniqueKey":"matches.oneOf.1","typeLabel":"null"}],"uniqueKey":"matches","typeLabel":"ExistingProtocolMatchResponse · object | null"}},"type":"object","title":"GenerateProtocolResponse","description":"A protocol, the questions needed to write one, or an existing match.\n\nExactly one branch is populated. Callers should check ``questions`` and\n``matches`` before reading ``protocol_yaml`` — both leave it empty.","uniqueKey":"","typeLabel":"GenerateProtocolResponse · object"},"examples":{"Example":{"title":"Example","value":{"protocol_yaml":"","name":"","explanation":"","assumptions":["\u003cstring>"],"questions":[{"question":"\u003cstring>","why":"","options":["\u003cstring>"]}],"matches":{"template_ids":["\u003cstring>"],"note":""}}}},"exampleType":"generated"}},"exampleType":"generated"},"27280851-f5bc-43e1-b25d-14ca2e98c993":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"},"input":{"oneOf":[{"title":"Input"}],"uniqueKey":"detail.items.[INDEX].input","typeLabel":"any"},"ctx":{"type":"object","title":"Context","uniqueKey":"detail.items.[INDEX].ctx","typeLabel":"Context · object"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>","input":"\u003cunknown>","ctx":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{},"servers":{"1fa0a4e8-aec7-46b2-a2e0-d1dab32ea873":{"url":"https://api.ionworks.com","description":"Production"}}},"originalFileLocation":"https://api.ionworks.com/openapi.json"},"subdomain":"ionworkstechnologiesinc","siteName":"Ionworks Studio","title":"Generate Protocol Endpoint - Ionworks Studio","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/protocols/generate-protocol-endpoint","matchLevel":0},"ja":{"href":"/api-reference/protocols/generate-protocol-endpoint","matchLevel":0}}},"lastModified":"2026-10-28T00:12:57.941Z","originalFileLocation":"api-reference/protocols/generate-protocol-endpoint.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Generate a UCP protocol from a natural-language description. When the description leaves a value undecided that would change what runs on the channel, the response carries questions and no protocol. Answer them and call again with the full clarifications history. Any protocol that is returned has already passed the same validation as POST /protocols/validate and contains no unresolved input[\u0026quot;...\u0026quot;] references, so it can be saved as an experiment template directly. Parameters ---------- body : GenerateProtocolRequest The natural-language prompt, any answers already given, and an optional existing protocol to edit rather than replace. Returns ------- GenerateProtocolResponse Either the generated YAML with a suggested name, an explanation, and the assumptions made — or the questions needed to write it. Raises ------ ExternalServiceError If the model could not produce a valid protocol.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ionworks Studio\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ionworkstechnologiesinc/EPOKZ36crJVbp4XG/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ionworkstechnologiesinc/EPOKZ36crJVbp4XG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ionworkstechnologiesinc/EPOKZ36crJVbp4XG/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ionworkstechnologiesinc/EPOKZ36crJVbp4XG/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ionworkstechnologiesinc/EPOKZ36crJVbp4XG/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ionworkstechnologiesinc/EPOKZ36crJVbp4XG/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ionworkstechnologiesinc/EPOKZ36crJVbp4XG/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ionworkstechnologiesinc/EPOKZ36crJVbp4XG/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ionworkstechnologiesinc/EPOKZ36crJVbp4XG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Generate Protocol Endpoint - Ionworks Studio\">\u003cmeta data-mint-head property=\"og:description\" content=\"Generate a UCP protocol from a natural-language description. When the description leaves a value undecided that would change what runs on the channel, the response carries questions and no protocol. Answer them and call again with the full clarifications history. Any protocol that is returned has already passed the same validation as POST /protocols/validate and contains no unresolved input[\u0026quot;...\u0026quot;] references, so it can be saved as an experiment template directly. Parameters ---------- body : GenerateProtocolRequest The natural-language prompt, any answers already given, and an optional existing protocol to edit rather than replace. Returns ------- GenerateProtocolResponse Either the generated YAML with a suggested name, an explanation, and the assumptions made — or the questions needed to write it. Raises ------ ExternalServiceError If the model could not produce a valid protocol.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ionworks Studio\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ionworks.com/api-reference/protocols/generate-protocol-endpoint\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ionworkstechnologiesinc.mintlify.app/_mintlify/api/og/v2?division=protocols\u0026amp;title=Generate+Protocol+Endpoint\u0026amp;description=Generate+a+UCP+protocol+from+a+natural-language+description.%0A%0AWhen+the+description+leaves+a+value+undecided+that+would+change+what+runs%0Aon+the+channel%2C+the+resp\u0026amp;theme=52f2b89977c7a73e93de74ed\u0026amp;signature=c3b5bf53337ea921c3b33019d0b1d704285c355978f67483cccc2612daca0b59\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Generate Protocol Endpoint - Ionworks Studio\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Generate a UCP protocol from a natural-language description. When the description leaves a value undecided that would change what runs on the channel, the response carries questions and no protocol. Answer them and call again with the full clarifications history. Any protocol that is returned has already passed the same validation as POST /protocols/validate and contains no unresolved input[\u0026quot;...\u0026quot;] references, so it can be saved as an experiment template directly. Parameters ---------- body : GenerateProtocolRequest The natural-language prompt, any answers already given, and an optional existing protocol to edit rather than replace. Returns ------- GenerateProtocolResponse Either the generated YAML with a suggested name, an explanation, and the assumptions made — or the questions needed to write it. Raises ------ ExternalServiceError If the model could not produce a valid protocol.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ionworkstechnologiesinc.mintlify.app/_mintlify/api/og/v2?division=protocols\u0026amp;title=Generate+Protocol+Endpoint\u0026amp;description=Generate+a+UCP+protocol+from+a+natural-language+description.%0A%0AWhen+the+description+leaves+a+value+undecided+that+would+change+what+runs%0Aon+the+channel%2C+the+resp\u0026amp;theme=52f2b89977c7a73e93de74ed\u0026amp;signature=c3b5bf53337ea921c3b33019d0b1d704285c355978f67483cccc2612daca0b59\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ionworkstechnologiesinc/EPOKZ36crJVbp4XG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ionworks Studio\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF87B7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ionworks.com/api-reference/protocols/generate-protocol-endpoint\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/protocols/generate-protocol-endpoint.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ionworks.com/#organization\",\"name\":\"Ionworks Studio\",\"url\":\"https://docs.ionworks.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ionworkstechnologiesinc/78EDZUH_SxrAKpqF/logo/ionworks-logo.svg?fit=max\u0026auto=format\u0026n=78EDZUH_SxrAKpqF\u0026q=85\u0026s=0bcd01f69aecbd26dc769194049dd31d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ionworks.com#website\",\"name\":\"Ionworks Studio\",\"url\":\"https://docs.ionworks.com\",\"publisher\":{\"@id\":\"https://docs.ionworks.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ionworks.com/api-reference/protocols/generate-protocol-endpoint#webpage\",\"url\":\"https://docs.ionworks.com/api-reference/protocols/generate-protocol-endpoint\",\"name\":\"Generate Protocol Endpoint\",\"description\":\"Generate a UCP protocol from a natural-language description. When the description leaves a value undecided that would change what runs on the channel, the response carries questions and no protocol. Answer them and call again with the full clarifications history. Any protocol that is returned has already passed the same validation as POST /protocols/validate and contains no unresolved input[\\\"...\\\"] references, so it can be saved as an experiment template directly. Parameters ---------- body : GenerateProtocolRequest The natural-language prompt, any answers already given, and an optional existing protocol to edit rather than replace. Returns ------- GenerateProtocolResponse Either the generated YAML with a suggested name, an explanation, and the assumptions made — or the questions needed to write it. Raises ------ ExternalServiceError If the model could not produce a valid protocol.\",\"dateModified\":\"2026-10-28T00:12:57.941Z\",\"isPartOf\":{\"@id\":\"https://docs.ionworks.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ionworks.com/api-reference/protocols/generate-protocol-endpoint#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ionworks.com/api-reference/protocols/generate-protocol-endpoint#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"protocols\",\"item\":\"https://docs.ionworks.com/api-reference/protocols/validate-protocol-endpoint\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Generate Protocol Endpoint\",\"item\":\"https://docs.ionworks.com/api-reference/protocols/generate-protocol-endpoint\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.ionworks.com/api-reference/protocols/generate-protocol-endpoint#apireference\",\"headline\":\"Generate Protocol Endpoint\",\"name\":\"Generate Protocol Endpoint\",\"description\":\"Generate a UCP protocol from a natural-language description. When the description leaves a value undecided that would change what runs on the channel, the response carries questions and no protocol. Answer them and call again with the full clarifications history. Any protocol that is returned has already passed the same validation as POST /protocols/validate and contains no unresolved input[\\\"...\\\"] references, so it can be saved as an experiment template directly. Parameters ---------- body : GenerateProtocolRequest The natural-language prompt, any answers already given, and an optional existing protocol to edit rather than replace. Returns ------- GenerateProtocolResponse Either the generated YAML with a suggested name, an explanation, and the assumptions made — or the questions needed to write it. Raises ------ ExternalServiceError If the model could not produce a valid protocol.\",\"url\":\"https://docs.ionworks.com/api-reference/protocols/generate-protocol-endpoint\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ionworks.com/api-reference/protocols/generate-protocol-endpoint#webpage\"},\"dateModified\":\"2026-10-28T00:12:57.941Z\",\"publisher\":{\"@id\":\"https://docs.ionworks.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ionworks.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ionworks Studio\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ionworks Studio","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://ionworks.com/blog"},{"anchor":"Changelog","icon":"star","href":"/changelog"},{"anchor":"ionworks-schema","icon":"python","href":"https://schema.docs.ionworks.com/"},{"anchor":"Python API","icon":"python","href":"https://api.docs.ionworks.com/"},{"anchor":"ionworksdata","icon":"python","href":"https://data.docs.ionworks.com/"},{"anchor":"PyBaMM","icon":"python","href":"https://docs.pybamm.org/en/latest/index.html"}]},"languages":[{"language":"en","tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Guide","icon":"graduation-cap","pages":[{"title":"Guide","href":"/guide/introduction"}]},{"tab":"API Reference","groups":[{"group":"Cell Specifications","pages":[{"title":"List cell instances for a cell specification","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}/cell_instances","href":"/api-reference/cell-specifications/list-cell-instances-for-a-cell-specification"},{"title":"Create a new cell instance for a cell specification","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_specifications/{cell_spec_id}/cell_instances","href":"/api-reference/cell-specifications/create-a-new-cell-instance-for-a-cell-specification"},{"title":"List the batches of a cell specification","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}/cell_batches","href":"/api-reference/cell-specifications/list-the-batches-of-a-cell-specification"},{"title":"Create a batch (manufacturing lot) for a cell specification","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_specifications/{cell_spec_id}/cell_batches","href":"/api-reference/cell-specifications/create-a-batch-manufacturing-lot-for-a-cell-specification"},{"title":"List cell specifications for the current organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications","href":"/api-reference/cell-specifications/list-cell-specifications-for-the-current-organization"},{"title":"Create a new cell specification with nested component/material data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_specifications","href":"/api-reference/cell-specifications/create-a-new-cell-specification-with-nested-componentmaterial-data"},{"title":"Get a cell specification with nested component and material data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}","href":"/api-reference/cell-specifications/get-a-cell-specification-with-nested-component-and-material-data"},{"title":"Delete a cell specification by id for the current organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_specifications/{cell_spec_id}","href":"/api-reference/cell-specifications/delete-a-cell-specification-by-id-for-the-current-organization"},{"title":"Update a cell specification with nested component/material data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_specifications/{cell_spec_id}","href":"/api-reference/cell-specifications/update-a-cell-specification-with-nested-componentmaterial-data"},{"title":"Initiate a signed-URL CAD model upload","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_specifications/{cell_spec_id}/cad/initiate-upload","href":"/api-reference/cell-specifications/initiate-a-signed-url-cad-model-upload"},{"title":"Attach an uploaded CAD model and render its thumbnail","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_specifications/{cell_spec_id}/cad/confirm-upload","href":"/api-reference/cell-specifications/attach-an-uploaded-cad-model-and-render-its-thumbnail"},{"title":"Get signed URLs for a cell specification's CAD model and thumbnail","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}/cad","href":"/api-reference/cell-specifications/get-signed-urls-for-a-cell-specifications-cad-model-and-thumbnail"},{"title":"Remove a cell specification's CAD model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_specifications/{cell_spec_id}/cad","href":"/api-reference/cell-specifications/remove-a-cell-specifications-cad-model"}]},{"group":"Cell Instances","pages":[{"title":"List cell measurements for a cell instance","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_instances/{cell_instance_id}/cell_measurements","href":"/api-reference/cell-instances/list-cell-measurements-for-a-cell-instance"},{"title":"Create a properties-type measurement directly","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_instances/{cell_instance_id}/cell_measurements/create","href":"/api-reference/cell-instances/create-a-properties-type-measurement-directly"},{"title":"Initiate a signed URL upload for measurement data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_instances/{cell_instance_id}/cell_measurements/initiate-upload","href":"/api-reference/cell-instances/initiate-a-signed-url-upload-for-measurement-data"},{"title":"Get a specific cell instance by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_instances/{cell_instance_id}","href":"/api-reference/cell-instances/get-a-specific-cell-instance-by-id"},{"title":"Delete a specific cell instance by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_instances/{cell_instance_id}","href":"/api-reference/cell-instances/delete-a-specific-cell-instance-by-id"},{"title":"Update a specific cell instance by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_instances/{cell_instance_id}","href":"/api-reference/cell-instances/update-a-specific-cell-instance-by-id"},{"title":"Report a cell instance as failed, or clear the report","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_instances/{cell_instance_id}/failure","href":"/api-reference/cell-instances/report-a-cell-instance-as-failed-or-clear-the-report"}]},{"group":"Cell Batches","pages":[{"title":"Get a cell batch by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_batches/{batch_id}","href":"/api-reference/cell-batches/get-a-cell-batch-by-id"},{"title":"Delete a cell batch","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_batches/{batch_id}","href":"/api-reference/cell-batches/delete-a-cell-batch"},{"title":"Update a cell batch","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_batches/{batch_id}","href":"/api-reference/cell-batches/update-a-cell-batch"}]},{"group":"Cell Measurements","pages":[{"title":"List cell measurements","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements","href":"/api-reference/cell-measurements/list-cell-measurements"},{"title":"List the JSON metadata fields measurements in a scope carry","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/metadata_fields","href":"/api-reference/cell-measurements/list-the-json-metadata-fields-measurements-in-a-scope-carry"},{"title":"List a project's measurement tags with usage counts","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/tags","href":"/api-reference/cell-measurements/list-a-projects-measurement-tags-with-usage-counts"},{"title":"Add or remove tags on many measurements","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/tags/bulk","href":"/api-reference/cell-measurements/add-or-remove-tags-on-many-measurements"},{"title":"Export measurement data (time series, steps, files, metadata) as a zip","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/export","href":"/api-reference/cell-measurements/export-measurement-data-time-series-steps-files-metadata-as-a-zip"},{"title":"Get a cell measurement by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}","href":"/api-reference/cell-measurements/get-a-cell-measurement-by-id"},{"title":"Delete a specific cell measurement by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_measurements/{measurement_id}","href":"/api-reference/cell-measurements/delete-a-specific-cell-measurement-by-id"},{"title":"Update a cell measurement by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_measurements/{measurement_id}","href":"/api-reference/cell-measurements/update-a-cell-measurement-by-id"},{"title":"Get detailed information for a cell measurement","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/detail","href":"/api-reference/cell-measurements/get-detailed-information-for-a-cell-measurement"},{"title":"Estimate a running measurement's end time from its remaining protocol","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_measurements/{measurement_id}/estimate_end_time","href":"/api-reference/cell-measurements/estimate-a-running-measurements-end-time-from-its-remaining-protocol"},{"title":"Report a cell measurement as failed, or clear the report","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_measurements/{measurement_id}/failure","href":"/api-reference/cell-measurements/report-a-cell-measurement-as-failed-or-clear-the-report"},{"title":"Get all steps for a cell measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/steps","href":"/api-reference/cell-measurements/get-all-steps-for-a-cell-measurement"},{"title":"Get steps and cycle metrics in one call","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/steps_and_cycles","href":"/api-reference/cell-measurements/get-steps-and-cycle-metrics-in-one-call"},{"title":"Get cycle metrics only for a cell measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/cycles","href":"/api-reference/cell-measurements/get-cycle-metrics-only-for-a-cell-measurement"},{"title":"Get time series data for a measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/time_series","href":"/api-reference/cell-measurements/get-time-series-data-for-a-measurement"},{"title":"Download time series parquet file","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/time_series/download","href":"/api-reference/cell-measurements/download-time-series-parquet-file"},{"title":"Download steps parquet file","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/steps/download","href":"/api-reference/cell-measurements/download-steps-parquet-file"},{"title":"List files in a measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/files","href":"/api-reference/cell-measurements/list-files-in-a-measurement"},{"title":"Download a measurement file","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/files/{filename}","href":"/api-reference/cell-measurements/download-a-measurement-file"},{"title":"Confirm a signed URL upload and finalize the measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/{measurement_id}/confirm-upload","href":"/api-reference/cell-measurements/confirm-a-signed-url-upload-and-finalize-the-measurement"},{"title":"Initiate signed URL upload to extend a measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/{measurement_id}/initiate-extend","href":"/api-reference/cell-measurements/initiate-signed-url-upload-to-extend-a-measurement"},{"title":"Confirm extend upload; stitch series and recompute steps","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/{measurement_id}/confirm-extend","href":"/api-reference/cell-measurements/confirm-extend-upload;-stitch-series-and-recompute-steps"},{"title":"Watch a measurement (Lab 'My Channels')","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/{measurement_id}/watch","href":"/api-reference/cell-measurements/watch-a-measurement-lab-my-channels"},{"title":"Stop watching a measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_measurements/{measurement_id}/watch","href":"/api-reference/cell-measurements/stop-watching-a-measurement"}]},{"group":"Uncountable","pages":[{"title":"Create cell specifications and instances from Uncountable recipes","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /integrations/uncountable/sync","href":"/api-reference/uncountable/create-cell-specifications-and-instances-from-uncountable-recipes"},{"title":"Whether results, such as cell failures, are written to Uncountable","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /integrations/uncountable/writeback","href":"/api-reference/uncountable/whether-results-such-as-cell-failures-are-written-to-uncountable"}]},{"group":"Programs","pages":[{"title":"List programs","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /programs","href":"/api-reference/programs/list-programs"},{"title":"Create a new program","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /programs","href":"/api-reference/programs/create-a-new-program"},{"title":"Get a specific program by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /programs/{program_id}","href":"/api-reference/programs/get-a-specific-program-by-id"},{"title":"Delete a specific program by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /programs/{program_id}","href":"/api-reference/programs/delete-a-specific-program-by-id"},{"title":"Update a specific program by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /programs/{program_id}","href":"/api-reference/programs/update-a-specific-program-by-id"}]},{"group":"Sites","pages":[{"title":"List cyclers for a site","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /sites/{site_id}/cyclers","href":"/api-reference/sites/list-cyclers-for-a-site"},{"title":"Create a new cycler for a site","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /sites/{site_id}/cyclers","href":"/api-reference/sites/create-a-new-cycler-for-a-site"},{"title":"List thermal chambers for a site","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /sites/{site_id}/thermal_chambers","href":"/api-reference/sites/list-thermal-chambers-for-a-site"},{"title":"Create a new thermal chamber for a site","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /sites/{site_id}/thermal_chambers","href":"/api-reference/sites/create-a-new-thermal-chamber-for-a-site"},{"title":"List sites","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /sites","href":"/api-reference/sites/list-sites"},{"title":"Create a new site","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /sites","href":"/api-reference/sites/create-a-new-site"},{"title":"Get a specific site by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /sites/{site_id}","href":"/api-reference/sites/get-a-specific-site-by-id"},{"title":"Delete a specific site by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /sites/{site_id}","href":"/api-reference/sites/delete-a-specific-site-by-id"},{"title":"Update a specific site by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /sites/{site_id}","href":"/api-reference/sites/update-a-specific-site-by-id"}]},{"group":"Cyclers","pages":[{"title":"List channels for a cycler","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cyclers/{cycler_id}/channels","href":"/api-reference/cyclers/list-channels-for-a-cycler"},{"title":"Create a new channel for a cycler","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cyclers/{cycler_id}/channels","href":"/api-reference/cyclers/create-a-new-channel-for-a-cycler"},{"title":"List cyclers","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cyclers","href":"/api-reference/cyclers/list-cyclers"},{"title":"Get a specific cycler by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cyclers/{cycler_id}","href":"/api-reference/cyclers/get-a-specific-cycler-by-id"},{"title":"Delete a specific cycler by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cyclers/{cycler_id}","href":"/api-reference/cyclers/delete-a-specific-cycler-by-id"},{"title":"Update a specific cycler by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cyclers/{cycler_id}","href":"/api-reference/cyclers/update-a-specific-cycler-by-id"},{"title":"List a cycler's service history","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cyclers/{cycler_id}/service_events","href":"/api-reference/cyclers/list-a-cyclers-service-history"},{"title":"Take a cycler out of service for planned work","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cyclers/{cycler_id}/service_events","href":"/api-reference/cyclers/take-a-cycler-out-of-service-for-planned-work"},{"title":"Get a cycler's open service event, if any","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cyclers/{cycler_id}/service_events/open","href":"/api-reference/cyclers/get-a-cyclers-open-service-event-if-any"},{"title":"Record a cycler's open service as done","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cyclers/{cycler_id}/service_events/complete","href":"/api-reference/cyclers/record-a-cyclers-open-service-as-done"}]},{"group":"Channels","pages":[{"title":"List channels","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /channels","href":"/api-reference/channels/list-channels"},{"title":"Get a specific channel by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /channels/{channel_id}","href":"/api-reference/channels/get-a-specific-channel-by-id"},{"title":"Delete a specific channel by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /channels/{channel_id}","href":"/api-reference/channels/delete-a-specific-channel-by-id"},{"title":"Update a specific channel by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /channels/{channel_id}","href":"/api-reference/channels/update-a-specific-channel-by-id"},{"title":"List a channel's out-of-service history","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /channels/{channel_id}/incidents","href":"/api-reference/channels/list-a-channels-out-of-service-history"}]},{"group":"Thermal chambers","pages":[{"title":"List thermal chambers","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /thermal_chambers","href":"/api-reference/thermal-chambers/list-thermal-chambers"},{"title":"Get a specific thermal chamber by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /thermal_chambers/{thermal_chamber_id}","href":"/api-reference/thermal-chambers/get-a-specific-thermal-chamber-by-id"},{"title":"Delete a specific thermal chamber by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /thermal_chambers/{thermal_chamber_id}","href":"/api-reference/thermal-chambers/delete-a-specific-thermal-chamber-by-id"},{"title":"Update a specific thermal chamber by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /thermal_chambers/{thermal_chamber_id}","href":"/api-reference/thermal-chambers/update-a-specific-thermal-chamber-by-id"}]},{"group":"Simulations","pages":[{"title":"List Simulations","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations","href":"/api-reference/simulations/list-simulations"},{"title":"Get Simulation Summary","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/summary","href":"/api-reference/simulations/get-simulation-summary"},{"title":"Get Simulation","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}","href":"/api-reference/simulations/get-simulation"},{"title":"Get Simulation Result","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/result","href":"/api-reference/simulations/get-simulation-result"},{"title":"Download simulation time series parquet","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/time_series/download","href":"/api-reference/simulations/download-simulation-time-series-parquet"},{"title":"Download simulation steps parquet","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/steps/download","href":"/api-reference/simulations/download-simulation-steps-parquet"},{"title":"Get Simulation Spatial Profile","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/spatial-profile","href":"/api-reference/simulations/get-simulation-spatial-profile"},{"title":"Get Simulation Spatial Field","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/spatial-field","href":"/api-reference/simulations/get-simulation-spatial-field"},{"title":"Get Simulation Cycles","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/cycles","href":"/api-reference/simulations/get-simulation-cycles"},{"title":"Create Simulation Batch With Template","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /simulations/with-template/batch","href":"/api-reference/simulations/create-simulation-batch-with-template"}]},{"group":"parameterized_models","pages":[{"title":"List parameterized models for a cell specification or project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models","href":"/api-reference/parameterized_models/list-parameterized-models-for-a-cell-specification-or-project"},{"title":"Create a parameterized model for a cell specification or project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cells/{cell_spec_id}/parameterized_models","href":"/api-reference/parameterized_models/create-a-parameterized-model-for-a-cell-specification-or-project"},{"title":"Get a parameterized model by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/get-a-parameterized-model-by-id"},{"title":"Delete a parameterized model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/delete-a-parameterized-model"},{"title":"Update a parameterized model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/update-a-parameterized-model"},{"title":"Get Parameterized Model Parameter Values","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/parameter-values","href":"/api-reference/parameterized_models/get-parameterized-model-parameter-values"},{"title":"Get Parameterized Model Report","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/report","href":"/api-reference/parameterized_models/get-parameterized-model-report"},{"title":"Export Parameterized Model Code","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/export","href":"/api-reference/parameterized_models/export-parameterized-model-code"},{"title":"Get Parameterized Model Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-variable-names"},{"title":"Get Parameterized Model Spatial Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/spatial-variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-spatial-variable-names"},{"title":"Get Parameterized Model Field Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/field-variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-field-variable-names"},{"title":"List parameterized models for a cell specification or project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models","href":"/api-reference/parameterized_models/list-parameterized-models-for-a-cell-specification-or-project-1"},{"title":"Create a parameterized model for a cell specification or project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /parameterized_models","href":"/api-reference/parameterized_models/create-a-parameterized-model-for-a-cell-specification-or-project-1"},{"title":"Get a parameterized model by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/get-a-parameterized-model-by-id-1"},{"title":"Delete a parameterized model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/delete-a-parameterized-model-1"},{"title":"Update a parameterized model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/update-a-parameterized-model-1"},{"title":"Get Parameterized Model Parameter Values","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/parameter-values","href":"/api-reference/parameterized_models/get-parameterized-model-parameter-values-1"},{"title":"Get Parameterized Model Report","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/report","href":"/api-reference/parameterized_models/get-parameterized-model-report-1"},{"title":"Export Parameterized Model Code","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/export","href":"/api-reference/parameterized_models/export-parameterized-model-code-1"},{"title":"Get Parameterized Model Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-variable-names-1"},{"title":"Get Parameterized Model Spatial Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/spatial-variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-spatial-variable-names-1"},{"title":"Get Parameterized Model Field Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/field-variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-field-variable-names-1"}]},{"group":"discovery","pages":[{"title":"Get Capabilities","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/capabilities","href":"/api-reference/discovery/get-capabilities"},{"title":"Get Data Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/data","href":"/api-reference/discovery/get-data-schema"},{"title":"Get Protocol Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/protocol","href":"/api-reference/discovery/get-protocol-schema"},{"title":"Get Project Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/project","href":"/api-reference/discovery/get-project-schema"},{"title":"Get Lab Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/lab","href":"/api-reference/discovery/get-lab-schema"},{"title":"Get Study Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/study","href":"/api-reference/discovery/get-study-schema"},{"title":"Get Model Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/model","href":"/api-reference/discovery/get-model-schema"},{"title":"Get Pybamm Models","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/pybamm_models","href":"/api-reference/discovery/get-pybamm-models"},{"title":"Validate Pybamm Model Config","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /discovery/pybamm_models/validate","href":"/api-reference/discovery/validate-pybamm-model-config"},{"title":"Serialize Ionworks Model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /discovery/ionworks_models/serialize","href":"/api-reference/discovery/serialize-ionworks-model"},{"title":"Get Parameterized Model Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/parameterized_model","href":"/api-reference/discovery/get-parameterized-model-schema"},{"title":"Get Optimization Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/optimization","href":"/api-reference/discovery/get-optimization-schema"},{"title":"Get Pipeline Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/pipeline","href":"/api-reference/discovery/get-pipeline-schema"},{"title":"Get Simple Pipeline Schema","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/simple_pipeline","href":"/api-reference/discovery/get-simple-pipeline-schema"}]},{"group":"Pipeline","pages":[{"title":"Get Validation Plot Data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/validations/{job_id}/plot_data","href":"/api-reference/pipeline/get-validation-plot-data"},{"title":"Get Datafit Plot Data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/datafits/{job_id}/plot_data","href":"/api-reference/pipeline/get-datafit-plot-data"},{"title":"List user's pipelines","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines","href":"/api-reference/pipeline/list-users-pipelines"},{"title":"Create a new pipeline","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /pipelines","href":"/api-reference/pipeline/create-a-new-pipeline"},{"title":"Get pipeline metadata","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/{pipeline_id}","href":"/api-reference/pipeline/get-pipeline-metadata"},{"title":"Get a pipeline element's job_config","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/job_config","href":"/api-reference/pipeline/get-a-pipeline-elements-job_config"},{"title":"Multistart progress for a Data Fit element","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/progress","href":"/api-reference/pipeline/multistart-progress-for-a-data-fit-element"},{"title":"Validation plot manifest for an element","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/validation","href":"/api-reference/pipeline/validation-plot-manifest-for-an-element"},{"title":"Get Pipeline Element Plot Data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/plot_data","href":"/api-reference/pipeline/get-pipeline-element-plot-data"},{"title":"Get Pipeline Element Plot Data Batch","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/plot_data_batch","href":"/api-reference/pipeline/get-pipeline-element-plot-data-batch"},{"title":"Jobs behind an element (debug view)","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/jobs","href":"/api-reference/pipeline/jobs-behind-an-element-debug-view"},{"title":"Get pipeline result","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/{pipeline_id}/result","href":"/api-reference/pipeline/get-pipeline-result"},{"title":"Cancel multiple pipelines","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /pipelines/cancel","href":"/api-reference/pipeline/cancel-multiple-pipelines"},{"title":"Cancel a pipeline","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /pipelines/{pipeline_id}/cancel","href":"/api-reference/pipeline/cancel-a-pipeline"}]},{"group":"simple_pipeline","pages":[{"title":"List SimplePipelines","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simple_pipelines","href":"/api-reference/simple_pipeline/list-simplepipelines"},{"title":"Create and submit a SimplePipeline","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /simple_pipelines","href":"/api-reference/simple_pipeline/create-and-submit-a-simplepipeline"},{"title":"Get SimplePipeline by ID","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simple_pipelines/{simple_pipeline_id}","href":"/api-reference/simple_pipeline/get-simplepipeline-by-id"},{"title":"Delete a SimplePipeline","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /simple_pipelines/{simple_pipeline_id}","href":"/api-reference/simple_pipeline/delete-a-simplepipeline"},{"title":"Update SimplePipeline name/description","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /simple_pipelines/{simple_pipeline_id}","href":"/api-reference/simple_pipeline/update-simplepipeline-namedescription"},{"title":"Resubmit a SimplePipeline that failed to submit","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /simple_pipelines/{simple_pipeline_id}/resubmit","href":"/api-reference/simple_pipeline/resubmit-a-simplepipeline-that-failed-to-submit"},{"title":"Cancel a running SimplePipeline","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /simple_pipelines/{simple_pipeline_id}/cancel","href":"/api-reference/simple_pipeline/cancel-a-running-simplepipeline"}]},{"group":"protocols","pages":[{"title":"Validate Protocol Endpoint","description":"Validate a protocol dictionary.\n\nRuns the full backend validation and returns the result plus advisory lint\nfindings. A protocol can be valid and still carry warnings: operator and\nend-type mistakes no longer reject it, since one imported from a real\ncycler file may legitimately contain them. They come back in ``warnings``\nso the author sees the problem without being blocked.\n\nParameters\n----------\nbody : ValidateProtocolRequest\n Request containing the protocol dict to validate\n\nReturns\n-------\ndict\n ``{\"valid\": true, \"warnings\": [...]}`` on success, or\n ``{\"valid\": false, \"error\": \"...\"}`` on failure. ``warnings`` is\n omitted when there are none.","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/validate","href":"/api-reference/protocols/validate-protocol-endpoint"},{"title":"Generate Protocol Endpoint","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/generate","href":"/api-reference/protocols/generate-protocol-endpoint"},{"title":"Check Protocol Name Endpoint","description":"Check whether a protocol's name describes what the protocol does.\n\nAdvisory only. A 'mismatch' never blocks saving a protocol — the name is the\nuser's to choose, and a model that misreads a naming convention must not be\nable to stop work.\n\nReturns 'uncheckable' for a name that makes no claim (a codename like\n\"ETR874\", a generic \"Test\", or a name carried in from an uploaded vendor\nfile), so callers can render nothing at all in those cases.\n\nParameters\n----------\nbody : CheckProtocolNameRequest\n The name, the protocol it names, and whether the name came from a file.\n\nReturns\n-------\nCheckProtocolNameResponse\n The verdict, its confidence, the specific contradictions, and a\n suggested name.","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/check_name","href":"/api-reference/protocols/check-protocol-name-endpoint"},{"title":"Convert Protocol Endpoint","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/convert","href":"/api-reference/protocols/convert-protocol-endpoint"},{"title":"Compare Protocols Endpoint","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/compare","href":"/api-reference/protocols/compare-protocols-endpoint"},{"title":"Find Input References Endpoint","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/input_references","href":"/api-reference/protocols/find-input-references-endpoint"}]},{"group":"users","pages":[{"title":"Get Current User Profile","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /users/me","href":"/api-reference/users/get-current-user-profile"}]},{"group":"jobs","pages":[{"title":"List Jobs","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs","href":"/api-reference/jobs/list-jobs"},{"title":"Submit Job","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /jobs","href":"/api-reference/jobs/submit-job"},{"title":"Get Job","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs/{job_id}","href":"/api-reference/jobs/get-job"},{"title":"Get Job Metadata","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs/{job_id}/metadata","href":"/api-reference/jobs/get-job-metadata"},{"title":"Get Job Metadata Summary","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs/{job_id}/metadata_summary","href":"/api-reference/jobs/get-job-metadata-summary"},{"title":"Get Job Validation Series Channels","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs/{job_id}/series/channels","href":"/api-reference/jobs/get-job-validation-series-channels"},{"title":"Get Job Validation Series","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs/{job_id}/series","href":"/api-reference/jobs/get-job-validation-series"},{"title":"Cancel Job","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /jobs/{job_id}/cancel","href":"/api-reference/jobs/cancel-job"}]},{"group":"optimization","pages":[{"title":"Get Optimization With Jobs","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimize","href":"/api-reference/optimization/get-optimization-with-jobs"},{"title":"Get Optimization With Job","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimize/{id}","href":"/api-reference/optimization/get-optimization-with-job"}]},{"group":"optimizations","pages":[{"title":"List Optimization Resources","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations","href":"/api-reference/optimizations/list-optimization-resources"},{"title":"Submit Optimization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /optimizations","href":"/api-reference/optimizations/submit-optimization"},{"title":"Get Optimization Resource","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}","href":"/api-reference/optimizations/get-optimization-resource"},{"title":"Update Optimization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /optimizations/{id}","href":"/api-reference/optimizations/update-optimization"},{"title":"Cancel Optimization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /optimizations/{id}/cancel","href":"/api-reference/optimizations/cancel-optimization"},{"title":"Resubmit Optimization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /optimizations/{id}/resubmit","href":"/api-reference/optimizations/resubmit-optimization"},{"title":"Get Optimization Resource Statuses","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/statuses","href":"/api-reference/optimizations/get-optimization-resource-statuses"},{"title":"List Optimization Runs","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}/runs","href":"/api-reference/optimizations/list-optimization-runs"},{"title":"Get Optimization Config","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}/config","href":"/api-reference/optimizations/get-optimization-config"},{"title":"Get Optimization Series Channels","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}/series/channels","href":"/api-reference/optimizations/get-optimization-series-channels"},{"title":"Get Optimization Series","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}/series","href":"/api-reference/optimizations/get-optimization-series"},{"title":"Get Optimization Metadata","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}/metadata","href":"/api-reference/optimizations/get-optimization-metadata"}]},{"group":"Organizations","pages":[{"title":"Current organization usage and limits for the active billing period","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /organizations/current/usage","href":"/api-reference/organizations/current-organization-usage-and-limits-for-the-active-billing-period"}]},{"group":"API Reference","pages":[{"title":"List projects for an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects","href":"/api-reference/list-projects-for-an-organization"},{"title":"Create a new project within an organization, assigning creator as Project Admin","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects","href":"/api-reference/create-a-new-project-within-an-organization-assigning-creator-as-project-admin"},{"title":"Get a specific project by ID within an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}","href":"/api-reference/get-a-specific-project-by-id-within-an-organization"},{"title":"Delete a project from an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}","href":"/api-reference/delete-a-project-from-an-organization"},{"title":"Update a project within an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}","href":"/api-reference/update-a-project-within-an-organization"},{"title":"Add a user to a project or update their project role","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/members","href":"/api-reference/add-a-user-to-a-project-or-update-their-project-role"},{"title":"Invite a user to a project by email","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/invites","href":"/api-reference/invite-a-user-to-a-project-by-email"},{"title":"Remove a user from a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/members/{user_id}","href":"/api-reference/remove-a-user-from-a-project"},{"title":"Update a user's project role","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}/members/{user_id}","href":"/api-reference/update-a-users-project-role"},{"title":"List models for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /models","href":"/api-reference/list-models-for-a-project"},{"title":"Create a new model within an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /models","href":"/api-reference/create-a-new-model-within-an-organization"},{"title":"Get a specific model by ID within an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /models/{model_id}","href":"/api-reference/get-a-specific-model-by-id-within-an-organization"},{"title":"Delete a model from an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /models/{model_id}","href":"/api-reference/delete-a-model-from-an-organization"},{"title":"Update a model within an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /models/{model_id}","href":"/api-reference/update-a-model-within-an-organization"},{"title":"Add a custom variable to an existing model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /models/{model_id}/custom-variables","href":"/api-reference/add-a-custom-variable-to-an-existing-model"}]},{"group":"project-webhooks","pages":[{"title":"List webhooks for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/webhooks","href":"/api-reference/project-webhooks/list-webhooks-for-a-project"},{"title":"Create a project webhook","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/webhooks","href":"/api-reference/project-webhooks/create-a-project-webhook"},{"title":"Delete a project webhook","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/webhooks/{webhook_id}","href":"/api-reference/project-webhooks/delete-a-project-webhook"},{"title":"Update a project webhook","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}/webhooks/{webhook_id}","href":"/api-reference/project-webhooks/update-a-project-webhook"},{"title":"Enqueue a test webhook delivery","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/webhooks/{webhook_id}/test","href":"/api-reference/project-webhooks/enqueue-a-test-webhook-delivery"},{"title":"List recent deliveries for a webhook","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/webhooks/{webhook_id}/deliveries","href":"/api-reference/project-webhooks/list-recent-deliveries-for-a-webhook"}]},{"group":"Model builders","pages":[{"title":"List model builders","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /model_builders","href":"/api-reference/model-builders/list-model-builders"},{"title":"Create a model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders","href":"/api-reference/model-builders/create-a-model-builder"},{"title":"List calculations a model builder can use","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /model_builders/calculations","href":"/api-reference/model-builders/list-calculations-a-model-builder-can-use"},{"title":"Inputs and outputs of configured calculations","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/calculations/io","href":"/api-reference/model-builders/inputs-and-outputs-of-configured-calculations"},{"title":"Calculations that produce a parameter","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /model_builders/calculations/producing","href":"/api-reference/model-builders/calculations-that-produce-a-parameter"},{"title":"Preview a cell-spec mapping and its unit conversion","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/preview_mapping","href":"/api-reference/model-builders/preview-a-cell-spec-mapping-and-its-unit-conversion"},{"title":"Run an unsaved model builder config against a cell spec","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/dry_run","href":"/api-reference/model-builders/run-an-unsaved-model-builder-config-against-a-cell-spec"},{"title":"Suggest a source for every model parameter with AI","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/suggest","href":"/api-reference/model-builders/suggest-a-source-for-every-model-parameter-with-ai"},{"title":"Get a model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /model_builders/{model_builder_id}","href":"/api-reference/model-builders/get-a-model-builder"},{"title":"Delete a model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /model_builders/{model_builder_id}","href":"/api-reference/model-builders/delete-a-model-builder"},{"title":"Update a model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /model_builders/{model_builder_id}","href":"/api-reference/model-builders/update-a-model-builder"},{"title":"Check a cell spec is ready for a model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/{model_builder_id}/check","href":"/api-reference/model-builders/check-a-cell-spec-is-ready-for-a-model-builder"},{"title":"Build a parameter set from a cell spec","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/{model_builder_id}/build","href":"/api-reference/model-builders/build-a-parameter-set-from-a-cell-spec"},{"title":"Get the resolved document model builders read from a cell spec","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}/resolved","href":"/api-reference/model-builders/get-the-resolved-document-model-builders-read-from-a-cell-spec"},{"title":"Check a cell spec against every model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}/builder_readiness","href":"/api-reference/model-builders/check-a-cell-spec-against-every-model-builder"}]},{"group":"studies","pages":[{"title":"List studies for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/studies","href":"/api-reference/studies/list-studies-for-a-project"},{"title":"Create a new study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/studies","href":"/api-reference/studies/create-a-new-study"},{"title":"Get a specific study by ID","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/studies/{study_id}","href":"/api-reference/studies/get-a-specific-study-by-id"},{"title":"Delete a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/studies/{study_id}","href":"/api-reference/studies/delete-a-study"},{"title":"Update a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}/studies/{study_id}","href":"/api-reference/studies/update-a-study"},{"title":"Assign a simulation to a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/studies/{study_id}/simulations/{simulation_id}","href":"/api-reference/studies/assign-a-simulation-to-a-study"},{"title":"Remove a simulation from a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/studies/{study_id}/simulations/{simulation_id}","href":"/api-reference/studies/remove-a-simulation-from-a-study"},{"title":"Assign a measurement to a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/studies/{study_id}/measurements/{measurement_id}","href":"/api-reference/studies/assign-a-measurement-to-a-study"},{"title":"Remove a measurement from a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/studies/{study_id}/measurements/{measurement_id}","href":"/api-reference/studies/remove-a-measurement-from-a-study"},{"title":"List measurements assigned to a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/studies/{study_id}/measurements","href":"/api-reference/studies/list-measurements-assigned-to-a-study"}]},{"group":"Lab","pages":[{"title":"Get the lab-view occupancy status for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/lab/status","href":"/api-reference/lab/get-the-lab-view-occupancy-status-for-a-project"},{"title":"Build a lab status report for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/lab/report","href":"/api-reference/lab/build-a-lab-status-report-for-a-project"},{"title":"Get a project's channel-hours by state per calendar period","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/lab/utilization-history","href":"/api-reference/lab/get-a-projects-channel-hours-by-state-per-calendar-period"},{"title":"List the measurement IDs the current user is watching","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/lab/watched","href":"/api-reference/lab/list-the-measurement-ids-the-current-user-is-watching"}]},{"group":"Planned Measurements","pages":[{"title":"List planned measurements for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/planned_measurements","href":"/api-reference/planned-measurements/list-planned-measurements-for-a-project"},{"title":"Create a planned measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/planned_measurements","href":"/api-reference/planned-measurements/create-a-planned-measurement"},{"title":"Earliest free start time on a channel","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/planned_measurements/next_available","href":"/api-reference/planned-measurements/earliest-free-start-time-on-a-channel"},{"title":"Propose reservations for selected requested tests","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/planned_measurements/auto_schedule_proposal","href":"/api-reference/planned-measurements/propose-reservations-for-selected-requested-tests"},{"title":"Apply selected auto-schedule assignments","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/planned_measurements/apply_auto_schedule_proposal","href":"/api-reference/planned-measurements/apply-selected-auto-schedule-assignments"},{"title":"Get a planned measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/planned_measurements/{planned_measurement_id}","href":"/api-reference/planned-measurements/get-a-planned-measurement"},{"title":"Delete a planned measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/planned_measurements/{planned_measurement_id}","href":"/api-reference/planned-measurements/delete-a-planned-measurement"},{"title":"Update a planned measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}/planned_measurements/{planned_measurement_id}","href":"/api-reference/planned-measurements/update-a-planned-measurement"},{"title":"Voltage and current bounds a planned measurement's protocol implies","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/planned_measurements/{planned_measurement_id}/electrical_limits","href":"/api-reference/planned-measurements/voltage-and-current-bounds-a-planned-measurements-protocol-implies"},{"title":"Estimate a planned measurement's duration from its protocol","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}/planned_measurements/{planned_measurement_id}/estimate_duration","href":"/api-reference/planned-measurements/estimate-a-planned-measurements-duration-from-its-protocol"}]},{"group":"Health check","pages":[{"title":"Health Check","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /healthz","href":"/api-reference/health-check/health-check"}]}]}]},{"language":"ja","navbar":{"links":[{"href":"mailto:[email protected]","label":"サポート"}],"primary":{"type":"button","label":"Studio を開く","href":"https://studio.ionworks.com"}},"tabs":[{"tab":"ドキュメント","icon":"book-open","pages":[{"title":"ドキュメント","href":"/ja/introduction"}]},{"tab":"ガイド","icon":"graduation-cap","pages":[{"title":"ガイド","href":"/ja/guide/introduction"}]},{"tab":"API リファレンス","groups":[{"group":"Cell Specifications","pages":[{"title":"List cell instances for a cell specification","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}/cell_instances","href":"/api-reference/cell-specifications/list-cell-instances-for-a-cell-specification"},{"title":"Create a new cell instance for a cell specification","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_specifications/{cell_spec_id}/cell_instances","href":"/api-reference/cell-specifications/create-a-new-cell-instance-for-a-cell-specification"},{"title":"List the batches of a cell specification","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}/cell_batches","href":"/api-reference/cell-specifications/list-the-batches-of-a-cell-specification"},{"title":"Create a batch (manufacturing lot) for a cell specification","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_specifications/{cell_spec_id}/cell_batches","href":"/api-reference/cell-specifications/create-a-batch-manufacturing-lot-for-a-cell-specification"},{"title":"List cell specifications for the current organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications","href":"/api-reference/cell-specifications/list-cell-specifications-for-the-current-organization"},{"title":"Create a new cell specification with nested component/material data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_specifications","href":"/api-reference/cell-specifications/create-a-new-cell-specification-with-nested-componentmaterial-data"},{"title":"Get a cell specification with nested component and material data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}","href":"/api-reference/cell-specifications/get-a-cell-specification-with-nested-component-and-material-data"},{"title":"Delete a cell specification by id for the current organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_specifications/{cell_spec_id}","href":"/api-reference/cell-specifications/delete-a-cell-specification-by-id-for-the-current-organization"},{"title":"Update a cell specification with nested component/material data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_specifications/{cell_spec_id}","href":"/api-reference/cell-specifications/update-a-cell-specification-with-nested-componentmaterial-data"},{"title":"Initiate a signed-URL CAD model upload","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_specifications/{cell_spec_id}/cad/initiate-upload","href":"/api-reference/cell-specifications/initiate-a-signed-url-cad-model-upload"},{"title":"Attach an uploaded CAD model and render its thumbnail","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_specifications/{cell_spec_id}/cad/confirm-upload","href":"/api-reference/cell-specifications/attach-an-uploaded-cad-model-and-render-its-thumbnail"},{"title":"Get signed URLs for a cell specification's CAD model and thumbnail","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}/cad","href":"/api-reference/cell-specifications/get-signed-urls-for-a-cell-specifications-cad-model-and-thumbnail"},{"title":"Remove a cell specification's CAD model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_specifications/{cell_spec_id}/cad","href":"/api-reference/cell-specifications/remove-a-cell-specifications-cad-model"}]},{"group":"Cell Instances","pages":[{"title":"List cell measurements for a cell instance","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_instances/{cell_instance_id}/cell_measurements","href":"/api-reference/cell-instances/list-cell-measurements-for-a-cell-instance"},{"title":"Create a properties-type measurement directly","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_instances/{cell_instance_id}/cell_measurements/create","href":"/api-reference/cell-instances/create-a-properties-type-measurement-directly"},{"title":"Initiate a signed URL upload for measurement data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_instances/{cell_instance_id}/cell_measurements/initiate-upload","href":"/api-reference/cell-instances/initiate-a-signed-url-upload-for-measurement-data"},{"title":"Get a specific cell instance by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_instances/{cell_instance_id}","href":"/api-reference/cell-instances/get-a-specific-cell-instance-by-id"},{"title":"Delete a specific cell instance by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_instances/{cell_instance_id}","href":"/api-reference/cell-instances/delete-a-specific-cell-instance-by-id"},{"title":"Update a specific cell instance by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_instances/{cell_instance_id}","href":"/api-reference/cell-instances/update-a-specific-cell-instance-by-id"},{"title":"Report a cell instance as failed, or clear the report","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_instances/{cell_instance_id}/failure","href":"/api-reference/cell-instances/report-a-cell-instance-as-failed-or-clear-the-report"}]},{"group":"Cell Batches","pages":[{"title":"Get a cell batch by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_batches/{batch_id}","href":"/api-reference/cell-batches/get-a-cell-batch-by-id"},{"title":"Delete a cell batch","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_batches/{batch_id}","href":"/api-reference/cell-batches/delete-a-cell-batch"},{"title":"Update a cell batch","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_batches/{batch_id}","href":"/api-reference/cell-batches/update-a-cell-batch"}]},{"group":"Cell Measurements","pages":[{"title":"List cell measurements","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements","href":"/api-reference/cell-measurements/list-cell-measurements"},{"title":"List the JSON metadata fields measurements in a scope carry","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/metadata_fields","href":"/api-reference/cell-measurements/list-the-json-metadata-fields-measurements-in-a-scope-carry"},{"title":"List a project's measurement tags with usage counts","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/tags","href":"/api-reference/cell-measurements/list-a-projects-measurement-tags-with-usage-counts"},{"title":"Add or remove tags on many measurements","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/tags/bulk","href":"/api-reference/cell-measurements/add-or-remove-tags-on-many-measurements"},{"title":"Export measurement data (time series, steps, files, metadata) as a zip","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/export","href":"/api-reference/cell-measurements/export-measurement-data-time-series-steps-files-metadata-as-a-zip"},{"title":"Get a cell measurement by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}","href":"/api-reference/cell-measurements/get-a-cell-measurement-by-id"},{"title":"Delete a specific cell measurement by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_measurements/{measurement_id}","href":"/api-reference/cell-measurements/delete-a-specific-cell-measurement-by-id"},{"title":"Update a cell measurement by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_measurements/{measurement_id}","href":"/api-reference/cell-measurements/update-a-cell-measurement-by-id"},{"title":"Get detailed information for a cell measurement","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/detail","href":"/api-reference/cell-measurements/get-detailed-information-for-a-cell-measurement"},{"title":"Estimate a running measurement's end time from its remaining protocol","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_measurements/{measurement_id}/estimate_end_time","href":"/api-reference/cell-measurements/estimate-a-running-measurements-end-time-from-its-remaining-protocol"},{"title":"Report a cell measurement as failed, or clear the report","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cell_measurements/{measurement_id}/failure","href":"/api-reference/cell-measurements/report-a-cell-measurement-as-failed-or-clear-the-report"},{"title":"Get all steps for a cell measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/steps","href":"/api-reference/cell-measurements/get-all-steps-for-a-cell-measurement"},{"title":"Get steps and cycle metrics in one call","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/steps_and_cycles","href":"/api-reference/cell-measurements/get-steps-and-cycle-metrics-in-one-call"},{"title":"Get cycle metrics only for a cell measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/cycles","href":"/api-reference/cell-measurements/get-cycle-metrics-only-for-a-cell-measurement"},{"title":"Get time series data for a measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/time_series","href":"/api-reference/cell-measurements/get-time-series-data-for-a-measurement"},{"title":"Download time series parquet file","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/time_series/download","href":"/api-reference/cell-measurements/download-time-series-parquet-file"},{"title":"Download steps parquet file","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/steps/download","href":"/api-reference/cell-measurements/download-steps-parquet-file"},{"title":"List files in a measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/files","href":"/api-reference/cell-measurements/list-files-in-a-measurement"},{"title":"Download a measurement file","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_measurements/{measurement_id}/files/{filename}","href":"/api-reference/cell-measurements/download-a-measurement-file"},{"title":"Confirm a signed URL upload and finalize the measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/{measurement_id}/confirm-upload","href":"/api-reference/cell-measurements/confirm-a-signed-url-upload-and-finalize-the-measurement"},{"title":"Initiate signed URL upload to extend a measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/{measurement_id}/initiate-extend","href":"/api-reference/cell-measurements/initiate-signed-url-upload-to-extend-a-measurement"},{"title":"Confirm extend upload; stitch series and recompute steps","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/{measurement_id}/confirm-extend","href":"/api-reference/cell-measurements/confirm-extend-upload;-stitch-series-and-recompute-steps"},{"title":"Watch a measurement (Lab 'My Channels')","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cell_measurements/{measurement_id}/watch","href":"/api-reference/cell-measurements/watch-a-measurement-lab-my-channels"},{"title":"Stop watching a measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cell_measurements/{measurement_id}/watch","href":"/api-reference/cell-measurements/stop-watching-a-measurement"}]},{"group":"Uncountable","pages":[{"title":"Create cell specifications and instances from Uncountable recipes","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /integrations/uncountable/sync","href":"/api-reference/uncountable/create-cell-specifications-and-instances-from-uncountable-recipes"},{"title":"Whether results, such as cell failures, are written to Uncountable","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /integrations/uncountable/writeback","href":"/api-reference/uncountable/whether-results-such-as-cell-failures-are-written-to-uncountable"}]},{"group":"Programs","pages":[{"title":"List programs","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /programs","href":"/api-reference/programs/list-programs"},{"title":"Create a new program","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /programs","href":"/api-reference/programs/create-a-new-program"},{"title":"Get a specific program by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /programs/{program_id}","href":"/api-reference/programs/get-a-specific-program-by-id"},{"title":"Delete a specific program by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /programs/{program_id}","href":"/api-reference/programs/delete-a-specific-program-by-id"},{"title":"Update a specific program by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /programs/{program_id}","href":"/api-reference/programs/update-a-specific-program-by-id"}]},{"group":"Sites","pages":[{"title":"List cyclers for a site","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /sites/{site_id}/cyclers","href":"/api-reference/sites/list-cyclers-for-a-site"},{"title":"Create a new cycler for a site","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /sites/{site_id}/cyclers","href":"/api-reference/sites/create-a-new-cycler-for-a-site"},{"title":"List thermal chambers for a site","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /sites/{site_id}/thermal_chambers","href":"/api-reference/sites/list-thermal-chambers-for-a-site"},{"title":"Create a new thermal chamber for a site","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /sites/{site_id}/thermal_chambers","href":"/api-reference/sites/create-a-new-thermal-chamber-for-a-site"},{"title":"List sites","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /sites","href":"/api-reference/sites/list-sites"},{"title":"Create a new site","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /sites","href":"/api-reference/sites/create-a-new-site"},{"title":"Get a specific site by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /sites/{site_id}","href":"/api-reference/sites/get-a-specific-site-by-id"},{"title":"Delete a specific site by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /sites/{site_id}","href":"/api-reference/sites/delete-a-specific-site-by-id"},{"title":"Update a specific site by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /sites/{site_id}","href":"/api-reference/sites/update-a-specific-site-by-id"}]},{"group":"Cyclers","pages":[{"title":"List channels for a cycler","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cyclers/{cycler_id}/channels","href":"/api-reference/cyclers/list-channels-for-a-cycler"},{"title":"Create a new channel for a cycler","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cyclers/{cycler_id}/channels","href":"/api-reference/cyclers/create-a-new-channel-for-a-cycler"},{"title":"List cyclers","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cyclers","href":"/api-reference/cyclers/list-cyclers"},{"title":"Get a specific cycler by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cyclers/{cycler_id}","href":"/api-reference/cyclers/get-a-specific-cycler-by-id"},{"title":"Delete a specific cycler by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cyclers/{cycler_id}","href":"/api-reference/cyclers/delete-a-specific-cycler-by-id"},{"title":"Update a specific cycler by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cyclers/{cycler_id}","href":"/api-reference/cyclers/update-a-specific-cycler-by-id"},{"title":"List a cycler's service history","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cyclers/{cycler_id}/service_events","href":"/api-reference/cyclers/list-a-cyclers-service-history"},{"title":"Take a cycler out of service for planned work","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cyclers/{cycler_id}/service_events","href":"/api-reference/cyclers/take-a-cycler-out-of-service-for-planned-work"},{"title":"Get a cycler's open service event, if any","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cyclers/{cycler_id}/service_events/open","href":"/api-reference/cyclers/get-a-cyclers-open-service-event-if-any"},{"title":"Record a cycler's open service as done","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cyclers/{cycler_id}/service_events/complete","href":"/api-reference/cyclers/record-a-cyclers-open-service-as-done"}]},{"group":"Channels","pages":[{"title":"List channels","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /channels","href":"/api-reference/channels/list-channels"},{"title":"Get a specific channel by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /channels/{channel_id}","href":"/api-reference/channels/get-a-specific-channel-by-id"},{"title":"Delete a specific channel by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /channels/{channel_id}","href":"/api-reference/channels/delete-a-specific-channel-by-id"},{"title":"Update a specific channel by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /channels/{channel_id}","href":"/api-reference/channels/update-a-specific-channel-by-id"},{"title":"List a channel's out-of-service history","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /channels/{channel_id}/incidents","href":"/api-reference/channels/list-a-channels-out-of-service-history"}]},{"group":"Thermal chambers","pages":[{"title":"List thermal chambers","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /thermal_chambers","href":"/api-reference/thermal-chambers/list-thermal-chambers"},{"title":"Get a specific thermal chamber by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /thermal_chambers/{thermal_chamber_id}","href":"/api-reference/thermal-chambers/get-a-specific-thermal-chamber-by-id"},{"title":"Delete a specific thermal chamber by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /thermal_chambers/{thermal_chamber_id}","href":"/api-reference/thermal-chambers/delete-a-specific-thermal-chamber-by-id"},{"title":"Update a specific thermal chamber by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /thermal_chambers/{thermal_chamber_id}","href":"/api-reference/thermal-chambers/update-a-specific-thermal-chamber-by-id"}]},{"group":"Simulations","pages":[{"title":"List Simulations","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations","href":"/api-reference/simulations/list-simulations"},{"title":"Get Simulation Summary","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/summary","href":"/api-reference/simulations/get-simulation-summary"},{"title":"Get Simulation","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}","href":"/api-reference/simulations/get-simulation"},{"title":"Get Simulation Result","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/result","href":"/api-reference/simulations/get-simulation-result"},{"title":"Download simulation time series parquet","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/time_series/download","href":"/api-reference/simulations/download-simulation-time-series-parquet"},{"title":"Download simulation steps parquet","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/steps/download","href":"/api-reference/simulations/download-simulation-steps-parquet"},{"title":"Get Simulation Spatial Profile","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/spatial-profile","href":"/api-reference/simulations/get-simulation-spatial-profile"},{"title":"Get Simulation Spatial Field","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/spatial-field","href":"/api-reference/simulations/get-simulation-spatial-field"},{"title":"Get Simulation Cycles","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simulations/{simulation_id}/cycles","href":"/api-reference/simulations/get-simulation-cycles"},{"title":"Create Simulation Batch With Template","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /simulations/with-template/batch","href":"/api-reference/simulations/create-simulation-batch-with-template"}]},{"group":"parameterized_models","pages":[{"title":"List parameterized models for a cell specification or project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models","href":"/api-reference/parameterized_models/list-parameterized-models-for-a-cell-specification-or-project"},{"title":"Create a parameterized model for a cell specification or project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /cells/{cell_spec_id}/parameterized_models","href":"/api-reference/parameterized_models/create-a-parameterized-model-for-a-cell-specification-or-project"},{"title":"Get a parameterized model by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/get-a-parameterized-model-by-id"},{"title":"Delete a parameterized model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/delete-a-parameterized-model"},{"title":"Update a parameterized model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/update-a-parameterized-model"},{"title":"Get Parameterized Model Parameter Values","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/parameter-values","href":"/api-reference/parameterized_models/get-parameterized-model-parameter-values"},{"title":"Get Parameterized Model Report","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/report","href":"/api-reference/parameterized_models/get-parameterized-model-report"},{"title":"Export Parameterized Model Code","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/export","href":"/api-reference/parameterized_models/export-parameterized-model-code"},{"title":"Get Parameterized Model Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-variable-names"},{"title":"Get Parameterized Model Spatial Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/spatial-variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-spatial-variable-names"},{"title":"Get Parameterized Model Field Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cells/{cell_spec_id}/parameterized_models/{parameterized_model_id}/field-variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-field-variable-names"},{"title":"List parameterized models for a cell specification or project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models","href":"/api-reference/parameterized_models/list-parameterized-models-for-a-cell-specification-or-project-1"},{"title":"Create a parameterized model for a cell specification or project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /parameterized_models","href":"/api-reference/parameterized_models/create-a-parameterized-model-for-a-cell-specification-or-project-1"},{"title":"Get a parameterized model by id","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/get-a-parameterized-model-by-id-1"},{"title":"Delete a parameterized model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/delete-a-parameterized-model-1"},{"title":"Update a parameterized model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /parameterized_models/{parameterized_model_id}","href":"/api-reference/parameterized_models/update-a-parameterized-model-1"},{"title":"Get Parameterized Model Parameter Values","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/parameter-values","href":"/api-reference/parameterized_models/get-parameterized-model-parameter-values-1"},{"title":"Get Parameterized Model Report","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/report","href":"/api-reference/parameterized_models/get-parameterized-model-report-1"},{"title":"Export Parameterized Model Code","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/export","href":"/api-reference/parameterized_models/export-parameterized-model-code-1"},{"title":"Get Parameterized Model Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-variable-names-1"},{"title":"Get Parameterized Model Spatial Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/spatial-variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-spatial-variable-names-1"},{"title":"Get Parameterized Model Field Variable Names","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /parameterized_models/{parameterized_model_id}/field-variable-names","href":"/api-reference/parameterized_models/get-parameterized-model-field-variable-names-1"}]},{"group":"discovery","pages":[{"title":"Get Capabilities","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/capabilities","href":"/api-reference/discovery/get-capabilities"},{"title":"Get Data Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/data","href":"/api-reference/discovery/get-data-schema"},{"title":"Get Protocol Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/protocol","href":"/api-reference/discovery/get-protocol-schema"},{"title":"Get Project Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/project","href":"/api-reference/discovery/get-project-schema"},{"title":"Get Lab Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/lab","href":"/api-reference/discovery/get-lab-schema"},{"title":"Get Study Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/study","href":"/api-reference/discovery/get-study-schema"},{"title":"Get Model Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/model","href":"/api-reference/discovery/get-model-schema"},{"title":"Get Pybamm Models","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/pybamm_models","href":"/api-reference/discovery/get-pybamm-models"},{"title":"Validate Pybamm Model Config","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /discovery/pybamm_models/validate","href":"/api-reference/discovery/validate-pybamm-model-config"},{"title":"Serialize Ionworks Model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /discovery/ionworks_models/serialize","href":"/api-reference/discovery/serialize-ionworks-model"},{"title":"Get Parameterized Model Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/parameterized_model","href":"/api-reference/discovery/get-parameterized-model-schema"},{"title":"Get Optimization Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/optimization","href":"/api-reference/discovery/get-optimization-schema"},{"title":"Get Pipeline Schema","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/pipeline","href":"/api-reference/discovery/get-pipeline-schema"},{"title":"Get Simple Pipeline Schema","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /discovery/schemas/simple_pipeline","href":"/api-reference/discovery/get-simple-pipeline-schema"}]},{"group":"Pipeline","pages":[{"title":"Get Validation Plot Data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/validations/{job_id}/plot_data","href":"/api-reference/pipeline/get-validation-plot-data"},{"title":"Get Datafit Plot Data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/datafits/{job_id}/plot_data","href":"/api-reference/pipeline/get-datafit-plot-data"},{"title":"List user's pipelines","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines","href":"/api-reference/pipeline/list-users-pipelines"},{"title":"Create a new pipeline","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /pipelines","href":"/api-reference/pipeline/create-a-new-pipeline"},{"title":"Get pipeline metadata","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/{pipeline_id}","href":"/api-reference/pipeline/get-pipeline-metadata"},{"title":"Get a pipeline element's job_config","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/job_config","href":"/api-reference/pipeline/get-a-pipeline-elements-job_config"},{"title":"Multistart progress for a Data Fit element","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/progress","href":"/api-reference/pipeline/multistart-progress-for-a-data-fit-element"},{"title":"Validation plot manifest for an element","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/validation","href":"/api-reference/pipeline/validation-plot-manifest-for-an-element"},{"title":"Get Pipeline Element Plot Data","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/plot_data","href":"/api-reference/pipeline/get-pipeline-element-plot-data"},{"title":"Get Pipeline Element Plot Data Batch","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/plot_data_batch","href":"/api-reference/pipeline/get-pipeline-element-plot-data-batch"},{"title":"Jobs behind an element (debug view)","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/elements/{element_id}/jobs","href":"/api-reference/pipeline/jobs-behind-an-element-debug-view"},{"title":"Get pipeline result","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /pipelines/{pipeline_id}/result","href":"/api-reference/pipeline/get-pipeline-result"},{"title":"Cancel multiple pipelines","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /pipelines/cancel","href":"/api-reference/pipeline/cancel-multiple-pipelines"},{"title":"Cancel a pipeline","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /pipelines/{pipeline_id}/cancel","href":"/api-reference/pipeline/cancel-a-pipeline"}]},{"group":"simple_pipeline","pages":[{"title":"List SimplePipelines","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simple_pipelines","href":"/api-reference/simple_pipeline/list-simplepipelines"},{"title":"Create and submit a SimplePipeline","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /simple_pipelines","href":"/api-reference/simple_pipeline/create-and-submit-a-simplepipeline"},{"title":"Get SimplePipeline by ID","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /simple_pipelines/{simple_pipeline_id}","href":"/api-reference/simple_pipeline/get-simplepipeline-by-id"},{"title":"Delete a SimplePipeline","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /simple_pipelines/{simple_pipeline_id}","href":"/api-reference/simple_pipeline/delete-a-simplepipeline"},{"title":"Update SimplePipeline name/description","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /simple_pipelines/{simple_pipeline_id}","href":"/api-reference/simple_pipeline/update-simplepipeline-namedescription"},{"title":"Resubmit a SimplePipeline that failed to submit","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /simple_pipelines/{simple_pipeline_id}/resubmit","href":"/api-reference/simple_pipeline/resubmit-a-simplepipeline-that-failed-to-submit"},{"title":"Cancel a running SimplePipeline","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /simple_pipelines/{simple_pipeline_id}/cancel","href":"/api-reference/simple_pipeline/cancel-a-running-simplepipeline"}]},{"group":"protocols","pages":[{"title":"Validate Protocol Endpoint","description":"Validate a protocol dictionary.\n\nRuns the full backend validation and returns the result plus advisory lint\nfindings. A protocol can be valid and still carry warnings: operator and\nend-type mistakes no longer reject it, since one imported from a real\ncycler file may legitimately contain them. They come back in ``warnings``\nso the author sees the problem without being blocked.\n\nParameters\n----------\nbody : ValidateProtocolRequest\n Request containing the protocol dict to validate\n\nReturns\n-------\ndict\n ``{\"valid\": true, \"warnings\": [...]}`` on success, or\n ``{\"valid\": false, \"error\": \"...\"}`` on failure. ``warnings`` is\n omitted when there are none.","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/validate","href":"/api-reference/protocols/validate-protocol-endpoint"},{"title":"Generate Protocol Endpoint","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/generate","href":"/api-reference/protocols/generate-protocol-endpoint"},{"title":"Check Protocol Name Endpoint","description":"Check whether a protocol's name describes what the protocol does.\n\nAdvisory only. A 'mismatch' never blocks saving a protocol — the name is the\nuser's to choose, and a model that misreads a naming convention must not be\nable to stop work.\n\nReturns 'uncheckable' for a name that makes no claim (a codename like\n\"ETR874\", a generic \"Test\", or a name carried in from an uploaded vendor\nfile), so callers can render nothing at all in those cases.\n\nParameters\n----------\nbody : CheckProtocolNameRequest\n The name, the protocol it names, and whether the name came from a file.\n\nReturns\n-------\nCheckProtocolNameResponse\n The verdict, its confidence, the specific contradictions, and a\n suggested name.","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/check_name","href":"/api-reference/protocols/check-protocol-name-endpoint"},{"title":"Convert Protocol Endpoint","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/convert","href":"/api-reference/protocols/convert-protocol-endpoint"},{"title":"Compare Protocols Endpoint","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/compare","href":"/api-reference/protocols/compare-protocols-endpoint"},{"title":"Find Input References Endpoint","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /protocols/input_references","href":"/api-reference/protocols/find-input-references-endpoint"}]},{"group":"users","pages":[{"title":"Get Current User Profile","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /users/me","href":"/api-reference/users/get-current-user-profile"}]},{"group":"jobs","pages":[{"title":"List Jobs","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs","href":"/api-reference/jobs/list-jobs"},{"title":"Submit Job","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /jobs","href":"/api-reference/jobs/submit-job"},{"title":"Get Job","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs/{job_id}","href":"/api-reference/jobs/get-job"},{"title":"Get Job Metadata","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs/{job_id}/metadata","href":"/api-reference/jobs/get-job-metadata"},{"title":"Get Job Metadata Summary","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs/{job_id}/metadata_summary","href":"/api-reference/jobs/get-job-metadata-summary"},{"title":"Get Job Validation Series Channels","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs/{job_id}/series/channels","href":"/api-reference/jobs/get-job-validation-series-channels"},{"title":"Get Job Validation Series","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /jobs/{job_id}/series","href":"/api-reference/jobs/get-job-validation-series"},{"title":"Cancel Job","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /jobs/{job_id}/cancel","href":"/api-reference/jobs/cancel-job"}]},{"group":"optimization","pages":[{"title":"Get Optimization With Jobs","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimize","href":"/api-reference/optimization/get-optimization-with-jobs"},{"title":"Get Optimization With Job","deprecated":true,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimize/{id}","href":"/api-reference/optimization/get-optimization-with-job"}]},{"group":"optimizations","pages":[{"title":"List Optimization Resources","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations","href":"/api-reference/optimizations/list-optimization-resources"},{"title":"Submit Optimization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /optimizations","href":"/api-reference/optimizations/submit-optimization"},{"title":"Get Optimization Resource","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}","href":"/api-reference/optimizations/get-optimization-resource"},{"title":"Update Optimization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /optimizations/{id}","href":"/api-reference/optimizations/update-optimization"},{"title":"Cancel Optimization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /optimizations/{id}/cancel","href":"/api-reference/optimizations/cancel-optimization"},{"title":"Resubmit Optimization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /optimizations/{id}/resubmit","href":"/api-reference/optimizations/resubmit-optimization"},{"title":"Get Optimization Resource Statuses","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/statuses","href":"/api-reference/optimizations/get-optimization-resource-statuses"},{"title":"List Optimization Runs","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}/runs","href":"/api-reference/optimizations/list-optimization-runs"},{"title":"Get Optimization Config","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}/config","href":"/api-reference/optimizations/get-optimization-config"},{"title":"Get Optimization Series Channels","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}/series/channels","href":"/api-reference/optimizations/get-optimization-series-channels"},{"title":"Get Optimization Series","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}/series","href":"/api-reference/optimizations/get-optimization-series"},{"title":"Get Optimization Metadata","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /optimizations/{id}/metadata","href":"/api-reference/optimizations/get-optimization-metadata"}]},{"group":"Organizations","pages":[{"title":"Current organization usage and limits for the active billing period","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /organizations/current/usage","href":"/api-reference/organizations/current-organization-usage-and-limits-for-the-active-billing-period"}]},{"group":"API Reference","pages":[{"title":"List projects for an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects","href":"/api-reference/list-projects-for-an-organization"},{"title":"Create a new project within an organization, assigning creator as Project Admin","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects","href":"/api-reference/create-a-new-project-within-an-organization-assigning-creator-as-project-admin"},{"title":"Get a specific project by ID within an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}","href":"/api-reference/get-a-specific-project-by-id-within-an-organization"},{"title":"Delete a project from an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}","href":"/api-reference/delete-a-project-from-an-organization"},{"title":"Update a project within an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}","href":"/api-reference/update-a-project-within-an-organization"},{"title":"Add a user to a project or update their project role","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/members","href":"/api-reference/add-a-user-to-a-project-or-update-their-project-role"},{"title":"Invite a user to a project by email","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/invites","href":"/api-reference/invite-a-user-to-a-project-by-email"},{"title":"Remove a user from a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/members/{user_id}","href":"/api-reference/remove-a-user-from-a-project"},{"title":"Update a user's project role","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}/members/{user_id}","href":"/api-reference/update-a-users-project-role"},{"title":"List models for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /models","href":"/api-reference/list-models-for-a-project"},{"title":"Create a new model within an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /models","href":"/api-reference/create-a-new-model-within-an-organization"},{"title":"Get a specific model by ID within an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /models/{model_id}","href":"/api-reference/get-a-specific-model-by-id-within-an-organization"},{"title":"Delete a model from an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /models/{model_id}","href":"/api-reference/delete-a-model-from-an-organization"},{"title":"Update a model within an organization","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /models/{model_id}","href":"/api-reference/update-a-model-within-an-organization"},{"title":"Add a custom variable to an existing model","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /models/{model_id}/custom-variables","href":"/api-reference/add-a-custom-variable-to-an-existing-model"}]},{"group":"project-webhooks","pages":[{"title":"List webhooks for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/webhooks","href":"/api-reference/project-webhooks/list-webhooks-for-a-project"},{"title":"Create a project webhook","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/webhooks","href":"/api-reference/project-webhooks/create-a-project-webhook"},{"title":"Delete a project webhook","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/webhooks/{webhook_id}","href":"/api-reference/project-webhooks/delete-a-project-webhook"},{"title":"Update a project webhook","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}/webhooks/{webhook_id}","href":"/api-reference/project-webhooks/update-a-project-webhook"},{"title":"Enqueue a test webhook delivery","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/webhooks/{webhook_id}/test","href":"/api-reference/project-webhooks/enqueue-a-test-webhook-delivery"},{"title":"List recent deliveries for a webhook","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/webhooks/{webhook_id}/deliveries","href":"/api-reference/project-webhooks/list-recent-deliveries-for-a-webhook"}]},{"group":"Model builders","pages":[{"title":"List model builders","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /model_builders","href":"/api-reference/model-builders/list-model-builders"},{"title":"Create a model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders","href":"/api-reference/model-builders/create-a-model-builder"},{"title":"List calculations a model builder can use","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /model_builders/calculations","href":"/api-reference/model-builders/list-calculations-a-model-builder-can-use"},{"title":"Inputs and outputs of configured calculations","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/calculations/io","href":"/api-reference/model-builders/inputs-and-outputs-of-configured-calculations"},{"title":"Calculations that produce a parameter","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /model_builders/calculations/producing","href":"/api-reference/model-builders/calculations-that-produce-a-parameter"},{"title":"Preview a cell-spec mapping and its unit conversion","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/preview_mapping","href":"/api-reference/model-builders/preview-a-cell-spec-mapping-and-its-unit-conversion"},{"title":"Run an unsaved model builder config against a cell spec","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/dry_run","href":"/api-reference/model-builders/run-an-unsaved-model-builder-config-against-a-cell-spec"},{"title":"Suggest a source for every model parameter with AI","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/suggest","href":"/api-reference/model-builders/suggest-a-source-for-every-model-parameter-with-ai"},{"title":"Get a model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /model_builders/{model_builder_id}","href":"/api-reference/model-builders/get-a-model-builder"},{"title":"Delete a model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /model_builders/{model_builder_id}","href":"/api-reference/model-builders/delete-a-model-builder"},{"title":"Update a model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /model_builders/{model_builder_id}","href":"/api-reference/model-builders/update-a-model-builder"},{"title":"Check a cell spec is ready for a model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/{model_builder_id}/check","href":"/api-reference/model-builders/check-a-cell-spec-is-ready-for-a-model-builder"},{"title":"Build a parameter set from a cell spec","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /model_builders/{model_builder_id}/build","href":"/api-reference/model-builders/build-a-parameter-set-from-a-cell-spec"},{"title":"Get the resolved document model builders read from a cell spec","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}/resolved","href":"/api-reference/model-builders/get-the-resolved-document-model-builders-read-from-a-cell-spec"},{"title":"Check a cell spec against every model builder","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /cell_specifications/{cell_spec_id}/builder_readiness","href":"/api-reference/model-builders/check-a-cell-spec-against-every-model-builder"}]},{"group":"studies","pages":[{"title":"List studies for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/studies","href":"/api-reference/studies/list-studies-for-a-project"},{"title":"Create a new study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/studies","href":"/api-reference/studies/create-a-new-study"},{"title":"Get a specific study by ID","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/studies/{study_id}","href":"/api-reference/studies/get-a-specific-study-by-id"},{"title":"Delete a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/studies/{study_id}","href":"/api-reference/studies/delete-a-study"},{"title":"Update a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}/studies/{study_id}","href":"/api-reference/studies/update-a-study"},{"title":"Assign a simulation to a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/studies/{study_id}/simulations/{simulation_id}","href":"/api-reference/studies/assign-a-simulation-to-a-study"},{"title":"Remove a simulation from a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/studies/{study_id}/simulations/{simulation_id}","href":"/api-reference/studies/remove-a-simulation-from-a-study"},{"title":"Assign a measurement to a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/studies/{study_id}/measurements/{measurement_id}","href":"/api-reference/studies/assign-a-measurement-to-a-study"},{"title":"Remove a measurement from a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/studies/{study_id}/measurements/{measurement_id}","href":"/api-reference/studies/remove-a-measurement-from-a-study"},{"title":"List measurements assigned to a study","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/studies/{study_id}/measurements","href":"/api-reference/studies/list-measurements-assigned-to-a-study"}]},{"group":"Lab","pages":[{"title":"Get the lab-view occupancy status for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/lab/status","href":"/api-reference/lab/get-the-lab-view-occupancy-status-for-a-project"},{"title":"Build a lab status report for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/lab/report","href":"/api-reference/lab/build-a-lab-status-report-for-a-project"},{"title":"Get a project's channel-hours by state per calendar period","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/lab/utilization-history","href":"/api-reference/lab/get-a-projects-channel-hours-by-state-per-calendar-period"},{"title":"List the measurement IDs the current user is watching","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/lab/watched","href":"/api-reference/lab/list-the-measurement-ids-the-current-user-is-watching"}]},{"group":"Planned Measurements","pages":[{"title":"List planned measurements for a project","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/planned_measurements","href":"/api-reference/planned-measurements/list-planned-measurements-for-a-project"},{"title":"Create a planned measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/planned_measurements","href":"/api-reference/planned-measurements/create-a-planned-measurement"},{"title":"Earliest free start time on a channel","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/planned_measurements/next_available","href":"/api-reference/planned-measurements/earliest-free-start-time-on-a-channel"},{"title":"Propose reservations for selected requested tests","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/planned_measurements/auto_schedule_proposal","href":"/api-reference/planned-measurements/propose-reservations-for-selected-requested-tests"},{"title":"Apply selected auto-schedule assignments","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json post /projects/{project_id}/planned_measurements/apply_auto_schedule_proposal","href":"/api-reference/planned-measurements/apply-selected-auto-schedule-assignments"},{"title":"Get a planned measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/planned_measurements/{planned_measurement_id}","href":"/api-reference/planned-measurements/get-a-planned-measurement"},{"title":"Delete a planned measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json delete /projects/{project_id}/planned_measurements/{planned_measurement_id}","href":"/api-reference/planned-measurements/delete-a-planned-measurement"},{"title":"Update a planned measurement","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}/planned_measurements/{planned_measurement_id}","href":"/api-reference/planned-measurements/update-a-planned-measurement"},{"title":"Voltage and current bounds a planned measurement's protocol implies","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /projects/{project_id}/planned_measurements/{planned_measurement_id}/electrical_limits","href":"/api-reference/planned-measurements/voltage-and-current-bounds-a-planned-measurements-protocol-implies"},{"title":"Estimate a planned measurement's duration from its protocol","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json patch /projects/{project_id}/planned_measurements/{planned_measurement_id}/estimate_duration","href":"/api-reference/planned-measurements/estimate-a-planned-measurements-duration-from-its-protocol"}]},{"group":"Health check","pages":[{"title":"Health Check","deprecated":null,"version":null,"openapi":"https://api.ionworks.com/openapi.json get /healthz","href":"/api-reference/health-check/health-check"}]}]}]}]},"title":"Generate Protocol Endpoint - Ionworks Studio","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js","Markdown-CCeGv-zI.js","clsx-BGBGWFTt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cv_O2fky.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-2C5OB2eV.js"]}