Lifecycle status. draft batches are still editable, locked batches are read-only but can be changed back to draft, submitted batches have at least one submitted sink and are final.
The variant follows the batch config: day-based configs return start_day/end_day, time-based configs start_time/end_time. Null if the config does not require a validity period.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Cula Docs","colors":{"primary":"#3772FF","light":"#6593FF","dark":"#1C3B84"},"logo":{"light":"https://mintcdn.com/culatechnologies/VBk50tt2s0Ltfxst/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=VBk50tt2s0Ltfxst\u0026q=85\u0026s=461159ff3d23c746d71402d2feecf532","dark":"https://mintcdn.com/culatechnologies/VBk50tt2s0Ltfxst/images/logo-light.svg?fit=max\u0026auto=format\u0026n=VBk50tt2s0Ltfxst\u0026q=85\u0026s=66a21b9dc3090bdcf34e0d79ff9c3846"},"favicon":"https://mintcdn.com/culatechnologies/VBk50tt2s0Ltfxst/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=VBk50tt2s0Ltfxst\u0026q=85\u0026s=461159ff3d23c746d71402d2feecf532","footer":{"socials":{"website":"https://cula.tech","linkedin":"https://www.linkedin.com/company/cula-technologies"}},"contextual":{"options":["copy","view","chatgpt","claude","download-spec"],"display":"header"},"interaction":{"drilldown":false},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"culatechnologies","hasAudioNarration":false,"actualSubdomain":"culatechnologies","customDomains":["docs.cula.tech"],"gitSource":{"type":"github","owner":"cula-technologies","repo":"cula-platform","deployBranch":"main","contentDirectory":"public-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf8972d13963272de949d8","collectionId":"d64c3bdf-da31-43be-aa1c-8d0130504c12","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf8972d13963272de949d8"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{},"buildId":"6ae4bd45f0f0e506e2343d4c","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":84},{"language":"default","tag":"Material Tracking","count":52},{"language":"default","tag":"General","count":16},{"language":"default","tag":"Machine Data","count":16},{"language":"default","tag":"Guides","count":14},{"language":"default","tag":"Deliveries","count":11},{"language":"default","tag":"Material Batches","count":11},{"language":"default","tag":"Machine Data Annotations","count":7},{"language":"default","tag":"Material Conversions","count":7},{"language":"default","tag":"Material Sourcings","count":7}]},"assistantConfig":{"enableStarterQuestions":false},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/material-batches/attach-a-file-to-a-material-batch","slug":"/api-reference/material-batches/attach-a-file-to-a-material-batch","pageMetadata":{"title":"Attach a file to a material batch","description":null,"deprecated":null,"version":null,"openapi":"/openapi.json post /material-batches/{id}/files/{file_id}","href":"/api-reference/material-batches/attach-a-file-to-a-material-batch","autogeneratedByOpenApi":true},"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":"Attach a file to a material batch","description":null,"deprecated":null,"version":null,"openapi":"/openapi.json post /material-batches/{id}/files/{file_id}","href":"/api-reference/material-batches/attach-a-file-to-a-material-batch","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"parameters":["bc10d387-c340-4e66-b1d1-e2c18fc116df","0f0b4b26-669f-4294-9172-14a41bd30354","4a0f1808-9bad-448a-be72-b3b99bee6809"],"responses":{"200":"84303113-3de3-4c35-9cc1-4184011e26ba","400":"bc71adae-7ddf-4563-b1fe-eaab1c443829","401":"685cb56d-6f38-4ad7-93e9-9188c8d16c12","404":"cb4b4619-7dbb-44dc-a33b-af5625ed9831","429":"f8ef401f-6764-4034-8c7c-5e5729338b99","500":"94c6d768-6912-492f-9898-2683217bc0ab"},"security":["6d16ff12-84c7-428a-a6d6-6de2f673a6c4"],"summary":"Attach a file to a material batch","tags":["Material Batches"],"method":"post","type":"path","servers":["66bbfecc-695b-4944-9986-0e06121643e7"],"path":"/material-batches/{id}/files/{file_id}","baseUrlOptions":["https://api.demo.cula.earth/tracking/v1"],"title":"Attach a file to a material batch","description":"","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"bc10d387-c340-4e66-b1d1-e2c18fc116df":{"name":"Cula-Organisation-Id","in":"header","description":"ID of the organisation the request operates on behalf of (e.g. `org_...`). Must be an organisation the API client has access to.","required":true,"schema":{"type":"string","example":"org_01k83mfmhgchya944v86ryvhpq","isRequired":true,"description":"ID of the organisation the request operates on behalf of (e.g. `org_...`). Must be an organisation the API client has access to.","uniqueKey":"","typeLabel":"string"}},"0f0b4b26-669f-4294-9172-14a41bd30354":{"name":"file_id","required":true,"in":"path","schema":{"type":"string","example":"doc_01kw9grq4tecva35wdpstzcj5z","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"4a0f1808-9bad-448a-be72-b3b99bee6809":{"name":"id","required":true,"in":"path","schema":{"type":"string","example":"mbt_01kjpyrpv5ffa8d2kqmgcqf2r6","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"responses":{"84303113-3de3-4c35-9cc1-4184011e26ba":{"description":"The updated material batch. Allowed in any status — files can arrive after the batch was locked; attaching an already attached file has no effect.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","example":"mbt_01kjpyrpv5ffa8d2kqmgcqf2r6","description":"Unique identifier of the material batch.","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"display_id":{"type":"string","description":"Human-readable identifier, unique per site.","example":"ba-de-146-1-1","isRequired":true,"uniqueKey":"display_id","typeLabel":"string"},"site":{"type":"object","description":"The site that owns the batch.","required":["id","external_id"],"properties":{"id":{"oneOf":[{"type":"string","example":"ste_01k8g7aec6dt5zrtamc72ww446","isRequired":true,"uniqueKey":"site.id.oneOf.0","typeLabel":"string"},{"type":"null","example":"ste_01k8g7aec6dt5zrtamc72ww446","isRequired":true,"uniqueKey":"site.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"site.id","typeLabel":"string | null"},"external_id":{"oneOf":[{"type":"string","example":"SITE-EXT-0001","isRequired":true,"uniqueKey":"site.external_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"SITE-EXT-0001","isRequired":true,"uniqueKey":"site.external_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"site.external_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"site","typeLabel":"object"},"status":{"type":"string","description":"Lifecycle status. `draft` batches are still editable, `locked` batches are read-only but can be changed back to `draft`, `submitted` batches have at least one submitted sink and are final.","enum":["draft","locked","submitted"],"example":"locked","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"config_id":{"type":"string","example":"mbtc_01kdpna98wj3apgan3j36w499h","description":"The batch config the batch was created from.","isRequired":true,"uniqueKey":"config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"mbtcv_01kgqrbj1xy7xebdf9easfa0wp","description":"Config version the batch was created with.","isRequired":true,"uniqueKey":"config_version_id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","example":"2026-05-06T19:34:00Z","description":"Time the batch was created.","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"material":{"type":"object","description":"The one material this batch describes; fixed at creation.","required":["id"],"properties":{"id":{"type":"string","example":"mat_01kh0fwkq4x8p5ea34dr6e4v2e","description":"Unique identifier of the material.","isRequired":true,"uniqueKey":"material.id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"material","typeLabel":"object"},"validity_period":{"oneOf":[{"type":"object","title":"day_based","description":"The variant follows the batch config: day-based configs return `start_day`/`end_day`, time-based configs `start_time`/`end_time`. Null if the config does not require a validity period.","required":["start_day","end_day"],"properties":{"start_day":{"type":"string","description":"First day of the period as an ISO 8601 calendar date (`2026-05-01`, RFC 3339 `full-date`) in the site's local timezone.","example":"2026-05-01","isRequired":true,"uniqueKey":"validity_period.oneOf.0.start_day","typeLabel":"string"},"end_day":{"oneOf":[{"type":"string","description":"Exclusive end day, formatted like `start_day`. Null while the batch is still open-ended. Immutable once set.","example":"2026-06-01","isRequired":true,"uniqueKey":"validity_period.oneOf.0.end_day.oneOf.0","typeLabel":"string"},{"type":"null","description":"Exclusive end day, formatted like `start_day`. Null while the batch is still open-ended. Immutable once set.","example":"2026-06-01","isRequired":true,"uniqueKey":"validity_period.oneOf.0.end_day.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"validity_period.oneOf.0.end_day","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"validity_period.oneOf.0","typeLabel":"day_based · object"},{"type":"object","title":"time_based","description":"The variant follows the batch config: day-based configs return `start_day`/`end_day`, time-based configs `start_time`/`end_time`. Null if the config does not require a validity period.","required":["start_time","end_time"],"properties":{"start_time":{"type":"string","description":"Start of the period as a UTC ISO 8601 timestamp (RFC 3339 `date-time`) truncated to the minute — seconds and milliseconds are always zero.","example":"2026-05-01T12:30:00.000Z","isRequired":true,"uniqueKey":"validity_period.oneOf.1.start_time","typeLabel":"string"},"end_time":{"oneOf":[{"type":"string","description":"Exclusive end instant, formatted like `start_time`. Null while the batch is still open-ended. Immutable once set.","example":"2026-06-01T08:00:00.000Z","isRequired":true,"uniqueKey":"validity_period.oneOf.1.end_time.oneOf.0","typeLabel":"string"},{"type":"null","description":"Exclusive end instant, formatted like `start_time`. Null while the batch is still open-ended. Immutable once set.","example":"2026-06-01T08:00:00.000Z","isRequired":true,"uniqueKey":"validity_period.oneOf.1.end_time.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"validity_period.oneOf.1.end_time","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"validity_period.oneOf.1","typeLabel":"time_based · object"},{"type":"null","description":"The variant follows the batch config: day-based configs return `start_day`/`end_day`, time-based configs `start_time`/`end_time`. Null if the config does not require a validity period.","isRequired":true,"uniqueKey":"validity_period.oneOf.2","typeLabel":"null"}],"isRequired":true,"uniqueKey":"validity_period","typeLabel":"day_based · object | time_based · object | null"},"files":{"description":"Files attached to the batch.","type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"fle_01kw9grq4tecva35wdpstzcj5z","description":"ID of the file. Resolve its metadata and contents via the `/files` endpoints.","isRequired":true,"uniqueKey":"files.items.[INDEX].id","typeLabel":"string"},"external_id":{"oneOf":[{"type":"string","example":"MY-CUSTOM-ID","description":"Optionally assigned external ID of the file.","isRequired":true,"uniqueKey":"files.items.[INDEX].external_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"MY-CUSTOM-ID","description":"Optionally assigned external ID of the file.","isRequired":true,"uniqueKey":"files.items.[INDEX].external_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"files.items.[INDEX].external_id","typeLabel":"string | null"},"name":{"type":"string","example":"weighing-slip.pdf","description":"The original filename of the uploaded binary.","isRequired":true,"uniqueKey":"files.items.[INDEX].name","typeLabel":"string"}},"description":"Reference to a file attached to the batch.","required":["id","external_id","name"],"uniqueKey":"files.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"files","typeLabel":"object[]"},"data_points":{"type":"array","items":{"oneOf":[{"type":"object","title":"short_text","description":"Data point holding a single line of text.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["short_text"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.value.oneOf.0","typeLabel":"string"},{"type":"null","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.value","typeLabel":"string | null"},"input_value":{"oneOf":[{"type":"string","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.input_value.oneOf.0","typeLabel":"string"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.input_value","typeLabel":"string | null"},"result_value":{"oneOf":[{"type":"string","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.result_value.oneOf.0","typeLabel":"string"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.0.result_value","typeLabel":"string | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.0","typeLabel":"short_text · object"},{"type":"object","title":"long_text","description":"Data point holding multiple lines of text.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["long_text"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.value.oneOf.0","typeLabel":"string"},{"type":"null","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.value","typeLabel":"string | null"},"input_value":{"oneOf":[{"type":"string","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.input_value.oneOf.0","typeLabel":"string"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.input_value","typeLabel":"string | null"},"result_value":{"oneOf":[{"type":"string","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.result_value.oneOf.0","typeLabel":"string"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.1.result_value","typeLabel":"string | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.1","typeLabel":"long_text · object"},{"type":"object","title":"multi_text","description":"Data point holding multiple text items.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["multi_text"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","type":"array","items":{"type":"string","uniqueKey":"data_points.items.[INDEX].oneOf.2.value.oneOf.0.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.value.oneOf.0","typeLabel":"string[]"},{"description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","type":"null","items":{"type":"string"},"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.value","typeLabel":"string[] | null"},"input_value":{"oneOf":[{"deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","type":"array","items":{"type":"string","uniqueKey":"data_points.items.[INDEX].oneOf.2.input_value.oneOf.0.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.input_value.oneOf.0","typeLabel":"string[]"},{"deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","type":"null","items":{"type":"string"},"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.input_value","typeLabel":"string[] | null"},"result_value":{"oneOf":[{"deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","type":"array","items":{"type":"string","uniqueKey":"data_points.items.[INDEX].oneOf.2.result_value.oneOf.0.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.result_value.oneOf.0","typeLabel":"string[]"},{"deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","type":"null","items":{"type":"string"},"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.2.result_value","typeLabel":"string[] | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.2","typeLabel":"multi_text · object"},{"type":"object","title":"number","description":"Data point holding a number.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["number"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"number","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.value.oneOf.0","typeLabel":"number"},{"type":"null","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.value","typeLabel":"number | null"},"input_value":{"oneOf":[{"type":"number","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.input_value.oneOf.0","typeLabel":"number"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.input_value","typeLabel":"number | null"},"result_value":{"oneOf":[{"type":"number","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.result_value.oneOf.0","typeLabel":"number"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.3.result_value","typeLabel":"number | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.3","typeLabel":"number · object"},{"type":"object","title":"percentage","description":"Data point holding a percentage (0..1 scale).","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["percentage"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"number","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.value.oneOf.0","typeLabel":"number"},{"type":"null","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.value","typeLabel":"number | null"},"input_value":{"oneOf":[{"type":"number","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.input_value.oneOf.0","typeLabel":"number"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.input_value","typeLabel":"number | null"},"result_value":{"oneOf":[{"type":"number","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.result_value.oneOf.0","typeLabel":"number"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.4.result_value","typeLabel":"number | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.4","typeLabel":"percentage · object"},{"type":"object","title":"amount","description":"Data point holding an amount, i.e. a combination of a value and a unit.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["amount"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"object","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","required":["value","unit"],"properties":{"value":{"type":"number","example":50,"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.value.oneOf.0.value","typeLabel":"number"},"unit":{"type":"string","example":"kg","description":"Unit the amount is expressed in.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.value.oneOf.0.unit","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.value.oneOf.0","typeLabel":"object"},{"type":"null","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.value","typeLabel":"object | null"},"input_value":{"oneOf":[{"type":"object","description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","required":["value","unit"],"deprecated":true,"properties":{"value":{"type":"number","example":50,"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.input_value.oneOf.0.value","typeLabel":"number"},"unit":{"type":"string","example":"kg","description":"Unit the amount is expressed in.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.input_value.oneOf.0.unit","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.input_value.oneOf.0","typeLabel":"object"},{"type":"null","description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","deprecated":true,"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.input_value","typeLabel":"object | null"},"result_value":{"oneOf":[{"type":"object","description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","required":["value","unit"],"deprecated":true,"properties":{"value":{"type":"number","example":50,"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.result_value.oneOf.0.value","typeLabel":"number"},"unit":{"type":"string","example":"kg","description":"Unit the amount is expressed in.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.result_value.oneOf.0.unit","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.result_value.oneOf.0","typeLabel":"object"},{"type":"null","description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","deprecated":true,"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.5.result_value","typeLabel":"object | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.5","typeLabel":"amount · object"},{"type":"object","title":"timestamp","description":"Data point holding a timestamp (ISO 8601 string).","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["timestamp"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","format":"date-time","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.value.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.value","typeLabel":"string\u003cdate-time> | null"},"input_value":{"oneOf":[{"type":"string","format":"date-time","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.input_value.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.input_value","typeLabel":"string\u003cdate-time> | null"},"result_value":{"oneOf":[{"type":"string","format":"date-time","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.result_value.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.6.result_value","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.6","typeLabel":"timestamp · object"},{"type":"object","title":"duration","description":"Data point holding a duration in milliseconds.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["duration"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"number","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.value.oneOf.0","typeLabel":"number"},{"type":"null","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.value","typeLabel":"number | null"},"input_value":{"oneOf":[{"type":"number","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.input_value.oneOf.0","typeLabel":"number"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.input_value","typeLabel":"number | null"},"result_value":{"oneOf":[{"type":"number","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.result_value.oneOf.0","typeLabel":"number"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.7.result_value","typeLabel":"number | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.7","typeLabel":"duration · object"},{"type":"object","title":"boolean","description":"Data point holding a boolean value.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["boolean"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"boolean","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.value.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.value","typeLabel":"boolean | null"},"input_value":{"oneOf":[{"type":"boolean","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.input_value.oneOf.0","typeLabel":"boolean"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.input_value","typeLabel":"boolean | null"},"result_value":{"oneOf":[{"type":"boolean","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.result_value.oneOf.0","typeLabel":"boolean"},{"type":"null","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.8.result_value","typeLabel":"boolean | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.8","typeLabel":"boolean · object"},{"type":"object","title":"material","description":"Data point holding a material, referenced by its ID.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["material"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","example":"mat_01kh0fwkq4x8p5ea34dr6e4v2e","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mat_01kh0fwkq4x8p5ea34dr6e4v2e","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.value","typeLabel":"string | null"},"input_value":{"oneOf":[{"type":"string","example":"mat_01kh0fwkq4x8p5ea34dr6e4v2e","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.input_value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mat_01kh0fwkq4x8p5ea34dr6e4v2e","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.input_value","typeLabel":"string | null"},"result_value":{"oneOf":[{"type":"string","example":"mat_01kh0fwkq4x8p5ea34dr6e4v2e","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.result_value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mat_01kh0fwkq4x8p5ea34dr6e4v2e","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.9.result_value","typeLabel":"string | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.9","typeLabel":"material · object"},{"type":"object","title":"material_batch","description":"Data point holding a material batch, referenced by its ID.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["material_batch"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","example":"mbt_01kjpyrpv5ffa8d2kqmgcqf2r6","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mbt_01kjpyrpv5ffa8d2kqmgcqf2r6","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.value","typeLabel":"string | null"},"input_value":{"oneOf":[{"type":"string","example":"mbt_01kjpyrpv5ffa8d2kqmgcqf2r6","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.input_value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mbt_01kjpyrpv5ffa8d2kqmgcqf2r6","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.input_value","typeLabel":"string | null"},"result_value":{"oneOf":[{"type":"string","example":"mbt_01kjpyrpv5ffa8d2kqmgcqf2r6","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.result_value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mbt_01kjpyrpv5ffa8d2kqmgcqf2r6","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.10.result_value","typeLabel":"string | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.10","typeLabel":"material_batch · object"},{"type":"object","title":"container_type","description":"Data point holding a container type, referenced by its ID.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["container_type"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","example":"mct_01k0fs1vdzgjsvm3s7kqm362qr","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mct_01k0fs1vdzgjsvm3s7kqm362qr","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.value","typeLabel":"string | null"},"input_value":{"oneOf":[{"type":"string","example":"mct_01k0fs1vdzgjsvm3s7kqm362qr","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.input_value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mct_01k0fs1vdzgjsvm3s7kqm362qr","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.input_value","typeLabel":"string | null"},"result_value":{"oneOf":[{"type":"string","example":"mct_01k0fs1vdzgjsvm3s7kqm362qr","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.result_value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mct_01k0fs1vdzgjsvm3s7kqm362qr","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.11.result_value","typeLabel":"string | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.11","typeLabel":"container_type · object"},{"type":"object","title":"material_pool","description":"Data point holding a material pool, referenced by its ID.","required":["config_id","config_version_id","name","error","type","value","input_value","result_value"],"properties":{"config_id":{"type":"string","example":"dptc_01jxdp05c8r7dp4xf89pxcw28q","description":"The ID of the data point config this value belongs to.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.config_id","typeLabel":"string"},"config_version_id":{"type":"string","example":"dptcv_01kfxe6xgmw15gsf204jwj90g5","description":"The ID of the data point config version the value was recorded against.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.config_version_id","typeLabel":"string"},"name":{"type":"string","example":"Weight gross","description":"The human-readable name of the data point as it appears in the UI.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.name","typeLabel":"string"},"error":{"oneOf":[{"type":"string","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.error.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["no_machine_data","machine_data_gap","machine_data_fetch_failed","validation_issue","invalid_computation",null],"example":null,"description":"Why the data point has no value, or that its stored value breaks the validation rules of its config version. `no_machine_data`, `machine_data_gap` and `machine_data_fetch_failed` are the outcomes of a machine data read (no `value`); `invalid_computation` marks a computed result that is not a value of the data point's type (no `value`); `validation_issue` marks a stored derived value or value filled from machine data that breaks a rule and blocks the finish or lock; treat that value as missing. `null` otherwise.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.error","typeLabel":"enum\u003cstring> | null"},"type":{"type":"string","enum":["material_pool"],"description":"The type of the data point. Determines the format of its values.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","example":"mpl_01k2xytkbr0pxazkxbj4j5gr0y","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mpl_01k2xytkbr0pxazkxbj4j5gr0y","description":"The value of the data point. For derived data points this is the computed result. A derived value or a value filled from machine data may break the validation rules of its config version until the finish or lock; `error` is `validation_issue` then. A submitted value that breaks a rule is refused with a `400`.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.value","typeLabel":"string | null"},"input_value":{"oneOf":[{"type":"string","example":"mpl_01k2xytkbr0pxazkxbj4j5gr0y","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.input_value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mpl_01k2xytkbr0pxazkxbj4j5gr0y","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.input_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.input_value","typeLabel":"string | null"},"result_value":{"oneOf":[{"type":"string","example":"mpl_01k2xytkbr0pxazkxbj4j5gr0y","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.result_value.oneOf.0","typeLabel":"string"},{"type":"null","example":"mpl_01k2xytkbr0pxazkxbj4j5gr0y","deprecated":true,"description":"Deprecated: use `value` instead. Mirrors `value`, a value that `error` marks as breaking its rules included.","isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.result_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data_points.items.[INDEX].oneOf.12.result_value","typeLabel":"string | null"}},"uniqueKey":"data_points.items.[INDEX].oneOf.12","typeLabel":"material_pool · object"}],"uniqueKey":"data_points.items.[INDEX]","typeLabel":"short_text · object | long_text · object | multi_text · object | number · object | percentage · object | amount · object | timestamp · object | duration · object | boolean · object | material · object | material_batch · object | container_type · object | material_pool · object"},"description":"Data points recorded on the batch.","isRequired":true,"uniqueKey":"data_points","typeLabel":"(short_text · object | long_text · object | multi_text · object | number · object | percentage · object | amount · object | timestamp · object | duration · object | boolean · object | material · object | material_batch · object | container_type · object | material_pool · object)[]"}},"required":["id","display_id","site","status","config_id","config_version_id","created_at","material","validity_period","files","data_points"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"mbt_01kjpyrpv5ffa8d2kqmgcqf2r6","display_id":"ba-de-146-1-1","site":{"id":"ste_01k8g7aec6dt5zrtamc72ww446","external_id":"SITE-EXT-0001"},"status":"locked","config_id":"mbtc_01kdpna98wj3apgan3j36w499h","config_version_id":"mbtcv_01kgqrbj1xy7xebdf9easfa0wp","created_at":"2026-05-06T19:34:00Z","material":{"id":"mat_01kh0fwkq4x8p5ea34dr6e4v2e"},"validity_period":{"start_day":"2026-05-01","end_day":"2026-06-01"},"files":[{"id":"fle_01kw9grq4tecva35wdpstzcj5z","external_id":"MY-CUSTOM-ID","name":"weighing-slip.pdf"}],"data_points":[{"config_id":"dptc_01jxdp05c8r7dp4xf89pxcw28q","config_version_id":"dptcv_01kfxe6xgmw15gsf204jwj90g5","name":"Weight gross","error":null,"type":"short_text","value":"\u003cstring>","input_value":"\u003cstring>","result_value":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"bc71adae-7ddf-4563-b1fe-eaab1c443829":{"description":"Invalid request payload or parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"The field limit must not be greater than 50.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"example":{"code":"bad_request","message":"The field limit must not be greater than 50."},"examples":{"Example":{"title":"Example","value":{"code":"bad_request","message":"The field limit must not be greater than 50."}}},"exampleType":"examples"}},"exampleType":"examples"},"685cb56d-6f38-4ad7-93e9-9188c8d16c12":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"The field limit must not be greater than 50.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"example":{"code":"unauthorized","message":"Invalid or expired token"},"examples":{"Example":{"title":"Example","value":{"code":"unauthorized","message":"Invalid or expired token"}}},"exampleType":"examples"}},"exampleType":"examples"},"cb4b4619-7dbb-44dc-a33b-af5625ed9831":{"description":"Object not found.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"The field limit must not be greater than 50.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"example":{"code":"not_found","message":"Object with ID xyz_01k56g7aec6dt5zrtamc72vw446 could not be found."},"examples":{"Example":{"title":"Example","value":{"code":"not_found","message":"Object with ID xyz_01k56g7aec6dt5zrtamc72vw446 could not be found."}}},"exampleType":"examples"}},"exampleType":"examples"},"f8ef401f-6764-4034-8c7c-5e5729338b99":{"description":"The API client sent more requests than its limit allows. Try again after the time given in the `Retry-After` header.","headers":{"Retry-After":{"description":"Seconds until the API client can send requests again.","schema":{"type":"integer","example":42}}},"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"The field limit must not be greater than 50.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"example":{"code":"too_many_requests","message":"Too many requests. Try again after the time given in the Retry-After header."},"examples":{"Example":{"title":"Example","value":{"code":"too_many_requests","message":"Too many requests. Try again after the time given in the Retry-After header."}}},"exampleType":"examples"}},"exampleType":"examples"},"94c6d768-6912-492f-9898-2683217bc0ab":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"The field limit must not be greater than 50.","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"","typeLabel":"object"},"example":{"code":"internal_server_error","message":"Internal server error."},"examples":{"Example":{"title":"Example","value":{"code":"internal_server_error","message":"Internal server error."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"6d16ff12-84c7-428a-a6d6-6de2f673a6c4":{"AccessToken":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://auth.demo.cula.earth/oauth2/token","scopes":{}}},"description":"OAuth 2.0 client credentials. Exchange your client_id and client_secret for an access token scoped to the organisation that provides data access.","scopes":[],"schemeName":"AccessToken"}}},"servers":{"66bbfecc-695b-4944-9986-0e06121643e7":{"url":"https://api.demo.cula.earth/tracking/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://auth.demo.cula.earth/oauth2/token","scopes":{}}},"description":"OAuth 2.0 client credentials. Exchange your client_id and client_secret for an access token scoped to the organisation that provides data access.","scopes":[],"schemeName":"AccessToken"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"OAuth 2.0 client credentials. Exchange your client_id and client_secret for an access token scoped to the organisation that provides data access.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"AccessToken","name":"Authorization"}],"title":"AccessToken"}]},"originalFileLocation":"openapi.json"},"subdomain":"culatechnologies","siteName":"Cula Docs","title":"Attach a file to a material batch - Cula Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T15:52:44.305Z","originalFileLocation":"api-reference/material-batches/attach-a-file-to-a-material-batch.mdx"},"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=\"application-name\" content=\"Cula Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/culatechnologies/-_tSlJRddN-rDXo_/_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/culatechnologies/-_tSlJRddN-rDXo_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/culatechnologies/-_tSlJRddN-rDXo_/_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/culatechnologies/-_tSlJRddN-rDXo_/_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/culatechnologies/-_tSlJRddN-rDXo_/_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/culatechnologies/-_tSlJRddN-rDXo_/_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/culatechnologies/-_tSlJRddN-rDXo_/_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/culatechnologies/-_tSlJRddN-rDXo_/_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/culatechnologies/-_tSlJRddN-rDXo_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Attach a file to a material batch - Cula Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cula Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cula.tech/api-reference/material-batches/attach-a-file-to-a-material-batch\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://culatechnologies.mintlify.app/_mintlify/api/og/v2?division=Material+Batches\u0026amp;title=Attach+a+file+to+a+material+batch\u0026amp;theme=9a11bf9e401b5ff7ee13840b\u0026amp;signature=edeb3407706bed3b433fd87d67294f9bfc6dd7e5a9d4c0155a298d0d0adaabd3\">\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=\"Attach a file to a material batch - Cula Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://culatechnologies.mintlify.app/_mintlify/api/og/v2?division=Material+Batches\u0026amp;title=Attach+a+file+to+a+material+batch\u0026amp;theme=9a11bf9e401b5ff7ee13840b\u0026amp;signature=edeb3407706bed3b433fd87d67294f9bfc6dd7e5a9d4c0155a298d0d0adaabd3\">\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/culatechnologies/-_tSlJRddN-rDXo_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cula Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3772FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cula.tech/api-reference/material-batches/attach-a-file-to-a-material-batch\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/material-batches/attach-a-file-to-a-material-batch.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cula.tech/#organization\",\"name\":\"Cula Docs\",\"url\":\"https://docs.cula.tech\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/culatechnologies/VBk50tt2s0Ltfxst/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=VBk50tt2s0Ltfxst\u0026q=85\u0026s=461159ff3d23c746d71402d2feecf532\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cula.tech#website\",\"name\":\"Cula Docs\",\"url\":\"https://docs.cula.tech\",\"publisher\":{\"@id\":\"https://docs.cula.tech/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cula.tech/api-reference/material-batches/attach-a-file-to-a-material-batch#webpage\",\"url\":\"https://docs.cula.tech/api-reference/material-batches/attach-a-file-to-a-material-batch\",\"name\":\"Attach a file to a material batch\",\"dateModified\":\"2026-10-30T15:52:44.305Z\",\"isPartOf\":{\"@id\":\"https://docs.cula.tech#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cula.tech/api-reference/material-batches/attach-a-file-to-a-material-batch#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cula.tech/api-reference/material-batches/attach-a-file-to-a-material-batch#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Material Tracking\",\"item\":\"https://docs.cula.tech/api-reference/material-pools/list-material-pools\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Material Batches\",\"item\":\"https://docs.cula.tech/api-reference/material-batch-configs/list-material-batch-configs\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Attach a file to a material batch\",\"item\":\"https://docs.cula.tech/api-reference/material-batches/attach-a-file-to-a-material-batch\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.cula.tech/api-reference/material-batches/attach-a-file-to-a-material-batch#apireference\",\"headline\":\"Attach a file to a material batch\",\"name\":\"Attach a file to a material batch\",\"url\":\"https://docs.cula.tech/api-reference/material-batches/attach-a-file-to-a-material-batch\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cula.tech/api-reference/material-batches/attach-a-file-to-a-material-batch#webpage\"},\"dateModified\":\"2026-10-30T15:52:44.305Z\",\"publisher\":{\"@id\":\"https://docs.cula.tech/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cula.tech#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Cula Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Cula Docs","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/introduction"}]},{"tab":"API Reference","groups":[{"group":"General","pages":[{"group":"Organisations","pages":[{"title":"List organisations","deprecated":null,"version":null,"openapi":"/openapi.json get /organisations","href":"/api-reference/organisations/list-organisations"},{"title":"Get an organisation","deprecated":null,"version":null,"openapi":"/openapi.json get /organisations/{id}","href":"/api-reference/organisations/get-an-organisation"},{"title":"Create an organisation","deprecated":null,"version":null,"openapi":"/openapi.json post /organisations","href":"/api-reference/organisations/create-an-organisation"}]},{"group":"Sites","pages":[{"title":"List sites","deprecated":null,"version":null,"openapi":"/openapi.json get /sites","href":"/api-reference/sites/list-sites"},{"title":"Get a site","deprecated":null,"version":null,"openapi":"/openapi.json get /sites/{id}","href":"/api-reference/sites/get-a-site"},{"title":"Create a site","deprecated":null,"version":null,"openapi":"/openapi.json post /sites","href":"/api-reference/sites/create-a-site"}]},{"group":"Files","pages":[{"title":"List files","deprecated":null,"version":null,"openapi":"/openapi.json get /files","href":"/api-reference/files/list-files"},{"title":"Get a file","deprecated":null,"version":null,"openapi":"/openapi.json get /files/{id}","href":"/api-reference/files/get-a-file"},{"title":"Download a file","deprecated":null,"version":null,"openapi":"/openapi.json get /files/{id}/contents","href":"/api-reference/files/download-a-file"},{"title":"Upload a file","deprecated":null,"version":null,"openapi":"/openapi.json post /files","href":"/api-reference/files/upload-a-file"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/openapi.json get /webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Get a webhook","deprecated":null,"version":null,"openapi":"/openapi.json get /webhooks/{id}","href":"/api-reference/webhooks/get-a-webhook"},{"title":"Create a webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /webhooks","href":"/api-reference/webhooks/create-a-webhook"},{"title":"Delete a webhook","deprecated":null,"version":null,"openapi":"/openapi.json delete /webhooks/{id}","href":"/api-reference/webhooks/delete-a-webhook"},{"title":"Receive an event","version":null,"deprecated":null,"openapi":"/openapi.json webhook receiveEvent","href":"/api-reference/webhooks/receive-an-event"}]},{"group":"Deprecated Endpoints","pages":[{"title":"Get a document","deprecated":true,"version":null,"openapi":"/openapi.json get /documents/{id}","href":"/api-reference/documents/get-a-document"}]}]},{"group":"Material Tracking","pages":[{"group":"Material Pools","pages":[{"title":"List material pools","deprecated":null,"version":null,"openapi":"/openapi.json get /material-pools","href":"/api-reference/material-pools/list-material-pools"},{"title":"Get a material pool","deprecated":null,"version":null,"openapi":"/openapi.json get /material-pools/{id}","href":"/api-reference/material-pools/get-a-material-pool"},{"title":"Create a material pool","deprecated":null,"version":null,"openapi":"/openapi.json post /material-pools","href":"/api-reference/material-pools/create-a-material-pool"},{"title":"Update a material pool","deprecated":null,"version":null,"openapi":"/openapi.json patch /material-pools/{id}","href":"/api-reference/material-pools/update-a-material-pool"},{"title":"Delete a material pool","deprecated":null,"version":null,"openapi":"/openapi.json delete /material-pools/{id}","href":"/api-reference/material-pools/delete-a-material-pool"}]},{"group":"Material Batches","pages":[{"title":"List material batch configs","deprecated":null,"version":null,"openapi":"/openapi.json get /material-batch-configs","href":"/api-reference/material-batch-configs/list-material-batch-configs"},{"title":"Get a material batch config","deprecated":null,"version":null,"openapi":"/openapi.json get /material-batch-configs/{id}","href":"/api-reference/material-batch-configs/get-a-material-batch-config"},{"title":"List versions of a material batch config","deprecated":null,"version":null,"openapi":"/openapi.json get /material-batch-configs/{id}/versions","href":"/api-reference/material-batch-configs/list-versions-of-a-material-batch-config"},{"title":"Get a specific material batch config version","deprecated":null,"version":null,"openapi":"/openapi.json get /material-batch-configs/{id}/versions/{version_id}","href":"/api-reference/material-batch-configs/get-a-specific-material-batch-config-version"},{"title":"List material batches","deprecated":null,"version":null,"openapi":"/openapi.json get /material-batches","href":"/api-reference/material-batches/list-material-batches"},{"title":"Get a material batch","deprecated":null,"version":null,"openapi":"/openapi.json get /material-batches/{id}","href":"/api-reference/material-batches/get-a-material-batch"},{"title":"Create a material batch","deprecated":null,"version":null,"openapi":"/openapi.json post /material-batches","href":"/api-reference/material-batches/create-a-material-batch"},{"title":"Update a material batch","deprecated":null,"version":null,"openapi":"/openapi.json patch /material-batches/{id}","href":"/api-reference/material-batches/update-a-material-batch"},{"title":"Delete a material batch","description":null,"deprecated":null,"version":null,"openapi":"/openapi.json delete /material-batches/{id}","href":"/api-reference/material-batches/delete-a-material-batch"},{"title":"Attach a file to a material batch","deprecated":null,"version":null,"openapi":"/openapi.json post /material-batches/{id}/files/{file_id}","href":"/api-reference/material-batches/attach-a-file-to-a-material-batch"},{"title":"Detach a file from a material batch","description":null,"deprecated":null,"version":null,"openapi":"/openapi.json delete /material-batches/{id}/files/{file_id}","href":"/api-reference/material-batches/detach-a-file-from-a-material-batch"}]},{"group":"Material Containers","pages":[{"title":"List material containers","deprecated":null,"version":null,"openapi":"/openapi.json get /material-containers","href":"/api-reference/material-containers/list-material-containers"},{"title":"Get a material container","deprecated":null,"version":null,"openapi":"/openapi.json get /material-containers/{id}","href":"/api-reference/material-containers/get-a-material-container"}]},{"group":"Material Sourcings","pages":[{"title":"List material sourcing configs","deprecated":null,"version":null,"openapi":"/openapi.json get /material-sourcing-configs","href":"/api-reference/material-sourcing-configs/list-material-sourcing-configs"},{"title":"Get a material sourcing config","deprecated":null,"version":null,"openapi":"/openapi.json get /material-sourcing-configs/{id}","href":"/api-reference/material-sourcing-configs/get-a-material-sourcing-config"},{"title":"List versions of a material sourcing config","deprecated":null,"version":null,"openapi":"/openapi.json get /material-sourcing-configs/{id}/versions","href":"/api-reference/material-sourcing-configs/list-versions-of-a-material-sourcing-config"},{"title":"Get a specific material sourcing config version","deprecated":null,"version":null,"openapi":"/openapi.json get /material-sourcing-configs/{id}/versions/{version_id}","href":"/api-reference/material-sourcing-configs/get-a-specific-material-sourcing-config-version"},{"title":"List material sourcings","deprecated":null,"version":null,"openapi":"/openapi.json get /material-sourcings","href":"/api-reference/material-sourcings/list-material-sourcings"},{"title":"Get a material sourcing","deprecated":null,"version":null,"openapi":"/openapi.json get /material-sourcings/{id}","href":"/api-reference/material-sourcings/get-a-material-sourcing"},{"title":"Create a material sourcing","deprecated":null,"version":null,"openapi":"/openapi.json post /material-sourcings","href":"/api-reference/material-sourcings/create-a-material-sourcing"}]},{"group":"Material Conversions","pages":[{"title":"List material conversion configs","deprecated":null,"version":null,"openapi":"/openapi.json get /material-conversion-configs","href":"/api-reference/material-conversion-configs/list-material-conversion-configs"},{"title":"Get a material conversion config","deprecated":null,"version":null,"openapi":"/openapi.json get /material-conversion-configs/{id}","href":"/api-reference/material-conversion-configs/get-a-material-conversion-config"},{"title":"List versions of a material conversion config","deprecated":null,"version":null,"openapi":"/openapi.json get /material-conversion-configs/{id}/versions","href":"/api-reference/material-conversion-configs/list-versions-of-a-material-conversion-config"},{"title":"Get a specific material conversion config version","deprecated":null,"version":null,"openapi":"/openapi.json get /material-conversion-configs/{id}/versions/{version_id}","href":"/api-reference/material-conversion-configs/get-a-specific-material-conversion-config-version"},{"title":"List material conversions","deprecated":null,"version":null,"openapi":"/openapi.json get /material-conversions","href":"/api-reference/material-conversions/list-material-conversions"},{"title":"Get a material conversion","deprecated":null,"version":null,"openapi":"/openapi.json get /material-conversions/{id}","href":"/api-reference/material-conversions/get-a-material-conversion"},{"title":"Create a material conversion","deprecated":null,"version":null,"openapi":"/openapi.json post /material-conversions","href":"/api-reference/material-conversions/create-a-material-conversion"}]},{"group":"Material Utilizations","pages":[{"title":"List material utilization configs","deprecated":null,"version":null,"openapi":"/openapi.json get /material-utilization-configs","href":"/api-reference/material-utilization-configs/list-material-utilization-configs"},{"title":"Get a material utilization config","deprecated":null,"version":null,"openapi":"/openapi.json get /material-utilization-configs/{id}","href":"/api-reference/material-utilization-configs/get-a-material-utilization-config"},{"title":"List versions of a material utilization config","deprecated":null,"version":null,"openapi":"/openapi.json get /material-utilization-configs/{id}/versions","href":"/api-reference/material-utilization-configs/list-versions-of-a-material-utilization-config"},{"title":"Get a specific material utilization config version","deprecated":null,"version":null,"openapi":"/openapi.json get /material-utilization-configs/{id}/versions/{version_id}","href":"/api-reference/material-utilization-configs/get-a-specific-material-utilization-config-version"},{"title":"List material utilizations","deprecated":null,"version":null,"openapi":"/openapi.json get /material-utilizations","href":"/api-reference/material-utilizations/list-material-utilizations"},{"title":"Get a material utilization","deprecated":null,"version":null,"openapi":"/openapi.json get /material-utilizations/{id}","href":"/api-reference/material-utilizations/get-a-material-utilization"},{"title":"Create a material utilization","deprecated":null,"version":null,"openapi":"/openapi.json post /material-utilizations","href":"/api-reference/material-utilizations/create-a-material-utilization"}]},{"group":"Deliveries","pages":[{"title":"List delivery configs","deprecated":null,"version":null,"openapi":"/openapi.json get /delivery-configs","href":"/api-reference/delivery-configs/list-delivery-configs"},{"title":"Get a delivery config","deprecated":null,"version":null,"openapi":"/openapi.json get /delivery-configs/{id}","href":"/api-reference/delivery-configs/get-a-delivery-config"},{"title":"List versions of a delivery config","deprecated":null,"version":null,"openapi":"/openapi.json get /delivery-configs/{id}/versions","href":"/api-reference/delivery-configs/list-versions-of-a-delivery-config"},{"title":"Get a specific delivery config version","deprecated":null,"version":null,"openapi":"/openapi.json get /delivery-configs/{id}/versions/{version_id}","href":"/api-reference/delivery-configs/get-a-specific-delivery-config-version"},{"title":"List deliveries","deprecated":null,"version":null,"openapi":"/openapi.json get /deliveries","href":"/api-reference/deliveries/list-deliveries"},{"title":"Get a delivery","deprecated":null,"version":null,"openapi":"/openapi.json get /deliveries/{id}","href":"/api-reference/deliveries/get-a-delivery"},{"title":"Create a delivery","deprecated":null,"version":null,"openapi":"/openapi.json post /deliveries","href":"/api-reference/deliveries/create-a-delivery"},{"title":"Update a delivery","deprecated":null,"version":null,"openapi":"/openapi.json patch /deliveries/{id}","href":"/api-reference/deliveries/update-a-delivery"},{"title":"Delete a delivery","deprecated":null,"version":null,"openapi":"/openapi.json delete /deliveries/{id}","href":"/api-reference/deliveries/delete-a-delivery"},{"title":"Attach a file to a delivery","deprecated":null,"version":null,"openapi":"/openapi.json post /deliveries/{id}/files/{file_id}","href":"/api-reference/deliveries/attach-a-file-to-a-delivery"},{"title":"Detach a file from a delivery","deprecated":null,"version":null,"openapi":"/openapi.json delete /deliveries/{id}/files/{file_id}","href":"/api-reference/deliveries/detach-a-file-from-a-delivery"}]},{"group":"Sinks","pages":[{"title":"List sinks","deprecated":null,"version":null,"openapi":"/openapi.json get /sinks","href":"/api-reference/sinks/list-sinks"},{"title":"Get a sink","deprecated":null,"version":null,"openapi":"/openapi.json get /sinks/{id}","href":"/api-reference/sinks/get-a-sink"}]}]},{"group":"Machine Data","pages":[{"group":"Machine Data Sources","pages":[{"title":"List machine data sources","deprecated":null,"version":null,"openapi":"/openapi.json get /machine-data-sources","href":"/api-reference/machine-data-sources/list-machine-data-sources"},{"title":"Get a machine data source","deprecated":null,"version":null,"openapi":"/openapi.json get /machine-data-sources/{id}","href":"/api-reference/machine-data-sources/get-a-machine-data-source"}]},{"group":"Machines (deprecated)","pages":[{"title":"List machines","deprecated":true,"version":null,"openapi":"/openapi.json get /machines","href":"/api-reference/machines/list-machines"},{"title":"Get a machine","deprecated":true,"version":null,"openapi":"/openapi.json get /machines/{id}","href":"/api-reference/machines/get-a-machine"}]},{"group":"Machine Variables","pages":[{"title":"List machine variables","deprecated":null,"version":null,"openapi":"/openapi.json get /machine-variables","href":"/api-reference/machine-variables/list-machine-variables"},{"title":"Get a machine variable","deprecated":null,"version":null,"openapi":"/openapi.json get /machine-variables/{id}","href":"/api-reference/machine-variables/get-a-machine-variable"}]},{"group":"Machine Data Imports","pages":[{"title":"Import machine data","deprecated":null,"version":null,"openapi":"/openapi.json post /machine-data-imports","href":"/api-reference/machine-data-imports/import-machine-data"},{"title":"List machine data imports","deprecated":null,"version":null,"openapi":"/openapi.json get /machine-data-imports","href":"/api-reference/machine-data-imports/list-machine-data-imports"},{"title":"Get a machine data import","deprecated":null,"version":null,"openapi":"/openapi.json get /machine-data-imports/{id}","href":"/api-reference/machine-data-imports/get-a-machine-data-import"}]},{"group":"Machine Data Annotations","pages":[{"title":"List machine data annotations","deprecated":null,"version":null,"openapi":"/openapi.json get /machine-data-annotations","href":"/api-reference/machine-data-annotations/list-machine-data-annotations"},{"title":"Get a machine data annotation","deprecated":null,"version":null,"openapi":"/openapi.json get /machine-data-annotations/{id}","href":"/api-reference/machine-data-annotations/get-a-machine-data-annotation"},{"title":"Create a machine data annotation","deprecated":null,"version":null,"openapi":"/openapi.json post /machine-data-annotations","href":"/api-reference/machine-data-annotations/create-a-machine-data-annotation"},{"title":"Update a machine data annotation","deprecated":null,"version":null,"openapi":"/openapi.json patch /machine-data-annotations/{id}","href":"/api-reference/machine-data-annotations/update-a-machine-data-annotation"},{"title":"Delete a machine data annotation","deprecated":null,"version":null,"openapi":"/openapi.json delete /machine-data-annotations/{id}","href":"/api-reference/machine-data-annotations/delete-a-machine-data-annotation"},{"title":"Attach a machine variable to a machine data annotation","deprecated":null,"version":null,"openapi":"/openapi.json post /machine-data-annotations/{id}/machine-variables/{machine_variable_id}","href":"/api-reference/machine-data-annotations/attach-a-machine-variable-to-a-machine-data-annotation"},{"title":"Detach a machine variable from a machine data annotation","deprecated":null,"version":null,"openapi":"/openapi.json delete /machine-data-annotations/{id}/machine-variables/{machine_variable_id}","href":"/api-reference/machine-data-annotations/detach-a-machine-variable-from-a-machine-data-annotation"}]}]}]}]},"basePath":"","title":"Attach a file to a material batch - Cula Docs","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}