Writes one asset. The service forwards the request body to the ingest service and returns its status, content type and body unchanged: 201 when the asset was created, 200 when it was updated.
With objectData the ingest service decides by identity matching whether the asset already exists. Without objectData, object.id is required and the asset is updated.
Requires the scope api_write (Read and Write). Errors of the ingest service are not application/problem+json: they carry errorMessage (400) or, for a server fault, the same body with status 500.
The API key of the subscription. Each operation names the scope it needs in x-pat-scopes: api_read (in the interface Read) or api_write (Read and Write). The key is created under Administration › Integrations › API Keys.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Docusnap365","description":"Official documentation for Docusnap365: scan your network, build your IT inventory, manage IT assets and costs, run your ISMS and connect AI tools via MCP and API.","colors":{"primary":"#0F7683","light":"#38BECF","dark":"#0F7683"},"logo":{"light":"https://mintcdn.com/docusnap/w7DSWRB4BRB49qQA/images/Docusnap_Logo.svg?fit=max\u0026auto=format\u0026n=w7DSWRB4BRB49qQA\u0026q=85\u0026s=30ba3056aa591cff3faf8c4addf943c0","dark":"https://mintcdn.com/docusnap/w7DSWRB4BRB49qQA/images/Docusnap_Logo_white.svg?fit=max\u0026auto=format\u0026n=w7DSWRB4BRB49qQA\u0026q=85\u0026s=9325dcb387db7939baab29338fddf607","href":"https://www.docusnap.com"},"favicon":"https://mintcdn.com/docusnap/8cT_v1WiPR-atVd2/favicon.svg?fit=max\u0026auto=format\u0026n=8cT_v1WiPR-atVd2\u0026q=85\u0026s=9bb2a8c996b466e0a76f375054191f52","footer":{"socials":{"website":"https://www.docusnap.com"}},"contextual":{"options":["chatgpt","claude","download-pdf"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"de","navbar":{"links":[{"href":"https://docusnap365.com","label":"Anmelden"}],"primary":{"type":"button","label":"Kostenlos testen","href":"https://www.docusnap.com/de/trial?utm_source=docs\u0026utm_medium=navbar\u0026utm_campaign=trial"}},"href":"de/getting-started/overview"},{"language":"en","default":true,"navbar":{"links":[{"href":"https://docusnap365.com","label":"Sign In"}],"primary":{"type":"button","label":"Try for Free","href":"https://www.docusnap.com/en/trial?utm_source=docs\u0026utm_medium=navbar\u0026utm_campaign=trial"}},"href":"en/getting-started/overview"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"docusnap","hasAudioNarration":false,"actualSubdomain":"docusnap","customDomains":["www.docusnap.com"],"gitSource":{"type":"github","owner":"docusnap","repo":"ds365.customerdocs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af2d8bb397db424c1fa8a14","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"de","tag":"Scannen","count":39},{"language":"en","tag":"Scanning","count":39},{"language":"de","tag":"Scan-Module","count":25},{"language":"en","tag":"Scan Modules","count":25},{"language":"de","tag":"Inventar","count":18},{"language":"en","tag":"Inventory","count":18},{"language":"de","tag":"Verwaltung","count":17},{"language":"en","tag":"Administration","count":17},{"language":"de","tag":"Neuigkeiten","count":14},{"language":"de","tag":"ISMS","count":14},{"language":"en","tag":"What's new","count":14},{"language":"en","tag":"ISMS","count":14},{"language":"de","tag":"ITAM","count":12},{"language":"en","tag":"ITAM","count":12},{"language":"de","tag":"Tutorials","count":11},{"language":"de","tag":"MCP \u0026 API","count":11},{"language":"de","tag":"Dokumentation","count":11},{"language":"en","tag":"Tutorials","count":11},{"language":"en","tag":"MCP \u0026 API","count":11},{"language":"en","tag":"Documentation","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"rbac-expansion","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":"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":"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},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#topbar-cta-button a>span:first-child{background-color:#9F6D06!important;opacity:1!important}#topbar-cta-button a,#topbar-cta-button a span{color:#FFFFFF!important}#topbar-cta-button a svg{display:none!important}#topbar-cta-button a{padding-right:0.75rem!important}#topbar-cta-button a:hover span,#topbar-cta-button a:focus-visible span{text-decoration:underline;text-underline-offset:2px}body:has(.api-section) #header>.prose,body:has(.api-section) #header>.prose p{font-size:1rem!important;line-height:1.75rem!important}#content[data-page-href$=\"/changelog\"] [data-component-part=\"update-tag-list\"],#content[data-page-href*=\"/changelog/\"] [data-component-part=\"update-tag-list\"]{display:none!important}"}],"page":{"pagePath":"api-reference/assets/create-or-update-one-asset","slug":"/api-reference/assets/create-or-update-one-asset","pageMetadata":{"title":"Create or update one asset","description":"Writes one asset. The service forwards the request body to the ingest service and returns its status, content type and body unchanged: 201 when the asset was created, 200 when it was updated.\n\nWith `objectData` the ingest service decides by identity matching whether the asset already exists. Without `objectData`, `object.id` is required and the asset is updated.\n\nRequires the scope `api_write` (*Read and Write*). Errors of the ingest service are not `application/problem+json`: they carry `errorMessage` (400) or, for a server fault, the same body with status 500.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.en.yaml post /asset","href":"/api-reference/assets/create-or-update-one-asset","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n em: \"em\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Writes one asset. The service forwards the request body to the ingest service and returns its status, content type and body unchanged: 201 when the asset was created, 200 when it was updated.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"With \", _jsx(_components.code, {\n children: \"objectData\"\n }), \" the ingest service decides by identity matching whether the asset already exists. Without \", _jsx(_components.code, {\n children: \"objectData\"\n }), \", \", _jsx(_components.code, {\n children: \"object.id\"\n }), \" is required and the asset is updated.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Requires the scope \", _jsx(_components.code, {\n children: \"api_write\"\n }), \" (\", _jsx(_components.em, {\n children: \"Read and Write\"\n }), \"). Errors of the ingest service are not \", _jsx(_components.code, {\n children: \"application/problem+json\"\n }), \": they carry \", _jsx(_components.code, {\n children: \"errorMessage\"\n }), \" (400) or, for a server fault, the same body with status 500.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create or update one asset","description":"Writes one asset. The service forwards the request body to the ingest service and returns its status, content type and body unchanged: 201 when the asset was created, 200 when it was updated.\n\nWith `objectData` the ingest service decides by identity matching whether the asset already exists. Without `objectData`, `object.id` is required and the asset is updated.\n\nRequires the scope `api_write` (*Read and Write*). Errors of the ingest service are not `application/problem+json`: they carry `errorMessage` (400) or, for a server fault, the same body with status 500.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.en.yaml post /asset","href":"/api-reference/assets/create-or-update-one-asset","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"ingestAsset","tags":["Assets"],"summary":"Create or update one asset","description":"Writes one asset. The service forwards the request body to the ingest service and returns its status, content type and body unchanged: 201 when the asset was created, 200 when it was updated.\n\nWith `objectData` the ingest service decides by identity matching whether the asset already exists. Without `objectData`, `object.id` is required and the asset is updated.\n\nRequires the scope `api_write` (*Read and Write*). Errors of the ingest service are not `application/problem+json`: they carry `errorMessage` (400) or, for a server fault, the same body with status 500.\n","x-pat-scopes":["api_write"],"requestBody":"23d957d3-230e-420a-9114-a7f0bc7bc4d1","responses":{"200":"75f98716-954b-4344-9960-b54fef4111de","201":"7d1b5ddc-5698-4f3e-b909-6c433b57f902","400":"cd95efb0-7851-4923-ad69-7a6242a6ca0f","401":"eb46271a-2c9d-493b-b444-1a7e15363de3","403":"cd912f9a-22f6-4426-906c-51241dc11eb2","429":"765cb416-921a-4835-9ce6-af833b3c7537","500":"188304ea-1eb5-497a-9c3e-1bf9808c851d","503":"b21fd068-abcc-472f-b417-84b0df228926"},"method":"post","type":"path","servers":["678cf083-b49a-4f2d-884f-84a11f46e483"],"security":["e2675cc6-15fd-4901-8b67-def0ab209847"],"path":"/asset","baseUrlOptions":["https://api.docusnap365.com/api/v1"],"title":"Create or update one asset","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"Asset with data","type":"object","required":["schemaId"],"properties":{"schemaId":{"type":"string","format":"uuid","description":"The type of the asset.","isRequired":true,"uniqueKey":"schemaId","typeLabel":"string\u003cuuid>"},"id":{"type":"string","format":"uuid","description":"A correlation id of this asset in the request. The ingest service reports its result under it (`idPair.fakeId`). A new GUID by default.","uniqueKey":"id","typeLabel":"string\u003cuuid>"},"object":{"title":"General details of the asset","type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"uuid","description":"Required to update an asset without `objectData`.","uniqueKey":"object.id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Required to update an asset without `objectData`.","uniqueKey":"object.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.id","typeLabel":"string\u003cuuid> | null"},"schemaId":{"type":"string","format":"uuid","description":"If empty, the `schemaId` of the enclosing `AssetBundle` is used.","uniqueKey":"object.schemaId","typeLabel":"string\u003cuuid>"},"parentId":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"object.parentId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"object.parentId.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.parentId","typeLabel":"string\u003cuuid> | null"},"name":{"type":"string","description":"Required. Leading and trailing blanks are removed; at most 256 characters.","uniqueKey":"object.name","typeLabel":"string"},"sourceType":{"oneOf":[{"type":"string","uniqueKey":"object.sourceType.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"object.sourceType.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.sourceType","typeLabel":"string | null"},"completenessLevel":{"oneOf":[{"type":"integer","format":"int32","description":"How complete the record is. A more complete stored record is protected against overwriting by a poorer one; unset counts as 0.","uniqueKey":"object.completenessLevel.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","description":"How complete the record is. A more complete stored record is protected against overwriting by a poorer one; unset counts as 0.","uniqueKey":"object.completenessLevel.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.completenessLevel","typeLabel":"integer\u003cint32> | null"},"organizationId":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"object.organizationId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"object.organizationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.organizationId","typeLabel":"string\u003cuuid> | null"},"locationId":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"object.locationId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"object.locationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.locationId","typeLabel":"string\u003cuuid> | null"},"platformId":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"object.platformId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"object.platformId.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.platformId","typeLabel":"string\u003cuuid> | null"},"domainId":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"object.domainId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"object.domainId.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.domainId","typeLabel":"string\u003cuuid> | null"},"version":{"type":"integer","format":"int32","default":1,"uniqueKey":"object.version","typeLabel":"integer\u003cint32>"},"status":{"oneOf":[{"type":"string","uniqueKey":"object.status.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"object.status.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.status","typeLabel":"string | null"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"object.createdAt","typeLabel":"string\u003cdate-time>"},"createdBy":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"object.createdBy.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"object.createdBy.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.createdBy","typeLabel":"string\u003cuuid> | null"},"modifiedAt":{"type":"string","format":"date-time","uniqueKey":"object.modifiedAt","typeLabel":"string\u003cdate-time>"},"modifiedBy":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"object.modifiedBy.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"object.modifiedBy.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.modifiedBy","typeLabel":"string\u003cuuid> | null"},"deletedAt":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"object.deletedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"object.deletedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.deletedAt","typeLabel":"string\u003cdate-time> | null"},"deletedBy":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"object.deletedBy.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"object.deletedBy.oneOf.1","typeLabel":"null"}],"uniqueKey":"object.deletedBy","typeLabel":"string\u003cuuid> | null"}},"uniqueKey":"object","typeLabel":"General details of the asset · object"},"objectData":{"description":"The data of the asset as JSON, structured by the type. Needed for identity matching.","uniqueKey":"objectData","typeLabel":"any"},"essentials":{"title":"Essentials","type":"object","properties":{"sections":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"essentials.sections.additionalProperties","typeLabel":"any"},"description":"The essentials by section name.","uniqueKey":"essentials.sections","typeLabel":"object"}},"uniqueKey":"essentials","typeLabel":"Essentials · object"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"facets.additionalProperties.items.[INDEX]","typeLabel":"any"},"uniqueKey":"facets.additionalProperties","typeLabel":"any[]"},"description":"Further data by name, each a list of JSON values.","uniqueKey":"facets","typeLabel":"object"}},"uniqueKey":"","typeLabel":"Asset with data · object"},"examples":{"An asset with a name and a type":{"title":"An asset with a name and a type","value":{"schemaId":"9b2f6a52-1c0e-4c5a-8d55-5f0f6a3f7a11","object":{"name":"Server01","schemaId":"9b2f6a52-1c0e-4c5a-8d55-5f0f6a3f7a11"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"75f98716-954b-4344-9960-b54fef4111de":{"description":"The asset was updated.","headers":{"X-RateLimit-Limit":{"description":"Requests included per quota period. Not sent for a subscription without a limit.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Included plus extra requests still available in the running period.","schema":{"type":"integer"}},"X-RateLimit-Extra-Remaining":{"description":"Extra requests still available. They are not reset with the period.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Start of the next quota period as Unix time in seconds.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"title":"Result of a write","type":"object","description":"The answer of the ingest service for one asset. Properties without a value are omitted.","properties":{"id":{"type":"string","format":"uuid","description":"The id of the asset.","uniqueKey":"id","typeLabel":"string\u003cuuid>"},"idPair":{"title":"Id pair","type":"object","properties":{"fakeId":{"type":"string","format":"uuid","description":"The `id` of the body from the request.","uniqueKey":"idPair.fakeId","typeLabel":"string\u003cuuid>"},"dbId":{"type":"string","format":"uuid","description":"The id of the asset.","uniqueKey":"idPair.dbId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"idPair","typeLabel":"Id pair · object"},"schemaId":{"type":"string","format":"uuid","uniqueKey":"schemaId","typeLabel":"string\u003cuuid>"},"previousSchemaId":{"type":"string","format":"uuid","description":"The former type, when the update changed it.","uniqueKey":"previousSchemaId","typeLabel":"string\u003cuuid>"},"idMatchResponse":{"type":"object","additionalProperties":true,"description":"The result of the identity matching.","uniqueKey":"idMatchResponse","typeLabel":"object"},"isCreate":{"type":"boolean","description":"True when the asset was created.","uniqueKey":"isCreate","typeLabel":"boolean"},"matchedObjectInRecycleBin":{"type":"boolean","description":"True when a protected match is in the recycle bin.","uniqueKey":"matchedObjectInRecycleBin","typeLabel":"boolean"},"errorMessage":{"type":"string","description":"The reason, as a technical English sentence. Present on a rejection.","uniqueKey":"errorMessage","typeLabel":"string"},"isSuccess":{"type":"boolean","description":"True when `errorMessage` is empty.","uniqueKey":"isSuccess","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"Result of a write · object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","idPair":{"fakeId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","dbId":"3c90c3cc-0d44-4b50-8888-8dd25736052a"},"schemaId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","previousSchemaId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","idMatchResponse":{},"isCreate":true,"matchedObjectInRecycleBin":true,"errorMessage":"\u003cstring>","isSuccess":true}}},"exampleType":"generated"}},"exampleType":"generated"},"7d1b5ddc-5698-4f3e-b909-6c433b57f902":{"description":"The asset was created.","headers":{"X-RateLimit-Limit":{"description":"Requests included per quota period. Not sent for a subscription without a limit.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Included plus extra requests still available in the running period.","schema":{"type":"integer"}},"X-RateLimit-Extra-Remaining":{"description":"Extra requests still available. They are not reset with the period.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Start of the next quota period as Unix time in seconds.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"title":"Result of a write","type":"object","description":"The answer of the ingest service for one asset. Properties without a value are omitted.","properties":{"id":{"type":"string","format":"uuid","description":"The id of the asset.","uniqueKey":"id","typeLabel":"string\u003cuuid>"},"idPair":{"title":"Id pair","type":"object","properties":{"fakeId":{"type":"string","format":"uuid","description":"The `id` of the body from the request.","uniqueKey":"idPair.fakeId","typeLabel":"string\u003cuuid>"},"dbId":{"type":"string","format":"uuid","description":"The id of the asset.","uniqueKey":"idPair.dbId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"idPair","typeLabel":"Id pair · object"},"schemaId":{"type":"string","format":"uuid","uniqueKey":"schemaId","typeLabel":"string\u003cuuid>"},"previousSchemaId":{"type":"string","format":"uuid","description":"The former type, when the update changed it.","uniqueKey":"previousSchemaId","typeLabel":"string\u003cuuid>"},"idMatchResponse":{"type":"object","additionalProperties":true,"description":"The result of the identity matching.","uniqueKey":"idMatchResponse","typeLabel":"object"},"isCreate":{"type":"boolean","description":"True when the asset was created.","uniqueKey":"isCreate","typeLabel":"boolean"},"matchedObjectInRecycleBin":{"type":"boolean","description":"True when a protected match is in the recycle bin.","uniqueKey":"matchedObjectInRecycleBin","typeLabel":"boolean"},"errorMessage":{"type":"string","description":"The reason, as a technical English sentence. Present on a rejection.","uniqueKey":"errorMessage","typeLabel":"string"},"isSuccess":{"type":"boolean","description":"True when `errorMessage` is empty.","uniqueKey":"isSuccess","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"Result of a write · object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","idPair":{"fakeId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","dbId":"3c90c3cc-0d44-4b50-8888-8dd25736052a"},"schemaId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","previousSchemaId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","idMatchResponse":{},"isCreate":true,"matchedObjectInRecycleBin":true,"errorMessage":"\u003cstring>","isSuccess":true}}},"exampleType":"generated"}},"exampleType":"generated"},"cd95efb0-7851-4923-ad69-7a6242a6ca0f":{"description":"The request is rejected. Two body shapes exist: the ingest service answers with an `ObjectsApiResult` whose `errorMessage` names the reason (missing `object`, missing or too long name, missing `object.id`, protected asset, too few identity values); a body that cannot be read is answered by this service as `application/problem+json` with `errorCode` `VALIDATION_FAILED`.\n","x-error-codes":["VALIDATION_FAILED"],"content":{"application/json":{"schema":{"title":"Result of a write","type":"object","description":"The answer of the ingest service for one asset. Properties without a value are omitted.","properties":{"id":{"type":"string","format":"uuid","description":"The id of the asset.","uniqueKey":"id","typeLabel":"string\u003cuuid>"},"idPair":{"title":"Id pair","type":"object","properties":{"fakeId":{"type":"string","format":"uuid","description":"The `id` of the body from the request.","uniqueKey":"idPair.fakeId","typeLabel":"string\u003cuuid>"},"dbId":{"type":"string","format":"uuid","description":"The id of the asset.","uniqueKey":"idPair.dbId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"idPair","typeLabel":"Id pair · object"},"schemaId":{"type":"string","format":"uuid","uniqueKey":"schemaId","typeLabel":"string\u003cuuid>"},"previousSchemaId":{"type":"string","format":"uuid","description":"The former type, when the update changed it.","uniqueKey":"previousSchemaId","typeLabel":"string\u003cuuid>"},"idMatchResponse":{"type":"object","additionalProperties":true,"description":"The result of the identity matching.","uniqueKey":"idMatchResponse","typeLabel":"object"},"isCreate":{"type":"boolean","description":"True when the asset was created.","uniqueKey":"isCreate","typeLabel":"boolean"},"matchedObjectInRecycleBin":{"type":"boolean","description":"True when a protected match is in the recycle bin.","uniqueKey":"matchedObjectInRecycleBin","typeLabel":"boolean"},"errorMessage":{"type":"string","description":"The reason, as a technical English sentence. Present on a rejection.","uniqueKey":"errorMessage","typeLabel":"string"},"isSuccess":{"type":"boolean","description":"True when `errorMessage` is empty.","uniqueKey":"isSuccess","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"Result of a write · object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","idPair":{"fakeId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","dbId":"3c90c3cc-0d44-4b50-8888-8dd25736052a"},"schemaId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","previousSchemaId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","idMatchResponse":{},"isCreate":true,"matchedObjectInRecycleBin":true,"errorMessage":"\u003cstring>","isSuccess":true}}},"exampleType":"generated"},"application/problem+json":{"schema":{"title":"Problem details","type":"object","description":"An error according to RFC 9457. `errors` is never empty; for one error `errors[0].code` equals `errorCode`.","properties":{"type":{"type":"string","description":"A URN derived from `errorCode`, for example `urn:ds365:error:not-found`. It cannot be resolved.","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A fixed English text per code.","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"A technical English sentence. The text may change and should not be evaluated.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"The request path.","uniqueKey":"instance","typeLabel":"string"},"errorCode":{"type":"string","description":"The error code. The codes of an operation are listed in `x-error-codes` of its response.","uniqueKey":"errorCode","typeLabel":"string"},"traceId":{"type":"string","description":"The trace id of the request. Give it to support.","uniqueKey":"traceId","typeLabel":"string"},"errors":{"type":"array","items":{"title":"Error item","type":"object","required":["code"],"properties":{"code":{"type":"string","description":"The specific code of this item.","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"path":{"type":"string","description":"The field or parameter the error concerns. Absent when it concerns the whole request.","uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"},"data":{"type":"object","additionalProperties":true,"description":"Further values, for example `entityType` and `id` of a missing asset or `missingScopes`. Absent when empty.","uniqueKey":"errors.items.[INDEX].data","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"Error item · object"},"uniqueKey":"errors","typeLabel":"Error item · object[]"}},"uniqueKey":"","typeLabel":"Problem details · object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>","errorCode":"\u003cstring>","traceId":"\u003cstring>","errors":[{"code":"\u003cstring>","path":"\u003cstring>","data":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"eb46271a-2c9d-493b-b444-1a7e15363de3":{"description":"The API key is missing or invalid.","x-error-codes":["UNAUTHORIZED"],"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"cd912f9a-22f6-4426-906c-51241dc11eb2":{"description":"The key lacks the scope `api_write` (*Read and Write*), or no scope was sent at all (then `detail` points to the API key and no `missingScopes` are given).","x-error-codes":["FORBIDDEN"],"content":{"application/problem+json":{"schema":{"title":"Problem details","type":"object","description":"An error according to RFC 9457. `errors` is never empty; for one error `errors[0].code` equals `errorCode`.","properties":{"type":{"type":"string","description":"A URN derived from `errorCode`, for example `urn:ds365:error:not-found`. It cannot be resolved.","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A fixed English text per code.","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"A technical English sentence. The text may change and should not be evaluated.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"The request path.","uniqueKey":"instance","typeLabel":"string"},"errorCode":{"type":"string","description":"The error code. The codes of an operation are listed in `x-error-codes` of its response.","uniqueKey":"errorCode","typeLabel":"string"},"traceId":{"type":"string","description":"The trace id of the request. Give it to support.","uniqueKey":"traceId","typeLabel":"string"},"errors":{"type":"array","items":{"title":"Error item","type":"object","required":["code"],"properties":{"code":{"type":"string","description":"The specific code of this item.","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"path":{"type":"string","description":"The field or parameter the error concerns. Absent when it concerns the whole request.","uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"},"data":{"type":"object","additionalProperties":true,"description":"Further values, for example `entityType` and `id` of a missing asset or `missingScopes`. Absent when empty.","uniqueKey":"errors.items.[INDEX].data","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"Error item · object"},"uniqueKey":"errors","typeLabel":"Error item · object[]"}},"uniqueKey":"","typeLabel":"Problem details · object"},"examples":{"A key without the required scope":{"title":"A key without the required scope","value":{"type":"urn:ds365:error:forbidden","title":"Forbidden","status":403,"detail":"Missing required scopes: api_write","instance":"/api/v1/asset","errorCode":"FORBIDDEN","traceId":"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01","errors":[{"code":"FORBIDDEN","data":{"missingScopes":["api_write"]}}]}}},"exampleType":"examples"}},"exampleType":"examples"},"765cb416-921a-4835-9ce6-af833b3c7537":{"description":"The request quota of the subscription is used up, included and extra requests alike. Retry after the instant in `Retry-After`. A denied request is counted as well.","x-error-codes":["REST_REQUEST_QUOTA_EXCEEDED"],"headers":{"Retry-After":{"description":"Start of the next quota period as an HTTP date. The same instant as `X-RateLimit-Reset`.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Requests included per quota period. Not sent for a subscription without a limit.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Included plus extra requests still available in the running period.","schema":{"type":"integer"}},"X-RateLimit-Extra-Remaining":{"description":"Extra requests still available. They are not reset with the period.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Start of the next quota period as Unix time in seconds.","schema":{"type":"integer","format":"int64"}}},"content":{"application/problem+json":{"schema":{"title":"Problem details","type":"object","description":"An error according to RFC 9457. `errors` is never empty; for one error `errors[0].code` equals `errorCode`.","properties":{"type":{"type":"string","description":"A URN derived from `errorCode`, for example `urn:ds365:error:not-found`. It cannot be resolved.","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A fixed English text per code.","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"A technical English sentence. The text may change and should not be evaluated.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"The request path.","uniqueKey":"instance","typeLabel":"string"},"errorCode":{"type":"string","description":"The error code. The codes of an operation are listed in `x-error-codes` of its response.","uniqueKey":"errorCode","typeLabel":"string"},"traceId":{"type":"string","description":"The trace id of the request. Give it to support.","uniqueKey":"traceId","typeLabel":"string"},"errors":{"type":"array","items":{"title":"Error item","type":"object","required":["code"],"properties":{"code":{"type":"string","description":"The specific code of this item.","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"path":{"type":"string","description":"The field or parameter the error concerns. Absent when it concerns the whole request.","uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"},"data":{"type":"object","additionalProperties":true,"description":"Further values, for example `entityType` and `id` of a missing asset or `missingScopes`. Absent when empty.","uniqueKey":"errors.items.[INDEX].data","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"Error item · object"},"uniqueKey":"errors","typeLabel":"Error item · object[]"}},"uniqueKey":"","typeLabel":"Problem details · object"},"examples":{"The quota is used up":{"title":"The quota is used up","value":{"type":"urn:ds365:error:rest-request-quota-exceeded","title":"Request quota exceeded","status":429,"detail":"The request quota of 10000 requests per period is exhausted until 2026-12-01T00:00:00.0000000+00:00.","instance":"/api/v1/assets","errorCode":"REST_REQUEST_QUOTA_EXCEEDED","traceId":"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01","errors":[{"code":"REST_REQUEST_QUOTA_EXCEEDED","data":{"requestsLimit":10000,"requestsUsed":10000,"quotaResetAt":"2026-12-01T00:00:00+00:00"}}]}}},"exampleType":"examples"}},"exampleType":"examples"},"188304ea-1eb5-497a-9c3e-1bf9808c851d":{"description":"A server fault. The ingest service answers with an `ObjectsApiResult`; every other fault is `application/problem+json` with `errorCode` `INTERNAL_ERROR`.","x-error-codes":["INTERNAL_ERROR"],"content":{"application/json":{"schema":{"title":"Result of a write","type":"object","description":"The answer of the ingest service for one asset. Properties without a value are omitted.","properties":{"id":{"type":"string","format":"uuid","description":"The id of the asset.","uniqueKey":"id","typeLabel":"string\u003cuuid>"},"idPair":{"title":"Id pair","type":"object","properties":{"fakeId":{"type":"string","format":"uuid","description":"The `id` of the body from the request.","uniqueKey":"idPair.fakeId","typeLabel":"string\u003cuuid>"},"dbId":{"type":"string","format":"uuid","description":"The id of the asset.","uniqueKey":"idPair.dbId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"idPair","typeLabel":"Id pair · object"},"schemaId":{"type":"string","format":"uuid","uniqueKey":"schemaId","typeLabel":"string\u003cuuid>"},"previousSchemaId":{"type":"string","format":"uuid","description":"The former type, when the update changed it.","uniqueKey":"previousSchemaId","typeLabel":"string\u003cuuid>"},"idMatchResponse":{"type":"object","additionalProperties":true,"description":"The result of the identity matching.","uniqueKey":"idMatchResponse","typeLabel":"object"},"isCreate":{"type":"boolean","description":"True when the asset was created.","uniqueKey":"isCreate","typeLabel":"boolean"},"matchedObjectInRecycleBin":{"type":"boolean","description":"True when a protected match is in the recycle bin.","uniqueKey":"matchedObjectInRecycleBin","typeLabel":"boolean"},"errorMessage":{"type":"string","description":"The reason, as a technical English sentence. Present on a rejection.","uniqueKey":"errorMessage","typeLabel":"string"},"isSuccess":{"type":"boolean","description":"True when `errorMessage` is empty.","uniqueKey":"isSuccess","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"Result of a write · object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","idPair":{"fakeId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","dbId":"3c90c3cc-0d44-4b50-8888-8dd25736052a"},"schemaId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","previousSchemaId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","idMatchResponse":{},"isCreate":true,"matchedObjectInRecycleBin":true,"errorMessage":"\u003cstring>","isSuccess":true}}},"exampleType":"generated"},"application/problem+json":{"schema":{"title":"Problem details","type":"object","description":"An error according to RFC 9457. `errors` is never empty; for one error `errors[0].code` equals `errorCode`.","properties":{"type":{"type":"string","description":"A URN derived from `errorCode`, for example `urn:ds365:error:not-found`. It cannot be resolved.","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A fixed English text per code.","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"A technical English sentence. The text may change and should not be evaluated.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"The request path.","uniqueKey":"instance","typeLabel":"string"},"errorCode":{"type":"string","description":"The error code. The codes of an operation are listed in `x-error-codes` of its response.","uniqueKey":"errorCode","typeLabel":"string"},"traceId":{"type":"string","description":"The trace id of the request. Give it to support.","uniqueKey":"traceId","typeLabel":"string"},"errors":{"type":"array","items":{"title":"Error item","type":"object","required":["code"],"properties":{"code":{"type":"string","description":"The specific code of this item.","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"path":{"type":"string","description":"The field or parameter the error concerns. Absent when it concerns the whole request.","uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"},"data":{"type":"object","additionalProperties":true,"description":"Further values, for example `entityType` and `id` of a missing asset or `missingScopes`. Absent when empty.","uniqueKey":"errors.items.[INDEX].data","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"Error item · object"},"uniqueKey":"errors","typeLabel":"Error item · object[]"}},"uniqueKey":"","typeLabel":"Problem details · object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>","errorCode":"\u003cstring>","traceId":"\u003cstring>","errors":[{"code":"\u003cstring>","path":"\u003cstring>","data":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"b21fd068-abcc-472f-b417-84b0df228926":{"description":"The request quota could not be checked and the request was therefore not served, or the database failed transiently. Retrying may succeed.","x-error-codes":["SERVICE_UNAVAILABLE"],"content":{"application/problem+json":{"schema":{"title":"Problem details","type":"object","description":"An error according to RFC 9457. `errors` is never empty; for one error `errors[0].code` equals `errorCode`.","properties":{"type":{"type":"string","description":"A URN derived from `errorCode`, for example `urn:ds365:error:not-found`. It cannot be resolved.","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A fixed English text per code.","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"A technical English sentence. The text may change and should not be evaluated.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"The request path.","uniqueKey":"instance","typeLabel":"string"},"errorCode":{"type":"string","description":"The error code. The codes of an operation are listed in `x-error-codes` of its response.","uniqueKey":"errorCode","typeLabel":"string"},"traceId":{"type":"string","description":"The trace id of the request. Give it to support.","uniqueKey":"traceId","typeLabel":"string"},"errors":{"type":"array","items":{"title":"Error item","type":"object","required":["code"],"properties":{"code":{"type":"string","description":"The specific code of this item.","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"path":{"type":"string","description":"The field or parameter the error concerns. Absent when it concerns the whole request.","uniqueKey":"errors.items.[INDEX].path","typeLabel":"string"},"data":{"type":"object","additionalProperties":true,"description":"Further values, for example `entityType` and `id` of a missing asset or `missingScopes`. Absent when empty.","uniqueKey":"errors.items.[INDEX].data","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"Error item · object"},"uniqueKey":"errors","typeLabel":"Error item · object[]"}},"uniqueKey":"","typeLabel":"Problem details · object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>","errorCode":"\u003cstring>","traceId":"\u003cstring>","errors":[{"code":"\u003cstring>","path":"\u003cstring>","data":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e2675cc6-15fd-4901-8b67-def0ab209847":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"The API key of the subscription. Each operation names the scope it needs in `x-pat-scopes`: `api_read` (in the interface *Read*) or `api_write` (*Read and Write*). The key is created under *Administration › Integrations › API Keys*.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"678cf083-b49a-4f2d-884f-84a11f46e483":{"url":"https://api.docusnap365.com/api/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"The API key of the subscription. Each operation names the scope it needs in `x-pat-scopes`: `api_read` (in the interface *Read*) or `api_write` (*Read and Write*). The key is created under *Administration › Integrations › API Keys*.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-api-key","type":"string","description":"The API key of the subscription. Each operation names the scope it needs in `x-pat-scopes`: `api_read` (in the interface *Read*) or `api_write` (*Read and Write*). The key is created under *Administration › Integrations › API Keys*.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api-reference/openapi.en.yaml"},"subdomain":"docusnap","siteName":"Docusnap365","title":"Create or update one asset - Docusnap365","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"de":{"href":"/de/getting-started/overview","matchLevel":4},"en":{"href":"/api-reference/assets/create-or-update-one-asset","matchLevel":0}}},"lastModified":"2026-11-10T07:39:19.693Z","originalFileLocation":"api-reference/assets/create-or-update-one-asset.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Writes one asset. The service forwards the request body to the ingest service and returns its status, content type and body unchanged: 201 when the asset was created, 200 when it was updated. With objectData the ingest service decides by identity matching whether the asset already exists. Without objectData, object.id is required and the asset is updated. Requires the scope api_write (Read and Write). Errors of the ingest service are not application/problem+json: they carry errorMessage (400) or, for a server fault, the same body with status 500.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Docusnap365\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_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=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create or update one asset - Docusnap365\">\u003cmeta data-mint-head property=\"og:description\" content=\"Writes one asset. The service forwards the request body to the ingest service and returns its status, content type and body unchanged: 201 when the asset was created, 200 when it was updated. With objectData the ingest service decides by identity matching whether the asset already exists. Without objectData, object.id is required and the asset is updated. Requires the scope api_write (Read and Write). Errors of the ingest service are not application/problem+json: they carry errorMessage (400) or, for a server fault, the same body with status 500.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Docusnap365\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.docusnap.com/docs/api-reference/assets/create-or-update-one-asset\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docusnap.mintlify.site/docs/_mintlify/api/og/v2?division=Assets\u0026amp;title=Create+or+update+one+asset\u0026amp;description=Writes+one+asset.+The+service+forwards+the+request+body+to+the+ingest+service+and+returns+its+status%2C+content+type+and+body+unchanged%3A+201+when+the+asset+was+cr\u0026amp;theme=76256092d55f72ccd86a07dd\u0026amp;signature=414aee1702073632b2d842e25e44d5ac05668220b2e1601d0c4ef90d085e62ab\">\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=\"Create or update one asset - Docusnap365\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Writes one asset. The service forwards the request body to the ingest service and returns its status, content type and body unchanged: 201 when the asset was created, 200 when it was updated. With objectData the ingest service decides by identity matching whether the asset already exists. Without objectData, object.id is required and the asset is updated. Requires the scope api_write (Read and Write). Errors of the ingest service are not application/problem+json: they carry errorMessage (400) or, for a server fault, the same body with status 500.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docusnap.mintlify.site/docs/_mintlify/api/og/v2?division=Assets\u0026amp;title=Create+or+update+one+asset\u0026amp;description=Writes+one+asset.+The+service+forwards+the+request+body+to+the+ingest+service+and+returns+its+status%2C+content+type+and+body+unchanged%3A+201+when+the+asset+was+cr\u0026amp;theme=76256092d55f72ccd86a07dd\u0026amp;signature=414aee1702073632b2d842e25e44d5ac05668220b2e1601d0c4ef90d085e62ab\">\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=\"/docs/mintlify-assets/_mintlify/favicons/docusnap/H7rYqvu3TO3yj0a1/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Docusnap365\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0F7683\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.docusnap.com/docs/api-reference/assets/create-or-update-one-asset\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/assets/create-or-update-one-asset.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.docusnap.com/#organization\",\"name\":\"Docusnap365\",\"url\":\"https://www.docusnap.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/docusnap/w7DSWRB4BRB49qQA/images/Docusnap_Logo.svg?fit=max\u0026auto=format\u0026n=w7DSWRB4BRB49qQA\u0026q=85\u0026s=30ba3056aa591cff3faf8c4addf943c0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.docusnap.com/docs#website\",\"name\":\"Docusnap365\",\"url\":\"https://www.docusnap.com/docs\",\"publisher\":{\"@id\":\"https://www.docusnap.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.docusnap.com/docs/api-reference/assets/create-or-update-one-asset#webpage\",\"url\":\"https://www.docusnap.com/docs/api-reference/assets/create-or-update-one-asset\",\"name\":\"Create or update one asset\",\"description\":\"Writes one asset. The service forwards the request body to the ingest service and returns its status, content type and body unchanged: 201 when the asset was created, 200 when it was updated. With objectData the ingest service decides by identity matching whether the asset already exists. Without objectData, object.id is required and the asset is updated. Requires the scope api_write (Read and Write). Errors of the ingest service are not application/problem+json: they carry errorMessage (400) or, for a server fault, the same body with status 500.\",\"dateModified\":\"2026-11-10T07:39:19.693Z\",\"isPartOf\":{\"@id\":\"https://www.docusnap.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.docusnap.com/docs/api-reference/assets/create-or-update-one-asset#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.docusnap.com/docs/api-reference/assets/create-or-update-one-asset#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API\",\"item\":\"https://www.docusnap.com/docs/en/api/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Reference\",\"item\":\"https://www.docusnap.com/docs/api-reference/assets/list-assets\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Assets\",\"item\":\"https://www.docusnap.com/docs/api-reference/assets/list-assets\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create or update one asset\",\"item\":\"https://www.docusnap.com/docs/api-reference/assets/create-or-update-one-asset\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://www.docusnap.com/docs/api-reference/assets/create-or-update-one-asset#apireference\",\"headline\":\"Create or update one asset\",\"name\":\"Create or update one asset\",\"description\":\"Writes one asset. The service forwards the request body to the ingest service and returns its status, content type and body unchanged: 201 when the asset was created, 200 when it was updated. With objectData the ingest service decides by identity matching whether the asset already exists. Without objectData, object.id is required and the asset is updated. Requires the scope api_write (Read and Write). Errors of the ingest service are not application/problem+json: they carry errorMessage (400) or, for a server fault, the same body with status 500.\",\"url\":\"https://www.docusnap.com/docs/api-reference/assets/create-or-update-one-asset\",\"mainEntityOfPage\":{\"@id\":\"https://www.docusnap.com/docs/api-reference/assets/create-or-update-one-asset#webpage\"},\"dateModified\":\"2026-11-10T07:39:19.693Z\",\"publisher\":{\"@id\":\"https://www.docusnap.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.docusnap.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Docusnap365\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Docusnap365","nav":{"global":null,"languages":[{"language":"de","navbar":{"links":[{"href":"https://docusnap365.com","label":"Anmelden"}],"primary":{"type":"button","label":"Kostenlos testen","href":"https://www.docusnap.com/de/trial?utm_source=docs\u0026utm_medium=navbar\u0026utm_campaign=trial"}},"pages":[{"title":"de","href":"/de/getting-started/overview"}]},{"language":"en","default":true,"navbar":{"links":[{"href":"https://docusnap365.com","label":"Sign In"}],"primary":{"type":"button","label":"Try for Free","href":"https://www.docusnap.com/en/trial?utm_source=docs\u0026utm_medium=navbar\u0026utm_campaign=trial"}},"tabs":[{"tab":"Getting Started","pages":[{"title":"Getting Started","href":"/en/getting-started/overview"}]},{"tab":"Scanning","pages":[{"title":"Scanning","href":"/en/scan/understanding-scanning"}]},{"tab":"Inventory","pages":[{"title":"Inventory","href":"/en/assets/overview"}]},{"tab":"ITAM","pages":[{"title":"ITAM","href":"/en/itam/understanding-itam"}]},{"tab":"ISMS","pages":[{"title":"ISMS","href":"/en/isms/understanding-isms"}]},{"tab":"Documentation","pages":[{"title":"Documentation","href":"/en/documents/overview"}]},{"tab":"Analysis","pages":[{"title":"Analysis","href":"/en/analysis/overview"}]},{"tab":"AI Assistant","pages":[{"title":"AI Assistant","href":"/en/assistant/overview"}]},{"tab":"Administration","pages":[{"title":"Administration","href":"/en/settings/subscription"}]},{"tab":"MCP \u0026 API","groups":[{"group":"MCP","pages":[{"title":"MCP—Basics","sidebarTitle":"Overview","href":"/en/api/mcp"},{"title":"MCP—Tools","sidebarTitle":"Tools","href":"/en/api/mcp-specific-tools"}]},{"group":"API","pages":[{"title":"Understanding the REST API","sidebarTitle":"Basics","href":"/en/api/overview"},{"title":"Data Model","sidebarTitle":"Data Model","href":"/en/api/data-model"},{"group":"API Reference","pages":[{"group":"Assets","pages":[{"title":"List assets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.en.yaml get /assets","href":"/api-reference/assets/list-assets"},{"title":"Get one asset","description":"Returns one asset by its id. A value that is not a GUID does not match the route and is answered like any unknown route: 404 `NOT_FOUND` with `detail` \"No endpoint matches 'GET …'.\".\n\nRequires the scope `api_read` (*Read*). The query parameter `search` is read but has no effect on this operation.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.en.yaml get /asset/{id}","href":"/api-reference/assets/get-one-asset"},{"title":"Create or update one asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.en.yaml post /asset","href":"/api-reference/assets/create-or-update-one-asset"},{"title":"Create or update several assets","description":"Writes up to 100 assets in one transaction, each created or updated by identity matching as in `POST /asset`. More than 100 entries are rejected with 400. An empty list is answered with 200 and an empty `results`.\n\nAn entry that is protected (a more complete record exists) or has too few identity values does not abort the batch: it is skipped and its entry in `results` carries `errorMessage`. Every other rejection aborts the whole batch with 400.\n\nRequires the scope `api_write` (*Read and Write*). The response of the ingest service is returned unchanged.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.en.yaml post /asset/bulk","href":"/api-reference/assets/create-or-update-several-assets"}]},{"group":"Query","pages":[{"title":"Query assets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.en.yaml post /assets/query","href":"/api-reference/query/query-assets"},{"title":"Read or continue an expand of one asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.en.yaml post /assets/expand","href":"/api-reference/query/read-or-continue-an-expand-of-one-asset"},{"title":"Continue from a cursor","deprecated":null,"version":null,"openapi":"/api-reference/openapi.en.yaml post /cursor/continue","href":"/api-reference/query/continue-from-a-cursor"}]}]}]}]},{"tab":"What's new","pages":[{"title":"What's new","href":"/en/changelog"}]}]}]},"basePath":"","title":"Create or update one asset - Docusnap365","buildId":"dpl_3pZeXn3XukjzFRgAX73A7GNDfRJ1","deploymentId":"dpl_3pZeXn3XukjzFRgAX73A7GNDfRJ1","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CW3yP2DK.js","utils-BN0nty2W.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C8_MydSG.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bsl5xDMQ.js","snippetPresets-DYv9OBej.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-9OnYPrVf.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-xr67xWGO.js","shallow-DO1aDdBF.js","getApiPlaygroundDisplay-o7cLzFL-.js","CodeSnippet-CGr2yOA8.js","CodeSnippets-CzBbqPNh.js","Page-CBlOSKZG.js","getPastedJson-dpi9sn5Y.js","icon-aIWHt8Pn.js","MethodPill-Bv2zLsGY.js","DuplicateIcon-DxFSz0J6.js","createIcon-uDNv6jwj.js","DynamicMarkdown-C91yhnNP.js","SectionHeading-DG_xjOLR.js","axios-vUo_bRtp.js","Markdown-B4M_Eo1P.js","clsx-DShopWo_.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BX6wab7q.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-48h67xm_.js"]}