Update a knowledge’s attributes. Each request can include either files or sync, but not both, and files cannot be combined with semantic_indexing_enabled: true — upload files first, then enable indexing in a separate request. When files are provided, all existing data is replaced and a re-processing pipeline runs asynchronously — this consumes credits based on the volume of data processed. Setting semantic_indexing_enabled to true on SQL-only knowledge is a one-way upgrade: it enables semantic indexing, consumes credits, and triggers an asynchronous backfill of existing records. If the upgrade is persisted but the backfill fails to start, the request returns 503 — retry the backfill with POST /v1/knowledge/{knowledge_id}/reindex (repeating the PATCH will not re-trigger it, because indexing is already enabled). Metadata-only and sync-only updates do not consume credits and are not blocked by credit eligibility checks. If the asynchronous processing run later fails, subsequent retrievals surface that terminal state through status and last_error.
Files added in a multipart update must respect your plan’s per-file size limit. Oversized files receive 413 (payload_too_large); see Knowledge upload limits for typical caps and strategies.
The visibility scope of the knowledge. 'teamspace' means visible only within the owning teamspace. 'organization' means visible across all teamspaces in the same organization.
The files to replace existing knowledge. When provided, all existing data will be removed from the knowledge and replaced with these files. Supported media types are pdf, json, csv, text, png, jpeg, excel, google sheets, docx, pptx. Cannot be used together with sync in the same request.
Sync configuration updates for knowledge created from a connection. Note: For multipart/form-data, this should be sent as a JSON string. Cannot be used together with files in the same request.
Whether semantic indexing is enabled for this knowledge. Set to true to upgrade SQL-only knowledge so existing and future records are semantically indexed. This transition is one-way: setting false is rejected, as is combining it with files. Omitted leaves indexing unchanged. Already-indexed knowledge is a no-op.
Response
Successfully updated knowledge
The knowledge object represents knowledge that an agent may leverage to respond.
The visibility scope of the knowledge. 'teamspace' means visible only within the owning teamspace. 'organization' means visible across all teamspaces in the same organization.
The current knowledge status. pending indicates that processing has started but no rows have reached a terminal state yet (none learned, none failed). partial indicates that processing has not finished for every row — some rows may already be learned or failed while others are still being processed. ready indicates that processing has finished and the knowledge is available for use; some individual rows may have failed to process, so check row_counts.failed. failed indicates that no rows are currently available and the knowledge reached a terminal failure state, either because the latest asynchronous processing or re-index run ended unsuccessfully before any rows became available, or because every row ended in a persistent failed state.
The last terminal processing error for this knowledge, if any. Present when the latest asynchronous processing or re-index run ended unsuccessfully; null when the knowledge is failed only because every row ended in a persistent failed state.
Credit consumption for this knowledge. null when the knowledge is still being processed and the final cost is not yet known (e.g. immediately after creation or reindexing), or when the credit lookup fails. When present, consumed is the current summed spend for the knowledge's active tables — it is not necessarily the cost of the most recent request, nor the full lifetime spend.
The ISO string for when the knowledge was last updated.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Datagrid AI","colors":{"primary":"#000000","light":"#ffbc4d","dark":"#ffbc4d"},"logo":{"light":"https://mintcdn.com/datagrid/3IQk8fJ69KvSFDfU/images/datagrid-logo-light.svg?fit=max\u0026auto=format\u0026n=3IQk8fJ69KvSFDfU\u0026q=85\u0026s=c4274428e9b371bf09005fa9db0ed804","dark":"https://mintcdn.com/datagrid/3IQk8fJ69KvSFDfU/images/datagrid-logo-dark.svg?fit=max\u0026auto=format\u0026n=3IQk8fJ69KvSFDfU\u0026q=85\u0026s=2ef6295f04b1f337c487f26665adc131","href":"https://datagrid.com/"},"favicon":"https://mintcdn.com/datagrid/3IQk8fJ69KvSFDfU/favicon.svg?fit=max\u0026auto=format\u0026n=3IQk8fJ69KvSFDfU\u0026q=85\u0026s=347899b9390b1be995b97d69e8f3e053","api":{"openapi":"datagrid-ai-open-api.yaml","playground":{"display":"interactive"},"examples":{"languages":["python","javascript","bash"]},"mdx":{"server":"https://api.datagrid.com"}},"background":{"decoration":"windows"},"navbar":{"links":[{"href":"mailto:support@datagrid.com","label":"Support"}],"primary":{"type":"button","label":"Get your API Key","href":"https://app.datagrid.com/chats?at=chats\u0026st=api_keys\u0026redirect_url=chats?at=chats%26st=api_keys"}},"footer":{"socials":{"github":"https://github.com/DatagridAI","linkedin":"https://linkedin.com/company/Datagrid-AI","slack":"https://join.slack.com/t/datagrid-users/shared_invite/zt-2tl2omd78-qO8zHN5_sK39_lRsyZA4Dg"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Get your API Key","icon":"code","href":"https://app.datagrid.com/chats?at=chats\u0026st=api_keys\u0026redirect_url=chats?at=chats%26st=api_keys"},{"anchor":"Join us on Slack","icon":"slack","href":"https://join.slack.com/t/datagrid-users/shared_invite/zt-2tl2omd78-qO8zHN5_sK39_lRsyZA4Dg"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"datagrid","hasAudioNarration":false,"actualSubdomain":"datagrid","customDomains":["developers.datagrid.com"],"gitSource":{"type":"github","owner":"toriclabs","repo":"main","deployBranch":"mintlify-prod-docs","contentDirectory":"docs/datagrid-ai","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af4e68f302e8bd275dbecaf","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":176},{"language":"default","tag":"Knowledge","count":20},{"language":"default","tag":"Organization","count":19},{"language":"default","tag":"Channels","count":16},{"language":"default","tag":"Skills","count":12},{"language":"default","tag":"Agents","count":9},{"language":"default","tag":"Converse","count":8},{"language":"default","tag":"MCP Servers - Beta","count":8},{"language":"default","tag":"Batch Predictions","count":7},{"language":"default","tag":"Data Views","count":7}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".token{text-wrap:auto}"}],"page":{"pagePath":"api-reference/knowledge/update-knowledge","slug":"/api-reference/knowledge/update-knowledge","pageMetadata":{"openapi":"patch /knowledge/{knowledge_id}","title":"Update knowledge","description":"Update a knowledge's attributes. Each request can include either `files` or `sync`, but not both, and `files` cannot be combined with `semantic_indexing_enabled: true` — upload files first, then enable indexing in a separate request. When `files` are provided, all existing data is replaced and a re-processing pipeline runs asynchronously — this consumes credits based on the volume of data processed. Setting `semantic_indexing_enabled` to `true` on SQL-only knowledge is a one-way upgrade: it enables semantic indexing, consumes credits, and triggers an asynchronous backfill of existing records. If the upgrade is persisted but the backfill fails to start, the request returns `503` — retry the backfill with `POST /v1/knowledge/{knowledge_id}/reindex` (repeating the PATCH will not re-trigger it, because indexing is already enabled). Metadata-only and sync-only updates do not consume credits and are not blocked by credit eligibility checks. If the asynchronous processing run later fails, subsequent retrievals surface that terminal state through `status` and `last_error`.","href":"/api-reference/knowledge/update-knowledge"},"description":{"compiledSource":"\"use strict\";\nconst {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(_components.p, {\n children: [\"Update a knowledge’s attributes. Each request can include either \", _jsx(_components.code, {\n children: \"files\"\n }), \" or \", _jsx(_components.code, {\n children: \"sync\"\n }), \", but not both, and \", _jsx(_components.code, {\n children: \"files\"\n }), \" cannot be combined with \", _jsx(_components.code, {\n children: \"semantic_indexing_enabled: true\"\n }), \" — upload files first, then enable indexing in a separate request. When \", _jsx(_components.code, {\n children: \"files\"\n }), \" are provided, all existing data is replaced and a re-processing pipeline runs asynchronously — this consumes credits based on the volume of data processed. Setting \", _jsx(_components.code, {\n children: \"semantic_indexing_enabled\"\n }), \" to \", _jsx(_components.code, {\n children: \"true\"\n }), \" on SQL-only knowledge is a one-way upgrade: it enables semantic indexing, consumes credits, and triggers an asynchronous backfill of existing records. If the upgrade is persisted but the backfill fails to start, the request returns \", _jsx(_components.code, {\n children: \"503\"\n }), \" — retry the backfill with \", _jsx(_components.code, {\n children: \"POST /v1/knowledge/{knowledge_id}/reindex\"\n }), \" (repeating the PATCH will not re-trigger it, because indexing is already enabled). Metadata-only and sync-only updates do not consume credits and are not blocked by credit eligibility checks. If the asynchronous processing run later fails, subsequent retrievals surface that terminal state through \", _jsx(_components.code, {\n children: \"status\"\n }), \" and \", _jsx(_components.code, {\n children: \"last_error\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`upload-size-limits`,children:`Upload size limits`}),`\n`,_jsxs(_components.p,{children:[`Files added in a multipart update must respect your plan’s per-file size limit. Oversized files receive `,_jsx(_components.strong,{children:`413`}),` (`,_jsx(_components.code,{children:`payload_too_large`}),`); see `,_jsx(_components.a,{href:`/knowledge/upload-limits`,children:`Knowledge upload limits`}),` for typical caps and strategies.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"patch /knowledge/{knowledge_id}","title":"Update knowledge","description":"Update a knowledge's attributes. Each request can include either `files` or `sync`, but not both, and `files` cannot be combined with `semantic_indexing_enabled: true` — upload files first, then enable indexing in a separate request. When `files` are provided, all existing data is replaced and a re-processing pipeline runs asynchronously — this consumes credits based on the volume of data processed. Setting `semantic_indexing_enabled` to `true` on SQL-only knowledge is a one-way upgrade: it enables semantic indexing, consumes credits, and triggers an asynchronous backfill of existing records. If the upgrade is persisted but the backfill fails to start, the request returns `503` — retry the backfill with `POST /v1/knowledge/{knowledge_id}/reindex` (repeating the PATCH will not re-trigger it, because indexing is already enabled). Metadata-only and sync-only updates do not consume credits and are not blocked by credit eligibility checks. If the asynchronous processing run later fails, subsequent retrievals surface that terminal state through `status` and `last_error`.","href":"/api-reference/knowledge/update-knowledge"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Upload size limits","slug":"upload-size-limits","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/datagrid/63000a1b04510866/tools/jest.config.js"],"openApiReferenceData":{"operation":{"summary":"Update knowledge","operationId":"Knowledge.updateKnowledge","description":"Update a knowledge's attributes. Each request can include either `files` or `sync`, but not both, and `files` cannot be combined with `semantic_indexing_enabled: true` — upload files first, then enable indexing in a separate request. When `files` are provided, all existing data is replaced and a re-processing pipeline runs asynchronously — this consumes credits based on the volume of data processed. Setting `semantic_indexing_enabled` to `true` on SQL-only knowledge is a one-way upgrade: it enables semantic indexing, consumes credits, and triggers an asynchronous backfill of existing records. If the upgrade is persisted but the backfill fails to start, the request returns `503` — retry the backfill with `POST /v1/knowledge/{knowledge_id}/reindex` (repeating the PATCH will not re-trigger it, because indexing is already enabled). Metadata-only and sync-only updates do not consume credits and are not blocked by credit eligibility checks. If the asynchronous processing run later fails, subsequent retrievals surface that terminal state through `status` and `last_error`.","tags":["Knowledge"],"parameters":["2d0cc856-350e-4cce-aa35-8e8f993e779d"],"requestBody":"6a6d2b44-e5fd-4039-af33-2504829b3afa","responses":{"200":"62df9737-10c4-4fbe-9379-2ad9d0580a92","402":"08d7d842-21ff-48e6-a44c-d181c1f616da","404":"6e6822b1-c876-4eef-a5ad-8f32369a1ecd","413":"0bec2167-0d2c-4a4b-afd4-b47627a3694b","429":"3d087d1c-2bd1-45d7-9835-719a6f656842","503":"adf2f0de-1ae6-4bc6-908e-1a79e08c3a85"},"method":"patch","type":"path","servers":["a6cc03be-b719-4a1e-a609-8e10688b07cc"],"security":["ec51e5cf-b834-466e-8dd3-9e22c9f1b047"],"path":"/knowledge/{knowledge_id}","baseUrlOptions":["https://api.datagrid.com/v1"],"title":"Update knowledge","codeSamples":[],"requestExampleLanguages":["python","javascript","bash"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"2d0cc856-350e-4cce-aa35-8e8f993e779d":{"name":"knowledge_id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"The id of the knowledge to update.","uniqueKey":"","typeLabel":"string"},"description":"The id of the knowledge to update."}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The new name for the `knowledge`.","uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The new name for the `knowledge`.","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"scope":{"oneOf":[{"type":"string","enum":["teamspace","organization"],"description":"The visibility scope of the knowledge. 'teamspace' means visible only within the owning teamspace. 'organization' means visible across all teamspaces in the same organization.","uniqueKey":"scope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["teamspace","organization"],"description":"The visibility scope of the knowledge. 'teamspace' means visible only within the owning teamspace. 'organization' means visible across all teamspaces in the same organization.","uniqueKey":"scope.oneOf.1","typeLabel":"null"}],"uniqueKey":"scope","typeLabel":"enum\u003cstring> | null"},"parent":{"oneOf":[{"type":"object","description":"The parent page reference, indicating where this page is nested","required":["type","page_id"],"properties":{"type":{"type":"string","enum":["page"],"description":"The type of parent. 'page' indicates nested under a specific page","isRequired":true,"uniqueKey":"parent.oneOf.0.type","typeLabel":"enum\u003cstring>"},"page_id":{"type":"string","description":"The ID of the parent page. Required when type is 'page'","isRequired":true,"uniqueKey":"parent.oneOf.0.page_id","typeLabel":"string"}},"uniqueKey":"parent.oneOf.0","typeLabel":"object"},{"type":"object","description":"The root level object","required":["type"],"properties":{"type":{"type":"string","enum":["root"],"description":"The type of parent. 'root' indicates at the root level","isRequired":true,"uniqueKey":"parent.oneOf.1.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"parent.oneOf.1","typeLabel":"object"},{"type":"null","uniqueKey":"parent.oneOf.2","typeLabel":"null"}],"uniqueKey":"parent","typeLabel":"object · object · null"},"files":{"oneOf":[{"type":"array","items":{"type":"string","format":"binary","uniqueKey":"files.oneOf.0.items.[INDEX]","typeLabel":"file"},"description":"The files to replace existing knowledge. When provided, all existing data will be removed from the knowledge and replaced with these files. Supported media types are `pdf`, `json`, `csv`, `text`, `png`, `jpeg`, `excel`, `google sheets`, `docx`, `pptx`. Cannot be used together with `sync` in the same request.","uniqueKey":"files.oneOf.0","typeLabel":"file[]"},{"type":"null","items":{"type":"string","format":"binary"},"description":"The files to replace existing knowledge. When provided, all existing data will be removed from the knowledge and replaced with these files. Supported media types are `pdf`, `json`, `csv`, `text`, `png`, `jpeg`, `excel`, `google sheets`, `docx`, `pptx`. Cannot be used together with `sync` in the same request.","uniqueKey":"files.oneOf.1","typeLabel":"null"}],"uniqueKey":"files","typeLabel":"file[] | null"},"sync":{"oneOf":[{"type":"object","description":"Sync configuration updates for knowledge created from a connection. Note: For multipart/form-data, this should be sent as a JSON string. Cannot be used together with `files` in the same request.","properties":{"enabled":{"type":"boolean","description":"Enable or disable syncing data from the connection","uniqueKey":"sync.oneOf.0.enabled","typeLabel":"boolean"},"trigger":{"type":"object","description":"Update the trigger to a cron schedule. Only CronBasedTrigger is supported for updates.","required":["type","cron_expression"],"properties":{"type":{"type":"string","enum":["cron"],"description":"The trigger type, which is always `cron`.","isRequired":true,"uniqueKey":"sync.oneOf.0.trigger.type","typeLabel":"enum\u003cstring>"},"cron_expression":{"type":"string","description":"Cron expression (e.g., '0 0 * * *' for daily at midnight)","example":"0 0 * * *","pattern":"^[0-9*/-]+ [0-9*/-]+ [0-9*/-]+ [0-9*/-]+ [0-9*/-]+$","isRequired":true,"uniqueKey":"sync.oneOf.0.trigger.cron_expression","typeLabel":"string"},"timezone":{"type":"string","description":"IANA timezone (e.g., 'America/New_York'). Defaults to 'UTC' if not provided.","example":"America/New_York","default":"UTC","uniqueKey":"sync.oneOf.0.trigger.timezone","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Human-readable description of the schedule","uniqueKey":"sync.oneOf.0.trigger.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable description of the schedule","uniqueKey":"sync.oneOf.0.trigger.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"sync.oneOf.0.trigger.description","typeLabel":"string | null"}},"uniqueKey":"sync.oneOf.0.trigger","typeLabel":"object"}},"uniqueKey":"sync.oneOf.0","typeLabel":"object"},{"type":"null","description":"Sync configuration updates for knowledge created from a connection. Note: For multipart/form-data, this should be sent as a JSON string. Cannot be used together with `files` in the same request.","properties":{"enabled":{"type":"boolean","description":"Enable or disable syncing data from the connection"},"trigger":{"type":"object","description":"Update the trigger to a cron schedule. Only CronBasedTrigger is supported for updates.","required":["type","cron_expression"],"properties":{"type":{"type":"string","enum":["cron"],"description":"The trigger type, which is always `cron`."},"cron_expression":{"type":"string","description":"Cron expression (e.g., '0 0 * * *' for daily at midnight)","example":"0 0 * * *","pattern":"^[0-9*/-]+ [0-9*/-]+ [0-9*/-]+ [0-9*/-]+ [0-9*/-]+$"},"timezone":{"type":"string","description":"IANA timezone (e.g., 'America/New_York'). Defaults to 'UTC' if not provided.","example":"America/New_York","default":"UTC"},"description":{"oneOf":[{"type":"string","description":"Human-readable description of the schedule"},{"type":"null","description":"Human-readable description of the schedule"}]}}}},"uniqueKey":"sync.oneOf.1","typeLabel":"null"}],"uniqueKey":"sync","typeLabel":"object | null"},"semantic_indexing_enabled":{"oneOf":[{"type":"boolean","description":"Whether semantic indexing is enabled for this knowledge. Set to `true` to upgrade SQL-only knowledge so existing and future records are semantically indexed. This transition is one-way: setting `false` is rejected, as is combining it with `files`. Omitted leaves indexing unchanged. Already-indexed knowledge is a no-op.","uniqueKey":"semantic_indexing_enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether semantic indexing is enabled for this knowledge. Set to `true` to upgrade SQL-only knowledge so existing and future records are semantically indexed. This transition is one-way: setting `false` is rejected, as is combining it with `files`. Omitted leaves indexing unchanged. Already-indexed knowledge is a no-op.","uniqueKey":"semantic_indexing_enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"semantic_indexing_enabled","typeLabel":"boolean | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","parent":{"type":"page","page_id":"\u003cstring>"},"files":["\u003cstring>"],"sync":{"enabled":true},"semantic_indexing_enabled":true}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"62df9737-10c4-4fbe-9379-2ad9d0580a92":{"description":"Successfully updated knowledge","content":{"application/json":{"schema":{"type":"object","description":"The `knowledge` object represents knowledge that an agent may leverage to respond.","required":["object","id","name","created_at","status","last_error","row_counts","credits","sync","parent","teamspace_id","scope","default_indexing_quality"],"properties":{"object":{"type":"string","enum":["knowledge"],"description":"The object type, which is always `knowledge`.","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"The knowledge identifier, which can be referenced in the API endpoints.","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"name":{"type":"string","description":"The name of the knowledge.","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"teamspace_id":{"type":"string","description":"The ID of the teamspace that owns this knowledge.","isRequired":true,"uniqueKey":"teamspace_id","typeLabel":"string"},"scope":{"type":"string","enum":["teamspace","organization"],"description":"The visibility scope of the knowledge. 'teamspace' means visible only within the owning teamspace. 'organization' means visible across all teamspaces in the same organization.","isRequired":true,"uniqueKey":"scope","typeLabel":"enum\u003cstring>"},"default_indexing_quality":{"oneOf":[{"type":"string","description":"The knowledge-level indexing override. `none` means semantic indexing is disabled; `null` means Datagrid uses its normal indexing defaults.","enum":["none"],"isRequired":true,"uniqueKey":"default_indexing_quality.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","isRequired":true,"uniqueKey":"default_indexing_quality.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"default_indexing_quality","typeLabel":"enum\u003cstring> | null"},"parent":{"oneOf":[{"type":"object","description":"The parent page reference, indicating where this page is nested","required":["type","page_id"],"properties":{"type":{"type":"string","enum":["page"],"description":"The type of parent. 'page' indicates nested under a specific page","isRequired":true,"uniqueKey":"parent.oneOf.0.type","typeLabel":"enum\u003cstring>"},"page_id":{"type":"string","description":"The ID of the parent page. Required when type is 'page'","isRequired":true,"uniqueKey":"parent.oneOf.0.page_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"parent.oneOf.0","typeLabel":"object"},{"type":"object","description":"The root level object","required":["type"],"properties":{"type":{"type":"string","enum":["root"],"description":"The type of parent. 'root' indicates at the root level","isRequired":true,"uniqueKey":"parent.oneOf.1.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"parent.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"parent","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","description":"The ISO string for when the knowledge was created.","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"status":{"type":"string","enum":["pending","partial","ready","failed"],"description":"The current knowledge status. `pending` indicates that processing has started but no rows have reached a terminal state yet (none learned, none failed). `partial` indicates that processing has not finished for every row — some rows may already be learned or failed while others are still being processed. `ready` indicates that processing has finished and the knowledge is available for use; some individual rows may have failed to process, so check `row_counts.failed`. `failed` indicates that no rows are currently available and the knowledge reached a terminal failure state, either because the latest asynchronous processing or re-index run ended unsuccessfully before any rows became available, or because every row ended in a persistent failed state.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"last_error":{"oneOf":[{"type":"object","description":"The last terminal processing error for this knowledge, if any. Present when the latest asynchronous processing or re-index run ended unsuccessfully; `null` when the knowledge is `failed` only because every row ended in a persistent failed state.","required":["code","message"],"properties":{"code":{"type":"string","enum":["out_of_credits","unauthorized","processing_error"],"description":"A machine-readable error code for the most recent terminal processing failure.","isRequired":true,"uniqueKey":"last_error.oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"A human-readable description of the most recent terminal processing failure.","isRequired":true,"uniqueKey":"last_error.oneOf.0.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"last_error.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"last_error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"last_error","typeLabel":"object | null"},"row_counts":{"type":"object","description":"Row count statistics for the knowledge.","required":["total","completed","failed"],"properties":{"total":{"type":"number","description":"The total number of rows in the knowledge.","isRequired":true,"uniqueKey":"row_counts.total","typeLabel":"number"},"completed":{"type":"number","description":"The number of rows successfully learned.","isRequired":true,"uniqueKey":"row_counts.completed","typeLabel":"number"},"failed":{"type":"number","description":"The number of rows that failed to be processed for learning.","isRequired":true,"uniqueKey":"row_counts.failed","typeLabel":"number"}},"isRequired":true,"uniqueKey":"row_counts","typeLabel":"object"},"credits":{"oneOf":[{"type":"object","description":"Credit consumption for this knowledge. `null` when the knowledge is still being processed and the final cost is not yet known (e.g. immediately after creation or reindexing), or when the credit lookup fails. When present, `consumed` is the current summed spend for the knowledge's active tables — it is not necessarily the cost of the most recent request, nor the full lifetime spend.","required":["consumed"],"properties":{"consumed":{"type":"number","description":"The number of credits consumed by the operation.","isRequired":true,"uniqueKey":"credits.oneOf.0.consumed","typeLabel":"number"}},"isRequired":true,"uniqueKey":"credits.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"credits.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"credits","typeLabel":"object | null"},"sync":{"oneOf":[{"type":"object","description":"Sync information for knowledge that syncs data from a connection","required":["connection_id","enabled"],"properties":{"connection_id":{"type":"string","description":"The ID of the connection used for syncing data to this knowledge","example":"config_123abc","isRequired":true,"uniqueKey":"sync.oneOf.0.connection_id","typeLabel":"string"},"enabled":{"type":"boolean","description":"Whether data syncing from the connection is enabled","isRequired":true,"uniqueKey":"sync.oneOf.0.enabled","typeLabel":"boolean"},"trigger":{"oneOf":[{"type":"object","description":"The cron schedule configuration for syncing data from the connection.","required":["type","cron_expression"],"properties":{"type":{"type":"string","enum":["cron"],"description":"The trigger type, which is always `cron`.","isRequired":true,"uniqueKey":"sync.oneOf.0.trigger.oneOf.0.type","typeLabel":"enum\u003cstring>"},"cron_expression":{"type":"string","description":"Cron expression (e.g., '0 0 * * *' for daily at midnight)","example":"0 0 * * *","pattern":"^[0-9*/-]+ [0-9*/-]+ [0-9*/-]+ [0-9*/-]+ [0-9*/-]+$","isRequired":true,"uniqueKey":"sync.oneOf.0.trigger.oneOf.0.cron_expression","typeLabel":"string"},"timezone":{"type":"string","description":"IANA timezone (e.g., 'America/New_York'). Defaults to 'UTC' if not provided.","example":"America/New_York","default":"UTC","uniqueKey":"sync.oneOf.0.trigger.oneOf.0.timezone","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Human-readable description of the schedule","uniqueKey":"sync.oneOf.0.trigger.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable description of the schedule","uniqueKey":"sync.oneOf.0.trigger.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"sync.oneOf.0.trigger.oneOf.0.description","typeLabel":"string | null"}},"uniqueKey":"sync.oneOf.0.trigger.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"sync.oneOf.0.trigger.oneOf.1","typeLabel":"null"}],"uniqueKey":"sync.oneOf.0.trigger","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"sync.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"sync.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sync","typeLabel":"object | null"},"updated_at":{"type":"string","format":"date-time","description":"The ISO string for when the knowledge was last updated.","uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"knowledge","id":"\u003cstring>","name":"\u003cstring>","teamspace_id":"\u003cstring>","scope":"teamspace","default_indexing_quality":"none","parent":{"type":"page","page_id":"\u003cstring>"},"created_at":"2023-11-07T05:31:56Z","status":"pending","last_error":{"code":"out_of_credits","message":"\u003cstring>"},"row_counts":{"total":123,"completed":123,"failed":123},"credits":{"consumed":123},"sync":{"connection_id":"config_123abc","enabled":true,"trigger":{"type":"cron","cron_expression":"0 0 * * *","timezone":"America/New_York","description":"\u003cstring>"}},"updated_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"08d7d842-21ff-48e6-a44c-d181c1f616da":{"description":"Credit limit exceeded. When a PATCH request includes files or enables semantic indexing on SQL-only knowledge, the organization must have enough credits to perform the operation and must not have reached the monthly credit cap set in Control Tower. Check your billing status, or wait for the cap to reset.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"6e6822b1-c876-4eef-a5ad-8f32369a1ecd":{"description":"Not found. The requested knowledge does not exist, or the authenticated user does not have permission to access it.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"0bec2167-0d2c-4a4b-afd4-b47627a3694b":{"description":"Payload too large. A file in the multipart body exceeds the per-file byte cap for the the teamspace's current plan.\n","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"3d087d1c-2bd1-45d7-9835-719a6f656842":{"description":"Rate limit exceeded. The request has been throttled because the rate limit for this endpoint has been reached. Check the `Retry-After` response header and retry after the specified number of seconds.","content":{"application/json":{"schema":{"type":"object","description":"Returned when the rate limit is exceeded. Rate limits are enforced per teamspace, endpoint path, and HTTP method over a 60-second sliding window. Each endpoint may have its own limit — check the X-RateLimit-Limit response header for the effective value.","required":["error","message","retryable","status_code"],"properties":{"status_code":{"type":"integer","description":"The HTTP status code (429).","isRequired":true,"uniqueKey":"status_code","typeLabel":"integer"},"error":{"type":"string","enum":["rate_limit_exceeded"],"description":"The error code identifying this as a rate limit error.","isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"A human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"retryable":{"type":"boolean","description":"Whether the request can be retried after a delay.","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"statusCode":{"type":"integer","deprecated":true,"description":"Deprecated. Use status_code instead.","uniqueKey":"statusCode","typeLabel":"integer"},"mitigation":{"type":"string","description":"Suggested action to resolve the error.","uniqueKey":"mitigation","typeLabel":"string"},"details":{"type":"object","properties":{"reason":{"type":"string","description":"A detailed explanation of why the rate limit was exceeded.","uniqueKey":"details.reason","typeLabel":"string"}},"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status_code":123,"error":"rate_limit_exceeded","message":"\u003cstring>","retryable":true,"statusCode":123,"mitigation":"\u003cstring>","details":{"reason":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"adf2f0de-1ae6-4bc6-908e-1a79e08c3a85":{"description":"Service unavailable. Semantic indexing was enabled and persisted, but the backfill of existing records could not be started. Retry the backfill with `POST /v1/knowledge/{knowledge_id}/reindex`.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"ec51e5cf-b834-466e-8dd3-9e22c9f1b047":{"BearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"a6cc03be-b719-4a1e-a609-8e10688b07cc":{"url":"https://api.datagrid.com/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"datagrid-ai-open-api.yaml"},"subdomain":"datagrid","siteName":"Datagrid AI","title":"Update knowledge - Datagrid AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-04T01:13:58.154Z","originalFileLocation":"api-reference/knowledge/update-knowledge.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=\"Update a knowledge\u0026#x27;s attributes. Each request can include either files or sync, but not both, and files cannot be combined with semantic_indexing_enabled: true — upload files first, then enable indexing in a separate request. When files are provided, all existing data is replaced and a re-processing pipeline runs asynchronously — this consumes credits based on the volume of data processed. Setting semantic_indexing_enabled to true on SQL-only knowledge is a one-way upgrade: it enables semantic indexing, consumes credits, and triggers an asynchronous backfill of existing records. If the upgrade is persisted but the backfill fails to start, the request returns 503 — retry the backfill with POST /v1/knowledge/{knowledge_id}/reindex (repeating the PATCH will not re-trigger it, because indexing is already enabled). Metadata-only and sync-only updates do not consume credits and are not blocked by credit eligibility checks. If the asynchronous processing run later fails, subsequent retrievals surface that terminal state through status and last_error.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Datagrid AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/datagrid/rhNSAymIRcJFenDe/_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/datagrid/rhNSAymIRcJFenDe/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/datagrid/rhNSAymIRcJFenDe/_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/datagrid/rhNSAymIRcJFenDe/_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/datagrid/rhNSAymIRcJFenDe/_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/datagrid/rhNSAymIRcJFenDe/_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/datagrid/rhNSAymIRcJFenDe/_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/datagrid/rhNSAymIRcJFenDe/_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/datagrid/rhNSAymIRcJFenDe/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update knowledge - Datagrid AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Update a knowledge\u0026#x27;s attributes. Each request can include either files or sync, but not both, and files cannot be combined with semantic_indexing_enabled: true — upload files first, then enable indexing in a separate request. When files are provided, all existing data is replaced and a re-processing pipeline runs asynchronously — this consumes credits based on the volume of data processed. Setting semantic_indexing_enabled to true on SQL-only knowledge is a one-way upgrade: it enables semantic indexing, consumes credits, and triggers an asynchronous backfill of existing records. If the upgrade is persisted but the backfill fails to start, the request returns 503 — retry the backfill with POST /v1/knowledge/{knowledge_id}/reindex (repeating the PATCH will not re-trigger it, because indexing is already enabled). Metadata-only and sync-only updates do not consume credits and are not blocked by credit eligibility checks. If the asynchronous processing run later fails, subsequent retrievals surface that terminal state through status and last_error.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Datagrid AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.datagrid.com/api-reference/knowledge/update-knowledge\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://datagrid.mintlify.site/_mintlify/api/og/v2?division=Knowledge\u0026amp;title=Update+knowledge\u0026amp;description=Update+a+knowledge%27s+attributes.+Each+request+can+include+either+%60files%60+or+%60sync%60%2C+but+not+both%2C+and+%60files%60+cannot+be+combined+with+%60semantic_indexing_enabled\u0026amp;theme=06bd8f76b3fa654bb45ee804\u0026amp;signature=b395228bb5c03525da39351cfa5816e0846b1eb676c0476e56bfcdcfa1d930ed\">\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 knowledge - Datagrid AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Update a knowledge\u0026#x27;s attributes. Each request can include either files or sync, but not both, and files cannot be combined with semantic_indexing_enabled: true — upload files first, then enable indexing in a separate request. When files are provided, all existing data is replaced and a re-processing pipeline runs asynchronously — this consumes credits based on the volume of data processed. Setting semantic_indexing_enabled to true on SQL-only knowledge is a one-way upgrade: it enables semantic indexing, consumes credits, and triggers an asynchronous backfill of existing records. If the upgrade is persisted but the backfill fails to start, the request returns 503 — retry the backfill with POST /v1/knowledge/{knowledge_id}/reindex (repeating the PATCH will not re-trigger it, because indexing is already enabled). Metadata-only and sync-only updates do not consume credits and are not blocked by credit eligibility checks. If the asynchronous processing run later fails, subsequent retrievals surface that terminal state through status and last_error.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://datagrid.mintlify.site/_mintlify/api/og/v2?division=Knowledge\u0026amp;title=Update+knowledge\u0026amp;description=Update+a+knowledge%27s+attributes.+Each+request+can+include+either+%60files%60+or+%60sync%60%2C+but+not+both%2C+and+%60files%60+cannot+be+combined+with+%60semantic_indexing_enabled\u0026amp;theme=06bd8f76b3fa654bb45ee804\u0026amp;signature=b395228bb5c03525da39351cfa5816e0846b1eb676c0476e56bfcdcfa1d930ed\">\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/datagrid/rhNSAymIRcJFenDe/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Datagrid AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.datagrid.com/api-reference/knowledge/update-knowledge\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/knowledge/update-knowledge.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.datagrid.com/#organization\",\"name\":\"Datagrid AI\",\"url\":\"https://developers.datagrid.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/datagrid/3IQk8fJ69KvSFDfU/images/datagrid-logo-light.svg?fit=max\u0026auto=format\u0026n=3IQk8fJ69KvSFDfU\u0026q=85\u0026s=c4274428e9b371bf09005fa9db0ed804\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.datagrid.com#website\",\"name\":\"Datagrid AI\",\"url\":\"https://developers.datagrid.com\",\"publisher\":{\"@id\":\"https://developers.datagrid.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.datagrid.com/api-reference/knowledge/update-knowledge#webpage\",\"url\":\"https://developers.datagrid.com/api-reference/knowledge/update-knowledge\",\"name\":\"Update knowledge\",\"description\":\"Update a knowledge's attributes. Each request can include either files or sync, but not both, and files cannot be combined with semantic_indexing_enabled: true — upload files first, then enable indexing in a separate request. When files are provided, all existing data is replaced and a re-processing pipeline runs asynchronously — this consumes credits based on the volume of data processed. Setting semantic_indexing_enabled to true on SQL-only knowledge is a one-way upgrade: it enables semantic indexing, consumes credits, and triggers an asynchronous backfill of existing records. If the upgrade is persisted but the backfill fails to start, the request returns 503 — retry the backfill with POST /v1/knowledge/{knowledge_id}/reindex (repeating the PATCH will not re-trigger it, because indexing is already enabled). Metadata-only and sync-only updates do not consume credits and are not blocked by credit eligibility checks. If the asynchronous processing run later fails, subsequent retrievals surface that terminal state through status and last_error.\",\"dateModified\":\"2026-09-04T01:13:58.154Z\",\"isPartOf\":{\"@id\":\"https://developers.datagrid.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.datagrid.com/api-reference/knowledge/update-knowledge#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.datagrid.com/api-reference/knowledge/update-knowledge#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge\",\"item\":\"https://developers.datagrid.com/api-reference/knowledge/create-knowledge\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update knowledge\",\"item\":\"https://developers.datagrid.com/api-reference/knowledge/update-knowledge\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.datagrid.com/api-reference/knowledge/update-knowledge#apireference\",\"headline\":\"Update knowledge\",\"name\":\"Update knowledge\",\"description\":\"Update a knowledge's attributes. Each request can include either files or sync, but not both, and files cannot be combined with semantic_indexing_enabled: true — upload files first, then enable indexing in a separate request. When files are provided, all existing data is replaced and a re-processing pipeline runs asynchronously — this consumes credits based on the volume of data processed. Setting semantic_indexing_enabled to true on SQL-only knowledge is a one-way upgrade: it enables semantic indexing, consumes credits, and triggers an asynchronous backfill of existing records. If the upgrade is persisted but the backfill fails to start, the request returns 503 — retry the backfill with POST /v1/knowledge/{knowledge_id}/reindex (repeating the PATCH will not re-trigger it, because indexing is already enabled). Metadata-only and sync-only updates do not consume credits and are not blocked by credit eligibility checks. If the asynchronous processing run later fails, subsequent retrievals surface that terminal state through status and last_error.\",\"url\":\"https://developers.datagrid.com/api-reference/knowledge/update-knowledge\",\"mainEntityOfPage\":{\"@id\":\"https://developers.datagrid.com/api-reference/knowledge/update-knowledge#webpage\"},\"dateModified\":\"2026-09-04T01:13:58.154Z\",\"publisher\":{\"@id\":\"https://developers.datagrid.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.datagrid.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Datagrid AI\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Datagrid AI\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/knowledge/update-knowledge.md","siteName":"Datagrid AI","nav":{"global":{"anchors":[{"anchor":"Get your API Key","icon":"code","href":"https://app.datagrid.com/chats?at=chats\u0026st=api_keys\u0026redirect_url=chats?at=chats%26st=api_keys"},{"anchor":"Join us on Slack","icon":"slack","href":"https://join.slack.com/t/datagrid-users/shared_invite/zt-2tl2omd78-qO8zHN5_sK39_lRsyZA4Dg"}]},"tabs":[{"tab":"API Reference","groups":[{"group":"Introduction","pages":[{"title":"Quickstart","href":"/introduction/quickstart"},{"title":"Connecting Agents to Apps","href":"/introduction/connections"},{"title":"Creating Data Views","href":"/introduction/data-views"},{"title":"Rate Limits","href":"/api-reference/rate-limits"},{"title":"Agent Server egress IPs","href":"/introduction/agent-server-egress-ips"}]},{"group":"Converse","pages":[{"title":"Getting started with Converse","href":"/api-reference/converse/converse-getting-started"},{"openapi":"post /converse","title":"Converse","href":"/api-reference/converse/converse"},{"title":"Converse Modes","href":"/api-reference/converse/modes"},{"title":"Knowledge and corpus","href":"/api-reference/converse/knowledge-and-corpus"},{"title":"Streaming","href":"/api-reference/converse/streaming"},{"title":"Structured Outputs","href":"/api-reference/converse/structured-outputs"},{"title":"File Inputs","href":"/api-reference/converse/file-inputs"},{"title":"MCP Servers (Beta)","href":"/api-reference/converse/mcp-servers"}]},{"group":"Voice","pages":[{"title":"Voice Conversations","href":"/api-reference/voice/voice"},{"title":"iOS / Swift Integration","href":"/api-reference/voice/ios-integration"},{"openapi":"post /voice","title":"Start voice session","href":"/api-reference/voice/start-voice-session"},{"openapi":"get /voice-orchestrator/tasks/{task_id}","title":"Retrieve voice orchestrator task","href":"/api-reference/voice/retrieve-voice-orchestrator-task"},{"openapi":"get /voice-orchestrator/tasks","title":"List voice orchestrator tasks","href":"/api-reference/voice/list-voice-orchestrator-tasks"},{"openapi":"patch /voice-orchestrator/tasks/{task_id}/acknowledge","title":"Acknowledge voice orchestrator task","href":"/api-reference/voice/acknowledge-voice-orchestrator-task"},{"openapi":"patch /voice-orchestrator/tasks/{task_id}/cancel","title":"Cancel voice orchestrator task","href":"/api-reference/voice/cancel-voice-orchestrator-task"}]},{"group":"Identity","pages":[{"openapi":"get /identity","title":"Retrieve current identity","href":"/api-reference/identity/retrieve-current-identity"}]},{"group":"Agents","pages":[{"title":"Getting started with Agents","href":"/api-reference/agents/agents"},{"title":"Getting the most out of agents","href":"/api-reference/agents/agent-best-practices"},{"openapi":"post /agents","title":"Create agent","href":"/api-reference/agents/create-agent"},{"openapi":"get /agents/{agent_id}","title":"Retrieve agent","href":"/api-reference/agents/retrieve-agent"},{"openapi":"get /agents","title":"List agents","href":"/api-reference/agents/list-agents"},{"openapi":"patch /agents/{agent_id}","title":"Update agent","href":"/api-reference/agents/update-agent"},{"openapi":"delete /agents/{agent_id}","title":"Delete agent","href":"/api-reference/agents/delete-agent"},{"openapi":"post /agents/generate","title":"Generate agent from natural language","href":"/api-reference/agents/generate-agent-from-natural-language"},{"openapi":"post /agents/claim","title":"Claim a generated agent template","href":"/api-reference/agents/claim-a-generated-agent-template"}]},{"group":"Skills","pages":[{"openapi":"post /skills","title":"Create skill","href":"/api-reference/skills/create-skill"},{"openapi":"get /skills/{skill_id}","title":"Retrieve skill","href":"/api-reference/skills/retrieve-skill"},{"openapi":"get /skills","title":"List skills","href":"/api-reference/skills/list-skills"},{"openapi":"patch /skills/{skill_id}","title":"Update skill","href":"/api-reference/skills/update-skill"},{"openapi":"delete /skills/{skill_id}","title":"Delete skill","href":"/api-reference/skills/delete-skill"},{"openapi":"post /skills/{skill_id}/clone","title":"Clone skill","href":"/api-reference/skills/clone-skill"},{"openapi":"get /skills/builtin","title":"List built-in skill catalog","href":"/api-reference/skills/list-built-in-skill-catalog"},{"openapi":"post /skills/builtin/{builtin_key}/override","title":"Override built-in skill","href":"/api-reference/skills/override-built-in-skill"},{"openapi":"post /skills/builtin/{builtin_key}/reset","title":"Reset built-in skill override","href":"/api-reference/skills/reset-built-in-skill-override"},{"openapi":"post /skills/{skill_id}/promote","title":"Promote skill to company","href":"/api-reference/skills/promote-skill-to-company"},{"openapi":"post /skills/{skill_id}/demote","title":"Demote skill to private","href":"/api-reference/skills/demote-skill-to-private"},{"openapi":"post /skills/generate","title":"Generate skill drafts","href":"/api-reference/skills/generate-skill-drafts"}]},{"group":"Automations","pages":[{"openapi":"post /agents/{agent_id}/automations","title":"Create automation","href":"/api-reference/automations/create-automation"},{"openapi":"get /agents/{agent_id}/automations/{automation_id}","title":"Retrieve automation","href":"/api-reference/automations/retrieve-automation"},{"openapi":"get /agents/{agent_id}/automations","title":"List automations","href":"/api-reference/automations/list-automations"},{"openapi":"patch /agents/{agent_id}/automations/{automation_id}","title":"Update automation","href":"/api-reference/automations/update-automation"},{"openapi":"delete /agents/{agent_id}/automations/{automation_id}","title":"Delete automation","href":"/api-reference/automations/delete-automation"}]},{"group":"Knowledge","pages":[{"openapi":"post /knowledge","title":"Create knowledge","href":"/api-reference/knowledge/create-knowledge"},{"openapi":"post /knowledge/connect","title":"Create knowledge from connection","href":"/api-reference/knowledge/create-knowledge-from-connection"},{"openapi":"get /knowledge/{knowledge_id}","title":"Retrieve knowledge","href":"/api-reference/knowledge/retrieve-knowledge"},{"openapi":"get /knowledge","title":"List knowledge","description":"Returns a list of knowledge.","href":"/api-reference/knowledge/list-knowledge"},{"openapi":"patch /knowledge/{knowledge_id}","title":"Update knowledge","href":"/api-reference/knowledge/update-knowledge"},{"openapi":"delete /knowledge/{knowledge_id}","title":"Delete knowledge","description":"Delete knowledge.","href":"/api-reference/knowledge/delete-knowledge"},{"openapi":"post /knowledge/{knowledge_id}/reindex","title":"Reindex knowledge","href":"/api-reference/knowledge/reindex-knowledge"},{"title":"Knowledge upload limits","href":"/knowledge/upload-limits"},{"group":"Tables","pages":[{"openapi":"get /tables/{table_id}","title":"Retrieve table","href":"/api-reference/tables/retrieve-table"},{"openapi":"get /tables","title":"List tables","href":"/api-reference/tables/list-tables"},{"openapi":"get /tables/{table_id}/records","title":"List records","href":"/api-reference/tables/list-records"},{"openapi":"get /tables/{table_id}/summaries","title":"List summaries","href":"/api-reference/tables/list-summaries"},{"title":"Replicating Tables","href":"/api-reference/tables/replicating-tables"}]},{"group":"Data Views","pages":[{"openapi":"post /data-views","title":"Create data view","href":"/api-reference/data-views/create-data-view"},{"openapi":"get /data-views","title":"List data views","href":"/api-reference/data-views/list-data-views"},{"openapi":"delete /data-views/{data_view_id}","title":"Delete data view","href":"/api-reference/data-views/delete-data-view"},{"openapi":"post /data-views/service-accounts","title":"Create service account","href":"/api-reference/data-views/create-service-account"},{"openapi":"get /data-views/service-accounts","title":"List service accounts","href":"/api-reference/data-views/list-service-accounts"},{"openapi":"delete /data-views/service-accounts/{service_account_id}","title":"Delete service account","href":"/api-reference/data-views/delete-service-account"},{"openapi":"get /data-views/service-accounts/{service_account_id}/credentials","title":"Get service account credentials","href":"/api-reference/data-views/get-service-account-credentials"}]}]},{"group":"Search","pages":[{"openapi":"get /search","title":"Search","href":"/api-reference/search/search"},{"openapi":"get /search/tree","title":"Search Tree","href":"/api-reference/search/search-tree"},{"openapi":"post /search/ai","title":"AI Search","href":"/api-reference/search/ai-search"}]},{"group":"Conversations","pages":[{"openapi":"post /conversations","title":"Create conversation","href":"/api-reference/conversations/create-conversation"},{"openapi":"get /conversations/{conversation_id}","title":"Retrieve conversation","href":"/api-reference/conversations/retrieve-conversation"},{"openapi":"get /conversations","title":"List conversations","href":"/api-reference/conversations/list-conversations"},{"openapi":"delete /conversations/{conversation_id}","title":"Delete conversation","href":"/api-reference/conversations/delete-conversation"},{"openapi":"patch /conversations/{conversation_id}","title":"Update conversation","href":"/api-reference/conversations/update-conversation"}]},{"group":"Messages","pages":[{"openapi":"get /conversations/{conversation_id}/messages/{message_id}","title":"Retrieve message","href":"/api-reference/conversations/retrieve-message"},{"openapi":"get /conversations/{conversation_id}/messages","title":"List messages","href":"/api-reference/conversations/list-messages"},{"openapi":"post /conversations/{conversation_id}/messages/{message_id}","title":"Submit message feedback","href":"/api-reference/conversations/submit-message-feedback"}]},{"group":"Connections","pages":[{"openapi":"post /connections","title":"Create connection","href":"/api-reference/connections/create-connection"},{"openapi":"get /connections/{connection_id}","title":"Retrieve connection","href":"/api-reference/connections/retrieve-connection"},{"openapi":"get /connections","title":"List connections","href":"/api-reference/connections/list-connections"},{"openapi":"patch /connections/{connection_id}","title":"Update connection","href":"/api-reference/connections/update-connection"},{"openapi":"delete /connections/{connection_id}","title":"Delete connection","href":"/api-reference/connections/delete-connection"}]},{"group":"Connection Providers","pages":[{"openapi":"post /connection-providers","title":"Create connection provider","href":"/api-reference/connection-providers/create-connection-provider"},{"openapi":"get /connection-providers/{connection_provider_id}","title":"Retrieve connection provider","href":"/api-reference/connection-providers/retrieve-connection-provider"},{"openapi":"get /connection-providers","title":"List connection providers","href":"/api-reference/connection-providers/list-connection-providers"},{"openapi":"patch /connection-providers/{connection_provider_id}","title":"Update connection provider","href":"/api-reference/connection-providers/update-connection-provider"},{"openapi":"delete /connection-providers/{connection_provider_id}","title":"Delete connection provider","href":"/api-reference/connection-providers/delete-connection-provider"}]},{"group":"Connectors","pages":[{"openapi":"get /connectors","title":"List connectors","href":"/api-reference/connectors/list-connectors"},{"openapi":"get /connectors/health","title":"Get connector health","href":"/api-reference/connectors/get-connector-health"}]},{"group":"Files","pages":[{"openapi":"post /files","title":"Create files","href":"/api-reference/files/create-files"},{"openapi":"get /files/{file_id}","title":"Retrieve file","href":"/api-reference/files/retrieve-file"},{"openapi":"get /files","title":"List files","href":"/api-reference/files/list-files"},{"openapi":"delete /files/{file_id}","title":"Delete file","href":"/api-reference/files/delete-file"},{"openapi":"get /files/{file_id}/content","title":"Retrieve file content","href":"/api-reference/files/retrieve-file-content"},{"openapi":"patch /files/{file_id}","title":"Update file","href":"/api-reference/files/update-file"}]},{"group":"Tools","pages":[{"openapi":"get /tools/{tool_name}","title":"Retrieve tool","href":"/api-reference/tools/retrieve-tool"},{"openapi":"get /tools","title":"List tools","href":"/api-reference/tools/list-tools"}]},{"group":"Models","pages":[{"openapi":"get /models","title":"List models","href":"/api-reference/models/list-models"}]},{"group":"Secrets","pages":[{"openapi":"post /secrets","title":"Create secret","href":"/api-reference/secrets/create-secret"},{"openapi":"get /secrets/{secret_id}","title":"Retrieve secret","href":"/api-reference/secrets/retrieve-secret"},{"openapi":"get /secrets","title":"List secrets","href":"/api-reference/secrets/list-secrets"},{"openapi":"delete /secrets/{secret_id}","title":"Delete secret","href":"/api-reference/secrets/delete-secret"}]},{"group":"Webhooks","pages":[{"title":"Webhooks overview","href":"/api-reference/webhooks/overview"},{"openapi":"post /webhooks","title":"Create webhook","href":"/api-reference/webhooks/create-webhook"},{"openapi":"get /webhooks/{webhook_id}","title":"Retrieve webhook","href":"/api-reference/webhooks/retrieve-webhook"},{"openapi":"get /webhooks","title":"List webhooks","href":"/api-reference/webhooks/list-webhooks"},{"openapi":"patch /webhooks/{webhook_id}","title":"Update webhook","href":"/api-reference/webhooks/update-webhook"},{"openapi":"delete /webhooks/{webhook_id}","title":"Delete webhook","href":"/api-reference/webhooks/delete-webhook"},{"openapi":"get /webhooks/active","title":"List active webhooks for event","href":"/api-reference/webhooks/list-active-webhooks-for-event"}]},{"group":"Memory","pages":[{"openapi":"post /user-memories","title":"Create User Memory","href":"/api-reference/memory/create-user-memory"},{"openapi":"get /user-memories","title":"List User Memory","href":"/api-reference/memory/list-user-memory"},{"openapi":"delete /user-memories/{user_memory_id}","title":"Delete User Memory","href":"/api-reference/memory/delete-user-memory"}]},{"group":"Pages","pages":[{"openapi":"post /pages","title":"Create page","href":"/api-reference/pages/create-page"},{"openapi":"get /pages/{page_id}","title":"Retrieve page","href":"/api-reference/pages/retrieve-page"},{"openapi":"get /pages","title":"List pages","href":"/api-reference/pages/list-pages"},{"openapi":"patch /pages/{page_id}","title":"Update page","href":"/api-reference/pages/update-page"},{"openapi":"delete /pages/{page_id}","title":"Delete page","href":"/api-reference/pages/delete-page"}]},{"group":"MCP Servers - Beta","pages":[{"title":"Overview","href":"/api-reference/mcp-servers/overview"},{"openapi":"post /organization/mcp-servers","title":"Create MCP server","href":"/api-reference/mcp-servers/create-mcp-server"},{"openapi":"get /organization/mcp-servers/{server_id}","title":"Retrieve MCP server","href":"/api-reference/mcp-servers/retrieve-mcp-server"},{"openapi":"get /organization/mcp-servers","title":"List MCP servers","href":"/api-reference/mcp-servers/list-mcp-servers"},{"openapi":"patch /organization/mcp-servers/{server_id}","title":"Update MCP server","href":"/api-reference/mcp-servers/update-mcp-server"},{"openapi":"delete /organization/mcp-servers/{server_id}","title":"Delete MCP server","href":"/api-reference/mcp-servers/delete-mcp-server"},{"openapi":"post /organization/mcp-servers/{server_id}/start-oauth","title":"Start MCP OAuth flow","href":"/api-reference/mcp-servers/start-mcp-oauth-flow"},{"openapi":"post /organization/mcp-servers/{server_id}/oauth-callback","title":"Complete MCP OAuth flow","href":"/api-reference/mcp-servers/complete-mcp-oauth-flow"}]},{"group":"Batch Predictions","pages":[{"title":"Batch Predictions overview","href":"/api-reference/batch-predictions/overview"},{"openapi":"post /batch-predictions","title":"Create batch prediction","href":"/api-reference/batch-predictions/create-batch-prediction"},{"openapi":"get /batch-predictions/{batch_prediction_id}","title":"Retrieve batch prediction","href":"/api-reference/batch-predictions/retrieve-batch-prediction"},{"openapi":"get /batch-predictions","title":"List batch predictions","href":"/api-reference/batch-predictions/list-batch-predictions"},{"openapi":"post /batch-predictions/{batch_prediction_id}/cancel","title":"Cancel batch prediction","href":"/api-reference/batch-predictions/cancel-batch-prediction"},{"openapi":"get /batch-predictions/{batch_prediction_id}/results","title":"Retrieve batch prediction results","href":"/api-reference/batch-predictions/retrieve-batch-prediction-results"},{"title":"Batch prediction errors","href":"/api-reference/batch-predictions/errors"}]},{"group":"Event Triggers","pages":[{"title":"Event Triggers overview","href":"/api-reference/event-triggers/overview"},{"openapi":"post /agents/{agent_id}/event-triggers","title":"Create event trigger","href":"/api-reference/event-triggers/create-event-trigger"},{"openapi":"get /agents/{agent_id}/event-triggers","title":"List event triggers","href":"/api-reference/event-triggers/list-event-triggers"},{"openapi":"patch /agents/{agent_id}/event-triggers/{trigger_id}","title":"Update event trigger","href":"/api-reference/event-triggers/update-event-trigger"},{"openapi":"delete /agents/{agent_id}/event-triggers/{trigger_id}","title":"Delete event trigger","href":"/api-reference/event-triggers/delete-event-trigger"}]},{"group":"Channels","pages":[{"openapi":"post /channels","title":"Create channel","href":"/api-reference/channels/create-channel"},{"openapi":"post /channels/{channel_id}/messages","title":"Create channel message","href":"/api-reference/channels/create-channel-message"},{"openapi":"post /channels/{channel_id}/threads/{thread_id}/messages","title":"Create thread message","href":"/api-reference/channels/create-thread-message"},{"openapi":"get /channels/{channel_id}","title":"Retrieve channel","href":"/api-reference/channels/retrieve-channel"},{"openapi":"get /channels/{channel_id}/threads/{thread_id}","title":"Retrieve channel thread","href":"/api-reference/channels/retrieve-channel-thread"},{"openapi":"get /channels","title":"List channels","href":"/api-reference/channels/list-channels"},{"openapi":"get /channels/{channel_id}/members","title":"List channel members","href":"/api-reference/channels/list-channel-members"},{"openapi":"get /channels/{channel_id}/messages","title":"List channel messages","href":"/api-reference/channels/list-channel-messages"},{"openapi":"get /channels/{channel_id}/threads","title":"List channel threads","href":"/api-reference/channels/list-channel-threads"},{"openapi":"get /channels/{channel_id}/threads/{thread_id}/messages","title":"List thread messages","href":"/api-reference/channels/list-thread-messages"},{"openapi":"patch /channels/{channel_id}","title":"Update channel","href":"/api-reference/channels/update-channel"},{"openapi":"post /channels/{channel_id}/members","title":"Add channel members","href":"/api-reference/channels/add-channel-members"},{"openapi":"delete /channels/{channel_id}/members/{member_id}","title":"Remove channel member","href":"/api-reference/channels/remove-channel-member"},{"openapi":"post /channels/{channel_id}/messages/{message_id}/threads","title":"Start a thread","href":"/api-reference/channels/start-a-thread"},{"openapi":"post /channels/{channel_id}/messages/{message_id}/reactions","title":"Add a message reaction","href":"/api-reference/channels/add-a-message-reaction"},{"openapi":"delete /channels/{channel_id}/messages/{message_id}/reactions/{reaction}","title":"Remove a message reaction","href":"/api-reference/channels/remove-a-message-reaction"}]},{"group":"Procore","pages":[{"openapi":"get /procore/companies","title":"List Procore companies","href":"/api-reference/procore/list-procore-companies"},{"openapi":"get /procore/companies/{company_id}/projects","title":"List Procore projects in a company","href":"/api-reference/procore/list-procore-projects-in-a-company"},{"openapi":"get /procore/companies/{company_id}/projects/{project_id}/connection","title":"Check whether a Procore project is connected to Procore AI","href":"/api-reference/procore/check-whether-a-procore-project-is-connected-to-procore-ai"}]},{"group":"Organization","pages":[{"group":"Credits","pages":[{"openapi":"get /organization/credits","title":"Get credits","href":"/api-reference/credits/get-credits"},{"openapi":"get /organization/reports/user-credits-consumption","title":"List user credit consumption","href":"/api-reference/credits/list-user-credit-consumption"},{"openapi":"get /organization/reports/consumption-breakdown","title":"List consumption breakdown","href":"/api-reference/credits/list-consumption-breakdown"}]},{"group":"Users","pages":[{"openapi":"get /organization/users/{user_id}","title":"Retrieve user","href":"/api-reference/users/retrieve-user"},{"openapi":"get /organization/users","title":"List users","href":"/api-reference/users/list-users"},{"openapi":"patch /organization/users/{user_id}","title":"Update user","href":"/api-reference/users/update-user"}]},{"group":"Teamspaces","pages":[{"openapi":"post /organization/teamspaces","title":"Create teamspace","href":"/api-reference/teamspaces/create-teamspace"},{"openapi":"get /organization/teamspaces/{teamspace_id}","title":"Retrieve teamspace","href":"/api-reference/teamspaces/retrieve-teamspace"},{"openapi":"get /organization/teamspaces","title":"List teamspaces","href":"/api-reference/teamspaces/list-teamspaces"},{"openapi":"patch /organization/teamspaces/{teamspace_id}","title":"Update teamspace","href":"/api-reference/teamspaces/update-teamspace"},{"title":"Scope Requests to a Teamspace","href":"/api-reference/teamspaces/scope-to-teamspace"}]},{"group":"Teamspace Invites","pages":[{"openapi":"post /organization/teamspaces/{teamspace_id}/invites","title":"Invite user to a teamspace","href":"/api-reference/teamspace-invites/invite-user-to-a-teamspace"},{"openapi":"get /organization/teamspaces/{teamspace_id}/invites/{invite_id}","title":"Retrieve teamspace invite","href":"/api-reference/teamspace-invites/retrieve-teamspace-invite"},{"openapi":"get /organization/teamspaces/{teamspace_id}/invites","title":"List teamspace invites","href":"/api-reference/teamspace-invites/list-teamspace-invites"},{"openapi":"delete /organization/teamspaces/{teamspace_id}/invites/{invite_id}","title":"Delete teamspace invite","href":"/api-reference/teamspace-invites/delete-teamspace-invite"}]},{"group":"Teamspace Users","pages":[{"openapi":"get /organization/teamspaces/{teamspace_id}/users/{user_id}","title":"Retrieve teamspace user","href":"/api-reference/teamspace-users/retrieve-teamspace-user"},{"openapi":"get /organization/teamspaces/{teamspace_id}/users","title":"List teamspace users","href":"/api-reference/teamspace-users/list-teamspace-users"},{"openapi":"patch /organization/teamspaces/{teamspace_id}/users/{user_id}","title":"Update teamspace user","href":"/api-reference/teamspace-users/update-teamspace-user"},{"openapi":"delete /organization/teamspaces/{teamspace_id}/users/{user_id}","title":"Delete teamspace user","href":"/api-reference/teamspace-users/delete-teamspace-user"}]}]}]},{"tab":"Connectors","pages":[{"title":"Connectors","href":"/connectors/all-connectors"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/2026-08"}]}]},"basePath":"","title":"Update knowledge - Datagrid AI","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}