The API version of the app’s “Edit company” and “Add New Sheet”. Send only the fields to change; any other field is a 400. templates ADDS templates: each slug without a sheet gets a new, empty one, and slugs that already have one are skipped — templates are never removed. Changing source or adding templates is refused with 409 (code: imports_in_flight) while an import is in progress, including a preview waiting for approval; name and external_id can always change.
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Vern Documentation","colors":{"primary":"#10B981","light":"#10B981","dark":"#10B981"},"logo":{"light":"https://mintcdn.com/vern/xEWEVl-f4WbHT-6k/logo/light.svg?fit=max\u0026auto=format\u0026n=xEWEVl-f4WbHT-6k\u0026q=85\u0026s=0935c9d27922ebd917cfce0dcb725e8c","dark":"https://mintcdn.com/vern/xEWEVl-f4WbHT-6k/logo/dark.svg?fit=max\u0026auto=format\u0026n=xEWEVl-f4WbHT-6k\u0026q=85\u0026s=be7b12a31aaf3cfacd7691cbf8f468bc"},"favicon":"https://mintcdn.com/vern/VGwZnfx-38Sub0SU/favicon.ico?fit=max\u0026auto=format\u0026n=VGwZnfx-38Sub0SU\u0026q=85\u0026s=74ccbcba180f9f513dea96c094e6ffc4","navbar":{"links":[{"href":"mailto:roupen@vern.so","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.vern.so/companies"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/vern-so"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vern","hasAudioNarration":false,"actualSubdomain":"vern","customDomains":["docs.vern.so"],"gitSource":{"type":"github","owner":"vern-so","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af100297fb4490a674c8b55","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API Reference","count":33},{"language":"default","tag":"Guides","count":27},{"language":"default","tag":"Developer","count":25},{"language":"default","tag":"API reference","count":19},{"language":"default","tag":"Migrations","count":16},{"language":"default","tag":"Runs","count":15},{"language":"default","tag":"Catalog","count":8},{"language":"default","tag":"Settings","count":7},{"language":"default","tag":"Sources \u0026 templates","count":6},{"language":"default","tag":"Get started","count":5}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/migrations/update-a-migration","slug":"/api-reference/migrations/update-a-migration","pageMetadata":{"title":"Update a migration","description":"The API version of the app's \"Edit company\" and \"Add New Sheet\". Send only the fields to change; any other field is a 400. `templates` ADDS templates: each slug without a sheet gets a new, empty one, and slugs that already have one are skipped — templates are never removed. Changing `source` or adding `templates` is refused with 409 (`code: imports_in_flight`) while an import is in progress, including a preview waiting for approval; `name` and `external_id` can always change.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /migrations/{migration_id}","href":"/api-reference/migrations/update-a-migration","autogeneratedByOpenApi":true},"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: [\"The API version of the app’s “Edit company” and “Add New Sheet”. Send only the fields to change; any other field is a 400. \", _jsx(_components.code, {\n children: \"templates\"\n }), \" ADDS templates: each slug without a sheet gets a new, empty one, and slugs that already have one are skipped — templates are never removed. Changing \", _jsx(_components.code, {\n children: \"source\"\n }), \" or adding \", _jsx(_components.code, {\n children: \"templates\"\n }), \" is refused with 409 (\", _jsx(_components.code, {\n children: \"code: imports_in_flight\"\n }), \") while an import is in progress, including a preview waiting for approval; \", _jsx(_components.code, {\n children: \"name\"\n }), \" and \", _jsx(_components.code, {\n children: \"external_id\"\n }), \" can always change.\"]\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 migration","description":"The API version of the app's \"Edit company\" and \"Add New Sheet\". Send only the fields to change; any other field is a 400. `templates` ADDS templates: each slug without a sheet gets a new, empty one, and slugs that already have one are skipped — templates are never removed. Changing `source` or adding `templates` is refused with 409 (`code: imports_in_flight`) while an import is in progress, including a preview waiting for approval; `name` and `external_id` can always change.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /migrations/{migration_id}","href":"/api-reference/migrations/update-a-migration","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"updateMigration","summary":"Update a migration","description":"The API version of the app's \"Edit company\" and \"Add New Sheet\". Send only the fields to change; any other field is a 400. `templates` ADDS templates: each slug without a sheet gets a new, empty one, and slugs that already have one are skipped — templates are never removed. Changing `source` or adding `templates` is refused with 409 (`code: imports_in_flight`) while an import is in progress, including a preview waiting for approval; `name` and `external_id` can always change.","tags":["Migrations"],"requestBody":"a749a48b-af2f-493d-b36c-aef402152e71","responses":{"200":"fa42cd10-c2c4-4864-aa0b-111c83cd5c32","400":"d2fc3346-3307-4bd4-a874-9ac03d5bc9d6","401":"ef159330-8158-4b24-9965-bdaeb089207e","404":"37a79ade-c783-4937-a7c4-2c96d79c4027","409":"d8972a3a-8dfe-41f2-a416-dfa4e237862c","429":"a82f476a-697c-4cf4-802d-4ba0dce58a97","500":"dd7c64f2-4a77-4bff-9cac-b7aea8584348"},"method":"patch","type":"path","servers":["213313a5-f192-4a74-a958-34e83a5f51d9","077e2eac-59bf-4391-81d0-d6b23551ddbc"],"security":["70ccee12-e246-43f6-a2a6-b6c140cb677d"],"path":"/migrations/{migration_id}","baseUrlOptions":["https://app.vern.so/api/v1","https://au.app.vern.so/api/v1"],"title":"Update a migration","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"3e65a144-7269-4ebc-a030-4e51ad493544":{"name":"migration_id","in":"path","required":true,"description":"The migration ID returned by Create a migration.","schema":{"type":"string","format":"uuid","isRequired":true,"description":"The migration ID returned by Create a migration.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"example":"c0a8012e-4f1b-4d3a-9b2c-7e6f5a4b3c2d"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"name":{"type":"string","description":"New display name. Must be non-blank.","uniqueKey":"name","typeLabel":"string"},"source":{"oneOf":[{"type":"string","description":"Source name to bind, or null for a sourceless migration.","uniqueKey":"source.oneOf.0","typeLabel":"string"},{"type":"null","description":"Source name to bind, or null for a sourceless migration.","uniqueKey":"source.oneOf.1","typeLabel":"null"}],"uniqueKey":"source","typeLabel":"string | null"},"external_id":{"oneOf":[{"type":"string","maxLength":255,"pattern":"^[a-zA-Z0-9_-]+$","description":"A new external ID, unique among your migrations, or null to clear it.","uniqueKey":"external_id.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"pattern":"^[a-zA-Z0-9_-]+$","description":"A new external ID, unique among your migrations, or null to clear it.","uniqueKey":"external_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"external_id","typeLabel":"string | null"},"templates":{"type":"array","items":{"type":"string","uniqueKey":"templates.items.[INDEX]","typeLabel":"string"},"description":"Template slugs to add.","uniqueKey":"templates","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"name":"Acme Corporation","templates":["accounts"]},"examples":{"Example":{"title":"Example","value":{"name":"Acme Corporation","templates":["accounts"]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"fa42cd10-c2c4-4864-aa0b-111c83cd5c32":{"description":"The updated migration.","content":{"application/json":{"schema":{"type":"object","properties":{"migration":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The migration ID — pass it to every later call.","uniqueKey":"migration.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","uniqueKey":"migration.name","typeLabel":"string"},"external_id":{"oneOf":[{"type":"string","description":"Your own identifier for this customer.","uniqueKey":"migration.external_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your own identifier for this customer.","uniqueKey":"migration.external_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"migration.external_id","typeLabel":"string | null"},"source":{"oneOf":[{"type":"string","uniqueKey":"migration.source.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"migration.source.oneOf.1","typeLabel":"null"}],"uniqueKey":"migration.source","typeLabel":"string | null"},"status":{"type":"string","enum":["awaiting_files","ready","awaiting_approval","completed"],"description":"Omitted from `GET /migrations` list items.","uniqueKey":"migration.status","typeLabel":"enum\u003cstring>"},"templates":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","uniqueKey":"migration.templates.items.[INDEX].slug","typeLabel":"string"},"name":{"type":"string","uniqueKey":"migration.templates.items.[INDEX].name","typeLabel":"string"}},"uniqueKey":"migration.templates.items.[INDEX]","typeLabel":"object"},"uniqueKey":"migration.templates","typeLabel":"object[]"},"archived":{"type":"boolean","description":"Archived migrations stay readable and exportable but refuse uploads, runs and edits. Restore one from the Archived page in Vern.","uniqueKey":"migration.archived","typeLabel":"boolean"},"created_at":{"type":"string","format":"date-time","uniqueKey":"migration.created_at","typeLabel":"string\u003cdate-time>"},"url":{"type":"string","format":"uri","description":"Opens the company in Vern. `/companies/open/{key}` also accepts the `external_id`.","uniqueKey":"migration.url","typeLabel":"string\u003curi>"}},"uniqueKey":"migration","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"migration":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","name":"\u003cstring>","external_id":"\u003cstring>","source":"\u003cstring>","status":"awaiting_files","templates":[{"slug":"\u003cstring>","name":"\u003cstring>"}],"archived":true,"created_at":"2023-11-07T05:31:56Z","url":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"d2fc3346-3307-4bd4-a874-9ac03d5bc9d6":{"description":"Malformed request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable code, on errors whose status alone is ambiguous (e.g. migration_archived, imports_in_flight, knowledge_too_long).","uniqueKey":"code","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"ef159330-8158-4b24-9965-bdaeb089207e":{"description":"API key missing, malformed, or revoked.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable code, on errors whose status alone is ambiguous (e.g. migration_archived, imports_in_flight, knowledge_too_long).","uniqueKey":"code","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"37a79ade-c783-4937-a7c4-2c96d79c4027":{"description":"No such migration, or the named source doesn't exist.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable code, on errors whose status alone is ambiguous (e.g. migration_archived, imports_in_flight, knowledge_too_long).","uniqueKey":"code","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"d8972a3a-8dfe-41f2-a416-dfa4e237862c":{"description":"The migration is archived (`code: migration_archived`), an import is in progress (`code: imports_in_flight`, with the blocking `runs`), the `external_id` is already used by another migration, or the source name is ambiguous.","content":{"application/json":{"schema":{"type":"object","description":"An error body; with `code: imports_in_flight` it also lists the runs in the way.","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["imports_in_flight","migration_archived"],"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"runs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"runs.items.[INDEX].id","typeLabel":"string"},"status":{"type":"string","description":"One of `pending`, `queued`, `running`, `blocked`, `awaiting_approval`.","uniqueKey":"runs.items.[INDEX].status","typeLabel":"string"},"updatedAt":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"runs.items.[INDEX].updatedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"runs.items.[INDEX].updatedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"runs.items.[INDEX].updatedAt","typeLabel":"string\u003cdate-time> | null"},"runKind":{"oneOf":[{"type":"string","uniqueKey":"runs.items.[INDEX].runKind.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"runs.items.[INDEX].runKind.oneOf.1","typeLabel":"null"}],"uniqueKey":"runs.items.[INDEX].runKind","typeLabel":"string | null"}},"uniqueKey":"runs.items.[INDEX]","typeLabel":"object"},"uniqueKey":"runs","typeLabel":"object[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"imports_in_flight","runs":[{"id":"\u003cstring>","status":"\u003cstring>","updatedAt":"2023-11-07T05:31:56Z","runKind":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"a82f476a-697c-4cf4-802d-4ba0dce58a97":{"description":"Rate limit hit. Counted per account (company), not per API key or IP. Each endpoint is in one class: reads 30/minute, writes 30/minute, jobs (starting an export) 15/hour, agent (starting a run, answering, submitting credentials) 30/hour. Creating a migration and starting a `generate` run also have their own 30/hour caps. A separate per-IP ceiling absorbs floods before authentication. `Retry-After` gives the seconds until the window resets, alongside `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`.","headers":{"Retry-After":{"description":"Seconds until the rate-limit window resets.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"description":"Requests allowed in the current window.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) when the window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable code, on errors whose status alone is ambiguous (e.g. migration_archived, imports_in_flight, knowledge_too_long).","uniqueKey":"code","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":"Too many requests"},"examples":{"Example":{"title":"Example","value":{"error":"Too many requests"}}},"exampleType":"examples"}},"exampleType":"examples"},"dd7c64f2-4a77-4bff-9cac-b7aea8584348":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"A human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A machine-readable code, on errors whose status alone is ambiguous (e.g. migration_archived, imports_in_flight, knowledge_too_long).","uniqueKey":"code","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"70ccee12-e246-43f6-a2a6-b6c140cb677d":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your Vern API key. Create one at Settings → API keys.","scopes":[],"schemeName":"apiKey"}}},"servers":{"213313a5-f192-4a74-a958-34e83a5f51d9":{"url":"https://app.vern.so/api/v1","description":"US-hosted accounts"},"077e2eac-59bf-4391-81d0-d6b23551ddbc":{"url":"https://au.app.vern.so/api/v1","description":"Australia-hosted accounts"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your Vern API key. Create one at Settings → API keys.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"x-api-key","type":"string","description":"Your Vern API key. Create one at Settings → API keys.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKey","name":"x-api-key"}],"title":"apiKey"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"vern","siteName":"Vern Documentation","title":"Update a migration - Vern Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-08T23:05:17.341Z","originalFileLocation":"api-reference/migrations/update-a-migration.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=\"The API version of the app\u0026#x27;s \u0026quot;Edit company\u0026quot; and \u0026quot;Add New Sheet\u0026quot;. Send only the fields to change; any other field is a 400. templates ADDS templates: each slug without a sheet gets a new, empty one, and slugs that already have one are skipped — templates are never removed. Changing source or adding templates is refused with 409 (code: imports_in_flight) while an import is in progress, including a preview waiting for approval; name and external_id can always change.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Vern Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vern/MeorCT6aaGhS-RJw/_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/vern/MeorCT6aaGhS-RJw/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vern/MeorCT6aaGhS-RJw/_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/vern/MeorCT6aaGhS-RJw/_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/vern/MeorCT6aaGhS-RJw/_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/vern/MeorCT6aaGhS-RJw/_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/vern/MeorCT6aaGhS-RJw/_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/vern/MeorCT6aaGhS-RJw/_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/vern/MeorCT6aaGhS-RJw/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a migration - Vern Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"The API version of the app\u0026#x27;s \u0026quot;Edit company\u0026quot; and \u0026quot;Add New Sheet\u0026quot;. Send only the fields to change; any other field is a 400. templates ADDS templates: each slug without a sheet gets a new, empty one, and slugs that already have one are skipped — templates are never removed. Changing source or adding templates is refused with 409 (code: imports_in_flight) while an import is in progress, including a preview waiting for approval; name and external_id can always change.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Vern Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.vern.so/api-reference/migrations/update-a-migration\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://vern.mintlify.site/_mintlify/api/og/v2?division=Migrations\u0026amp;title=Update+a+migration\u0026amp;description=The+API+version+of+the+app%27s+%22Edit+company%22+and+%22Add+New+Sheet%22.+Send+only+the+fields+to+change%3B+any+other+field+is+a+400.+%60templates%60+ADDS+templates%3A+each+slug\u0026amp;theme=36882be2d6b82b8fbd5b4ff7\u0026amp;signature=9b5a12da06d3198b745306d51cfb60df53cca40ea85e81d079be4f2f48bd97f9\">\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 migration - Vern Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The API version of the app\u0026#x27;s \u0026quot;Edit company\u0026quot; and \u0026quot;Add New Sheet\u0026quot;. Send only the fields to change; any other field is a 400. templates ADDS templates: each slug without a sheet gets a new, empty one, and slugs that already have one are skipped — templates are never removed. Changing source or adding templates is refused with 409 (code: imports_in_flight) while an import is in progress, including a preview waiting for approval; name and external_id can always change.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vern.mintlify.site/_mintlify/api/og/v2?division=Migrations\u0026amp;title=Update+a+migration\u0026amp;description=The+API+version+of+the+app%27s+%22Edit+company%22+and+%22Add+New+Sheet%22.+Send+only+the+fields+to+change%3B+any+other+field+is+a+400.+%60templates%60+ADDS+templates%3A+each+slug\u0026amp;theme=36882be2d6b82b8fbd5b4ff7\u0026amp;signature=9b5a12da06d3198b745306d51cfb60df53cca40ea85e81d079be4f2f48bd97f9\">\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/vern/MeorCT6aaGhS-RJw/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Vern Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#10B981\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.vern.so/api-reference/migrations/update-a-migration\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/migrations/update-a-migration.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.vern.so/#organization\",\"name\":\"Vern Documentation\",\"url\":\"https://docs.vern.so\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vern/xEWEVl-f4WbHT-6k/logo/light.svg?fit=max\u0026auto=format\u0026n=xEWEVl-f4WbHT-6k\u0026q=85\u0026s=0935c9d27922ebd917cfce0dcb725e8c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.vern.so#website\",\"name\":\"Vern Documentation\",\"url\":\"https://docs.vern.so\",\"publisher\":{\"@id\":\"https://docs.vern.so/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.vern.so/api-reference/migrations/update-a-migration#webpage\",\"url\":\"https://docs.vern.so/api-reference/migrations/update-a-migration\",\"name\":\"Update a migration\",\"description\":\"The API version of the app's \\\"Edit company\\\" and \\\"Add New Sheet\\\". Send only the fields to change; any other field is a 400. templates ADDS templates: each slug without a sheet gets a new, empty one, and slugs that already have one are skipped — templates are never removed. Changing source or adding templates is refused with 409 (code: imports_in_flight) while an import is in progress, including a preview waiting for approval; name and external_id can always change.\",\"dateModified\":\"2026-11-08T23:05:17.341Z\",\"isPartOf\":{\"@id\":\"https://docs.vern.so#website\"},\"breadcrumb\":{\"@id\":\"https://docs.vern.so/api-reference/migrations/update-a-migration#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.vern.so/api-reference/migrations/update-a-migration#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Migrations\",\"item\":\"https://docs.vern.so/api-reference/migrations/create-a-migration\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update a migration\",\"item\":\"https://docs.vern.so/api-reference/migrations/update-a-migration\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.vern.so/api-reference/migrations/update-a-migration#apireference\",\"headline\":\"Update a migration\",\"name\":\"Update a migration\",\"description\":\"The API version of the app's \\\"Edit company\\\" and \\\"Add New Sheet\\\". Send only the fields to change; any other field is a 400. templates ADDS templates: each slug without a sheet gets a new, empty one, and slugs that already have one are skipped — templates are never removed. Changing source or adding templates is refused with 409 (code: imports_in_flight) while an import is in progress, including a preview waiting for approval; name and external_id can always change.\",\"url\":\"https://docs.vern.so/api-reference/migrations/update-a-migration\",\"mainEntityOfPage\":{\"@id\":\"https://docs.vern.so/api-reference/migrations/update-a-migration#webpage\"},\"dateModified\":\"2026-11-08T23:05:17.341Z\",\"publisher\":{\"@id\":\"https://docs.vern.so/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.vern.so#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Vern Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Vern Documentation","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":"/help-center/get-started/introduction"}]},{"tab":"Developer","icon":"terminal","pages":[{"title":"Developer","href":"/migration-api/introduction"}]},{"tab":"API Reference","icon":"code","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"group":"Catalog","pages":[{"title":"List sources","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /sources","href":"/api-reference/catalog/list-sources"},{"title":"Update a source","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /sources/{source}","href":"/api-reference/catalog/update-a-source"},{"title":"Pin a source's recipe","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /sources/{source}/pin","href":"/api-reference/catalog/pin-a-sources-recipe"},{"title":"List templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /templates","href":"/api-reference/catalog/list-templates"},{"title":"Get a template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /templates/{template_slug}","href":"/api-reference/catalog/get-a-template"},{"title":"Update a template","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /templates/{template_slug}","href":"/api-reference/catalog/update-a-template"},{"title":"Read source knowledge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /sources/{source}/knowledge","href":"/api-reference/knowledge/read-source-knowledge"},{"title":"Replace source knowledge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /sources/{source}/knowledge","href":"/api-reference/knowledge/replace-source-knowledge"}]},{"group":"Migrations","pages":[{"title":"Create a migration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /migrations","href":"/api-reference/migrations/create-a-migration"},{"title":"List migrations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations","href":"/api-reference/migrations/list-migrations"},{"title":"Get a migration","description":"One migration, with its `status`. Archived migrations can still be read.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}","href":"/api-reference/migrations/get-a-migration"},{"title":"Update a migration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /migrations/{migration_id}","href":"/api-reference/migrations/update-a-migration"},{"title":"Archive a migration","description":"Archives the migration, like Archive in the app — nothing is deleted. It drops out of `GET /migrations` (unless `include_archived=true`), stays readable and exportable, and every call that changes it (uploads, runs, answers, credentials, knowledge, the source connection, cancelling, PATCH) returns 409 with `code: migration_archived`. Restore it from the Archived page in Vern. Refused with 409 (`code: imports_in_flight`) while an import is in progress, including a preview waiting for approval — cancel the listed runs first. Archiving an archived migration is a no-op.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /migrations/{migration_id}","href":"/api-reference/migrations/archive-a-migration"},{"title":"Mint signed upload URLs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /migrations/{migration_id}/files","href":"/api-reference/migrations/mint-signed-upload-urls"},{"title":"List uploaded files","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}/files","href":"/api-reference/migrations/list-uploaded-files"},{"title":"Create or update the source connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /migrations/{migration_id}/source-connection","href":"/api-reference/migrations/create-or-update-the-source-connection"},{"title":"Get the source connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}/source-connection","href":"/api-reference/migrations/get-the-source-connection"},{"title":"Delete the source connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /migrations/{migration_id}/source-connection","href":"/api-reference/migrations/delete-the-source-connection"},{"title":"Read customer knowledge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}/knowledge","href":"/api-reference/knowledge/read-customer-knowledge"},{"title":"Replace customer knowledge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /migrations/{migration_id}/knowledge","href":"/api-reference/knowledge/replace-customer-knowledge"}]},{"group":"Runs","pages":[{"title":"Start a run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /migrations/{migration_id}/runs","href":"/api-reference/runs/start-a-run"},{"title":"Poll a run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}/runs/{run_id}","href":"/api-reference/runs/poll-a-run"},{"title":"Cancel a run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /migrations/{migration_id}/runs/{run_id}","href":"/api-reference/runs/cancel-a-run"},{"title":"Answer a blocked run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /migrations/{migration_id}/runs/{run_id}/messages","href":"/api-reference/runs/answer-a-blocked-run"},{"title":"Submit source credentials","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /migrations/{migration_id}/runs/{run_id}/credentials","href":"/api-reference/runs/submit-source-credentials"},{"title":"Get the preview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}/preview","href":"/api-reference/runs/get-the-preview"},{"title":"Get the thread (snapshot)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}/thread","href":"/api-reference/runs/get-the-thread-snapshot"},{"title":"Stream the thread (SSE)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}/thread/stream","href":"/api-reference/runs/stream-the-thread-sse"},{"title":"Get the session log","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}/log","href":"/api-reference/log/get-the-session-log"}]},{"group":"Export","pages":[{"title":"Export a sheet as CSV","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}/exports/{file}","href":"/api-reference/export/export-a-sheet-as-csv"},{"title":"Start an export","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /migrations/{migration_id}/exports","href":"/api-reference/exports/start-an-export"},{"title":"Poll an export job","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /migrations/{migration_id}/exports/jobs/{job_id}","href":"/api-reference/exports/poll-an-export-job"}]}]}]},"basePath":"","title":"Update a migration - Vern Documentation","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-D9ithiIZ.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}