{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
Inventory
Update assets in a batch
Updates up to 100 CUSTOM or INFORMATION assets in one request, each with its own values. Each record is saved on its own, so one invalid record doesn’t stop the others. The response is 200 with one result per record, in request order. An unknown id fails with not_found. Any other asset (a computer, cloud resource or employee) fails with resource_not_writable.
Records follow the bulk edit rules of the Secfix app. Some fields can’t be bulk-edited in some categories: the field isn’t configured for the category, a Secfix tag sets it, or it’s marked not editable. This can include classification. Such a field is skipped and listed in skippedFields, and the other fields are saved, so the record is still SUCCESS. If every change in a record is skipped, nothing is saved and the record fails with not_editable. The single-asset PATCH rejects such a field with validation_failed instead.
tags aren’t supported in a batch; use the single-asset PATCH. Each id can appear only once. A batch counts as one write request for rate limiting. Requires the all:write scope.
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
{
"code": "not_found",
"detail": "No asset found for the given id.",
"instance": "/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f",
"requestId": "req_01HZY8Q3M4N5P6R7S8T9V0W1X2",
"status": 404,
"title": "Not Found",
"type": "https://api.secfix.com/problems/not_found"
}
A unique key, up to 256 characters, that makes the request safe to retry. Use a new UUID for each distinct request. If you send the same key again, you get the first response back, for at least 24 hours after the first request completes. Only successful (2xx) responses are stored. If the first request is still running, you get 409 idempotency_in_progress: wait the number of seconds in Retry-After, then retry. See Idempotency.
Maximum string length: 256
Example:
"b0f8e5a2-3c1d-4e6f-8a9b-0c1d2e3f4a5b"
Body
application/json
Updates up to 100 CUSTOM or INFORMATION assets, each with its own values. tags are only supported by the single-asset PATCH.
The assets to update, 1-100. Each id can appear only once.
Required array length: 1 - 100 elements
Show child attributes
Response
Every record was processed. Check status on each entry in results; each entry has the record's index. Resend only the failed records, with a new Idempotency-Key.
Results of a batch request, one per record. The response is 200 even when some or all records failed. Resend only the failed records, with a new Idempotency-Key.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Secfix Developers (Staging)","description":"Staging documentation for the Secfix Public API — includes the staging environment. For production docs, see developer.secfix.com.","colors":{"primary":"#762EEA","light":"#A47CF3","dark":"#5B21B6"},"logo":{"light":"https://mintcdn.com/developer-staging-secfix/Q-9vTGgOSlO8yeFU/logo/light.svg?fit=max\u0026auto=format\u0026n=Q-9vTGgOSlO8yeFU\u0026q=85\u0026s=b6e2ca2f07e816208bdf37e60752ad07","dark":"https://mintcdn.com/developer-staging-secfix/Q-9vTGgOSlO8yeFU/logo/dark.svg?fit=max\u0026auto=format\u0026n=Q-9vTGgOSlO8yeFU\u0026q=85\u0026s=5c7e166ab0ada2db7f0f73e1b98e31d1"},"favicon":"https://mintcdn.com/developer-staging-secfix/wXpLA7sRWupSLgpu/favicon.svg?fit=max\u0026auto=format\u0026n=wXpLA7sRWupSLgpu\u0026q=85\u0026s=16e9bb91916a31f20ccae9e1dee085ec","navbar":{"links":[{"href":"mailto:support@secfix.com","label":"Support"}],"primary":{"type":"button","label":"Open Secfix","href":"https://app.secfix.com"}},"footer":{"socials":{"website":"https://secfix.com","linkedin":"https://www.linkedin.com/company/secfix"}},"banner":{"content":"🚧 Staging documentation — includes the staging environment. Production docs live at [developer.secfix.com](https://developer.secfix.com).","dismissible":true},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Support","icon":"envelope","href":"mailto:support@secfix.com"},{"anchor":"Secfix.com","icon":"globe","href":"https://secfix.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"developer-staging-secfix","hasAudioNarration":false,"actualSubdomain":"developer-staging-secfix","customDomains":["developer-staging.secfix.com"],"gitSource":{"type":"gitlab","owner":"secfix/core","repo":"secfix-developers-docs","deployBranch":"staging","contentDirectory":"staging","isPrivate":true,"projectId":81651564,"mountPath":"","label":"","_id":"6adb56a2fef607a661886cb7"},"entitlements":{},"buildId":"6aeb4c849649d32714d386ca","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API reference","count":18},{"language":"default","tag":"Endpoints","count":17},{"language":"default","tag":"Documentation","count":14},{"language":"default","tag":"Inventory","count":9},{"language":"default","tag":"Core concepts","count":6},{"language":"default","tag":"Guides","count":5},{"language":"default","tag":"Get started","count":3},{"language":"default","tag":"Changelog","count":2},{"language":"default","tag":"Computers","count":2},{"language":"default","tag":"Employees","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"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},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/inventory/update-assets-in-a-batch","slug":"/api-reference/inventory/update-assets-in-a-batch","pageMetadata":{"title":"Update assets in a batch","description":"Updates up to 100 `CUSTOM` or `INFORMATION` assets in one request, each with its own values. Each record is saved on its own, so one invalid record doesn't stop the others. The response is 200 with one result per record, in request order. An unknown `id` fails with `not_found`. Any other asset (a computer, cloud resource or employee) fails with `resource_not_writable`.\n\nRecords follow the bulk edit rules of the Secfix app. Some fields can't be bulk-edited in some categories: the field isn't configured for the category, a Secfix tag sets it, or it's marked not editable. This can include `classification`. Such a field is skipped and listed in `skippedFields`, and the other fields are saved, so the record is still `SUCCESS`. If every change in a record is skipped, nothing is saved and the record fails with `not_editable`. The single-asset `PATCH` rejects such a field with `validation_failed` instead.\n\n`tags` aren't supported in a batch; use the single-asset `PATCH`. Each `id` can appear only once. A batch counts as one write request for rate limiting. Requires the `all:write` scope.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/inventory/assets/batch-update","href":"/api-reference/inventory/update-assets-in-a-batch","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 p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Updates up to 100 \", _jsx(_components.code, {\n children: \"CUSTOM\"\n }), \" or \", _jsx(_components.code, {\n children: \"INFORMATION\"\n }), \" assets in one request, each with its own values. Each record is saved on its own, so one invalid record doesn’t stop the others. The response is 200 with one result per record, in request order. An unknown \", _jsx(_components.code, {\n children: \"id\"\n }), \" fails with \", _jsx(_components.code, {\n children: \"not_found\"\n }), \". Any other asset (a computer, cloud resource or employee) fails with \", _jsx(_components.code, {\n children: \"resource_not_writable\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Records follow the bulk edit rules of the Secfix app. Some fields can’t be bulk-edited in some categories: the field isn’t configured for the category, a Secfix tag sets it, or it’s marked not editable. This can include \", _jsx(_components.code, {\n children: \"classification\"\n }), \". Such a field is skipped and listed in \", _jsx(_components.code, {\n children: \"skippedFields\"\n }), \", and the other fields are saved, so the record is still \", _jsx(_components.code, {\n children: \"SUCCESS\"\n }), \". If every change in a record is skipped, nothing is saved and the record fails with \", _jsx(_components.code, {\n children: \"not_editable\"\n }), \". The single-asset \", _jsx(_components.code, {\n children: \"PATCH\"\n }), \" rejects such a field with \", _jsx(_components.code, {\n children: \"validation_failed\"\n }), \" instead.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"tags\"\n }), \" aren’t supported in a batch; use the single-asset \", _jsx(_components.code, {\n children: \"PATCH\"\n }), \". Each \", _jsx(_components.code, {\n children: \"id\"\n }), \" can appear only once. A batch counts as one write request for rate limiting. Requires the \", _jsx(_components.code, {\n children: \"all:write\"\n }), \" scope.\"]\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":"Update assets in a batch","description":"Updates up to 100 `CUSTOM` or `INFORMATION` assets in one request, each with its own values. Each record is saved on its own, so one invalid record doesn't stop the others. The response is 200 with one result per record, in request order. An unknown `id` fails with `not_found`. Any other asset (a computer, cloud resource or employee) fails with `resource_not_writable`.\n\nRecords follow the bulk edit rules of the Secfix app. Some fields can't be bulk-edited in some categories: the field isn't configured for the category, a Secfix tag sets it, or it's marked not editable. This can include `classification`. Such a field is skipped and listed in `skippedFields`, and the other fields are saved, so the record is still `SUCCESS`. If every change in a record is skipped, nothing is saved and the record fails with `not_editable`. The single-asset `PATCH` rejects such a field with `validation_failed` instead.\n\n`tags` aren't supported in a batch; use the single-asset `PATCH`. Each `id` can appear only once. A batch counts as one write request for rate limiting. Requires the `all:write` scope.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/inventory/assets/batch-update","href":"/api-reference/inventory/update-assets-in-a-batch","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Inventory"],"summary":"Update assets in a batch","description":"Updates up to 100 `CUSTOM` or `INFORMATION` assets in one request, each with its own values. Each record is saved on its own, so one invalid record doesn't stop the others. The response is 200 with one result per record, in request order. An unknown `id` fails with `not_found`. Any other asset (a computer, cloud resource or employee) fails with `resource_not_writable`.\n\nRecords follow the bulk edit rules of the Secfix app. Some fields can't be bulk-edited in some categories: the field isn't configured for the category, a Secfix tag sets it, or it's marked not editable. This can include `classification`. Such a field is skipped and listed in `skippedFields`, and the other fields are saved, so the record is still `SUCCESS`. If every change in a record is skipped, nothing is saved and the record fails with `not_editable`. The single-asset `PATCH` rejects such a field with `validation_failed` instead.\n\n`tags` aren't supported in a batch; use the single-asset `PATCH`. Each `id` can appear only once. A batch counts as one write request for rate limiting. Requires the `all:write` scope.","operationId":"updateAssetsBatch","parameters":["4a5e3005-870c-4bae-b335-8d6eb1488297"],"requestBody":"99653ae7-f584-4709-b3d2-8e603b26a2bd","responses":{"200":"3a95d4e5-58ae-49b2-b060-1f78dafab269","400":"713a1120-913e-48d3-99f9-d574dee6075f","401":"607256f7-4e5c-4849-b0c3-192305a1c840","403":"b46ee470-e0a6-4d7c-904e-0c1965bfb3f7","405":"3c651952-e282-4b77-8511-d3406dd65b9f","409":"432f656c-1f2e-4c74-bebc-6d015e531f71","413":"3edc2cba-a86b-4afc-8297-388925859c9c","415":"c0e3bdbf-40f3-4d00-b9a6-eccd13736676","429":"f2c503c8-e291-4004-85ea-8ca73d1322d2","500":"864e8828-47c6-406b-abc7-2410cde679a9"},"method":"patch","type":"path","servers":["4f2cec6e-2289-49a2-8248-1dc79040f3ad","790bd194-79b5-4d3d-b43a-ec342482981e"],"security":["a0177fc0-042b-4625-a1c4-9a855bdea4a9"],"path":"/v1/inventory/assets/batch-update","baseUrlOptions":["https://api.secfix.com","https://api-staging.secfix.com"],"title":"Update assets in a batch","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"4a5e3005-870c-4bae-b335-8d6eb1488297":{"name":"Idempotency-Key","in":"header","description":"A unique key, up to 256 characters, that makes the request safe to retry. Use a new UUID for each distinct request. If you send the same key again, you get the first response back, for at least 24 hours after the first request completes. Only successful (2xx) responses are stored. If the first request is still running, you get `409 idempotency_in_progress`: wait the number of seconds in `Retry-After`, then retry. See [Idempotency](/idempotency).","required":true,"schema":{"maxLength":256,"type":"string","example":"b0f8e5a2-3c1d-4e6f-8a9b-0c1d2e3f4a5b","isRequired":true,"description":"A unique key, up to 256 characters, that makes the request safe to retry. Use a new UUID for each distinct request. If you send the same key again, you get the first response back, for at least 24 hours after the first request completes. Only successful (2xx) responses are stored. If the first request is still running, you get `409 idempotency_in_progress`: wait the number of seconds in `Retry-After`, then retry. See [Idempotency](/idempotency).","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"required":["records"],"type":"object","properties":{"records":{"maxItems":100,"minItems":1,"type":"array","description":"The assets to update, 1-100. Each `id` can appear only once.","items":{"required":["id"],"type":"object","properties":{"id":{"type":"string","description":"The `id` of the asset to update.","format":"uuid","example":"3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","isRequired":true,"uniqueKey":"records.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"classification":{"type":"string","description":"Data classification: `RESTRICTED`, `CONFIDENTIAL`, `INTERNAL`, `PUBLIC` or `UNKNOWN`, in any letter case.","example":"CONFIDENTIAL","uniqueKey":"records.items.[INDEX].classification","typeLabel":"string"},"customIdentifier":{"maxLength":255,"minLength":0,"type":"string","description":"Serial number or asset ID, shown in Secfix as **ID/Serial No.** Up to 255 characters. You can't change `externalSource` or `externalAssetId`; they're set on create.","example":"SN-12345","uniqueKey":"records.items.[INDEX].customIdentifier","typeLabel":"string"},"dataStored":{"type":"object","properties":{"containsPatientData":{"type":"boolean","description":"Whether the asset stores patient data.","example":false,"uniqueKey":"records.items.[INDEX].dataStored.containsPatientData","typeLabel":"boolean"},"containsUserData":{"type":"boolean","description":"Whether the asset stores user data.","example":true,"uniqueKey":"records.items.[INDEX].dataStored.containsUserData","typeLabel":"boolean"},"userDataInfo":{"maxLength":500,"minLength":0,"type":"string","description":"What kind of user data the asset stores, up to 500 characters.","example":"Customer names and email addresses.","uniqueKey":"records.items.[INDEX].dataStored.userDataInfo","typeLabel":"string"}},"description":"What data the asset stores. On create, fields you leave out stay unset.","uniqueKey":"records.items.[INDEX].dataStored","typeLabel":"object"},"description":{"maxLength":500,"minLength":0,"type":"string","description":"Asset description, up to 500 characters.","example":"Primary production web server.","uniqueKey":"records.items.[INDEX].description","typeLabel":"string"},"name":{"maxLength":255,"minLength":0,"type":"string","description":"New asset name, 1-255 characters. Leading and trailing spaces are removed, and a blank name is rejected.","example":"Finance laptop pool","uniqueKey":"records.items.[INDEX].name","typeLabel":"string"},"ownerEmail":{"maxLength":320,"minLength":0,"type":"string","description":"New owner's email address, instead of `ownerId`. Case-insensitive. Must belong to an active employee in your workspace who is included in compliance.","example":"jane.doe@example.com","uniqueKey":"records.items.[INDEX].ownerEmail","typeLabel":"string"},"ownerId":{"type":"string","description":"New owner's employee `id`.","format":"uuid","example":"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d","uniqueKey":"records.items.[INDEX].ownerId","typeLabel":"string\u003cuuid>"},"tags":{"maxItems":20,"minItems":0,"type":"array","description":"Your workspace's tags to set on the asset. Tags you leave out are removed. Each `key` must be a tag key that exists in your workspace; an unknown key is rejected. Tags managed by Secfix are read-only and stay as they are, so you don't need to send them. Single-asset `PATCH` only; not supported in a batch.","items":{"type":"object","properties":{"key":{"maxLength":1000,"minLength":0,"type":"string","description":"Tag key. On writes, it must be a tag key that exists in your workspace.","example":"environment","uniqueKey":"records.items.[INDEX].tags.items.[INDEX].key","typeLabel":"string"},"value":{"maxLength":255,"minLength":0,"type":"string","description":"Tag value.","example":"production","uniqueKey":"records.items.[INDEX].tags.items.[INDEX].value","typeLabel":"string"}},"description":"A tag on an asset. On writes, `key` must be a tag key in your workspace that you can edit.","uniqueKey":"records.items.[INDEX].tags.items.[INDEX]","typeLabel":"object"},"uniqueKey":"records.items.[INDEX].tags","typeLabel":"object[]"}},"description":"One asset to update: its `id` and the fields to change. Only `CUSTOM` and `INFORMATION` assets can be updated. `tags` aren't supported in a batch.","uniqueKey":"records.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"records","typeLabel":"object[]"}},"description":"Updates up to 100 `CUSTOM` or `INFORMATION` assets, each with its own values. `tags` are only supported by the single-asset `PATCH`.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"records":[{"id":"3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","classification":"CONFIDENTIAL","customIdentifier":"SN-12345","dataStored":{"containsPatientData":false,"containsUserData":true,"userDataInfo":"Customer names and email addresses."},"description":"Primary production web server.","name":"Finance laptop pool","ownerEmail":"jane.doe@example.com","ownerId":"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d","tags":[{"key":"environment","value":"production"}]}]}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"3a95d4e5-58ae-49b2-b060-1f78dafab269":{"description":"Every record was processed. Check `status` on each entry in `results`; each entry has the record's `index`. Resend only the failed records, with a new `Idempotency-Key`.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed in the current rate-limit window.","style":"simple","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","style":"simple","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Seconds until the rate-limit window resets.","style":"simple","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","description":"One result per record, in request order.","items":{"type":"object","properties":{"action":{"type":"string","description":"For a successful create: whether the asset was created or updated.","enum":["CREATED","UPDATED"],"uniqueKey":"results.items.[INDEX].action","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Why the record failed. Only set when it failed.","example":"validation_failed","enum":["validation_failed","resource_not_writable","not_editable","not_found","write_conflict","internal_error"],"uniqueKey":"results.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"field":{"type":"string","description":"The request field that failed validation. Only set for `validation_failed`.","example":"ownerEmail","uniqueKey":"results.items.[INDEX].field","typeLabel":"string"},"id":{"type":"string","description":"For a create, the `id` of the new or matched asset; left out when the create failed. For a delete or update, the `id` you sent.","format":"uuid","uniqueKey":"results.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"index":{"type":"integer","description":"Position of the record in `records`, starting at 0.","format":"int32","example":0,"uniqueKey":"results.items.[INDEX].index","typeLabel":"integer\u003cint32>"},"message":{"type":"string","description":"Short explanation of the failure. Only set when the record failed.","example":"unknown owner","uniqueKey":"results.items.[INDEX].message","typeLabel":"string"},"skippedFields":{"type":"array","description":"Batch updates only. Fields you sent that weren't changed, because the asset's category doesn't allow bulk editing them: the field isn't configured, a Secfix tag sets it, or it's marked not editable. On a `SUCCESS` record the other fields were saved; on a `not_editable` record nothing was. Left out when every change was applied.","items":{"type":"string","example":"description","uniqueKey":"results.items.[INDEX].skippedFields.items.[INDEX]","typeLabel":"string"},"uniqueKey":"results.items.[INDEX].skippedFields","typeLabel":"string[]"},"status":{"type":"string","description":"Outcome of the record.","enum":["SUCCESS","ERROR"],"uniqueKey":"results.items.[INDEX].status","typeLabel":"enum\u003cstring>"}},"description":"The result of one record in a batch.","uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"uniqueKey":"results","typeLabel":"object[]"}},"description":"Results of a batch request, one per record. The response is 200 even when some or all records failed. Resend only the failed records, with a new `Idempotency-Key`.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"results":[{"action":"CREATED","code":"validation_failed","field":"ownerEmail","id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","index":0,"message":"unknown owner","skippedFields":["description"],"status":"SUCCESS"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"713a1120-913e-48d3-99f9-d574dee6075f":{"description":"The request is invalid: `records` is missing, empty or has more than 100 entries, an `id` appears twice, or the `Idempotency-Key` header is missing or longer than 256 characters. Code: `validation_failed` or `malformed_request`.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code for your error handling. It doesn't change between releases.","example":"not_found","uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong in this request.","example":"No asset found for the given id.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"URI that identifies this occurrence of the error.","example":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","description":"The request's id, also sent in the `X-Request-Id` header. Include it when you contact support.","example":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","uniqueKey":"requestId","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code.","format":"int32","example":404,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"Short summary of the error type.","example":"Not Found","uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"URI that identifies the error type.","example":"https://api.secfix.com/problems/not_found","uniqueKey":"type","typeLabel":"string"}},"description":"The JSON body of every error response.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","detail":"No asset found for the given id.","instance":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","requestId":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","status":404,"title":"Not Found","type":"https://api.secfix.com/problems/not_found"}}},"exampleType":"generated"}},"exampleType":"generated"},"607256f7-4e5c-4849-b0c3-192305a1c840":{"description":"The access token is missing, invalid or replaced by a newer one. Code: `unauthorized` or `token_superseded`.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code for your error handling. It doesn't change between releases.","example":"not_found","uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong in this request.","example":"No asset found for the given id.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"URI that identifies this occurrence of the error.","example":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","description":"The request's id, also sent in the `X-Request-Id` header. Include it when you contact support.","example":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","uniqueKey":"requestId","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code.","format":"int32","example":404,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"Short summary of the error type.","example":"Not Found","uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"URI that identifies the error type.","example":"https://api.secfix.com/problems/not_found","uniqueKey":"type","typeLabel":"string"}},"description":"The JSON body of every error response.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","detail":"No asset found for the given id.","instance":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","requestId":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","status":404,"title":"Not Found","type":"https://api.secfix.com/problems/not_found"}}},"exampleType":"generated"}},"exampleType":"generated"},"b46ee470-e0a6-4d7c-904e-0c1965bfb3f7":{"description":"The access token doesn't have the scope this endpoint needs. Code: `scope_required`.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code for your error handling. It doesn't change between releases.","example":"not_found","uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong in this request.","example":"No asset found for the given id.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"URI that identifies this occurrence of the error.","example":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","description":"The request's id, also sent in the `X-Request-Id` header. Include it when you contact support.","example":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","uniqueKey":"requestId","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code.","format":"int32","example":404,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"Short summary of the error type.","example":"Not Found","uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"URI that identifies the error type.","example":"https://api.secfix.com/problems/not_found","uniqueKey":"type","typeLabel":"string"}},"description":"The JSON body of every error response.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","detail":"No asset found for the given id.","instance":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","requestId":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","status":404,"title":"Not Found","type":"https://api.secfix.com/problems/not_found"}}},"exampleType":"generated"}},"exampleType":"generated"},"3c651952-e282-4b77-8511-d3406dd65b9f":{"description":"This path doesn't support the HTTP method. The `Allow` header lists the methods it supports. Code: `method_not_allowed`.","headers":{"Allow":{"description":"Comma-separated list of the HTTP methods this path supports.","style":"simple","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code for your error handling. It doesn't change between releases.","example":"not_found","uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong in this request.","example":"No asset found for the given id.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"URI that identifies this occurrence of the error.","example":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","description":"The request's id, also sent in the `X-Request-Id` header. Include it when you contact support.","example":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","uniqueKey":"requestId","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code.","format":"int32","example":404,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"Short summary of the error type.","example":"Not Found","uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"URI that identifies the error type.","example":"https://api.secfix.com/problems/not_found","uniqueKey":"type","typeLabel":"string"}},"description":"The JSON body of every error response.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","detail":"No asset found for the given id.","instance":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","requestId":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","status":404,"title":"Not Found","type":"https://api.secfix.com/problems/not_found"}}},"exampleType":"generated"}},"exampleType":"generated"},"432f656c-1f2e-4c74-bebc-6d015e531f71":{"description":"The `Idempotency-Key` was already used with a different body (`idempotency_conflict`), or the first request with this key is still running (`idempotency_in_progress`). For `idempotency_in_progress`, retry after `Retry-After`.","headers":{"Retry-After":{"description":"Seconds to wait before retrying. Sent with `idempotency_in_progress`. A `write_conflict` on one record is reported in that record's result, not as a 409.","style":"simple","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code for your error handling. It doesn't change between releases.","example":"not_found","uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong in this request.","example":"No asset found for the given id.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"URI that identifies this occurrence of the error.","example":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","description":"The request's id, also sent in the `X-Request-Id` header. Include it when you contact support.","example":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","uniqueKey":"requestId","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code.","format":"int32","example":404,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"Short summary of the error type.","example":"Not Found","uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"URI that identifies the error type.","example":"https://api.secfix.com/problems/not_found","uniqueKey":"type","typeLabel":"string"}},"description":"The JSON body of every error response.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","detail":"No asset found for the given id.","instance":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","requestId":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","status":404,"title":"Not Found","type":"https://api.secfix.com/problems/not_found"}}},"exampleType":"generated"}},"exampleType":"generated"},"3edc2cba-a86b-4afc-8297-388925859c9c":{"description":"The request body is too large. Code: `payload_too_large`.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code for your error handling. It doesn't change between releases.","example":"not_found","uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong in this request.","example":"No asset found for the given id.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"URI that identifies this occurrence of the error.","example":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","description":"The request's id, also sent in the `X-Request-Id` header. Include it when you contact support.","example":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","uniqueKey":"requestId","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code.","format":"int32","example":404,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"Short summary of the error type.","example":"Not Found","uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"URI that identifies the error type.","example":"https://api.secfix.com/problems/not_found","uniqueKey":"type","typeLabel":"string"}},"description":"The JSON body of every error response.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","detail":"No asset found for the given id.","instance":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","requestId":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","status":404,"title":"Not Found","type":"https://api.secfix.com/problems/not_found"}}},"exampleType":"generated"}},"exampleType":"generated"},"c0e3bdbf-40f3-4d00-b9a6-eccd13736676":{"description":"Send the request body as `application/json`. Code: `unsupported_media_type`.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code for your error handling. It doesn't change between releases.","example":"not_found","uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong in this request.","example":"No asset found for the given id.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"URI that identifies this occurrence of the error.","example":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","description":"The request's id, also sent in the `X-Request-Id` header. Include it when you contact support.","example":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","uniqueKey":"requestId","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code.","format":"int32","example":404,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"Short summary of the error type.","example":"Not Found","uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"URI that identifies the error type.","example":"https://api.secfix.com/problems/not_found","uniqueKey":"type","typeLabel":"string"}},"description":"The JSON body of every error response.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","detail":"No asset found for the given id.","instance":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","requestId":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","status":404,"title":"Not Found","type":"https://api.secfix.com/problems/not_found"}}},"exampleType":"generated"}},"exampleType":"generated"},"f2c503c8-e291-4004-85ea-8ca73d1322d2":{"description":"Too many requests. Wait the number of seconds in `Retry-After`, then retry. Code: `rate_limited`.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","style":"simple","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code for your error handling. It doesn't change between releases.","example":"not_found","uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong in this request.","example":"No asset found for the given id.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"URI that identifies this occurrence of the error.","example":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","description":"The request's id, also sent in the `X-Request-Id` header. Include it when you contact support.","example":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","uniqueKey":"requestId","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code.","format":"int32","example":404,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"Short summary of the error type.","example":"Not Found","uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"URI that identifies the error type.","example":"https://api.secfix.com/problems/not_found","uniqueKey":"type","typeLabel":"string"}},"description":"The JSON body of every error response.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","detail":"No asset found for the given id.","instance":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","requestId":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","status":404,"title":"Not Found","type":"https://api.secfix.com/problems/not_found"}}},"exampleType":"generated"}},"exampleType":"generated"},"864e8828-47c6-406b-abc7-2410cde679a9":{"description":"Unexpected server error. Code: `internal_error`.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code for your error handling. It doesn't change between releases.","example":"not_found","uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong in this request.","example":"No asset found for the given id.","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"URI that identifies this occurrence of the error.","example":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","description":"The request's id, also sent in the `X-Request-Id` header. Include it when you contact support.","example":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","uniqueKey":"requestId","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code.","format":"int32","example":404,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","description":"Short summary of the error type.","example":"Not Found","uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","description":"URI that identifies the error type.","example":"https://api.secfix.com/problems/not_found","uniqueKey":"type","typeLabel":"string"}},"description":"The JSON body of every error response.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","detail":"No asset found for the given id.","instance":"/v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f","requestId":"req_01HZY8Q3M4N5P6R7S8T9V0W1X2","status":404,"title":"Not Found","type":"https://api.secfix.com/problems/not_found"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"a0177fc0-042b-4625-a1c4-9a855bdea4a9":{"bearerAuth":{"type":"http","description":"Access token from `POST /oauth/token`.","scheme":"bearer","bearerFormat":"JWT","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"4f2cec6e-2289-49a2-8248-1dc79040f3ad":{"url":"https://api.secfix.com","description":"Production"},"790bd194-79b5-4d3d-b43a-ec342482981e":{"url":"https://api-staging.secfix.com","description":"Staging"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","description":"Access token from `POST /oauth/token`.","scheme":"bearer","bearerFormat":"JWT","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Access token from `POST /oauth/token`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"developer-staging-secfix","siteName":"Secfix Developers (Staging)","title":"Update assets in a batch - Secfix Developers (Staging)","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-04T15:17:32.785Z","originalFileLocation":"api-reference/inventory/update-assets-in-a-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=\"description\" content=\"Updates up to 100 CUSTOM or INFORMATION assets in one request, each with its own values. Each record is saved on its own, so one invalid record doesn\u0026#x27;t stop the others. The response is 200 with one result per record, in request order. An unknown id fails with not_found. Any other asset (a computer, cloud resource or employee) fails with resource_not_writable. Records follow the bulk edit rules of the Secfix app. Some fields can\u0026#x27;t be bulk-edited in some categories: the field isn\u0026#x27;t configured for the category, a Secfix tag sets it, or it\u0026#x27;s marked not editable. This can include classification. Such a field is skipped and listed in skippedFields, and the other fields are saved, so the record is still SUCCESS. If every change in a record is skipped, nothing is saved and the record fails with not_editable. The single-asset PATCH rejects such a field with validation_failed instead. tags aren\u0026#x27;t supported in a batch; use the single-asset PATCH. Each id can appear only once. A batch counts as one write request for rate limiting. Requires the all:write scope.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Secfix Developers (Staging)\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/developer-staging-secfix/Q-RAuUtgnc9yPmKP/_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/developer-staging-secfix/Q-RAuUtgnc9yPmKP/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/developer-staging-secfix/Q-RAuUtgnc9yPmKP/_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/developer-staging-secfix/Q-RAuUtgnc9yPmKP/_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/developer-staging-secfix/Q-RAuUtgnc9yPmKP/_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/developer-staging-secfix/Q-RAuUtgnc9yPmKP/_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/developer-staging-secfix/Q-RAuUtgnc9yPmKP/_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/developer-staging-secfix/Q-RAuUtgnc9yPmKP/_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/developer-staging-secfix/Q-RAuUtgnc9yPmKP/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update assets in a batch - Secfix Developers (Staging)\">\u003cmeta data-mint-head property=\"og:description\" content=\"Updates up to 100 CUSTOM or INFORMATION assets in one request, each with its own values. Each record is saved on its own, so one invalid record doesn\u0026#x27;t stop the others. The response is 200 with one result per record, in request order. An unknown id fails with not_found. Any other asset (a computer, cloud resource or employee) fails with resource_not_writable. Records follow the bulk edit rules of the Secfix app. Some fields can\u0026#x27;t be bulk-edited in some categories: the field isn\u0026#x27;t configured for the category, a Secfix tag sets it, or it\u0026#x27;s marked not editable. This can include classification. Such a field is skipped and listed in skippedFields, and the other fields are saved, so the record is still SUCCESS. If every change in a record is skipped, nothing is saved and the record fails with not_editable. The single-asset PATCH rejects such a field with validation_failed instead. tags aren\u0026#x27;t supported in a batch; use the single-asset PATCH. Each id can appear only once. A batch counts as one write request for rate limiting. Requires the all:write scope.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Secfix Developers (Staging)\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer-staging.secfix.com/api-reference/inventory/update-assets-in-a-batch\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://developer-staging-secfix.mintlify.site/_mintlify/api/og/v2?division=Inventory\u0026amp;title=Update+assets+in+a+batch\u0026amp;description=Updates+up+to+100+%60CUSTOM%60+or+%60INFORMATION%60+assets+in+one+request%2C+each+with+its+own+values.+Each+record+is+saved+on+its+own%2C+so+one+invalid+record+doesn%27t+stop\u0026amp;theme=d051878f67505cd781ea0506\u0026amp;signature=f3958720e719bc084b7268dc54a40c60c083f3c4a8341d82a63f02831afc34e0\">\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=\"Update assets in a batch - Secfix Developers (Staging)\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Updates up to 100 CUSTOM or INFORMATION assets in one request, each with its own values. Each record is saved on its own, so one invalid record doesn\u0026#x27;t stop the others. The response is 200 with one result per record, in request order. An unknown id fails with not_found. Any other asset (a computer, cloud resource or employee) fails with resource_not_writable. Records follow the bulk edit rules of the Secfix app. Some fields can\u0026#x27;t be bulk-edited in some categories: the field isn\u0026#x27;t configured for the category, a Secfix tag sets it, or it\u0026#x27;s marked not editable. This can include classification. Such a field is skipped and listed in skippedFields, and the other fields are saved, so the record is still SUCCESS. If every change in a record is skipped, nothing is saved and the record fails with not_editable. The single-asset PATCH rejects such a field with validation_failed instead. tags aren\u0026#x27;t supported in a batch; use the single-asset PATCH. Each id can appear only once. A batch counts as one write request for rate limiting. Requires the all:write scope.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://developer-staging-secfix.mintlify.site/_mintlify/api/og/v2?division=Inventory\u0026amp;title=Update+assets+in+a+batch\u0026amp;description=Updates+up+to+100+%60CUSTOM%60+or+%60INFORMATION%60+assets+in+one+request%2C+each+with+its+own+values.+Each+record+is+saved+on+its+own%2C+so+one+invalid+record+doesn%27t+stop\u0026amp;theme=d051878f67505cd781ea0506\u0026amp;signature=f3958720e719bc084b7268dc54a40c60c083f3c4a8341d82a63f02831afc34e0\">\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/developer-staging-secfix/Q-RAuUtgnc9yPmKP/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Secfix Developers (Staging)\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#762EEA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer-staging.secfix.com/api-reference/inventory/update-assets-in-a-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/inventory/update-assets-in-a-batch.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer-staging.secfix.com/#organization\",\"name\":\"Secfix Developers (Staging)\",\"url\":\"https://developer-staging.secfix.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/developer-staging-secfix/Q-9vTGgOSlO8yeFU/logo/light.svg?fit=max\u0026auto=format\u0026n=Q-9vTGgOSlO8yeFU\u0026q=85\u0026s=b6e2ca2f07e816208bdf37e60752ad07\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer-staging.secfix.com#website\",\"name\":\"Secfix Developers (Staging)\",\"url\":\"https://developer-staging.secfix.com\",\"publisher\":{\"@id\":\"https://developer-staging.secfix.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer-staging.secfix.com/api-reference/inventory/update-assets-in-a-batch#webpage\",\"url\":\"https://developer-staging.secfix.com/api-reference/inventory/update-assets-in-a-batch\",\"name\":\"Update assets in a batch\",\"description\":\"Updates up to 100 CUSTOM or INFORMATION assets in one request, each with its own values. Each record is saved on its own, so one invalid record doesn't stop the others. The response is 200 with one result per record, in request order. An unknown id fails with not_found. Any other asset (a computer, cloud resource or employee) fails with resource_not_writable. Records follow the bulk edit rules of the Secfix app. Some fields can't be bulk-edited in some categories: the field isn't configured for the category, a Secfix tag sets it, or it's marked not editable. This can include classification. Such a field is skipped and listed in skippedFields, and the other fields are saved, so the record is still SUCCESS. If every change in a record is skipped, nothing is saved and the record fails with not_editable. The single-asset PATCH rejects such a field with validation_failed instead. tags aren't supported in a batch; use the single-asset PATCH. Each id can appear only once. A batch counts as one write request for rate limiting. Requires the all:write scope.\",\"dateModified\":\"2026-11-04T15:17:32.785Z\",\"isPartOf\":{\"@id\":\"https://developer-staging.secfix.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer-staging.secfix.com/api-reference/inventory/update-assets-in-a-batch#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer-staging.secfix.com/api-reference/inventory/update-assets-in-a-batch#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://developer-staging.secfix.com/api-reference/oauth/get-an-access-token\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Inventory\",\"item\":\"https://developer-staging.secfix.com/api-reference/inventory/list-assets\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update assets in a batch\",\"item\":\"https://developer-staging.secfix.com/api-reference/inventory/update-assets-in-a-batch\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer-staging.secfix.com/api-reference/inventory/update-assets-in-a-batch#apireference\",\"headline\":\"Update assets in a batch\",\"name\":\"Update assets in a batch\",\"description\":\"Updates up to 100 CUSTOM or INFORMATION assets in one request, each with its own values. Each record is saved on its own, so one invalid record doesn't stop the others. The response is 200 with one result per record, in request order. An unknown id fails with not_found. Any other asset (a computer, cloud resource or employee) fails with resource_not_writable. Records follow the bulk edit rules of the Secfix app. Some fields can't be bulk-edited in some categories: the field isn't configured for the category, a Secfix tag sets it, or it's marked not editable. This can include classification. Such a field is skipped and listed in skippedFields, and the other fields are saved, so the record is still SUCCESS. If every change in a record is skipped, nothing is saved and the record fails with not_editable. The single-asset PATCH rejects such a field with validation_failed instead. tags aren't supported in a batch; use the single-asset PATCH. Each id can appear only once. A batch counts as one write request for rate limiting. Requires the all:write scope.\",\"url\":\"https://developer-staging.secfix.com/api-reference/inventory/update-assets-in-a-batch\",\"mainEntityOfPage\":{\"@id\":\"https://developer-staging.secfix.com/api-reference/inventory/update-assets-in-a-batch#webpage\"},\"dateModified\":\"2026-11-04T15:17:32.785Z\",\"publisher\":{\"@id\":\"https://developer-staging.secfix.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer-staging.secfix.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Secfix Developers (Staging)\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Secfix Developers (Staging)","nav":{"global":{"anchors":[{"anchor":"Support","icon":"envelope","href":"mailto:support@secfix.com"},{"anchor":"Secfix.com","icon":"globe","href":"https://secfix.com"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"Overview","href":"/api-reference/overview"}]},{"group":"Endpoints","pages":[{"group":"OAuth","pages":[{"title":"Get an access token","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /oauth/token","href":"/api-reference/oauth/get-an-access-token"}]},{"group":"Computers","pages":[{"title":"List computers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/computers","href":"/api-reference/computers/list-computers"},{"title":"Get a computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/computers/{id}","href":"/api-reference/computers/get-a-computer"}]},{"group":"Employees","pages":[{"title":"List employees","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/employees","href":"/api-reference/employees/list-employees"},{"title":"Get an employee","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/employees/{id}","href":"/api-reference/employees/get-an-employee"}]},{"group":"Groups","pages":[{"title":"List groups","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/groups","href":"/api-reference/groups/list-groups"},{"title":"Get a group","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/groups/{id}","href":"/api-reference/groups/get-a-group"}]},{"group":"Health","pages":[{"title":"Check API health","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/health","href":"/api-reference/health/check-api-health"}]},{"group":"Inventory","pages":[{"title":"List assets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/inventory/assets","href":"/api-reference/inventory/list-assets"},{"title":"Create or update an asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/inventory/assets","href":"/api-reference/inventory/create-or-update-an-asset"},{"title":"Create assets in a batch","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/inventory/assets/batch-create","href":"/api-reference/inventory/create-assets-in-a-batch"},{"title":"Delete assets in a batch","description":"Deletes up to 100 `CUSTOM` or `INFORMATION` assets in one request. Each record is processed on its own. An unknown or already deleted `id` fails with `not_found` in its result. Each `id` can appear only once. A batch counts as one write request for rate limiting. Requires the `all:write` scope.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/inventory/assets/batch-delete","href":"/api-reference/inventory/delete-assets-in-a-batch"},{"title":"Update assets in a batch","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/inventory/assets/batch-update","href":"/api-reference/inventory/update-assets-in-a-batch"},{"title":"Get an asset","description":"Requires the `all:read` scope.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/inventory/assets/{id}","href":"/api-reference/inventory/get-an-asset"},{"title":"Delete an asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/inventory/assets/{id}","href":"/api-reference/inventory/delete-an-asset"},{"title":"Update an asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/inventory/assets/{id}","href":"/api-reference/inventory/update-an-asset"},{"title":"List asset categories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/inventory/categories","href":"/api-reference/inventory/list-asset-categories"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Update assets in a batch - Secfix Developers (Staging)","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-Cj6eAYhz.js","dist-CdrJecqK.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-D-TRO5q5.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","Page-D9ithiIZ.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","AssistantPageLink-CHlcWBLM.js"]}