Change a column’s label, instructions, value type, option list, fill mode, or placement. Send only the fields you want to change; everything you leave out keeps its current value. field_key is not one of them: it is frozen at creation so the values already extracted stay attached.
Changing the value type of an ai column makes the values already extracted for it stale, because they were stored as text read under the old type. GC AI queues a re-scan of the documents that hold one and reports it in auto_rescan. The column is saved whatever auto_rescan says, so treat that field as news about the re-scan and not as an error. When the vault is waiting on a scan review, the re-scan waits for that approval instead of starting now.
Only a custom column accepts changes. A system column (Document Name, Document Status, Document Title) returns 400, and so does a column a connected spreadsheet owns if you try to move it in or out of import.
Requires the editor or owner role in the vault and the organization-level permission to manage vaults.
Requires a user-scoped API key (u:gcai_...). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.
New fill mode. A column a spreadsheet owns cannot move in or out of import, and a column a connected source owns cannot move in or out of connector, so those columns reject this field.
Unique column identifier, or null for a built-in column. A built-in column has no row of its own in this vault, so it has no ID and cannot be changed or deleted.
The stable key extracted values are stored under. It is set once, when the column is created, and never changes, so renaming the column keeps every value already extracted for it.
How the column gets filled. ai: extraction reads it out of each document. manual: a person types it and no scan ever touches it. import: values come from a connected spreadsheet, which owns the column. connector: values come from a connected document source, which owns the column. You can create ai and manual columns. An import column is created by connecting a spreadsheet in the app. A connector column is created when a source such as Ironclad fills it.
What this column is. built_in: merged into every vault by GC AI, with no ID and no way to change it. system: owned by this vault but managed by GC AI (Document Name, Document Status, Document Title), so it has an ID but rejects every change and every delete. custom: yours, and the only kind PATCH and DELETE accept.
True when this column can be changed with PATCH /vaults/{id}/columns/{columnId}. Built-in and system columns report false: GC AI owns their name, type, options, and prompt. One exception, on both surfaces: sort_order is list position rather than identity, so it can be set on any column that has an ID.
What happened to the re-scan a type change triggered, or null when the change needed none. A non-null value never means the update failed.
Show child attributes
Last modified on September 25, 2026
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"GC AI","description":"The GC AI API reference (REST API, MCP server and CLI), plus support, account and troubleshooting help. Product docs for signed-in users are in the GC AI app.","colors":{"primary":"#003047","light":"#50abda"},"logo":{"light":"https://mintcdn.com/gcai/0BlqBDRwAhV-CbPw/logo/light.svg?fit=max\u0026auto=format\u0026n=0BlqBDRwAhV-CbPw\u0026q=85\u0026s=d11c2834d42373b30d3f9dc6d3138367","dark":"https://mintcdn.com/gcai/0BlqBDRwAhV-CbPw/logo/dark.svg?fit=max\u0026auto=format\u0026n=0BlqBDRwAhV-CbPw\u0026q=85\u0026s=32c5457a1bac33bb819c590260c1cbc9"},"favicon":"https://mintcdn.com/gcai/0BlqBDRwAhV-CbPw/favicon.svg?fit=max\u0026auto=format\u0026n=0BlqBDRwAhV-CbPw\u0026q=85\u0026s=7b86bbec08c30a471c9cd2d8a6b20504","navbar":{"links":[{"href":"mailto:support@gc.ai","label":"support@gc.ai"}],"primary":{"type":"button","label":"Go to GC AI","href":"https://app.gc.ai"}},"footer":{"socials":{"x":"https://x.com/gcai_co","linkedin":"https://linkedin.com/company/gc-ai"}},"seo":{"organization":{"url":"https://gc.ai","sameAs":["https://x.com/gcai_co","https://linkedin.com/company/gc-ai"]},"indexing":"navigable"},"integrations":{"posthog":{"apiKey":"phc_EhQwXWGMSQx1y3M9f5uLqZUgeFqpagTuYPXGw1QYztC","apiHost":"https://app.posthog.com"}},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Community","icon":"slack","href":"https://gc.ai/slack"},{"anchor":"Blog","icon":"newspaper","href":"https://gc.ai/blog"},{"anchor":"Classes","icon":"graduation-cap","href":"https://gc.ai/classes"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"gcai","hasAudioNarration":false,"actualSubdomain":"gcai","customDomains":["docs.gc.ai"],"gitSource":{"type":"github","owner":"gc-ai-inc","repo":"app-gc-ai","deployBranch":"main","contentDirectory":"apps/product-docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af15f2516d3fc7a335ae1a7","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"API Reference","count":165},{"language":"default","tag":"REST","count":113},{"language":"default","tag":"Endpoints","count":100},{"language":"default","tag":"Contract Intelligence","count":34},{"language":"default","tag":"MCP","count":33},{"language":"default","tag":"Tools","count":28},{"language":"default","tag":"Projects","count":22},{"language":"default","tag":"CLI","count":20},{"language":"default","tag":"Playbooks","count":18},{"language":"default","tag":"Commands","count":15}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@gc.ai","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":[{"filePath":"style.css","content":".surface-map table{width:100%;table-layout:fixed}.surface-map--method th:last-child,.surface-map--method td:last-child{width:6rem}.surface-map--behavior th:last-child,.surface-map--behavior td:last-child{width:8rem}.surface-map .method,.surface-map .behavior{display:inline-block;padding:1px 6px;border-radius:6px;font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:0.72rem;font-weight:600;letter-spacing:0.02em}.surface-map .method-get{color:#10b981;background:rgba(16, 185, 129, 0.13)}.surface-map .method-post{color:#3b82f6;background:rgba(59, 130, 246, 0.13)}.surface-map .method-put{color:#f59e0b;background:rgba(245, 158, 11, 0.13)}.surface-map .method-patch{color:#f97316;background:rgba(249, 115, 22, 0.13)}.surface-map .method-delete{color:#ef4444;background:rgba(239, 68, 68, 0.13)}.surface-map .behavior-read-only{color:#10b981;background:rgba(16, 185, 129, 0.13)}.surface-map .behavior-additive{color:#3b82f6;background:rgba(59, 130, 246, 0.13)}.surface-map .behavior-destructive{color:#ef4444;background:rgba(239, 68, 68, 0.13)}.surface-map .behavior-open-world{color:#8b5cf6;background:rgba(139, 92, 246, 0.13)}"}],"page":{"pagePath":"api-reference/update-vault-column","slug":"/api-reference/update-vault-column","pageMetadata":{"title":"Update a Vault Column","openapi":"PATCH /vaults/{id}/columns/{columnId}","description":"Change a column's label, instructions, value type, option list, fill mode, or placement. Send only the fields you want to change; everything you leave out keeps its current value. `field_key` is not one of them: it is frozen at creation so the values already extracted stay attached.\n\nChanging the value type of an `ai` column makes the values already extracted for it stale, because they were stored as text read under the old type. GC AI queues a re-scan of the documents that hold one and reports it in `auto_rescan`. The column is saved whatever `auto_rescan` says, so treat that field as news about the re-scan and not as an error. When the vault is waiting on a scan review, the re-scan waits for that approval instead of starting now.\n\nOnly a `custom` column accepts changes. A `system` column (Document Name, Document Status, Document Title) returns `400`, and so does a column a connected spreadsheet owns if you try to move it in or out of `import`.\n\nRequires the `editor` or `owner` role in the vault and the organization-level permission to manage vaults.\n\nRequires a user-scoped API key (`u:gcai_...`). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.","href":"/api-reference/update-vault-column"},"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: [\"Change a column’s label, instructions, value type, option list, fill mode, or placement. Send only the fields you want to change; everything you leave out keeps its current value. \", _jsx(_components.code, {\n children: \"field_key\"\n }), \" is not one of them: it is frozen at creation so the values already extracted stay attached.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Changing the value type of an \", _jsx(_components.code, {\n children: \"ai\"\n }), \" column makes the values already extracted for it stale, because they were stored as text read under the old type. GC AI queues a re-scan of the documents that hold one and reports it in \", _jsx(_components.code, {\n children: \"auto_rescan\"\n }), \". The column is saved whatever \", _jsx(_components.code, {\n children: \"auto_rescan\"\n }), \" says, so treat that field as news about the re-scan and not as an error. When the vault is waiting on a scan review, the re-scan waits for that approval instead of starting now.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Only a \", _jsx(_components.code, {\n children: \"custom\"\n }), \" column accepts changes. A \", _jsx(_components.code, {\n children: \"system\"\n }), \" column (Document Name, Document Status, Document Title) returns \", _jsx(_components.code, {\n children: \"400\"\n }), \", and so does a column a connected spreadsheet owns if you try to move it in or out of \", _jsx(_components.code, {\n children: \"import\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Requires the \", _jsx(_components.code, {\n children: \"editor\"\n }), \" or \", _jsx(_components.code, {\n children: \"owner\"\n }), \" role in the vault and the organization-level permission to manage vaults.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Requires a user-scoped API key (\", _jsx(_components.code, {\n children: \"u:gcai_...\"\n }), \"). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.\"]\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 a Vault Column","openapi":"PATCH /vaults/{id}/columns/{columnId}","description":"Change a column's label, instructions, value type, option list, fill mode, or placement. Send only the fields you want to change; everything you leave out keeps its current value. `field_key` is not one of them: it is frozen at creation so the values already extracted stay attached.\n\nChanging the value type of an `ai` column makes the values already extracted for it stale, because they were stored as text read under the old type. GC AI queues a re-scan of the documents that hold one and reports it in `auto_rescan`. The column is saved whatever `auto_rescan` says, so treat that field as news about the re-scan and not as an error. When the vault is waiting on a scan review, the re-scan waits for that approval instead of starting now.\n\nOnly a `custom` column accepts changes. A `system` column (Document Name, Document Status, Document Title) returns `400`, and so does a column a connected spreadsheet owns if you try to move it in or out of `import`.\n\nRequires the `editor` or `owner` role in the vault and the organization-level permission to manage vaults.\n\nRequires a user-scoped API key (`u:gcai_...`). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.","href":"/api-reference/update-vault-column"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Update a vault column","description":"Change a column's label, instructions, value type, option list, fill mode, or placement. Send only the fields you want to change; everything you leave out keeps its current value. `field_key` is not one of them: it is frozen at creation so the values already extracted stay attached.\n\nChanging the value type of an `ai` column makes the values already extracted for it stale, because they were stored as text read under the old type. GC AI queues a re-scan of the documents that hold one and reports it in `auto_rescan`. The column is saved whatever `auto_rescan` says, so treat that field as news about the re-scan and not as an error. When the vault is waiting on a scan review, the re-scan waits for that approval instead of starting now.\n\nOnly a `custom` column accepts changes. A `system` column (Document Name, Document Status, Document Title) returns `400`, and so does a column a connected spreadsheet owns if you try to move it in or out of `import`.\n\nRequires the `editor` or `owner` role in the vault and the organization-level permission to manage vaults.\n\nRequires a user-scoped API key (`u:gcai_...`). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.","operationId":"updateVaultColumn","tags":["Contract Intelligence"],"security":["14324239-8a06-4019-9b6c-9e2d0b0485b8"],"parameters":["41572029-baad-4483-8ada-147621d0e3db","c4332946-1750-4e9f-a864-ddff44c0ef7b"],"requestBody":"cf6dae25-4b04-4524-b236-718b17cc0260","responses":{"200":"49bf1fe1-12e6-4a02-a6bc-73ee67563c88","400":"d3640440-24f6-455e-9b10-783a4507f455","401":"9ee06038-b0b3-4b69-a161-7300e53231f9","403":"e183b66a-3595-467b-8fa8-1c212c61f803","404":"ab78d61d-b007-425c-81a6-4599ebc0c71e","409":"c1d4f5c6-61c7-461a-979f-2ab208ed5622","422":"3b3548d4-adf5-40fc-b563-21a2dc03d979","429":"3d1d9d98-7ac9-4386-9640-71b09c04ac30","500":"653af943-d63e-4705-994a-0dd6efb25930","503":"a7cea1bc-4640-473c-81a2-a23bed0586ac"},"method":"patch","type":"path","servers":["2c21f627-fcca-46ae-8404-7077fb0598ec"],"path":"/vaults/{id}/columns/{columnId}","baseUrlOptions":["https://app.gc.ai/api/external/v1"],"title":"Update a vault column","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"41572029-baad-4483-8ada-147621d0e3db":{"schema":{"type":"string","format":"uuid","description":"The vault ID","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"},"required":true,"description":"The vault ID","name":"id","in":"path"},"c4332946-1750-4e9f-a864-ddff44c0ef7b":{"schema":{"type":"string","format":"uuid","description":"The column ID from `GET /vaults/{id}/columns`. Built-in columns report `id: null` and cannot be addressed here.","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"},"required":true,"description":"The column ID from `GET /vaults/{id}/columns`. Built-in columns report `id: null` and cannot be addressed here.","name":"columnId","in":"path"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":200,"description":"New column heading. The `field_key` does not follow a rename, so every value already extracted stays attached.","uniqueKey":"label","typeLabel":"string"},"instructions":{"type":"string","maxLength":4000,"description":"New instructions.","uniqueKey":"instructions","typeLabel":"string"},"field_type":{"type":"string","enum":["text","date","date_range","enum","multi_enum","boolean","number","currency","percentage","duration","email","url","list","rich_text"],"description":"New value shape. Send `field_meta` in the same request when the new type needs a different option list.","uniqueKey":"field_type","typeLabel":"enum\u003cstring>"},"field_meta":{"oneOf":[{"type":"object","description":"New option list. Send `null` to clear it. Omit it to leave the current one in place.","required":["type","options"],"properties":{"type":{"type":"string","enum":["enum"],"isRequired":true,"uniqueKey":"field_meta.oneOf.0.type","typeLabel":"enum\u003cstring>"},"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"uniqueKey":"field_meta.oneOf.0.options.items.[INDEX]","typeLabel":"string"},"description":"The values this column can hold. Between 2 and 12, all different.","example":["Renewal","New business","Amendment"],"isRequired":true,"uniqueKey":"field_meta.oneOf.0.options","typeLabel":"string[]"}},"uniqueKey":"field_meta.oneOf.0","typeLabel":"object"},{"type":"object","description":"New option list. Send `null` to clear it. Omit it to leave the current one in place.","required":["type","options"],"properties":{"type":{"type":"string","enum":["multi_enum"],"isRequired":true,"uniqueKey":"field_meta.oneOf.1.type","typeLabel":"enum\u003cstring>"},"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"uniqueKey":"field_meta.oneOf.1.options.items.[INDEX]","typeLabel":"string"},"description":"The values this column can hold. Between 2 and 12, all different. A document can carry more than one.","isRequired":true,"uniqueKey":"field_meta.oneOf.1.options","typeLabel":"string[]"}},"uniqueKey":"field_meta.oneOf.1","typeLabel":"object"},{"description":"New option list. Send `null` to clear it. Omit it to leave the current one in place.","uniqueKey":"field_meta.oneOf.2","typeLabel":"any"},{"type":"null","description":"New option list. Send `null` to clear it. Omit it to leave the current one in place.","uniqueKey":"field_meta.oneOf.3","typeLabel":"null"}],"uniqueKey":"field_meta","typeLabel":"object · object · any · null"},"extraction_mode":{"type":"string","enum":["ai","manual"],"description":"New fill mode. A column a spreadsheet owns cannot move in or out of `import`, and a column a connected source owns cannot move in or out of `connector`, so those columns reject this field.","uniqueKey":"extraction_mode","typeLabel":"enum\u003cstring>"},"sort_order":{"type":"integer","description":"New placement weight.","uniqueKey":"sort_order","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"label":"\u003cstring>","instructions":"\u003cstring>","field_meta":{"type":"enum","options":["Renewal","New business","Amendment"]},"sort_order":123}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"49bf1fe1-12e6-4a02-a6bc-73ee67563c88":{"description":"The updated column","content":{"application/json":{"schema":{"type":"object","required":["auto_rescan","id","field_key","label","instructions","field_type","field_meta","extraction_mode","kind","editable","sort_order","created_at","updated_at"],"properties":{"id":{"oneOf":[{"type":"string","format":"uuid","description":"Unique column identifier, or null for a built-in column. A built-in column has no row of its own in this vault, so it has no ID and cannot be changed or deleted.","isRequired":true,"uniqueKey":"id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Unique column identifier, or null for a built-in column. A built-in column has no row of its own in this vault, so it has no ID and cannot be changed or deleted.","isRequired":true,"uniqueKey":"id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid> | null"},"field_key":{"type":"string","description":"The stable key extracted values are stored under. It is set once, when the column is created, and never changes, so renaming the column keeps every value already extracted for it.","example":"renewalNotice","isRequired":true,"uniqueKey":"field_key","typeLabel":"string"},"label":{"type":"string","description":"The column heading shown in the vault table","example":"Renewal notice","isRequired":true,"uniqueKey":"label","typeLabel":"string"},"instructions":{"type":"string","description":"For an `ai` column, the prompt extraction reads each document with. For a `manual`, `import`, or `connector` column, a note to whoever reads the column.","isRequired":true,"uniqueKey":"instructions","typeLabel":"string"},"field_type":{"type":"string","enum":["text","date","date_range","enum","multi_enum","boolean","number","currency","percentage","duration","email","url","list","rich_text","party_list","related_agreement_list"],"description":"The shape of the values in this column. Built-in columns can report `party_list` and `related_agreement_list`, which you cannot set yourself.","isRequired":true,"uniqueKey":"field_type","typeLabel":"enum\u003cstring>"},"field_meta":{"oneOf":[{"type":"object","description":"The option list for an `enum` or `multi_enum` column. Null for every other type.","required":["type","options"],"properties":{"type":{"type":"string","enum":["enum"],"isRequired":true,"uniqueKey":"field_meta.oneOf.0.type","typeLabel":"enum\u003cstring>"},"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"uniqueKey":"field_meta.oneOf.0.options.items.[INDEX]","typeLabel":"string"},"description":"The values extraction can assign to this column.","isRequired":true,"uniqueKey":"field_meta.oneOf.0.options","typeLabel":"string[]"},"legacy_options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"uniqueKey":"field_meta.oneOf.0.legacy_options.items.[INDEX]","typeLabel":"string"},"description":"Values that documents extracted under an older version of this option list still hold. They stay readable and filterable, and extraction never assigns them again.","uniqueKey":"field_meta.oneOf.0.legacy_options","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"field_meta.oneOf.0","typeLabel":"object"},{"type":"object","description":"The option list for an `enum` or `multi_enum` column. Null for every other type.","required":["type","options"],"properties":{"type":{"type":"string","enum":["multi_enum"],"isRequired":true,"uniqueKey":"field_meta.oneOf.1.type","typeLabel":"enum\u003cstring>"},"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"uniqueKey":"field_meta.oneOf.1.options.items.[INDEX]","typeLabel":"string"},"description":"The values extraction can assign to this column.","isRequired":true,"uniqueKey":"field_meta.oneOf.1.options","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"field_meta.oneOf.1","typeLabel":"object"},{"description":"The option list for an `enum` or `multi_enum` column. Null for every other type.","isRequired":true,"uniqueKey":"field_meta.oneOf.2","typeLabel":"any"},{"type":"null","description":"The option list for an `enum` or `multi_enum` column. Null for every other type.","isRequired":true,"uniqueKey":"field_meta.oneOf.3","typeLabel":"null"}],"isRequired":true,"uniqueKey":"field_meta","typeLabel":"object · object · any · null"},"extraction_mode":{"type":"string","enum":["ai","manual","import","connector"],"description":"How the column gets filled. `ai`: extraction reads it out of each document. `manual`: a person types it and no scan ever touches it. `import`: values come from a connected spreadsheet, which owns the column. `connector`: values come from a connected document source, which owns the column. You can create `ai` and `manual` columns. An `import` column is created by connecting a spreadsheet in the app. A `connector` column is created when a source such as Ironclad fills it.","isRequired":true,"uniqueKey":"extraction_mode","typeLabel":"enum\u003cstring>"},"kind":{"type":"string","enum":["built_in","system","custom"],"description":"What this column is. `built_in`: merged into every vault by GC AI, with no ID and no way to change it. `system`: owned by this vault but managed by GC AI (Document Name, Document Status, Document Title), so it has an ID but rejects every change and every delete. `custom`: yours, and the only kind `PATCH` and `DELETE` accept.","isRequired":true,"uniqueKey":"kind","typeLabel":"enum\u003cstring>"},"editable":{"type":"boolean","description":"True when this column can be changed with `PATCH /vaults/{id}/columns/{columnId}`. Built-in and system columns report `false`: GC AI owns their name, type, options, and prompt. One exception, on both surfaces: `sort_order` is list position rather than identity, so it can be set on any column that has an ID.","isRequired":true,"uniqueKey":"editable","typeLabel":"boolean"},"sort_order":{"oneOf":[{"type":"number","description":"Placement weight for this column, or null for a built-in one. The table orders columns by `sort_order` first and creation time second.","isRequired":true,"uniqueKey":"sort_order.oneOf.0","typeLabel":"number"},{"type":"null","description":"Placement weight for this column, or null for a built-in one. The table orders columns by `sort_order` first and creation time second.","isRequired":true,"uniqueKey":"sort_order.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sort_order","typeLabel":"number | null"},"created_at":{"oneOf":[{"type":"string","description":"ISO 8601 creation timestamp, or null for a built-in column","isRequired":true,"uniqueKey":"created_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 creation timestamp, or null for a built-in column","isRequired":true,"uniqueKey":"created_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_at","typeLabel":"string | null"},"updated_at":{"oneOf":[{"type":"string","description":"ISO 8601 last-update timestamp, or null for a built-in column","isRequired":true,"uniqueKey":"updated_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 8601 last-update timestamp, or null for a built-in column","isRequired":true,"uniqueKey":"updated_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_at","typeLabel":"string | null"},"auto_rescan":{"oneOf":[{"type":"object","description":"What happened to the re-scan a type change triggered, or null when the change needed none. A non-null value never means the update failed.","required":["status","queued","total_files"],"properties":{"status":{"type":"string","enum":["queued"],"isRequired":true,"uniqueKey":"auto_rescan.oneOf.0.status","typeLabel":"enum\u003cstring>"},"queued":{"type":"number","description":"Documents committed to the re-scan. Zero means no document held a value for this column, or every one that did was already queued.","isRequired":true,"uniqueKey":"auto_rescan.oneOf.0.queued","typeLabel":"number"},"total_files":{"type":"number","description":"Documents that hold a value for this column, including any already queued.","isRequired":true,"uniqueKey":"auto_rescan.oneOf.0.total_files","typeLabel":"number"}},"isRequired":true,"uniqueKey":"auto_rescan.oneOf.0","typeLabel":"object"},{"type":"object","description":"What happened to the re-scan a type change triggered, or null when the change needed none. A non-null value never means the update failed.","required":["status"],"properties":{"status":{"type":"string","enum":["failed"],"description":"The column was saved and the re-scan could not be queued. Trigger a re-scan from the app when you want fresh values.","isRequired":true,"uniqueKey":"auto_rescan.oneOf.1.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"auto_rescan.oneOf.1","typeLabel":"object"},{"type":"object","description":"What happened to the re-scan a type change triggered, or null when the change needed none. A non-null value never means the update failed.","required":["status","run_id"],"properties":{"status":{"type":"string","enum":["deferred_to_sample"],"isRequired":true,"uniqueKey":"auto_rescan.oneOf.2.status","typeLabel":"enum\u003cstring>"},"run_id":{"oneOf":[{"type":"string","description":"The scan review this vault is waiting on. The re-scan runs when that review is approved.","isRequired":true,"uniqueKey":"auto_rescan.oneOf.2.run_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The scan review this vault is waiting on. The re-scan runs when that review is approved.","isRequired":true,"uniqueKey":"auto_rescan.oneOf.2.run_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"auto_rescan.oneOf.2.run_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"auto_rescan.oneOf.2","typeLabel":"object"},{"type":"object","description":"What happened to the re-scan a type change triggered, or null when the change needed none. A non-null value never means the update failed.","required":["status","used_today","limit","org_blocked"],"properties":{"status":{"type":"string","enum":["limit_reached"],"isRequired":true,"uniqueKey":"auto_rescan.oneOf.3.status","typeLabel":"enum\u003cstring>"},"used_today":{"type":"number","description":"Re-analysis actions this vault has spent today.","isRequired":true,"uniqueKey":"auto_rescan.oneOf.3.used_today","typeLabel":"number"},"limit":{"type":"number","description":"Re-analysis actions this vault gets per day.","isRequired":true,"uniqueKey":"auto_rescan.oneOf.3.limit","typeLabel":"number"},"org_blocked":{"type":"boolean","description":"True when re-analysis is turned off for the whole account, so waiting for tomorrow will not help.","isRequired":true,"uniqueKey":"auto_rescan.oneOf.3.org_blocked","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"auto_rescan.oneOf.3","typeLabel":"object"},{"description":"What happened to the re-scan a type change triggered, or null when the change needed none. A non-null value never means the update failed.","isRequired":true,"uniqueKey":"auto_rescan.oneOf.4","typeLabel":"any"},{"type":"null","description":"What happened to the re-scan a type change triggered, or null when the change needed none. A non-null value never means the update failed.","isRequired":true,"uniqueKey":"auto_rescan.oneOf.5","typeLabel":"null"}],"isRequired":true,"uniqueKey":"auto_rescan","typeLabel":"object · object · object · object · any · null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","field_key":"renewalNotice","label":"Renewal notice","instructions":"\u003cstring>","field_type":"text","field_meta":{"type":"enum","options":["\u003cstring>"],"legacy_options":["\u003cstring>"]},"extraction_mode":"ai","kind":"built_in","editable":true,"sort_order":123,"created_at":"\u003cstring>","updated_at":"\u003cstring>","auto_rescan":{"status":"queued","queued":123,"total_files":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"d3640440-24f6-455e-9b10-783a4507f455":{"description":"Invalid request body, an option list that is not 2 to 12 unique values, an `ai` column left with no instructions, a column GC AI manages, or a spreadsheet-owned column whose fill mode cannot change","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code present on some errors (e.g. `RATE_LIMITED`, `PLAN_REQUIRED`, `INSUFFICIENT_CREDITS`, `TRIAL_NOT_STARTED`, `BILLING_NOT_CONFIGURED`). Branch on this rather than the human-readable `error` string.","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Additional error details","uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"description":"Validation error details (for 400 errors)","uniqueKey":"details","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"9ee06038-b0b3-4b69-a161-7300e53231f9":{"description":"Missing or malformed API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code present on some errors (e.g. `RATE_LIMITED`, `PLAN_REQUIRED`, `INSUFFICIENT_CREDITS`, `TRIAL_NOT_STARTED`, `BILLING_NOT_CONFIGURED`). Branch on this rather than the human-readable `error` string.","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Additional error details","uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"description":"Validation error details (for 400 errors)","uniqueKey":"details","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"e183b66a-3595-467b-8fa8-1c212c61f803":{"description":"Contract Intelligence is not enabled for this account. Contact support to request access., or the caller cannot manage this vault's columns","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code present on some errors (e.g. `RATE_LIMITED`, `PLAN_REQUIRED`, `INSUFFICIENT_CREDITS`, `TRIAL_NOT_STARTED`, `BILLING_NOT_CONFIGURED`). Branch on this rather than the human-readable `error` string.","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Additional error details","uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"description":"Validation error details (for 400 errors)","uniqueKey":"details","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"ab78d61d-b007-425c-81a6-4599ebc0c71e":{"description":"Vault or column not found, or access denied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code present on some errors (e.g. `RATE_LIMITED`, `PLAN_REQUIRED`, `INSUFFICIENT_CREDITS`, `TRIAL_NOT_STARTED`, `BILLING_NOT_CONFIGURED`). Branch on this rather than the human-readable `error` string.","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Additional error details","uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"description":"Validation error details (for 400 errors)","uniqueKey":"details","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"c1d4f5c6-61c7-461a-979f-2ab208ed5622":{"description":"The vault is archived. Restore it with `POST /vaults/{id}/restore` before changing it.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code present on some errors (e.g. `RATE_LIMITED`, `PLAN_REQUIRED`, `INSUFFICIENT_CREDITS`, `TRIAL_NOT_STARTED`, `BILLING_NOT_CONFIGURED`). Branch on this rather than the human-readable `error` string.","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Additional error details","uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"description":"Validation error details (for 400 errors)","uniqueKey":"details","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"3b3548d4-adf5-40fc-b563-21a2dc03d979":{"description":"Vault access is per-user and requires a user-scoped API key (u:gcai_...).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code present on some errors (e.g. `RATE_LIMITED`, `PLAN_REQUIRED`, `INSUFFICIENT_CREDITS`, `TRIAL_NOT_STARTED`, `BILLING_NOT_CONFIGURED`). Branch on this rather than the human-readable `error` string.","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Additional error details","uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"description":"Validation error details (for 400 errors)","uniqueKey":"details","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"3d1d9d98-7ac9-4386-9640-71b09c04ac30":{"description":"Rate limit exceeded. See [Rate Limits](/api-reference/concepts/rate-limits) for the tiers, limits, and how to back off.","headers":{"Retry-After":{"schema":{"type":"string","description":"Seconds to wait before retrying after a rate-limit block.","example":"60"},"required":true,"description":"Seconds to wait before retrying after a rate-limit block."},"RateLimit-Limit":{"schema":{"type":"string","description":"Request quota for the applicable window.","example":"3"},"required":true,"description":"Request quota for the applicable window."},"RateLimit-Remaining":{"schema":{"type":"string","description":"Requests remaining in the current window.","example":"0"},"required":true,"description":"Requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"string","description":"Seconds until the quota resets.","example":"60"},"required":true,"description":"Seconds until the quota resets."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code present on some errors (e.g. `RATE_LIMITED`, `PLAN_REQUIRED`, `INSUFFICIENT_CREDITS`, `TRIAL_NOT_STARTED`, `BILLING_NOT_CONFIGURED`). Branch on this rather than the human-readable `error` string.","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Additional error details","uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"description":"Validation error details (for 400 errors)","uniqueKey":"details","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"653af943-d63e-4705-994a-0dd6efb25930":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code present on some errors (e.g. `RATE_LIMITED`, `PLAN_REQUIRED`, `INSUFFICIENT_CREDITS`, `TRIAL_NOT_STARTED`, `BILLING_NOT_CONFIGURED`). Branch on this rather than the human-readable `error` string.","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Additional error details","uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"description":"Validation error details (for 400 errors)","uniqueKey":"details","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"a7cea1bc-4640-473c-81a2-a23bed0586ac":{"description":"Service temporarily unavailable","headers":{"Retry-After":{"schema":{"type":"string","description":"Seconds to wait before retrying after a transient service outage.","example":"5"},"required":true,"description":"Seconds to wait before retrying after a transient service outage."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code present on some errors (e.g. `RATE_LIMITED`, `PLAN_REQUIRED`, `INSUFFICIENT_CREDITS`, `TRIAL_NOT_STARTED`, `BILLING_NOT_CONFIGURED`). Branch on this rather than the human-readable `error` string.","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Additional error details","uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"description":"Validation error details (for 400 errors)","uniqueKey":"details","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"14324239-8a06-4019-9b6c-9e2d0b0485b8":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key for authentication. Format: `gcai_xxxxxxxxx`\n\nCreate API keys in the GC AI app under Settings → API.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"2c21f627-fcca-46ae-8404-7077fb0598ec":{"url":"https://app.gc.ai/api/external/v1","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"API key for authentication. Format: `gcai_xxxxxxxxx`\n\nCreate API keys in the GC AI app under Settings → API.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Authorization","type":"string","description":"API key for authentication. Format: `gcai_xxxxxxxxx`\n\nCreate API keys in the GC AI app under Settings → API.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"gcai","siteName":"GC AI","title":"Update a Vault Column - GC AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-25T12:20:08.578Z","gitLastModified":"2026-09-25T12:19:50.000Z","originalFileLocation":"api-reference/update-vault-column.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=\"Change a column\u0026#x27;s label, instructions, value type, option list, fill mode, or placement. Send only the fields you want to change; everything you leave out keeps its current value. field_key is not one of them: it is frozen at creation so the values already extracted stay attached. Changing the value type of an ai column makes the values already extracted for it stale, because they were stored as text read under the old type. GC AI queues a re-scan of the documents that hold one and reports it in auto_rescan. The column is saved whatever auto_rescan says, so treat that field as news about the re-scan and not as an error. When the vault is waiting on a scan review, the re-scan waits for that approval instead of starting now. Only a custom column accepts changes. A system column (Document Name, Document Status, Document Title) returns 400, and so does a column a connected spreadsheet owns if you try to move it in or out of import. Requires the editor or owner role in the vault and the organization-level permission to manage vaults. Requires a user-scoped API key (u:gcai_...). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.\">\u003cmeta data-mint-head name=\"application-name\" content=\"GC 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/gcai/XpTjQtvSBPYuCpWI/_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/gcai/XpTjQtvSBPYuCpWI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/gcai/XpTjQtvSBPYuCpWI/_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/gcai/XpTjQtvSBPYuCpWI/_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/gcai/XpTjQtvSBPYuCpWI/_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/gcai/XpTjQtvSBPYuCpWI/_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/gcai/XpTjQtvSBPYuCpWI/_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/gcai/XpTjQtvSBPYuCpWI/_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/gcai/XpTjQtvSBPYuCpWI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a Vault Column - GC AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Change a column\u0026#x27;s label, instructions, value type, option list, fill mode, or placement. Send only the fields you want to change; everything you leave out keeps its current value. field_key is not one of them: it is frozen at creation so the values already extracted stay attached. Changing the value type of an ai column makes the values already extracted for it stale, because they were stored as text read under the old type. GC AI queues a re-scan of the documents that hold one and reports it in auto_rescan. The column is saved whatever auto_rescan says, so treat that field as news about the re-scan and not as an error. When the vault is waiting on a scan review, the re-scan waits for that approval instead of starting now. Only a custom column accepts changes. A system column (Document Name, Document Status, Document Title) returns 400, and so does a column a connected spreadsheet owns if you try to move it in or out of import. Requires the editor or owner role in the vault and the organization-level permission to manage vaults. Requires a user-scoped API key (u:gcai_...). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"GC AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.gc.ai/api-reference/update-vault-column\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://gcai.mintlify.site/_mintlify/api/og/v2?division=Contract+Intelligence\u0026amp;title=Update+a+Vault+Column\u0026amp;description=Change+a+column%27s+label%2C+instructions%2C+value+type%2C+option+list%2C+fill+mode%2C+or+placement.+Send+only+the+fields+you+want+to+change%3B+everything+you+leave+out+keeps\u0026amp;theme=0fe006a5f9e0d576e50fc869\u0026amp;signature=e96b14f2bf70c34e21949e3e86f3e3b063dc28f7573216cb8f9862d307ec5f40\">\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 a Vault Column - GC AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Change a column\u0026#x27;s label, instructions, value type, option list, fill mode, or placement. Send only the fields you want to change; everything you leave out keeps its current value. field_key is not one of them: it is frozen at creation so the values already extracted stay attached. Changing the value type of an ai column makes the values already extracted for it stale, because they were stored as text read under the old type. GC AI queues a re-scan of the documents that hold one and reports it in auto_rescan. The column is saved whatever auto_rescan says, so treat that field as news about the re-scan and not as an error. When the vault is waiting on a scan review, the re-scan waits for that approval instead of starting now. Only a custom column accepts changes. A system column (Document Name, Document Status, Document Title) returns 400, and so does a column a connected spreadsheet owns if you try to move it in or out of import. Requires the editor or owner role in the vault and the organization-level permission to manage vaults. Requires a user-scoped API key (u:gcai_...). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://gcai.mintlify.site/_mintlify/api/og/v2?division=Contract+Intelligence\u0026amp;title=Update+a+Vault+Column\u0026amp;description=Change+a+column%27s+label%2C+instructions%2C+value+type%2C+option+list%2C+fill+mode%2C+or+placement.+Send+only+the+fields+you+want+to+change%3B+everything+you+leave+out+keeps\u0026amp;theme=0fe006a5f9e0d576e50fc869\u0026amp;signature=e96b14f2bf70c34e21949e3e86f3e3b063dc28f7573216cb8f9862d307ec5f40\">\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/gcai/XpTjQtvSBPYuCpWI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"GC AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#003047\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.gc.ai/api-reference/update-vault-column\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/update-vault-column.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://gc.ai/#organization\",\"name\":\"GC AI\",\"url\":\"https://gc.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/gcai/0BlqBDRwAhV-CbPw/logo/light.svg?fit=max\u0026auto=format\u0026n=0BlqBDRwAhV-CbPw\u0026q=85\u0026s=d11c2834d42373b30d3f9dc6d3138367\"},\"sameAs\":[\"https://x.com/gcai_co\",\"https://linkedin.com/company/gc-ai\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.gc.ai#website\",\"name\":\"GC AI\",\"url\":\"https://docs.gc.ai\",\"publisher\":{\"@id\":\"https://gc.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.gc.ai/api-reference/update-vault-column#webpage\",\"url\":\"https://docs.gc.ai/api-reference/update-vault-column\",\"name\":\"Update a Vault Column\",\"description\":\"Change a column's label, instructions, value type, option list, fill mode, or placement. Send only the fields you want to change; everything you leave out keeps its current value. field_key is not one of them: it is frozen at creation so the values already extracted stay attached. Changing the value type of an ai column makes the values already extracted for it stale, because they were stored as text read under the old type. GC AI queues a re-scan of the documents that hold one and reports it in auto_rescan. The column is saved whatever auto_rescan says, so treat that field as news about the re-scan and not as an error. When the vault is waiting on a scan review, the re-scan waits for that approval instead of starting now. Only a custom column accepts changes. A system column (Document Name, Document Status, Document Title) returns 400, and so does a column a connected spreadsheet owns if you try to move it in or out of import. Requires the editor or owner role in the vault and the organization-level permission to manage vaults. Requires a user-scoped API key (u:gcai_...). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.\",\"dateModified\":\"2026-09-25T12:19:50.000Z\",\"isPartOf\":{\"@id\":\"https://docs.gc.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.gc.ai/api-reference/update-vault-column#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.gc.ai/api-reference/update-vault-column#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"REST\",\"item\":\"https://docs.gc.ai/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Endpoints\",\"item\":\"https://docs.gc.ai/api-reference/get-async-job\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Contract Intelligence\",\"item\":\"https://docs.gc.ai/api-reference/add-vault-member\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Update a Vault Column\",\"item\":\"https://docs.gc.ai/api-reference/update-vault-column\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.gc.ai/api-reference/update-vault-column#apireference\",\"headline\":\"Update a Vault Column\",\"name\":\"Update a Vault Column\",\"description\":\"Change a column's label, instructions, value type, option list, fill mode, or placement. Send only the fields you want to change; everything you leave out keeps its current value. field_key is not one of them: it is frozen at creation so the values already extracted stay attached. Changing the value type of an ai column makes the values already extracted for it stale, because they were stored as text read under the old type. GC AI queues a re-scan of the documents that hold one and reports it in auto_rescan. The column is saved whatever auto_rescan says, so treat that field as news about the re-scan and not as an error. When the vault is waiting on a scan review, the re-scan waits for that approval instead of starting now. Only a custom column accepts changes. A system column (Document Name, Document Status, Document Title) returns 400, and so does a column a connected spreadsheet owns if you try to move it in or out of import. Requires the editor or owner role in the vault and the organization-level permission to manage vaults. Requires a user-scoped API key (u:gcai_...). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.\",\"url\":\"https://docs.gc.ai/api-reference/update-vault-column\",\"mainEntityOfPage\":{\"@id\":\"https://docs.gc.ai/api-reference/update-vault-column#webpage\"},\"dateModified\":\"2026-09-25T12:19:50.000Z\",\"publisher\":{\"@id\":\"https://gc.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.gc.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"GC AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"GC AI","nav":{"global":{"anchors":[{"anchor":"Community","icon":"slack","href":"https://gc.ai/slack"},{"anchor":"Blog","icon":"newspaper","href":"https://gc.ai/blog"},{"anchor":"Classes","icon":"graduation-cap","href":"https://gc.ai/classes"}]},"tabs":[{"tab":"Help","pages":[{"title":"Help","href":"/support"}]},{"tab":"API Reference","groups":[{"group":"REST","pages":[{"title":"API Introduction","href":"/api-reference/introduction"},{"title":"REST API surface map","sidebarTitle":"Surface map","href":"/api-reference/rest-surface-map"},{"group":"Concepts","pages":[{"title":"How to Enable","href":"/api-reference/how-to-enable"},{"title":"API Keys","href":"/api-reference/concepts/api-keys"},{"title":"Asynchronous Requests","href":"/api-reference/concepts/async-jobs"},{"title":"Chat Visibility","href":"/api-reference/concepts/chat-visibility"},{"title":"Multi-turn Conversations","href":"/api-reference/concepts/multi-turn"},{"title":"Tool permissions","href":"/api-reference/concepts/tool-permissions"},{"title":"Rate Limits","href":"/api-reference/concepts/rate-limits"},{"title":"Running an example on Replit","href":"/api-reference/concepts/running-on-replit"}]},{"group":"Examples","pages":[{"title":"Contract Risk Heatmap","href":"/api-reference/examples/contract-risk-heatmap"},{"title":"Triage \u0026 Route","href":"/api-reference/examples/triage-and-route"},{"title":"Slack Triage Bot","href":"/api-reference/examples/slack-triage-bot"}]},{"group":"Endpoints","expanded":true,"pages":[{"group":"Async Jobs","pages":[{"title":"Get Async Job Status","openapi":"GET /jobs/{id}","href":"/api-reference/get-async-job"}]},{"group":"Chat","pages":[{"title":"Create Chat Completion","openapi":"POST /chat/completions","href":"/api-reference/create-chat-completion"},{"title":"Materialize an API Chat","openapi":"POST /chat/{id}/materialize","href":"/api-reference/materialize-chat"},{"title":"Search Chats","openapi":"GET /chat/search","href":"/api-reference/search-chats"}]},{"group":"Chats","pages":[{"title":"Create a Public Share Link","openapi":"POST /chats/{id}/share","href":"/api-reference/create-chat-share-link"},{"title":"Delete a Chat","openapi":"DELETE /chats/{id}","href":"/api-reference/delete-chat"},{"title":"Detach a File From a Chat","openapi":"DELETE /chats/{id}/files/{fileId}","href":"/api-reference/detach-file-from-chat"},{"title":"Duplicate a Chat","openapi":"POST /chats/{id}/duplicate","href":"/api-reference/duplicate-chat"},{"title":"Get a Chat","openapi":"GET /chats/{id}","href":"/api-reference/get-chat"},{"title":"List Messages in a Chat","openapi":"GET /chats/{id}/messages","href":"/api-reference/list-chat-messages"},{"title":"List Chats","openapi":"GET /chats","href":"/api-reference/list-chats"},{"title":"Revoke a Public Share Link","openapi":"DELETE /chats/{id}/share","href":"/api-reference/revoke-chat-share-link"},{"title":"Update a Chat","openapi":"PATCH /chats/{id}","href":"/api-reference/update-chat"}]},{"group":"Contract Intelligence","pages":[{"title":"Add a Member to a Vault","openapi":"POST /vaults/{id}/members","href":"/api-reference/add-vault-member"},{"title":"Archive a Vault","openapi":"POST /vaults/{id}/archive","href":"/api-reference/archive-vault"},{"title":"Create a Vault","openapi":"POST /vaults","href":"/api-reference/create-vault"},{"title":"Add a Column to a Vault","openapi":"POST /vaults/{id}/columns","href":"/api-reference/create-vault-column"},{"title":"Create a Saved View","openapi":"POST /vaults/{id}/views","href":"/api-reference/create-vault-view"},{"title":"Delete a Vault","openapi":"DELETE /vaults/{id}","href":"/api-reference/delete-vault"},{"title":"Remove a Column From a Vault","openapi":"DELETE /vaults/{id}/columns/{columnId}","href":"/api-reference/delete-vault-column"},{"title":"Remove a Document From a Vault","openapi":"DELETE /vaults/{id}/documents/{documentId}","href":"/api-reference/delete-vault-document"},{"title":"Delete a Saved View","openapi":"DELETE /vaults/{id}/views/{viewId}","href":"/api-reference/delete-vault-view"},{"title":"Get a Vault","openapi":"GET /vaults/{id}","href":"/api-reference/get-vault"},{"title":"Get One Document Row","openapi":"GET /vaults/{id}/documents/{documentId}","href":"/api-reference/get-vault-document"},{"title":"List a Vault's Columns","openapi":"GET /vaults/{id}/columns","href":"/api-reference/list-vault-columns"},{"title":"Read a Vault's Document Table","openapi":"GET /vaults/{id}/documents","href":"/api-reference/list-vault-documents"},{"title":"List a Vault's Members","openapi":"GET /vaults/{id}/members","href":"/api-reference/list-vault-members"},{"title":"List a Vault's Saved Views","openapi":"GET /vaults/{id}/views","href":"/api-reference/list-vault-views"},{"title":"List Vaults","openapi":"GET /vaults","href":"/api-reference/list-vaults"},{"title":"Remove a Member From a Vault","openapi":"DELETE /vaults/{id}/members/{userId}","href":"/api-reference/remove-vault-member"},{"title":"Restore an Archived Vault","openapi":"POST /vaults/{id}/restore","href":"/api-reference/restore-vault"},{"title":"Restore a Removed Document","openapi":"POST /vaults/{id}/documents/{documentId}/restore","href":"/api-reference/restore-vault-document"},{"title":"Restore the Extracted Value of a Cell","openapi":"POST /vaults/{id}/documents/{documentId}/cells/{fieldKey}/revert","href":"/api-reference/revert-vault-document-cell"},{"title":"Update a Vault","openapi":"PATCH /vaults/{id}","description":"Change a vault name, description, or whether it is access-controlled. Send only the fields you want to change.\n\nTurning access control on hides the vault from everyone who is not a member. Turning it off lets any organization member with organization-wide vault read open it as a viewer. Neither adds nor removes a member: use `/vaults/{id}/members` for that.\n\nRequires the `owner` role in the vault and the organization-level permission to manage vaults.\n\nRequires a user-scoped API key (`u:gcai_...`). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.","href":"/api-reference/update-vault"},{"title":"Update a Vault Column","openapi":"PATCH /vaults/{id}/columns/{columnId}","href":"/api-reference/update-vault-column"},{"title":"Set a Cell Value by Hand","openapi":"PATCH /vaults/{id}/documents/{documentId}/cells/{fieldKey}","description":"Overwrite one extracted value in a vault with a value of your own. The cell keeps showing your value, and hides the citations and reasoning behind the extracted one, until you put it back with `POST /vaults/{id}/documents/{documentId}/cells/{fieldKey}/revert`.\n\n`value` is always a string, whatever the column holds. Text, enum, email, URL, number, and percentage columns take the value as written. A checkbox column takes `true` or `false`. A date column takes `YYYY-MM-DD`. Multi-select and list columns take a JSON array of strings, for example `[\"Delaware\",\"New York\"]`. Currency, duration, date-range, party, and related-agreement columns take the same JSON the read path returns for that column, so the safest way to build one is to read the cell first and edit what comes back.\n\nAn enum or multi-select value outside the column's configured options returns `400`, and so does any column GC AI writes itself: the folder columns synced from a connected drive, and a Document Name column the vault manages through its naming template.\n\nEditing a cell while its document is still being scanned is allowed. Your value wins: an extraction that lands afterwards does not overwrite it, so there is no need to poll for the scan to finish first.\n\nA document that belongs to another vault returns `404`, even when the caller can reach both vaults, and so does a column key this vault does not have. Read the keys from `GET /vaults/{id}/columns`.\n\nRequires the `editor` or `owner` role in the vault and the organization-level permission to manage vaults. An archived vault returns `409`: restore it first. A document that was deleted, or auto-removed as a duplicate copy, also returns `409`, and so does a document stored before GC AI split bundled uploads, which has no cells of its own to write.\n\nRequires a user-scoped API key (`u:gcai_...`). A vault is shared with named people, so an organization-scoped key has no identity to resolve vault access with.","href":"/api-reference/update-vault-document-cell"},{"title":"Change a Member's Role","openapi":"PATCH /vaults/{id}/members/{userId}","href":"/api-reference/update-vault-member-role"},{"title":"Update a Saved View","openapi":"PATCH /vaults/{id}/views/{viewId}","href":"/api-reference/update-vault-view"},{"title":"Add a Document to a Vault","openapi":"POST /vaults/{id}/documents","href":"/api-reference/upload-vault-document"}]},{"group":"Files","pages":[{"title":"Abort a Chunked Upload","openapi":"DELETE /files/uploads/{upload_id}","href":"/api-reference/abort-upload"},{"title":"Complete a Chunked Upload","openapi":"POST /files/uploads/{upload_id}/complete","href":"/api-reference/complete-upload"},{"title":"Get File Status","openapi":"GET /files/{id}","href":"/api-reference/get-file-status"},{"title":"Initiate a Chunked Upload","openapi":"POST /files/uploads","href":"/api-reference/initiate-upload"},{"title":"Search Files","openapi":"GET /files","href":"/api-reference/search-files"},{"title":"Move a File","openapi":"PATCH /files/{id}","href":"/api-reference/update-file"},{"title":"Upload a File","openapi":"POST /files","href":"/api-reference/upload-file"},{"title":"Upload a File Part","openapi":"PUT /files/uploads/{upload_id}/parts/{part_number}","href":"/api-reference/upload-part"}]},{"group":"Folders","pages":[{"title":"Create a Folder","openapi":"POST /folders","href":"/api-reference/create-folder"},{"title":"Delete a Folder","openapi":"DELETE /folders/{id}","href":"/api-reference/delete-folder"},{"title":"Get a Folder","openapi":"GET /folders/{id}","href":"/api-reference/get-folder"},{"title":"List a Folder's Children","openapi":"GET /folders/{id}/children","href":"/api-reference/list-folder-children"},{"title":"List Folders","openapi":"GET /folders","href":"/api-reference/list-folders"},{"title":"Update a Folder","openapi":"PATCH /folders/{id}","href":"/api-reference/update-folder"}]},{"group":"MCP","pages":[{"title":"Provision MCP Client-credentials","openapi":"POST /mcp/credentials","href":"/api-reference/provision-mcp-credentials"}]},{"group":"Playbooks","pages":[{"title":"Create a Playbook","openapi":"POST /playbooks","href":"/api-reference/create-playbook"},{"title":"Add a Check to a Playbook","openapi":"POST /playbooks/{id}/checks","href":"/api-reference/create-playbook-check"},{"title":"Delete a Playbook","openapi":"DELETE /playbooks/{id}","href":"/api-reference/delete-playbook"},{"title":"Remove a Check From a Playbook","openapi":"DELETE /playbooks/{id}/checks/{checkId}","href":"/api-reference/delete-playbook-check"},{"title":"Duplicate a Playbook","openapi":"POST /playbooks/{id}/duplicate","href":"/api-reference/duplicate-playbook"},{"title":"Get a Playbook","openapi":"GET /playbooks/{id}","href":"/api-reference/get-playbook"},{"title":"Get a Check","openapi":"GET /playbooks/{id}/checks/{checkId}","href":"/api-reference/get-playbook-check"},{"title":"List a Playbook's Checks","openapi":"GET /playbooks/{id}/checks","href":"/api-reference/list-playbook-checks"},{"title":"List Playbooks","openapi":"GET /playbooks","href":"/api-reference/list-playbooks"},{"title":"Reorder a Playbook's Checks","openapi":"POST /playbooks/{id}/checks/reorder","href":"/api-reference/reorder-playbook-checks"},{"title":"Run a Playbook Against Uploaded Files","openapi":"POST /playbooks/{id}/run","href":"/api-reference/run-playbook"},{"title":"Update a Playbook","openapi":"PATCH /playbooks/{id}","href":"/api-reference/update-playbook"},{"title":"Update a Check","openapi":"PATCH /playbooks/{id}/checks/{checkId}","href":"/api-reference/update-playbook-check"}]},{"group":"Profiles","pages":[{"title":"Get a Company Profile","openapi":"GET /company-profiles/{id}","href":"/api-reference/get-company-profile"},{"title":"Get the Company Profile","openapi":"GET /company-profile","href":"/api-reference/get-default-company-profile"},{"title":"Identify the Caller","openapi":"GET /me","href":"/api-reference/get-me"},{"title":"Get Your Personal Profile","openapi":"GET /me/profile","href":"/api-reference/get-my-profile"},{"title":"List Company Profiles","openapi":"GET /company-profiles","href":"/api-reference/list-company-profiles"},{"title":"Update a Company Profile","openapi":"PATCH /company-profiles/{id}","href":"/api-reference/update-company-profile"},{"title":"Update the Company Profile","openapi":"PATCH /company-profile","href":"/api-reference/update-default-company-profile"},{"title":"Update Your Personal Profile","openapi":"PATCH /me/profile","href":"/api-reference/update-my-profile"}]},{"group":"Projects","pages":[{"title":"File a Chat Into a Project","openapi":"POST /projects/{id}/chats","href":"/api-reference/attach-chat-to-project"},{"title":"Attach a File to a Project","openapi":"POST /projects/{id}/files","href":"/api-reference/attach-file-to-project"},{"title":"Attach a Folder to a Project","openapi":"POST /projects/{id}/folders","href":"/api-reference/attach-folder-to-project"},{"title":"Create a Project","openapi":"POST /projects","href":"/api-reference/create-project"},{"title":"Delete a Project","openapi":"DELETE /projects/{id}","href":"/api-reference/delete-project"},{"title":"Detach a File From a Project","openapi":"DELETE /projects/{id}/files/{fileId}","href":"/api-reference/detach-file-from-project"},{"title":"Detach a Folder From a Project","openapi":"DELETE /projects/{id}/folders/{folderId}","href":"/api-reference/detach-folder-from-project"},{"title":"Get a Project","openapi":"GET /projects/{id}","href":"/api-reference/get-project"},{"title":"List Chats in a Project","openapi":"GET /projects/{id}/chats","href":"/api-reference/list-project-chats"},{"title":"List Files on a Project","openapi":"GET /projects/{id}/files","href":"/api-reference/list-project-files"},{"title":"List Folders Linked to a Project","openapi":"GET /projects/{id}/folders","href":"/api-reference/list-project-folders"},{"title":"List Projects","openapi":"GET /projects","href":"/api-reference/list-projects"},{"title":"Pin a Project","openapi":"POST /projects/{id}/pin","href":"/api-reference/pin-project"},{"title":"Pin a Project (legacy Star Alias)","openapi":"POST /projects/{id}/star","href":"/api-reference/star-project"},{"title":"Unpin a Project","openapi":"DELETE /projects/{id}/pin","href":"/api-reference/unpin-project"},{"title":"Unpin a Project (legacy Star Alias)","openapi":"DELETE /projects/{id}/star","href":"/api-reference/unstar-project"},{"title":"Update a Project","openapi":"PATCH /projects/{id}","href":"/api-reference/update-project"}]},{"group":"Skills","pages":[{"title":"Create a Skill","openapi":"POST /skills","href":"/api-reference/create-skill"},{"title":"Delete a Skill","openapi":"DELETE /skills/{id}","href":"/api-reference/delete-skill"},{"title":"Get a Skill","openapi":"GET /skills/{id}","href":"/api-reference/get-skill"},{"title":"List Skills","openapi":"GET /skills","href":"/api-reference/list-skills"},{"title":"Update a Skill","openapi":"PATCH /skills/{id}","href":"/api-reference/update-skill"}]},{"group":"Usage","pages":[{"title":"Get Credit Usage","openapi":"GET /credit-usage","href":"/api-reference/get-credit-usage"},{"title":"Get Usage Summary","openapi":"GET /usage","href":"/api-reference/get-usage"}]},{"group":"Utility","pages":[{"title":"Health Check","openapi":"GET /ping","href":"/api-reference/ping"}]}]}]},{"group":"MCP","pages":[{"title":"MCP Introduction","href":"/api-reference/mcp/overview"},{"title":"MCP tools surface map","sidebarTitle":"Surface map","href":"/api-reference/mcp/surface-map"},{"group":"Concepts","pages":[{"title":"Connecting","href":"/api-reference/mcp/connecting"},{"title":"Client credentials (M2M)","href":"/api-reference/mcp/machine-access"}]},{"group":"Tools","expanded":true,"pages":[{"group":"Ask GC AI","pages":[{"title":"Create chat completion","href":"/api-reference/mcp/tools/ask-gcai"},{"title":"Check chat completion status","href":"/api-reference/mcp/tools/ask-gcai-status"},{"title":"Save chat","href":"/api-reference/mcp/tools/ask-gcai-save-chat"}]},{"group":"Files","pages":[{"title":"Get files","href":"/api-reference/mcp/tools/get-files"},{"title":"Upload file","href":"/api-reference/mcp/tools/upload-file"},{"title":"Start file upload","href":"/api-reference/mcp/tools/start-file-upload"},{"title":"Finish file upload","href":"/api-reference/mcp/tools/finish-file-upload"}]},{"group":"Projects","pages":[{"title":"Get projects","href":"/api-reference/mcp/tools/get-projects"},{"title":"Create project","href":"/api-reference/mcp/tools/create-project"},{"title":"Update project","href":"/api-reference/mcp/tools/update-project"},{"title":"Attach files to project","href":"/api-reference/mcp/tools/attach-to-project"},{"title":"Detach files from project","href":"/api-reference/mcp/tools/detach-from-project"}]},{"group":"Playbooks","pages":[{"title":"Get playbooks","href":"/api-reference/mcp/tools/get-playbooks"},{"title":"Create playbook","href":"/api-reference/mcp/tools/create-playbook"},{"title":"Update playbook","href":"/api-reference/mcp/tools/update-playbook"},{"title":"Run a playbook against uploaded files","href":"/api-reference/mcp/tools/run-playbook"},{"title":"Check playbook run status","href":"/api-reference/mcp/tools/run-playbook-status"}]},{"group":"Skills","pages":[{"title":"Get skills","href":"/api-reference/mcp/tools/get-skills"},{"title":"Create skill","href":"/api-reference/mcp/tools/create-skill"},{"title":"Update skill","href":"/api-reference/mcp/tools/update-skill"}]},{"group":"Contract Intelligence","pages":[{"title":"Get vaults","href":"/api-reference/mcp/tools/get-vaults"},{"title":"Get vault documents","href":"/api-reference/mcp/tools/get-vault-documents"},{"title":"Get vault columns","href":"/api-reference/mcp/tools/get-vault-columns"},{"title":"Create vault","href":"/api-reference/mcp/tools/create-vault"},{"title":"Update vault","href":"/api-reference/mcp/tools/update-vault"},{"title":"Create vault column","href":"/api-reference/mcp/tools/create-vault-column"},{"title":"Update vault column","href":"/api-reference/mcp/tools/update-vault-column"},{"title":"Update vault document cell","href":"/api-reference/mcp/tools/update-vault-document-cell"}]}]}]},{"group":"CLI","pages":[{"title":"CLI Introduction","href":"/api-reference/cli/overview"},{"title":"CLI surface map","sidebarTitle":"Surface map","href":"/api-reference/cli/surface-map"},{"group":"Concepts","pages":[{"title":"Authentication","href":"/api-reference/cli/authentication"},{"title":"Output and scripting","href":"/api-reference/cli/output"},{"title":"Async and polling","href":"/api-reference/cli/async"}]},{"group":"Commands","expanded":true,"pages":[{"title":"gcai chat CLI commands","sidebarTitle":"Chat","href":"/api-reference/cli/commands/chat"},{"title":"gcai company CLI commands","sidebarTitle":"Company","href":"/api-reference/cli/commands/company"},{"title":"gcai company-profiles CLI commands","sidebarTitle":"Company-profiles","href":"/api-reference/cli/commands/company-profiles"},{"title":"gcai files CLI commands","sidebarTitle":"Files","href":"/api-reference/cli/commands/files"},{"title":"gcai folders CLI commands","sidebarTitle":"Folders","href":"/api-reference/cli/commands/folders"},{"title":"gcai jobs CLI commands","sidebarTitle":"Jobs","href":"/api-reference/cli/commands/jobs"},{"title":"gcai mcp CLI commands","sidebarTitle":"Mcp","href":"/api-reference/cli/commands/mcp"},{"title":"gcai me CLI commands","sidebarTitle":"Me","href":"/api-reference/cli/commands/me"},{"title":"gcai ping CLI commands","sidebarTitle":"Ping","href":"/api-reference/cli/commands/ping"},{"title":"gcai playbooks CLI commands","sidebarTitle":"Playbooks","href":"/api-reference/cli/commands/playbooks"},{"title":"gcai profile CLI commands","sidebarTitle":"Profile","href":"/api-reference/cli/commands/profile"},{"title":"gcai projects CLI commands","sidebarTitle":"Projects","href":"/api-reference/cli/commands/projects"},{"title":"gcai skills CLI commands","sidebarTitle":"Skills","href":"/api-reference/cli/commands/skills"},{"title":"gcai usage CLI commands","sidebarTitle":"Usage","href":"/api-reference/cli/commands/usage"},{"title":"gcai vaults CLI commands","sidebarTitle":"Vaults","href":"/api-reference/cli/commands/vaults"}]}]}]}]},"basePath":"","title":"Update a Vault Column - GC AI","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}