This API is currently in development and may change.
Apply targeted changes to an existing app on an existing draft without resending the HTML. Changes are all or nothing — an edit that matches zero times, matches more than once without replaceAll, or would push the HTML past the 2 MiB cap rejects the whole request with 400 naming the edit, and nothing is applied. This endpoint does not create an app.
Use the draftIdentifier in the response to call the Publish draft API and publish the changes.
Targeted edits applied in order against the current HTML. A failed edit (not found, ambiguous, or result over the 2 MiB cap) rejects the entire request with 400 naming the edit. At most 20 edits per request.
Included only when non-blocking warnings are encountered when creating/updating an app. Currently, external resource hosts the app's iframe CSP will block until an Organization Admin allows them, and a map providers, printing and dialogs, full screen, clipboard copy, or downloads setting the organization's app policy turns off for every app. The write itself succeeded.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Omni Docs","colors":{"primary":"#FF5FA2","light":"#FF5FA2","dark":"#4D122C"},"logo":{"light":"https://mintcdn.com/omni-e7402367/m1fg0tfdkEcnYhky/images/logo/omni-black.png?fit=max\u0026auto=format\u0026n=m1fg0tfdkEcnYhky\u0026q=85\u0026s=85b81b605382b15b60eb75159899002a","dark":"https://mintcdn.com/omni-e7402367/m1fg0tfdkEcnYhky/images/logo/omni-white.png?fit=max\u0026auto=format\u0026n=m1fg0tfdkEcnYhky\u0026q=85\u0026s=18b529bed326b4f1be9d58ac65b9e002"},"favicon":"https://mintcdn.com/omni-e7402367/WTWdmWXPOMD5jOUY/favicon.png?fit=max\u0026auto=format\u0026n=WTWdmWXPOMD5jOUY\u0026q=85\u0026s=775ee4acbc06107599e3471e50161a2b","background":{"color":{"light":"#FCFCF7","dark":"#0e0b0e"}},"navbar":{"links":[{"href":"https://community.omni.co","label":"Community"}],"primary":{"type":"button","label":"Try Omni!","href":"https://omni.co/demo"}},"footer":{},"seo":{"metatags":{"canonical":"https://docs.omni.co"}},"fonts":{"heading":{"family":"Cal Sans","weight":400},"body":{"family":"IBM Plex Sans"}},"integrations":{"ga4":{"measurementId":"G-ZMG0QT2W9L"}},"banner":{"content":"Need help? Get answers from the docs with Omni's in-app AI! Log in to your Omni instance and open the [Omni Agent](/ai/chat) in the sidebar.","dismissible":true},"thumbnails":{"appearance":"dark","background":"https://mintcdn.com/omni-e7402367/J1q2UvTSjLHOwJ3G/images/og/og-background.png?fit=max\u0026auto=format\u0026n=J1q2UvTSjLHOwJ3G\u0026q=85\u0026s=63ad1c86bdbf4da4196959c391afb21f","fonts":{"family":"IBM Plex Sans"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"omni-e7402367","hasAudioNarration":false,"actualSubdomain":"omni-e7402367","customDomains":["docs.omni.co"],"gitSource":{"type":"github","owner":"exploreomni","repo":"mintlify-omni","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adccb5975476ff3698df5ab","collectionId":"99562c80-1312-4c38-aab3-b6ff4534ecfb","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adccb5975476ff3698df5ab"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adccb5975476ff3698df5ab","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"Docs","count":502},{"language":"default","tag":"Developers","count":367},{"language":"default","tag":"Model data","count":302},{"language":"default","tag":"REST APIs","count":250},{"language":"default","tag":"Parameters","count":187},{"language":"default","tag":"Product updates","count":159},{"language":"default","tag":"Demos","count":155},{"language":"default","tag":"Admin","count":122},{"language":"default","tag":"Visualize \u0026 present","count":99},{"language":"default","tag":"Embedding","count":79}],"searchSettings":{"isFiltersEnabled":true,"maxResults":10}},"assistantConfig":{"enableAskAiButton":true,"enableAskAiSearchBar":false},"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":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"privacy":{"consentBanner":{"enabled":false}},"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"styles.css","content":"img{border:1px solid;border-color:rgb(var(--gray-200))}.nav-logo,.no-border{border:0}#banner{color:#fcfcf7;font-weight:600}#topbar-cta-button,[data-testid=rss-feed-button]{transition:background-color .2s ease,transform .1s ease}#topbar-cta-button{background-color:#ff5fa2;color:#fcfcf7!important;padding:2px 16px;border-radius:160px;text-decoration:none;font-weight:800;display:inline-block;cursor:pointer}#topbar-cta-button>*{padding-left:7px}#topbar-cta-button *{color:#fcfcf7!important}#topbar-cta-button:hover{background-color:#ff5fa2;transform:translateY(-1px)}#topbar-cta-button:active{transform:translateY(0)}#topbar-cta-button svg{display:none!important}.navbar-link a{border-radius:160px!important}[data-testid=rss-feed-button]{border-color:#ff5fa2!important;color:#ff5fa2!important;border-radius:160px!important;gap:6px}[data-testid=rss-feed-button]::after{content:\"Subscribe\";font-size:14px;font-weight:600}[data-testid=rss-feed-button] svg{stroke:#ff5fa2}[data-testid=rss-feed-button]:hover{background-color:rgba(255,95,162,.05)!important;transform:translateY(-1px)}.dark [data-testid=rss-feed-button]:hover{background-color:rgba(255,95,162,.1)!important}[class*=cursor-copy][class*=max-h-]{max-height:20px!important}:has(>.guide-header){position:relative;max-width:1100px;margin:0 auto;padding:24px 24px 72px calc(200px + 48px + 24px);color:rgb(var(--gray-700))}.dark :has(>.guide-header){color:rgb(var(--gray-400))}.guide-header{position:sticky;top:var(--scroll-mt, 9.5rem);z-index:20;background-color:#fcfcf7;padding:0 0 1px;margin-bottom:35px;box-shadow:0 -10rem 0 10rem #fcfcf7}.dark .guide-header{background-color:#0e0b0e;box-shadow:0 -10rem 0 10rem #0e0b0e}.guide-title{font-size:2.5rem;font-weight:700;color:rgb(var(--gray-900));margin:0;line-height:1.3}.dark .guide-title{color:rgb(var(--gray-50))}.guide-sidebar{position:absolute;left:24px;top:24px;bottom:0;width:200px}.guide-sidebar-content{position:sticky;top:calc(var(--scroll-mt, 9.5rem) + 10px)}.guide-sidebar-back{display:flex;align-items:center;gap:8px;color:rgb(var(--gray-500));text-decoration:none;font-size:14px;font-weight:500;margin-bottom:24px;transition:color .15s ease}.guide-sidebar-back:hover,.guide-sidebar-links a{color:rgb(var(--primary))}.guide-sidebar-section{margin-bottom:20px}.guide-sidebar-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:rgb(var(--gray-500));margin-bottom:6px}.guide-sidebar-category{display:flex;align-items:center;gap:6px;font-size:14px;color:rgb(var(--gray-700));text-transform:capitalize}.dark .guide-sidebar-category{color:rgb(var(--gray-300))}.guide-sidebar-date{font-size:14px;color:rgb(var(--gray-600))}.dark .guide-sidebar-date,.dark .guide-sidebar-progress-text{color:rgb(var(--gray-400))}.guide-sidebar-links{list-style:none;padding:0;margin:0}.guide-sidebar-links li{margin-bottom:6px}.guide-sidebar-progress{display:flex;align-items:center;gap:12px}.guide-mascot{flex-shrink:0}.guide-mascot svg{display:block}.guide-sidebar-progress-text{font-size:14px;font-weight:600;color:rgb(var(--gray-600))}.guide-sidebar-links a{font-size:14px;text-decoration:none}:has(>.guide-header) .guide-sidebar a{border-bottom:none;font-weight:inherit}:has(>.guide-header) a.guide-sidebar-back{color:rgb(var(--gray-500));font-weight:500}:has(>.guide-header) .guide-sidebar-links a,:has(>.guide-header) a.guide-sidebar-back:hover{color:rgb(var(--primary))}:has(>.guide-header) .guide-sidebar-links a:hover{text-decoration:underline}@media (max-width:768px){:has(>.guide-header){padding:24px 24px 72px}.guide-sidebar{position:static;width:100%;margin-bottom:24px}.guide-sidebar-content{position:static;display:flex;flex-wrap:wrap;align-items:center;gap:12px}.guide-sidebar-back{width:100%;margin-bottom:4px}.guide-sidebar-section{margin-bottom:0}.guide-sidebar-section:has(.guide-sidebar-links),.guide-sidebar-section:has(.guide-sidebar-progress){display:none}.guide-sidebar-label{display:none}.guide-sidebar-category,.guide-sidebar-date{font-size:12px;padding:4px 10px;border-radius:4px;background-color:#f1f5f9;color:#1e191a}.dark .guide-sidebar-category,.dark .guide-sidebar-date{background-color:rgba(255,255,255,.03);color:#faf5f7}.guide-header{position:static;box-shadow:none}.guide-sticky-header{padding:12px 16px}.guide-progress-track{margin:-12px -16px 12px}.guide-sticky-title{font-size:1.5rem}}:has(>.guide-header) h1,:has(>.guide-header) h2,:has(>.guide-header) h3{color:rgb(var(--gray-900))}.dark :has(>.guide-header) a,.dark :has(>.guide-header) h1,.dark :has(>.guide-header) h2,.dark :has(>.guide-header) h3,.dark :has(>.guide-header) strong{color:rgb(var(--gray-50))}:has(>.guide-header) h1{font-size:2.25rem;margin:0 0 16px}:has(>.guide-header) h2{font-size:1.5rem;font-weight:600;margin:32px 0 16px;line-height:1.3}:has(>.guide-header) [data-component-part=step-title]{margin:0 0 16px}:has(>.guide-header) h3{font-size:1.25rem;font-weight:600;margin:24px 0 12px;line-height:1.4}:has(>.guide-header) [data-as=p],:has(>.guide-header) p{display:block;margin:16px 0;line-height:1.7}:has(>.guide-header)>.guide-header+[data-as=p],:has(>.guide-header)>.guide-header+p{margin-top:0}:has(>.guide-header) ol:not(.not-prose),:has(>.guide-header) ul:not(.not-prose){margin:16px 0;padding-left:24px}:has(>.guide-header) ul:not(.not-prose){list-style-type:disc}:has(>.guide-header) ol:not(.not-prose){list-style-type:decimal!important}:has(>.guide-header) :not(.not-prose)>li{margin-bottom:8px;line-height:1.6}:has(>.guide-header) .prose ul:not(.not-prose){list-style-type:none;padding-left:0}:has(>.guide-header) .prose :not(.not-prose)>li{margin-bottom:0}:has(>.guide-header) a{color:#111827;text-decoration:none;font-weight:600;border-bottom:1px solid rgb(var(--primary))}:has(>.guide-header) a:hover{border-bottom-width:2px}:has(>.guide-header) strong,:has(>.guide-header) th{font-weight:600;color:rgb(var(--gray-900))}:has(>.guide-header) code{font-size:.9em}:has(>.guide-header) table{width:100%;border-collapse:collapse;margin:16px 0}:has(>.guide-header) th{text-align:left;padding:8px 16px 8px 0;border-bottom:1px solid rgb(var(--gray-200))}.dark :has(>.guide-header) th{color:rgb(var(--gray-50))}:has(>.guide-header) td{padding:12px 16px 12px 0;border-bottom:1px solid rgb(var(--gray-200));vertical-align:top}.dark :has(>.guide-header) td,.dark :has(>.guide-header) th{border-bottom-color:rgb(var(--gray-700))}:has(>.guide-header) img{margin:16px 0;border-radius:8px}:has(>.guide-header) [data-component-part=card-title]{font-size:1rem!important;margin:4px 0 0!important}:has(>.guide-header) [data-component-part=card-content]{font-size:.875rem!important;line-height:1.5!important}:has(>.guide-header) [data-component-part=card-content] [data-as=p]{font-size:.875rem!important;margin:4px 0!important;line-height:1.5!important}.guides-container{max-width:1200px;margin:0 auto;padding:48px 24px}.guides-title{font-size:2.5rem;font-weight:700;color:#1e191a;margin-bottom:16px}.dark .guides-title{color:#e6e1e2}.guides-description{font-size:1.125rem;color:#1e191a;margin-bottom:32px}.dark .guides-description,.dark .guides-filter-label{color:#cbd5e1}.guides-layout{display:flex;gap:48px}.guides-sidebar{width:220px;flex-shrink:0}.guides-filters{position:sticky;top:100px;max-height:calc(100vh - 124px);overflow-y:auto;scrollbar-width:thin}.guides-filters::-webkit-scrollbar{width:6px}.guides-filters::-webkit-scrollbar-thumb{background:rgba(128,128,128,.35);border-radius:3px}.guides-filter-group{margin-bottom:24px}.guides-filter-label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#1e191a;margin-bottom:8px}.guides-filter-input{width:100%;padding:8px 12px;border-top-left-radius:9999px;border-top-right-radius:9999px;border-bottom-left-radius:9999px;border-bottom-right-radius:9999px;border-color:#e6e1e2;font-size:14px;box-sizing:border-box;background-color:rgba(17,12,14,.03);color:#777274}.dark .guides-filter-input{background-color:rgba(255,255,255,.03);border-color:#334155;color:rgba(255,255,255,.5)}.guides-filter-input:focus{outline:0;border-color:#ff5fa2}.dark .guides-filter-input::placeholder{color:rgba(255,255,255,.5)}.guides-clear-button,.guides-filter-button{width:100%;border:1px solid #e2e8f0;border-radius:160px;color:#334155;font-size:14px;cursor:pointer;transition:all .15s ease}.guides-filter-button{display:block;padding:8px 12px;margin-bottom:4px;background:0 0;text-align:left}.dark .guides-filter-button{color:#cbd5e1;border-color:rgba(255,255,255,.1);border-style:solid;border-width:1.5px}.guides-filter-button:hover{background-color:#f8fafc}.dark .guides-filter-button:hover{background-color:#0e0b0e;border-color:#ff5fa2}.guides-filter-button.active{border-color:#ff5fa2;background-color:#fff0f6;color:#ff5fa2}.dark .guides-filter-button.active{background-color:rgba(255,95,162,.15)}.guides-clear-button{padding:10px 12px;margin-bottom:16px;background:#f8fafc;font-weight:500}.dark .guides-clear-button{background:#0e0b0e;color:#e2e8f0;border-color:rgba(255,255,255,.1);border-style:solid;border-width:1.5px}.guides-clear-button:hover{background:#f1f5f9;border-color:#cbd5e1}.dark .guides-clear-button:hover{background:#0e0b0e;border-color:#ff5fa2}.guides-content{flex:1;min-width:0}.guides-results-count{font-size:14px;color:#1e191a;margin-bottom:16px}.dark .guides-results-count{color:#cbd5e1}.guides-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.guides-card{border:1px solid #e2e8f0;border-radius:16px;padding:20px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:12px;transition:border-color .15s ease,box-shadow .15s ease;background-color:#fcfcf7}.dark .guides-card{border-color:rgba(255,255,255,.1);border-style:solid;border-width:1.5px;background-color:#0e0b0e}.guides-card:hover{border-color:#ff5fa2;box-shadow:0 2px 8px rgba(0,0,0,.08)}.dark .guides-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.3)}.guides-card-icon{margin-bottom:4px}.guides-card-title{font-size:16px;font-weight:600;color:#1e191a;margin:0;line-height:1.3}.dark .guides-card-title{color:#fcfcf7}.guides-card-description{font-size:16px;color:#575254;margin:0;line-height:1.5;flex-grow:1}.dark .guides-card-description{color:#a6a1a2}.guides-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.guides-card-tag{font-size:12px;padding:2px 8px;border-radius:4px;background-color:#f1f5f9;color:#1e191a}.dark .guides-card-tag{background-color:rgba(255,255,255,.03);color:#faf5f7}.guides-no-results{text-align:center;padding:48px 24px;color:#1e191a}.dark .guides-no-results{color:#cbd5e1}@media (max-width:768px){.guides-layout{flex-direction:column;gap:24px}.guides-sidebar{width:100%}.guides-filters{position:static;max-height:none;overflow-y:visible}.guides-filter-button{display:inline-block;width:auto;margin-right:8px}}.badge-color{background-color:#ff5fa2;color:#fcfcf7!important}.lib-page{--lib-muted:#575254;color:#1e191a}.dark .lib-page{--lib-muted:#a6a1a2;color:#e6e1e2}.lib-page a{color:#ff5fa2}.lib-card:hover{border-color:#ff5fa2!important}.lib-panel{background-color:#fcfcf7;color:#1e191a}.dark .lib-panel{background-color:#0e0b0e;color:#e6e1e2}.lib-logo-chip{display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden}.dark .lib-logo-chip{padding:3px 5px;border-radius:5px;background-color:#fff}.lib-logo-chip img{border:0;border-radius:0}.endpoint-table{table-layout:fixed}.endpoint-table td:first-child,.endpoint-table th:first-child{width:18rem;min-width:18rem;max-width:18rem}.endpoint-table td:last-child,.endpoint-table th:last-child{width:8rem;min-width:8rem;max-width:8rem}.icon{border:0}.icons{background-color:#000}.dark .icons{background-color:rgb(var(--gray-50))}.icon-position{display:inline;vertical-align:middle}[data-component-part=accordion-icon] svg{display:block!important}.side-by-side{display:flex;align-items:flex-start;gap:1.5rem;margin:1.5rem 0}.side-by-side-reverse{flex-direction:row-reverse}.side-by-side-divider{padding-bottom:1.5rem;border-bottom:1px solid rgb(var(--gray-200))}.dark .side-by-side-divider{border-bottom-color:rgb(var(--gray-700))}.side-by-side-media{flex:0 0 45%;display:flex;justify-content:center}.side-by-side-media img{width:auto;height:auto;max-width:100%;max-height:var(--side-by-side-height, 220px);margin:0}.side-by-side-body{flex:1;min-width:0}.side-by-side-body [data-as=p],.side-by-side-body p{display:block;margin:1rem 0}.side-by-side-body .side-by-side-title{margin:0 0 .5rem;font-weight:600;color:rgb(var(--gray-900))}.dark .side-by-side-body .side-by-side-title{color:rgb(var(--gray-50))}.side-by-side-body>:first-child{margin-top:0}.side-by-side-body>:last-child{margin-bottom:0}@media (max-width:768px){.side-by-side,.side-by-side-reverse{flex-direction:column;align-items:stretch}.side-by-side-media{flex:1 1 auto}}#page-title,.guides-title,:has(>.guide-header) h1{font-weight:400;line-height:1;letter-spacing:0;text-wrap:pretty}#page-title{font-size:2rem}@media (min-width:40rem){#page-title{font-size:2.625rem}}h2,h3,h4,h5,h6{font-family:var(--font-family-body-custom)}.mdx-content :is(h2, h3, h4, h5, h6):not([data-component-part]):not(.not-prose){font-weight:500;line-height:1.15;letter-spacing:0;text-wrap:pretty}.mdx-content h2:not([data-component-part]):not(.not-prose){font-size:1.5rem}"}],"page":{"pagePath":"api/apps/edit-app-content-on-a-draft","slug":"/api/apps/edit-app-content-on-a-draft","pageMetadata":{"title":"Edit app content on a draft","description":"\u003cNote>\n This API is currently in development and may change.\n\u003c/Note>\n\nApply targeted changes to an existing app on an existing draft without resending the HTML. Changes are all or nothing — an edit that matches zero times, matches more than once without `replaceAll`, or would push the HTML past the 2 MiB cap rejects the whole request with 400 naming the edit, and nothing is applied. This endpoint does not create an app.\n\nUse the `draftIdentifier` in the response to call the [Publish draft API](/api/documents-v2/publish-draft) and publish the changes.","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v2/documents/{documentId}/draft/{draftId}/app","href":"/api/apps/edit-app-content-on-a-draft","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n }, {Note} = _components;\n if (!Note) _missingMdxReference(\"Note\", true);\n return _jsxs(_Fragment, {\n children: [_jsx(Note, {\n children: _jsx(_components.p, {\n children: \"This API is currently in development and may change.\"\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Apply targeted changes to an existing app on an existing draft without resending the HTML. Changes are all or nothing — an edit that matches zero times, matches more than once without \", _jsx(_components.code, {\n children: \"replaceAll\"\n }), \", or would push the HTML past the 2 MiB cap rejects the whole request with 400 naming the edit, and nothing is applied. This endpoint does not create an app.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Use the \", _jsx(_components.code, {\n children: \"draftIdentifier\"\n }), \" in the response to call the \", _jsx(_components.a, {\n href: \"/api/documents-v2/publish-draft\",\n children: \"Publish draft API\"\n }), \" and publish the changes.\"]\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};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\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":"Edit app content on a draft","description":"\u003cNote>\n This API is currently in development and may change.\n\u003c/Note>\n\nApply targeted changes to an existing app on an existing draft without resending the HTML. Changes are all or nothing — an edit that matches zero times, matches more than once without `replaceAll`, or would push the HTML past the 2 MiB cap rejects the whole request with 400 naming the edit, and nothing is applied. This endpoint does not create an app.\n\nUse the `draftIdentifier` in the response to call the [Publish draft API](/api/documents-v2/publish-draft) and publish the changes.","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v2/documents/{documentId}/draft/{draftId}/app","href":"/api/apps/edit-app-content-on-a-draft","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Edit app content on a draft","operationId":"documentsPatchApp","description":"\u003cNote>\n This API is currently in development and may change.\n\u003c/Note>\n\nApply targeted changes to an existing app on an existing draft without resending the HTML. Changes are all or nothing — an edit that matches zero times, matches more than once without `replaceAll`, or would push the HTML past the 2 MiB cap rejects the whole request with 400 naming the edit, and nothing is applied. This endpoint does not create an app.\n\nUse the `draftIdentifier` in the response to call the [Publish draft API](/api/documents-v2/publish-draft) and publish the changes.","tags":["Apps"],"x-experimental":true,"parameters":["fb1fede0-1e21-43d3-9408-cd80b2824659","3f090adc-a49a-4f85-a6ec-cba437a79a59"],"requestBody":"6937b839-92e8-4fc5-8a31-c02034cec557","responses":{"200":"2f00123f-df37-4db6-a635-ed9960168e87","400":"4b3b6708-9e7a-47cc-aa1b-b345b06e75e9","401":"0a8b9fd6-2e77-4201-acb9-86a65cd13020","403":"aaa2e14a-da76-432b-9363-a805c0a1e4d6","404":"48097a73-0acd-4341-abb2-89d49320bf82","405":"9f434a51-16f5-427b-8766-f6cee860fee8","409":"d2e534cd-ebfd-4c55-b535-c150fd79091b","422":"7db9cedf-dc24-4d85-b9a1-ee52b3d63db9"},"method":"patch","type":"path","servers":["1896127e-14ca-44e3-b2f4-b5dee086ce6c","8e00d564-5309-4d28-8906-8ffda116c0ce"],"security":["7ef3f242-4fca-4e37-96ab-6da5a45d37cf","9e2168ca-51e6-4862-b0d2-f03fc1969603"],"path":"/v2/documents/{documentId}/draft/{draftId}/app","baseUrlOptions":["https://{instance}.omniapp.co/api","https://{instance}.playground.exploreomni.dev/api"],"title":"Edit app content on a draft","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"fb1fede0-1e21-43d3-9408-cd80b2824659":{"name":"draftId","schema":{"type":"string","example":"def456","isRequired":true,"description":"Draft workbook identifier. Use [List document drafts](/api/documents/list-document-drafts) to retrieve draft IDs.","uniqueKey":"","typeLabel":"string"},"required":true,"description":"Draft workbook identifier. Use [List document drafts](/api/documents/list-document-drafts) to retrieve draft IDs.","in":"path"},"3f090adc-a49a-4f85-a6ec-cba437a79a59":{"name":"documentId","schema":{"type":"string","example":"abc123","isRequired":true,"description":"Published document identifier.","uniqueKey":"","typeLabel":"string"},"required":true,"description":"Published document identifier.","in":"path"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["htmlEdits"],"properties":{"htmlEdits":{"type":"array","items":{"type":"object","required":["replace","search"],"properties":{"replace":{"type":"string","description":"Text that replaces the matched `search` text. May be empty (deletion).","isRequired":true,"uniqueKey":"oneOf.0.htmlEdits.items.[INDEX].replace","typeLabel":"string"},"search":{"type":"string","minLength":1,"description":"Exact substring of the app's current HTML, copied with enough surrounding context to be unique unless `replaceAll: true`.\n","isRequired":true,"uniqueKey":"oneOf.0.htmlEdits.items.[INDEX].search","typeLabel":"string"},"replaceAll":{"type":"boolean","description":"Replace every occurrence of `search` instead of requiring a unique match.","uniqueKey":"oneOf.0.htmlEdits.items.[INDEX].replaceAll","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"oneOf.0.htmlEdits.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":20,"description":"Targeted edits applied in order against the current HTML. A failed edit (not found, ambiguous, or result over the 2 MiB cap) rejects the entire request with 400 naming the edit. At most 20 edits per request.\n","isRequired":true,"uniqueKey":"oneOf.0.htmlEdits","typeLabel":"object[]"},"settings":{"type":"object","description":"When present, replaces the app settings; omitted fields take their locked-down defaults. When absent, the current settings are kept.","properties":{"allowClipboard":{"type":"boolean","default":false,"description":"Allow the app to read from and write to the user's clipboard.","uniqueKey":"oneOf.0.settings.allowClipboard","typeLabel":"boolean"},"allowDefaultMapProviders":{"type":"boolean","default":false,"description":"Allow the app to load Omni's default map tile providers.","uniqueKey":"oneOf.0.settings.allowDefaultMapProviders","typeLabel":"boolean"},"allowDownloads":{"type":"boolean","default":false,"description":"Allow the app to trigger file downloads.","uniqueKey":"oneOf.0.settings.allowDownloads","typeLabel":"boolean"},"allowExternalNavigation":{"type":"boolean","default":false,"description":"Allow the app to navigate to domains outside the `navAllowedDomains` / `safeDomains` allowlists.","uniqueKey":"oneOf.0.settings.allowExternalNavigation","typeLabel":"boolean"},"allowFullscreen":{"type":"boolean","default":false,"description":"Allow the app to enter full screen via `requestFullscreen()` (e.g. a \"Present\" button).","uniqueKey":"oneOf.0.settings.allowFullscreen","typeLabel":"boolean"},"allowInternalNavigation":{"type":"boolean","default":false,"description":"Allow the app to navigate within the Omni instance.","uniqueKey":"oneOf.0.settings.allowInternalNavigation","typeLabel":"boolean"},"externalNavOpensInNewTab":{"type":"boolean","default":true,"description":"When true, external navigation opens in a new tab instead of the current one.","uniqueKey":"oneOf.0.settings.externalNavOpensInNewTab","typeLabel":"boolean"},"navAllowedDomains":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.settings.navAllowedDomains.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Domains the app is allowed to navigate to when `navAllowedDomainsEnabled` is true.","uniqueKey":"oneOf.0.settings.navAllowedDomains","typeLabel":"string[]"},"navAllowedDomainsEnabled":{"type":"boolean","default":false,"description":"When true, restrict navigation to the domains listed in `navAllowedDomains`.","uniqueKey":"oneOf.0.settings.navAllowedDomainsEnabled","typeLabel":"boolean"},"safeDomains":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.settings.safeDomains.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Domains treated as safe for embedded content when `safeDomainsEnabled` is true.","uniqueKey":"oneOf.0.settings.safeDomains","typeLabel":"string[]"},"safeDomainsEnabled":{"type":"boolean","default":false,"description":"When true, restrict embedded content to the domains listed in `safeDomains`.","uniqueKey":"oneOf.0.settings.safeDomainsEnabled","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"oneOf.0.settings","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["settings"],"properties":{"settings":{"type":"object","description":"When present, replaces the app settings; omitted fields take their locked-down defaults. When absent, the current settings are kept.","properties":{"allowClipboard":{"type":"boolean","default":false,"description":"Allow the app to read from and write to the user's clipboard.","uniqueKey":"oneOf.1.settings.allowClipboard","typeLabel":"boolean"},"allowDefaultMapProviders":{"type":"boolean","default":false,"description":"Allow the app to load Omni's default map tile providers.","uniqueKey":"oneOf.1.settings.allowDefaultMapProviders","typeLabel":"boolean"},"allowDownloads":{"type":"boolean","default":false,"description":"Allow the app to trigger file downloads.","uniqueKey":"oneOf.1.settings.allowDownloads","typeLabel":"boolean"},"allowExternalNavigation":{"type":"boolean","default":false,"description":"Allow the app to navigate to domains outside the `navAllowedDomains` / `safeDomains` allowlists.","uniqueKey":"oneOf.1.settings.allowExternalNavigation","typeLabel":"boolean"},"allowFullscreen":{"type":"boolean","default":false,"description":"Allow the app to enter full screen via `requestFullscreen()` (e.g. a \"Present\" button).","uniqueKey":"oneOf.1.settings.allowFullscreen","typeLabel":"boolean"},"allowInternalNavigation":{"type":"boolean","default":false,"description":"Allow the app to navigate within the Omni instance.","uniqueKey":"oneOf.1.settings.allowInternalNavigation","typeLabel":"boolean"},"externalNavOpensInNewTab":{"type":"boolean","default":true,"description":"When true, external navigation opens in a new tab instead of the current one.","uniqueKey":"oneOf.1.settings.externalNavOpensInNewTab","typeLabel":"boolean"},"navAllowedDomains":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.settings.navAllowedDomains.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Domains the app is allowed to navigate to when `navAllowedDomainsEnabled` is true.","uniqueKey":"oneOf.1.settings.navAllowedDomains","typeLabel":"string[]"},"navAllowedDomainsEnabled":{"type":"boolean","default":false,"description":"When true, restrict navigation to the domains listed in `navAllowedDomains`.","uniqueKey":"oneOf.1.settings.navAllowedDomainsEnabled","typeLabel":"boolean"},"safeDomains":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.settings.safeDomains.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Domains treated as safe for embedded content when `safeDomainsEnabled` is true.","uniqueKey":"oneOf.1.settings.safeDomains","typeLabel":"string[]"},"safeDomainsEnabled":{"type":"boolean","default":false,"description":"When true, restrict embedded content to the domains listed in `safeDomains`.","uniqueKey":"oneOf.1.settings.safeDomainsEnabled","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.settings","typeLabel":"object"},"htmlEdits":{"type":"array","items":{"type":"object","required":["replace","search"],"properties":{"replace":{"type":"string","description":"Text that replaces the matched `search` text. May be empty (deletion).","isRequired":true,"uniqueKey":"oneOf.1.htmlEdits.items.[INDEX].replace","typeLabel":"string"},"search":{"type":"string","minLength":1,"description":"Exact substring of the app's current HTML, copied with enough surrounding context to be unique unless `replaceAll: true`.\n","isRequired":true,"uniqueKey":"oneOf.1.htmlEdits.items.[INDEX].search","typeLabel":"string"},"replaceAll":{"type":"boolean","description":"Replace every occurrence of `search` instead of requiring a unique match.","uniqueKey":"oneOf.1.htmlEdits.items.[INDEX].replaceAll","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"oneOf.1.htmlEdits.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":20,"description":"Targeted edits applied in order against the current HTML. A failed edit (not found, ambiguous, or result over the 2 MiB cap) rejects the entire request with 400 naming the edit. At most 20 edits per request.\n","uniqueKey":"oneOf.1.htmlEdits","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"htmlEdits":[{"replace":"\u003cstring>","search":"\u003cstring>","replaceAll":true}],"settings":{"allowClipboard":false,"allowDefaultMapProviders":false,"allowDownloads":false,"allowExternalNavigation":false,"allowFullscreen":false,"allowInternalNavigation":false,"externalNavOpensInNewTab":true,"navAllowedDomains":[],"navAllowedDomainsEnabled":false,"safeDomains":[],"safeDomainsEnabled":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"2f00123f-df37-4db6-a635-ed9960168e87":{"description":"Edits applied on the draft. `warnings` names any resource hosts the app’s iframe CSP will block until an Organization Admin allows them.","content":{"application/json":{"schema":{"type":"object","required":["app","description","draftIdentifier","identifier","name"],"properties":{"identifier":{"type":"string","description":"Published document identifier the draft targets.","example":"def456","isRequired":true,"uniqueKey":"identifier","typeLabel":"string"},"draftIdentifier":{"type":"string","description":"Identifier of the draft the patch was applied to.","example":"abc123","isRequired":true,"uniqueKey":"draftIdentifier","typeLabel":"string"},"name":{"type":"string","description":"Document name.","example":"Blob Sales","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Document description.","example":"Overview of daily Blobs R Us Sales","isRequired":true,"uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Document description.","example":"Overview of daily Blobs R Us Sales","isRequired":true,"uniqueKey":"description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"description","typeLabel":"string | null"},"app":{"type":"object","properties":{"settings":{"type":"object","additionalProperties":false,"description":"The app's sandbox settings. A write replaces the whole object; omitted fields use their locked-down defaults. Host lists are normalized (deduped, invalid or Omni-owned hosts dropped) before they are stored.\n","properties":{"allowClipboard":{"type":"boolean","default":false,"description":"Allow the app to read from and write to the user's clipboard.","uniqueKey":"app.settings.allowClipboard","typeLabel":"boolean"},"allowDefaultMapProviders":{"type":"boolean","default":false,"description":"Allow the app to load Omni's default map tile providers.","uniqueKey":"app.settings.allowDefaultMapProviders","typeLabel":"boolean"},"allowDownloads":{"type":"boolean","default":false,"description":"Allow the app to trigger file downloads.","uniqueKey":"app.settings.allowDownloads","typeLabel":"boolean"},"allowExternalNavigation":{"type":"boolean","default":false,"description":"Allow the app to navigate to domains outside the `navAllowedDomains` / `safeDomains` allowlists.","uniqueKey":"app.settings.allowExternalNavigation","typeLabel":"boolean"},"allowFullscreen":{"type":"boolean","default":false,"description":"Allow the app to enter full screen via `requestFullscreen()` (e.g. a \"Present\" button).","uniqueKey":"app.settings.allowFullscreen","typeLabel":"boolean"},"allowInternalNavigation":{"type":"boolean","default":false,"description":"Allow the app to navigate within the Omni instance.","uniqueKey":"app.settings.allowInternalNavigation","typeLabel":"boolean"},"externalNavOpensInNewTab":{"type":"boolean","default":true,"description":"When true, external navigation opens in a new tab instead of the current one.","uniqueKey":"app.settings.externalNavOpensInNewTab","typeLabel":"boolean"},"navAllowedDomains":{"type":"array","items":{"type":"string","uniqueKey":"app.settings.navAllowedDomains.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Domains the app is allowed to navigate to when `navAllowedDomainsEnabled` is true.","uniqueKey":"app.settings.navAllowedDomains","typeLabel":"string[]"},"navAllowedDomainsEnabled":{"type":"boolean","default":false,"description":"When true, restrict navigation to the domains listed in `navAllowedDomains`.","uniqueKey":"app.settings.navAllowedDomainsEnabled","typeLabel":"boolean"},"safeDomains":{"type":"array","items":{"type":"string","uniqueKey":"app.settings.safeDomains.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Domains treated as safe for embedded content when `safeDomainsEnabled` is true.","uniqueKey":"app.settings.safeDomains","typeLabel":"string[]"},"safeDomainsEnabled":{"type":"boolean","default":false,"description":"When true, restrict embedded content to the domains listed in `safeDomains`.","uniqueKey":"app.settings.safeDomainsEnabled","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"app.settings","typeLabel":"object"}},"required":["settings"],"isRequired":true,"uniqueKey":"app","typeLabel":"object"},"warnings":{"type":"array","items":{"type":"string","uniqueKey":"warnings.items.[INDEX]","typeLabel":"string"},"description":"Included only when non-blocking warnings are encountered when creating/updating an app. Currently, external resource hosts the app's iframe CSP will block until an Organization Admin allows them, and a map providers, printing and dialogs, full screen, clipboard copy, or downloads setting the organization's app policy turns off for every app. The write itself succeeded.\n","uniqueKey":"warnings","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"identifier":"def456","draftIdentifier":"abc123","name":"Blob Sales","description":"Overview of daily Blobs R Us Sales","app":{"settings":{"allowClipboard":false,"allowDefaultMapProviders":false,"allowDownloads":false,"allowExternalNavigation":false,"allowFullscreen":false,"allowInternalNavigation":false,"externalNavOpensInNewTab":true,"navAllowedDomains":[],"navAllowedDomainsEnabled":false,"safeDomains":[],"safeDomainsEnabled":false}},"warnings":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"4b3b6708-9e7a-47cc-aa1b-b345b06e75e9":{"description":"Invalid request body (unknown field, neither `htmlEdits` nor `settings`, or more than 20 `htmlEdits`), or a failed `htmlEdits` entry (not found, ambiguous, or result over the 2 MiB cap). Nothing is applied.\n","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string","description":"Human-readable error message describing what went wrong.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code of the error.","example":400,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"}},"required":["detail","status"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"\u003cstring>","status":400}}},"exampleType":"generated"}},"exampleType":"generated"},"0a8b9fd6-2e77-4201-acb9-86a65cd13020":{"description":"Authentication required.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string","description":"Human-readable error message describing what went wrong.","example":"Unauthorized: Missing or invalid API key","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code of the error.","example":401,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"}},"required":["detail","status"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"Unauthorized: Missing or invalid API key","status":401}}},"exampleType":"generated"}},"exampleType":"generated"},"aaa2e14a-da76-432b-9363-a805c0a1e4d6":{"description":"Insufficient permissions: no write access to the document, apps not enabled for the organization, or (user-scoped keys) the role does not allow creating apps.\n","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string","description":"Human-readable error message describing what went wrong.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code of the error.","example":403,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"}},"required":["detail","status"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"\u003cstring>","status":403}}},"exampleType":"generated"}},"exampleType":"generated"},"48097a73-0acd-4341-abb2-89d49320bf82":{"description":"Document or draft not found. Also returned when `documentId` names a draft rather than a published document — drafts only attach to published documents.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string","description":"Human-readable error message describing what went wrong.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code of the error.","example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"}},"required":["detail","status"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"\u003cstring>","status":404}}},"exampleType":"generated"}},"exampleType":"generated"},"9f434a51-16f5-427b-8766-f6cee860fee8":{"description":"Method not allowed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"HTTP response code for the error","example":"\u003cresponse_code>","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Detailed error description","example":"\u003cerror_reason>","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cresponse_code>","message":"\u003cerror_reason>"}}},"exampleType":"generated"}},"exampleType":"generated"},"d2e534cd-ebfd-4c55-b535-c150fd79091b":{"description":"The draft has no app to patch.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string","description":"Human-readable error message describing what went wrong.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"status":{"type":"integer","description":"HTTP status code of the error.","example":409,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"}},"required":["detail","status"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"\u003cstring>","status":409}}},"exampleType":"generated"}},"exampleType":"generated"},"7db9cedf-dc24-4d85-b9a1-ee52b3d63db9":{"description":"The draft is a dashboard, not an app.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"HTTP response code for the error","example":"\u003cresponse_code>","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Detailed error description","example":"\u003cerror_reason>","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cresponse_code>","message":"\u003cerror_reason>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"7ef3f242-4fca-4e37-96ab-6da5a45d37cf":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Can be either an [Organization API Key](/api/authentication#organization-api-keys) or [Personal Access Token (PAT)](/api/authentication#token-types).\n\nInclude in the `Authorization` header as: `Bearer YOUR_TOKEN`\n","scopes":[],"schemeName":"bearerAuth"}},"9e2168ca-51e6-4862-b0d2-f03fc1969603":{"orgApiKey":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Requires an [Organization API Key](/api/authentication#organization-api-keys). Personal Access Tokens (PATs) are not supported for this endpoint.\n\nInclude in the `Authorization` header as: `Bearer ORGANIZATION_API_KEY`\n","scopes":[],"schemeName":"orgApiKey"}}},"servers":{"1896127e-14ca-44e3-b2f4-b5dee086ce6c":{"url":"https://{instance}.omniapp.co/api","description":"Production","variables":{"instance":{"default":"blobsrus","description":"Your production Omni instance subdomain"}}},"8e00d564-5309-4d28-8906-8ffda116c0ce":{"url":"https://{instance}.playground.exploreomni.dev/api","description":"Playground","variables":{"instance":{"default":"blobsrus","description":"Your playground Omni instance subdomain"}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Can be either an [Organization API Key](/api/authentication#organization-api-keys) or [Personal Access Token (PAT)](/api/authentication#token-types).\n\nInclude in the `Authorization` header as: `Bearer YOUR_TOKEN`\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Can be either an [Organization API Key](/api/authentication#organization-api-keys) or [Personal Access Token (PAT)](/api/authentication#token-types).\n\nInclude in the `Authorization` header as: `Bearer YOUR_TOKEN`\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Requires an [Organization API Key](/api/authentication#organization-api-keys). Personal Access Tokens (PATs) are not supported for this endpoint.\n\nInclude in the `Authorization` header as: `Bearer ORGANIZATION_API_KEY`\n","scopes":[],"schemeName":"orgApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Requires an [Organization API Key](/api/authentication#organization-api-keys). Personal Access Tokens (PATs) are not supported for this endpoint.\n\nInclude in the `Authorization` header as: `Bearer ORGANIZATION_API_KEY`\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"orgApiKey","name":"Authorization"}],"title":"orgApiKey"}]},"originalFileLocation":"api/openapi.yaml"},"subdomain":"omni-e7402367","siteName":"Omni Docs","title":"Edit app content on a draft - Omni Docs","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"manual"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T22:38:13.388Z","originalFileLocation":"api/apps/edit-app-content-on-a-draft.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=\"This API is currently in development and may change. Apply targeted changes to an existing app on an existing draft without resending the HTML. Changes are all or nothing — an edit that matches zero times, matches more than once without replaceAll, or would push the HTML past the 2 MiB cap rejects the whole request with 400 naming the edit, and nothing is applied. This endpoint does not create an app. Use the draftIdentifier in the response to call the Publish draft API and publish the changes.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Omni Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/omni-e7402367/Hcd24pRrgU0Go9sj/_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/omni-e7402367/Hcd24pRrgU0Go9sj/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/omni-e7402367/Hcd24pRrgU0Go9sj/_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/omni-e7402367/Hcd24pRrgU0Go9sj/_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/omni-e7402367/Hcd24pRrgU0Go9sj/_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/omni-e7402367/Hcd24pRrgU0Go9sj/_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/omni-e7402367/Hcd24pRrgU0Go9sj/_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/omni-e7402367/Hcd24pRrgU0Go9sj/_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/omni-e7402367/Hcd24pRrgU0Go9sj/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Edit app content on a draft - Omni Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"This API is currently in development and may change. Apply targeted changes to an existing app on an existing draft without resending the HTML. Changes are all or nothing — an edit that matches zero times, matches more than once without replaceAll, or would push the HTML past the 2 MiB cap rejects the whole request with 400 naming the edit, and nothing is applied. This endpoint does not create an app. Use the draftIdentifier in the response to call the Publish draft API and publish the changes.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Omni Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.omni.co/api/apps/edit-app-content-on-a-draft\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://omni-e7402367.mintlify.app/_mintlify/api/og/v2?division=App+APIs\u0026amp;title=Edit+app+content+on+a+draft\u0026amp;description=%3CNote%3E%0A++This+API+is+currently+in+development+and+may+change.%0A%3C%2FNote%3E%0A%0AApply+targeted+changes+to+an+existing+app+on+an+existing+draft+without+resending+the+HTML\u0026amp;theme=191f8a92cb0a982596561b95\u0026amp;signature=233193fa2c2a609089f8517cd78ba5146f5956d2a5fb5bf3d09f0de72915e02c\">\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=\"Edit app content on a draft - Omni Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This API is currently in development and may change. Apply targeted changes to an existing app on an existing draft without resending the HTML. Changes are all or nothing — an edit that matches zero times, matches more than once without replaceAll, or would push the HTML past the 2 MiB cap rejects the whole request with 400 naming the edit, and nothing is applied. This endpoint does not create an app. Use the draftIdentifier in the response to call the Publish draft API and publish the changes.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://omni-e7402367.mintlify.app/_mintlify/api/og/v2?division=App+APIs\u0026amp;title=Edit+app+content+on+a+draft\u0026amp;description=%3CNote%3E%0A++This+API+is+currently+in+development+and+may+change.%0A%3C%2FNote%3E%0A%0AApply+targeted+changes+to+an+existing+app+on+an+existing+draft+without+resending+the+HTML\u0026amp;theme=191f8a92cb0a982596561b95\u0026amp;signature=233193fa2c2a609089f8517cd78ba5146f5956d2a5fb5bf3d09f0de72915e02c\">\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/omni-e7402367/Hcd24pRrgU0Go9sj/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Omni Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF5FA2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.omni.co/api/apps/edit-app-content-on-a-draft\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/apps/edit-app-content-on-a-draft.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.omni.co/#organization\",\"name\":\"Omni Docs\",\"url\":\"https://docs.omni.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/omni-e7402367/m1fg0tfdkEcnYhky/images/logo/omni-black.png?fit=max\u0026auto=format\u0026n=m1fg0tfdkEcnYhky\u0026q=85\u0026s=85b81b605382b15b60eb75159899002a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.omni.co#website\",\"name\":\"Omni Docs\",\"url\":\"https://docs.omni.co\",\"publisher\":{\"@id\":\"https://docs.omni.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.omni.co/api/apps/edit-app-content-on-a-draft#webpage\",\"url\":\"https://docs.omni.co/api/apps/edit-app-content-on-a-draft\",\"name\":\"Edit app content on a draft\",\"description\":\"This API is currently in development and may change. Apply targeted changes to an existing app on an existing draft without resending the HTML. Changes are all or nothing — an edit that matches zero times, matches more than once without replaceAll, or would push the HTML past the 2 MiB cap rejects the whole request with 400 naming the edit, and nothing is applied. This endpoint does not create an app. Use the draftIdentifier in the response to call the Publish draft API and publish the changes.\",\"dateModified\":\"2026-10-23T22:38:13.388Z\",\"isPartOf\":{\"@id\":\"https://docs.omni.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.omni.co/api/apps/edit-app-content-on-a-draft#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.omni.co/api/apps/edit-app-content-on-a-draft#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"App APIs\",\"item\":\"https://docs.omni.co/api/apps/createreuse-draft-and-replace-app-content\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Edit app content on a draft\",\"item\":\"https://docs.omni.co/api/apps/edit-app-content-on-a-draft\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.omni.co/api/apps/edit-app-content-on-a-draft#apireference\",\"headline\":\"Edit app content on a draft\",\"name\":\"Edit app content on a draft\",\"description\":\"This API is currently in development and may change. Apply targeted changes to an existing app on an existing draft without resending the HTML. Changes are all or nothing — an edit that matches zero times, matches more than once without replaceAll, or would push the HTML past the 2 MiB cap rejects the whole request with 400 naming the edit, and nothing is applied. This endpoint does not create an app. Use the draftIdentifier in the response to call the Publish draft API and publish the changes.\",\"url\":\"https://docs.omni.co/api/apps/edit-app-content-on-a-draft\",\"mainEntityOfPage\":{\"@id\":\"https://docs.omni.co/api/apps/edit-app-content-on-a-draft#webpage\"},\"dateModified\":\"2026-10-23T22:38:13.388Z\",\"publisher\":{\"@id\":\"https://docs.omni.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.omni.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Omni Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Omni Docs","nav":{"global":null,"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":""}]},{"tab":"Admin","pages":[{"title":"Admin","href":"/administration"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides"}]},{"tab":"Library","pages":[{"title":"Library","href":"/library"}]},{"tab":"Developers","menu":[{"item":"REST APIs","icon":"cloud","description":"Programmatically interact with Omni","pages":[{"group":"Getting started","icon":"flag-checkered","pages":[{"title":"Omni REST APIs","sidebarTitle":"Introduction","mode":"wide","href":"/api"},{"title":"Omni API base URL","sidebarTitle":"Base URL","href":"/api/base-url"},{"title":"API authentication","sidebarTitle":"Authentication","href":"/api/authentication"},{"title":"Omni API versioning","sidebarTitle":"Versioning","href":"/api/versioning"},{"title":"Omni API rate limiting","sidebarTitle":"Rate limits","href":"/api/rate-limits"},{"title":"Omni API errors and retries","sidebarTitle":"Errors and retries","href":"/api/errors"},{"title":"API Explorer","sidebarTitle":"API Explorer","href":"/api/api-explorer"},{"title":"Omni CLI","sidebarTitle":"CLI","href":"/api/cli"}]},{"group":"Who am I?","icon":"user-secret","pages":[{"title":"Get current identity and permissions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/whoami","href":"/api/who-am-i/get-current-identity-and-permissions"}]},{"group":"Administration APIs","icon":"gear","pages":[{"group":"API keys","pages":[{"title":"Enable or disable API token","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/api-keys/{id}","href":"/api/api-tokens/enable-or-disable-api-token"},{"title":"List API tokens","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/api-keys","href":"/api/api-tokens/list-api-tokens"},{"title":"Retrieve an API token","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/api-keys/{id}","href":"/api/api-tokens/retrieve-an-api-token"},{"title":"Delete API token","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/api-keys/{id}","href":"/api/api-tokens/delete-api-token"}]},{"group":"IP allowlist","pages":[{"title":"Get the IP allowlist","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ip-allowlist","href":"/api/ip-allowlist/get-the-ip-allowlist"},{"title":"Update the IP allowlist","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/ip-allowlist","href":"/api/ip-allowlist/update-the-ip-allowlist"}]},{"group":"Color palettes","pages":[{"title":"Create custom color palette","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/color-palettes","href":"/api/color-palettes/create-custom-color-palette"},{"title":"Update custom color palette","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/color-palettes/{colorPaletteId}","href":"/api/color-palettes/update-custom-color-palette"},{"title":"List custom color palettes","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/color-palettes","href":"/api/color-palettes/list-custom-color-palettes"},{"title":"Get custom color palette","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/color-palettes/{colorPaletteId}","href":"/api/color-palettes/get-custom-color-palette"},{"title":"Delete custom color palette","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/color-palettes/{colorPaletteId}","href":"/api/color-palettes/delete-custom-color-palette"}]}]},{"group":"AI APIs","icon":"robot","pages":[{"group":"Branding","pages":[{"title":"Get AI Agent branding","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/branding","href":"/api/ai/get-ai-agent-branding"}]},{"group":"Conversations","pages":[{"title":"List AI conversations","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/conversations","href":"/api/ai/list-ai-conversations"},{"title":"Get conversation","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/conversations/{conversationId}","href":"/api/ai/get-conversation"}]},{"group":"Credit Controls","pages":[{"title":"Update AI credit controls","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/ai/credit-controls","href":"/api/ai-credit-controls/update-ai-credit-controls"},{"title":"Get AI credit controls","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/credit-controls","href":"/api/ai-credit-controls/get-ai-credit-controls"},{"title":"Set individual users' AI credit limits","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/ai/credit-controls/users","href":"/api/ai-credit-controls/set-individual-users-ai-credit-limits"},{"title":"List individual users' AI credit limits","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/credit-controls/users","href":"/api/ai-credit-controls/list-individual-users-ai-credit-limits"},{"title":"Set individual entity groups' AI credit limits","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/ai/credit-controls/entity-groups","href":"/api/ai-credit-controls/set-individual-entity-groups-ai-credit-limits"},{"title":"List individual entity groups' AI credit limits","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/credit-controls/entity-groups","href":"/api/ai-credit-controls/list-individual-entity-groups-ai-credit-limits"}]},{"group":"Credit Usage","pages":[{"title":"Read individual users' AI credit usage","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/credit-usage/users","href":"/api/ai-credit-usage/read-individual-users-ai-credit-usage"},{"title":"Read individual entity groups' AI credit usage","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/credit-usage/entity-groups","href":"/api/ai-credit-usage/read-individual-entity-groups-ai-credit-usage"}]},{"group":"Evals","pages":[{"title":"Create an eval prompt set","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/eval/prompt-sets","href":"/api/ai-eval/create-an-eval-prompt-set"},{"title":"Update an eval prompt set","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/ai/eval/prompt-sets/{promptSetId}","href":"/api/ai-eval/update-an-eval-prompt-set"},{"title":"List eval prompt sets","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/eval/prompt-sets","href":"/api/ai-eval/list-eval-prompt-sets"},{"title":"Get an eval prompt set","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/eval/prompt-sets/{promptSetId}","href":"/api/ai-eval/get-an-eval-prompt-set"},{"title":"Archive an eval prompt set","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/ai/eval/prompt-sets/{promptSetId}","href":"/api/ai-eval/archive-an-eval-prompt-set"},{"title":"Restore an archived eval prompt set","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/eval/prompt-sets/{promptSetId}/unarchive","href":"/api/ai-eval/restore-an-archived-eval-prompt-set"},{"title":"Start an eval run","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/eval/runs","href":"/api/ai-eval/start-an-eval-run"},{"title":"List eval runs","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/eval/runs","href":"/api/ai-eval/list-eval-runs"},{"title":"Get an eval run","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/eval/runs/{runId}","href":"/api/ai-eval/get-an-eval-run"},{"title":"Cancel an eval run","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/eval/runs/{runId}/cancel","href":"/api/ai-eval/cancel-an-eval-run"},{"title":"Restore an archived eval run","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/eval/runs/{runId}/unarchive","href":"/api/ai-eval/restore-an-archived-eval-run"},{"title":"Archive an eval run","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/ai/eval/runs/{runId}","href":"/api/ai-eval/archive-an-eval-run"}]},{"group":"Model Suggestions","pages":[{"title":"Generate model suggestions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/suggestions/generate","href":"/api/ai-model-suggestions/generate-model-suggestions"},{"title":"List AI-generated suggestions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/suggestions","href":"/api/ai-model-suggestions/list-ai-generated-suggestions"},{"title":"Dismiss a suggestion","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/suggestions/{suggestionId}/ignore","href":"/api/ai-model-suggestions/dismiss-a-suggestion"},{"title":"Restore a dismissed suggestion","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/suggestions/{suggestionId}/restore","href":"/api/ai-model-suggestions/restore-a-dismissed-suggestion"},{"title":"Delete a suggestion","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/models/{modelId}/suggestions/{suggestionId}","href":"/api/ai-model-suggestions/delete-a-suggestion"},{"title":"Get the latest generation run","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/suggestions/runs/latest","href":"/api/ai-model-suggestions/get-the-latest-generation-run"},{"title":"Get status for a generation run","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/suggestions/runs/{runId}","href":"/api/ai-model-suggestions/get-status-for-a-generation-run"},{"title":"Enable model AI suggestions schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/models/{modelId}/suggestions/schedule","href":"/api/ai-model-suggestions/enable-model-ai-suggestions-schedule"},{"title":"Disable model AI suggestions schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/models/{modelId}/suggestions/schedule","href":"/api/ai-model-suggestions/disable-model-ai-suggestions-schedule"}]},{"group":"Queries and jobs","pages":[{"title":"Generate a query","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/generate-query","href":"/api/ai/generate-a-query"},{"title":"Pick topic","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/pick-topic","href":"/api/ai/pick-topic"},{"title":"List available LLMs","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/llms","href":"/api/ai/list-available-llms"},{"title":"Create AI job","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/jobs","href":"/api/ai/create-ai-job"},{"title":"Get AI job status","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/jobs/{jobId}","href":"/api/ai/get-ai-job-status"},{"title":"Cancel AI job","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/jobs/{jobId}/cancel","href":"/api/ai/cancel-ai-job"},{"title":"Rate an AI job's response","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/jobs/{jobId}/feedback","href":"/api/ai/rate-an-ai-jobs-response"},{"title":"Stream AI job results","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/jobs/{jobId}/result","href":"/api/ai/stream-ai-job-results"},{"title":"Render AI job visualization","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/jobs/{jobId}/vis","href":"/api/ai/render-ai-job-visualization"}]},{"group":"Routines","pages":[{"title":"Create an AI Routine","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/routines","href":"/api/ai-routines/create-an-ai-routine"},{"title":"Update an AI Routine","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/ai/routines/{routineId}","href":"/api/ai-routines/update-an-ai-routine"},{"title":"List AI Routines","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/routines","href":"/api/ai-routines/list-ai-routines"},{"title":"Get an AI Routine","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/ai/routines/{routineId}","href":"/api/ai-routines/get-an-ai-routine"},{"title":"Trigger AI Routine","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/routines/{routineId}/trigger","href":"/api/ai-routines/trigger-ai-routine"},{"title":"Delete an AI Routine","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/ai/routines/{routineId}","href":"/api/ai-routines/delete-an-ai-routine"}]},{"group":"Skills","pages":[{"title":"Create a skill","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/skills","href":"/api/skills/create-a-skill"},{"title":"Edit a skill","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/skills/{skillId}","href":"/api/skills/edit-a-skill"},{"title":"List skills","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/skills","href":"/api/skills/list-skills"},{"title":"Get a skill","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/skills/{skillId}","href":"/api/skills/get-a-skill"},{"title":"Delete a skill","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/skills/{skillId}","href":"/api/skills/delete-a-skill"}]},{"title":"Search Omni docs","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/ai/search-omni-docs","href":"/api/ai/search-omni-docs"}]},{"group":"App APIs","icon":"window-restore","pages":[{"title":"Create/reuse draft and replace app content","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v2/documents/{documentId}/draft/app","href":"/api/apps/createreuse-draft-and-replace-app-content"},{"title":"Create/reuse draft and edit app content","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v2/documents/{documentId}/draft/app","href":"/api/apps/createreuse-draft-and-edit-app-content"},{"title":"Replace app content on a draft","description":"\u003cNote>\n This API is currently in development and may change.\n\u003c/Note>\n\nReplace the app HTML on an existing draft. If the specified document does not yet have an app, one will be created. ","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v2/documents/{documentId}/draft/{draftId}/app","href":"/api/apps/replace-app-content-on-a-draft"},{"title":"Edit app content on a draft","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v2/documents/{documentId}/draft/{draftId}/app","href":"/api/apps/edit-app-content-on-a-draft"},{"title":"Read app content","description":"\u003cNote>\n This API is currently in development and may change.\n\u003c/Note>\n\nRead the published app content, including its HTML and settings. The calling user or the user specified with the `userId` parameter must have view access to the app or the API will return an error.\n\nThe response can be used to create a draft. Read the draft state before building, as an existing draft may have diverged from the published version in the response.\n","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v2/documents/{documentId}/app","href":"/api/apps/read-app-content"},{"title":"Read app content on main draft","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v2/documents/{documentId}/draft/app","href":"/api/apps/read-app-content-on-main-draft"},{"title":"Read app content on a draft","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v2/documents/{documentId}/draft/{draftId}/app","href":"/api/apps/read-app-content-on-a-draft"},{"title":"Remove app from a draft","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v2/documents/{documentId}/draft/{draftId}/app","href":"/api/apps/remove-app-from-a-draft"},{"group":"Downloads","pages":[{"title":"Initiate app download","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/apps/{documentId}/download","href":"/api/app-downloads/initiate-app-download"},{"title":"Get app download status","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/apps/{documentId}/download/{jobId}/status","href":"/api/app-downloads/get-app-download-status"},{"title":"Get app download file","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/apps/{documentId}/download/{jobId}","href":"/api/app-downloads/get-app-download-file"}]}]},{"group":"Connection APIs","icon":"database","pages":[{"title":"Create connection","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/connections","href":"/api/connections/create-connection"},{"title":"Update connection","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/connections/{connectionId}","href":"/api/connections/update-connection"},{"title":"List connections","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/connections","href":"/api/connections/list-connections"},{"title":"Get connection","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/connections/{connectionId}","href":"/api/connections/get-connection"},{"title":"Delete connection","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/connections/{connectionId}","href":"/api/connections/delete-connection"},{"group":"Connection environments","pages":[{"title":"Create connection environments","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/connection-environments","href":"/api/connection-environments/create-connection-environments"},{"title":"Update connection environment","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/connection-environments/{connectionEnvironmentId}","href":"/api/connection-environments/update-connection-environment"},{"title":"Delete connection environment","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/connection-environments/{connectionEnvironmentId}","href":"/api/connection-environments/delete-connection-environment"}]},{"group":"dbt configuration","pages":[{"title":"Update dbt configuration","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/connections/{connectionId}/dbt","href":"/api/dbt/update-dbt-configuration"},{"title":"Get dbt configuration","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/connections/{connectionId}/dbt","href":"/api/dbt/get-dbt-configuration"},{"title":"Delete dbt configuration","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/connections/{connectionId}/dbt","href":"/api/dbt/delete-dbt-configuration"}]},{"group":"dbt environments","pages":[{"title":"Create dbt environment","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/connections/{connectionId}/dbt/environments","href":"/api/dbt/create-dbt-environment"},{"title":"Update dbt environment","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/connections/{connectionId}/dbt/environments/{environmentId}","href":"/api/dbt/update-dbt-environment"},{"title":"List dbt environments","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/connections/{connectionId}/dbt/environments","href":"/api/dbt/list-dbt-environments"},{"title":"Delete dbt environment","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/connections/{connectionId}/dbt/environments/{environmentId}","href":"/api/dbt/delete-dbt-environment"}]},{"group":"Schema refreshes","pages":[{"title":"Create schema refresh schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/connections/{connectionId}/schedules","href":"/api/schema-refresh-schedules/create-schema-refresh-schedule"},{"title":"Update schema refresh schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/connections/{connectionId}/schedules/{scheduleId}","href":"/api/schema-refresh-schedules/update-schema-refresh-schedule"},{"title":"Get job status","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/jobs/{jobId}/status","href":"/api/jobs/get-job-status"},{"title":"List schema refresh schedules","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/connections/{connectionId}/schedules","href":"/api/schema-refresh-schedules/list-schema-refresh-schedules"},{"title":"Get schema refresh schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/connections/{connectionId}/schedules/{scheduleId}","href":"/api/schema-refresh-schedules/get-schema-refresh-schedule"},{"title":"Delete schema refresh schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/connections/{connectionId}/schedules/{scheduleId}","href":"/api/schema-refresh-schedules/delete-schema-refresh-schedule"}]}]},{"group":"Content APIs","icon":"book","pages":[{"title":"Retrieve content","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/content","href":"/api/content/retrieve-content"},{"title":"Search dashboards and apps","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/content/search","href":"/api/content/search-dashboards-and-apps"},{"title":"Export dashboard","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /unstable/documents/{dashboardId}/export","href":"/api/content-migration/export-dashboard"},{"title":"Import dashboard","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /unstable/documents/import","href":"/api/content-migration/import-dashboard"}]},{"group":"Dashboard APIs","icon":"table-columns","pages":[{"group":"Downloads","pages":[{"title":"Initiate dashboard or tile download","deprecated":null,"version":null,"sidebarTitle":"Initiate download","openapi":"/api/openapi.yaml post /v1/dashboards/{dashboardId}/download","href":"/api/dashboard-downloads/initiate-download"},{"title":"Check download status","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/dashboards/{dashboardId}/download/{jobId}/status","href":"/api/dashboard-downloads/check-download-status"},{"title":"Download file","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/dashboards/{dashboardId}/download/{jobId}","href":"/api/dashboard-downloads/download-file"}]},{"group":"Filters","pages":[{"title":"Update dashboard filters/controls","deprecated":true,"version":null,"openapi":"/api/openapi.yaml patch /v1/dashboards/{dashboardId}/filters","href":"/api/dashboard-filters/update-dashboard-filterscontrols"},{"title":"Get dashboard filters and controls","deprecated":true,"version":null,"openapi":"/api/openapi.yaml get /v1/dashboards/{dashboardId}/filters","href":"/api/dashboard-filters/get-dashboard-filters-and-controls"}]}]},{"group":"Document APIs","icon":"file-lines","pages":[{"group":"Draft and publish","pages":[{"title":"Create and publish document","deprecated":null,"version":null,"sidebarTitle":"Create document","openapi":"/api/openapi.yaml post /v2/documents","href":"/api/documents-v2/create-document"},{"title":"Create draft and patch document","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v2/documents/{documentId}/draft","href":"/api/documents-v2/create-draft-and-patch-document"},{"title":"Patch draft","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v2/documents/{documentId}/draft/{draftId}","href":"/api/documents-v2/patch-draft"},{"title":"Publish draft","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v2/documents/{documentId}/draft/publish","href":"/api/documents-v2/publish-draft"},{"title":"Upgrade dashboard layout","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/documents/{documentId}/upgrade","href":"/api/documents/upgrade-dashboard-layout"},{"title":"Get document state","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v2/documents/{documentId}","href":"/api/documents-v2/get-document-state"},{"title":"List document drafts","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/documents/{documentId}/drafts","href":"/api/documents/list-document-drafts"},{"title":"Get draft state","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v2/documents/{documentId}/draft/{draftId}","href":"/api/documents-v2/get-draft-state"},{"title":"Archive draft","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/documents/{documentId}/draft","href":"/api/documents/archive-draft"},{"title":"Remove dashboard from document","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v2/documents/{documentId}/draft/{draftId}/dashboard","href":"/api/documents/remove-dashboard-from-document"},{"title":"Delete document","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/documents/{documentId}","href":"/api/documents/delete-document"}]},{"group":"Favorites","pages":[{"title":"Favorite document","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/documents/{documentId}/favorite","href":"/api/document-favorites/favorite-document"},{"title":"List document favoriters","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/documents/{documentId}/favorites","href":"/api/document-favorites/list-document-favoriters"},{"title":"Unfavorite document","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/documents/{documentId}/favorite","href":"/api/document-favorites/unfavorite-document"}]},{"group":"Labels","pages":[{"title":"Bulk update document labels","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/documents/{documentId}/labels","href":"/api/document-labels/bulk-update-document-labels"},{"title":"Apply label to document","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/documents/{documentId}/labels/{labelName}","href":"/api/document-labels/apply-label-to-document"},{"title":"Remove label from document","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/documents/{documentId}/labels/{labelName}","href":"/api/document-labels/remove-label-from-document"}]},{"group":"Management","pages":[{"title":"List documents","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/documents","href":"/api/documents/list-documents"},{"title":"List document queries","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/documents/{documentId}/queries","href":"/api/documents/list-document-queries"},{"title":"Run a saved document query","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/documents/{documentId}/queries/{queryId}/run","href":"/api/documents/run-a-saved-document-query"},{"title":"Rename document identifier","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v2/documents/{documentId}/identifier","href":"/api/documents-v2/rename-document-identifier"},{"title":"Move document","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/documents/{documentId}/move","href":"/api/documents/move-document"},{"title":"Duplicate published document","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/documents/{documentId}/duplicate","href":"/api/documents/duplicate-published-document"},{"title":"Transfer document ownership","deprecated":true,"version":null,"openapi":"/api/openapi.yaml put /v1/documents/{documentId}/transfer-ownership","href":"/api/documents/transfer-document-ownership"}]},{"group":"Permissions","pages":[{"title":"Grant document permissions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/documents/{documentId}/permissions","href":"/api/document-permissions/grant-document-permissions"},{"title":"Update document permission settings","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/documents/{documentId}/permissions","href":"/api/document-permissions/update-document-permission-settings"},{"title":"Update document permissions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/documents/{documentId}/permissions","href":"/api/document-permissions/update-document-permissions"},{"title":"List all users and groups with document access","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/documents/{documentId}/access-list","href":"/api/document-permissions/list-all-users-and-groups-with-document-access"},{"title":"Get document permissions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/documents/{documentId}/permissions","href":"/api/document-permissions/get-document-permissions"},{"title":"Revoke document permissions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/documents/{documentId}/permissions","href":"/api/document-permissions/revoke-document-permissions"}]},{"group":"Deprecated (v1)","pages":[{"title":"Create document","deprecated":true,"version":null,"openapi":"/api/openapi.yaml post /v1/documents","href":"/api/documents/create-document"},{"title":"Create draft","deprecated":true,"version":null,"openapi":"/api/openapi.yaml post /v1/documents/{documentId}/draft","href":"/api/documents/create-draft"},{"title":"Get dashboard document","deprecated":true,"version":null,"openapi":"/api/openapi.yaml get /v1/documents/{documentId}","href":"/api/documents/get-dashboard-document"}]}]},{"group":"Embed APIs","icon":"chart-column","pages":[{"title":"Generate embedded SSO session","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/embed/sso/generate-session","href":"/api/embed/generate-embedded-sso-session"}]},{"group":"Folder APIs","icon":"folder","pages":[{"title":"Create folder","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/folders","href":"/api/folders/create-folder"},{"title":"List folders","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/folders","href":"/api/folders/list-folders"},{"title":"Get folder","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/folders/{folderId}","href":"/api/folders/get-folder"},{"title":"Update folder","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/folders/{folderId}","href":"/api/folders/update-folder"},{"title":"Delete folder","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/folders/{folderId}","href":"/api/folders/delete-folder"},{"group":"Favorites","pages":[{"title":"Favorite folder","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/folders/{folderId}/favorite","href":"/api/folder-favorites/favorite-folder"},{"title":"Unfavorite folder","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/folders/{folderId}/favorite","href":"/api/folder-favorites/unfavorite-folder"}]},{"group":"Labels","pages":[{"title":"Bulk update folder labels","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/folders/{folderId}/labels","href":"/api/folder-labels/bulk-update-folder-labels"}]},{"group":"Permissions","pages":[{"title":"Grant folder permissions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/folders/{folderId}/permissions","href":"/api/folder-permissions/grant-folder-permissions"},{"title":"Update organization-level folder permissions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/folders/{folderId}/permissions","href":"/api/folder-permissions/update-organization-level-folder-permissions"},{"title":"Update folder permissions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/folders/{folderId}/permissions","href":"/api/folder-permissions/update-folder-permissions"},{"title":"Get folder permissions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/folders/{folderId}/permissions","href":"/api/folder-permissions/get-folder-permissions"},{"title":"Revoke folder permissions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/folders/{folderId}/permissions","href":"/api/folder-permissions/revoke-folder-permissions"}]}]},{"group":"Label APIs","icon":"note-sticky","pages":[{"title":"Create label","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/labels","href":"/api/labels/create-label"},{"title":"Update label","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/labels/{labelName}","href":"/api/labels/update-label"},{"title":"List labels","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/labels","href":"/api/labels/list-labels"},{"title":"Get label","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/labels/{labelName}","href":"/api/labels/get-label"},{"title":"Delete label","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/labels/{labelName}","href":"/api/labels/delete-label"}]},{"group":"Model APIs","icon":"house","pages":[{"title":"Create model","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models","href":"/api/models/create-model"},{"title":"Rename model","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/models/{modelId}","href":"/api/models/rename-model"},{"title":"Archive shared or extension model","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/models/{modelId}","href":"/api/models/archive-shared-or-extension-model"},{"title":"Refresh schema","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/refresh","href":"/api/models/refresh-schema"},{"title":"List models","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models","href":"/api/models/list-models"},{"title":"Validate model","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/validate","href":"/api/models/validate-model"},{"group":"Branches","pages":[{"title":"Merge a branch","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/branch/{branchName}/merge","href":"/api/model-branches/merge-a-branch"},{"title":"Set dbt environment on model branch","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/branch/{branchName}/dbt","href":"/api/dbt/set-dbt-environment-on-model-branch"},{"title":"Delete branch","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/models/{modelId}/branch/{branchName}","href":"/api/models/delete-branch"}]},{"group":"Content validator","pages":[{"title":"Validate content","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/content-validator","href":"/api/content-validator/validate-content"},{"title":"Find and replace content","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/content-validator","href":"/api/content-validator/find-and-replace-content"}]},{"group":"Management","pages":[{"title":"Get model AI agent actions","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/ai-agent-actions","href":"/api/models/get-model-ai-agent-actions"},{"title":"Reset cache","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/cache_reset/{cachePolicyName}","href":"/api/models/reset-cache"},{"title":"Re-parse model SQL","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/reparse","href":"/api/models/re-parse-model-sql"},{"title":"List model schemas","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/schemas","href":"/api/models/list-model-schemas"},{"title":"Get dbt exposures","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/dbt-exposures","href":"/api/dbt/get-dbt-exposures"}]},{"group":"Git","pages":[{"title":"Get Git configuration","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/git","href":"/api/model-git-configuration/get-git-configuration"},{"title":"Create Git configuration","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/git","href":"/api/model-git-configuration/create-git-configuration"},{"title":"Update Git configuration","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/models/{modelId}/git","href":"/api/model-git-configuration/update-git-configuration"},{"title":"Delete Git configuration","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/models/{modelId}/git","href":"/api/model-git-configuration/delete-git-configuration"},{"title":"Sync model with Git repository","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/git/sync","href":"/api/model-git-configuration/sync-model-with-git-repository"},{"title":"Create or update a pull request for a model branch","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/git/commit","href":"/api/model-git-configuration/create-or-update-a-pull-request-for-a-model-branch"},{"title":"Rotate webhook secret","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/git/rotate-webhook-secret","href":"/api/model-git-configuration/rotate-webhook-secret"},{"title":"Migrate a model","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/migrate","href":"/api/models/migrate-a-model"}]},{"group":"Topics","pages":[{"title":"Update topic","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/models/{modelId}/topic/{topicName}","href":"/api/topics/update-topic"},{"title":"List topics","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/topic","href":"/api/topics/list-topics"},{"title":"Retrieve a topic","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/topic/{topicName}","href":"/api/topics/retrieve-a-topic"},{"title":"Delete topic","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/models/{modelId}/topic/{topicName}","href":"/api/topics/delete-topic"}]},{"group":"Views","pages":[{"title":"Delete view","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/models/{modelId}/view/{viewName}","href":"/api/models/delete-view"},{"title":"Update field metadata","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /v1/models/{modelId}/view/{viewName}/field/{fieldName}","href":"/api/models/update-field-metadata"}]},{"group":"YAML files","pages":[{"title":"Create or update YAML files","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/models/{modelId}/yaml","href":"/api/models/create-or-update-yaml-files"},{"title":"Get model YAML","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/models/{modelId}/yaml","href":"/api/models/get-model-yaml"},{"title":"Delete a YAML file","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/models/{modelId}/yaml","href":"/api/models/delete-a-yaml-file"}]}]},{"group":"Query APIs","icon":"question","pages":[{"title":"Run query","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/query/run","href":"/api/queries/run-query"},{"title":"Wait for query results","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/query/wait","href":"/api/queries/wait-for-query-results"},{"title":"Read query results by offset","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/query/results","href":"/api/queries/read-query-results-by-offset"}]},{"group":"Schedule APIs","icon":"clock","pages":[{"title":"Create schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/schedules","href":"/api/schedules/create-schedule"},{"title":"Update schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/schedules/{scheduleId}","href":"/api/schedules/update-schedule"},{"title":"Transfer schedule ownership","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/schedules/{scheduleId}/transfer-ownership","href":"/api/schedules/transfer-schedule-ownership"},{"title":"List schedules","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/schedules","href":"/api/schedules/list-schedules"},{"title":"Get schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/schedules/{scheduleId}","href":"/api/schedules/get-schedule"},{"title":"Delete schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/schedules/{scheduleId}","href":"/api/schedules/delete-schedule"},{"group":"Runs","pages":[{"title":"Trigger schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/schedules/{scheduleId}/trigger","href":"/api/schedules/trigger-schedule"},{"title":"Pause schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/schedules/{scheduleId}/pause","href":"/api/schedules/pause-schedule"},{"title":"Resume schedule","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/schedules/{scheduleId}/resume","href":"/api/schedules/resume-schedule"}]},{"group":"Recipients","pages":[{"title":"Add schedule recipients","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/schedules/{scheduleId}/add-recipients","href":"/api/schedule-recipients/add-schedule-recipients"},{"title":"Remove schedule recipients","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/schedules/{scheduleId}/remove-recipients","href":"/api/schedule-recipients/remove-schedule-recipients"},{"title":"List schedule recipients","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/schedules/{scheduleId}/recipients","href":"/api/schedule-recipients/list-schedule-recipients"}]}]},{"group":"Upload APIs","icon":"upload","pages":[{"title":"Upload a CSV file","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/uploads","href":"/api/uploads/upload-a-csv-file"},{"title":"Replace upload data","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/uploads/{uploadId}","href":"/api/uploads/replace-upload-data"},{"title":"List uploads","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/uploads","href":"/api/uploads/list-uploads"},{"title":"Delete an upload","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/uploads/{uploadId}","href":"/api/uploads/delete-an-upload"}]},{"group":"User APIs","icon":"user","pages":[{"title":"Create user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /scim/v2/users","href":"/api/users/create-user"},{"title":"Replace user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /scim/v2/users/{userId}","href":"/api/users/replace-user"},{"title":"Update user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /scim/v2/users/{userId}","href":"/api/users/update-user"},{"title":"Retrieve user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /scim/v2/users/{userId}","href":"/api/users/retrieve-user"},{"title":"List users","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /scim/v2/users","href":"/api/users/list-users"},{"title":"Delete user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /scim/v2/users/{userId}","href":"/api/users/delete-user"},{"group":"Email-only users","pages":[{"title":"Manage email-only user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/users/email-only","href":"/api/schedule-recipients/manage-email-only-user"},{"title":"Bulk manage email-only users","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/users/email-only/bulk","href":"/api/schedule-recipients/bulk-manage-email-only-users"},{"title":"List email-only users","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/users/email-only","href":"/api/users/list-email-only-users"},{"title":"Bulk delete email-only users","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/users/email-only/bulk","href":"/api/schedule-recipients/bulk-delete-email-only-users"}]},{"group":"Embed users","pages":[{"title":"List embed users","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /scim/v2/embed/users","href":"/api/users/list-embed-users"},{"title":"Retrieve embed user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /scim/v2/embed/users/{userId}","href":"/api/users/retrieve-embed-user"},{"title":"Delete embed user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /scim/v2/embed/users/{userId}","href":"/api/users/delete-embed-user"}]},{"group":"Model roles","pages":[{"title":"Assign or update user model role","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/users/{userId}/model-roles","href":"/api/user-model-roles/assign-or-update-user-model-role"},{"title":"Retrieve user model roles","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/users/{userId}/model-roles","href":"/api/user-model-roles/retrieve-user-model-roles"}]},{"group":"User attributes","pages":[{"title":"Create user attribute","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/user-attributes","href":"/api/user-attributes/create-user-attribute"},{"title":"Update a user attribute definition","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/user-attributes/{userAttributeId}","href":"/api/user-attributes/update-a-user-attribute-definition"},{"title":"List user attributes","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/user-attributes","href":"/api/user-attributes/list-user-attributes"},{"title":"Delete a user attribute definition","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/user-attributes/{userAttributeId}","href":"/api/user-attributes/delete-a-user-attribute-definition"},{"title":"Set switchable values for a user or group","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/user-attributes/{userAttributeId}/selectable-values","href":"/api/user-attributes/set-switchable-values-for-a-user-or-group"},{"title":"Retrieve switchable values for a user or group","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/user-attributes/{userAttributeId}/selectable-values","href":"/api/user-attributes/retrieve-switchable-values-for-a-user-or-group"},{"title":"Switch an attribute value for the current user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /v1/user-attribute-selections","href":"/api/user-attributes/switch-an-attribute-value-for-the-current-user"},{"title":"List switchable attributes for the current user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/user-attribute-selections","href":"/api/user-attributes/list-switchable-attributes-for-the-current-user"},{"title":"Clear a switched attribute value for the current user","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /v1/user-attribute-selections","href":"/api/user-attributes/clear-a-switched-attribute-value-for-the-current-user"}]}]},{"group":"User group APIs","icon":"people-group","pages":[{"title":"Create user group","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /scim/v2/groups","href":"/api/user-groups/create-user-group"},{"title":"Replace user group","deprecated":null,"version":null,"openapi":"/api/openapi.yaml put /scim/v2/groups/{userGroupId}","href":"/api/user-groups/replace-user-group"},{"title":"Update user group","deprecated":null,"version":null,"openapi":"/api/openapi.yaml patch /scim/v2/groups/{userGroupId}","href":"/api/user-groups/update-user-group"},{"title":"List user groups","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /scim/v2/groups","href":"/api/user-groups/list-user-groups"},{"title":"Retrieve user group","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /scim/v2/groups/{userGroupId}","href":"/api/user-groups/retrieve-user-group"},{"title":"Delete user group","deprecated":null,"version":null,"openapi":"/api/openapi.yaml delete /scim/v2/groups/{userGroupId}","href":"/api/user-groups/delete-user-group"},{"group":"Model roles","pages":[{"title":"Assign or update user group model role","deprecated":null,"version":null,"openapi":"/api/openapi.yaml post /v1/user-groups/{userGroupId}/model-roles","href":"/api/user-group-model-roles/assign-or-update-user-group-model-role"},{"title":"Retrieve user group model roles","deprecated":null,"version":null,"openapi":"/api/openapi.yaml get /v1/user-groups/{userGroupId}/model-roles","href":"/api/user-group-model-roles/retrieve-user-group-model-roles"}]}]}]},{"item":"Embedding","icon":"chart-column","description":"Embed Omni's analytics \u0026 AI in apps","pages":[{"title":"Embedding","href":"/embed"}]},{"item":"CLI","icon":"terminal","description":"Interact with Omni APIs from the terminal","pages":[{"title":"CLI","href":"/developers/cli"}]},{"item":"Agent skills","icon":"robot","description":"Bring Omni workflows into your agent environment","pages":[{"title":"Agent skills","href":"/developers/agent-skills"}]}]},{"tab":"Product updates","menu":[{"item":"Demos","icon":"rocket","description":"Weekly updates of upcoming and experimental features","pages":[{"title":"Demos","href":"/demos"}]},{"item":"Changelog","icon":"file-lines","description":"New features, improvements, and bug fixes","pages":[{"title":"Changelog","href":"/changelog"}]}],"pages":[{"title":"Product updates","href":"/demos"}]}]},"title":"Edit app content on a draft - Omni Docs","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-cfwQA_n9.js","dist-2LoAhjKH.js","lib--scc4DXi.js","lib-B8HbPgcC.js","clsx-DZLdJUrt.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","AssistantPageLink-Zwc0ZncM.js"]}