Starts a durable operation that re-publishes the project’s Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/ first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.
WorkOS access JWT or a user-owned WorkOS API key. User keys are bound to one organization and restricted to their enabled product permissions. Session-only onboarding and session revocation require an interactive access JWT. No cookie session is assumed.
Use resource_etag from a fresh rollback, promotion, deletion or data-change plan. For a project address change, use etag from project status; an ETag from another representation is not accepted.
One to five lowercase words of letters and digits.
Required string length: 3 - 59
Pattern: ^[a-z0-9]+(?:-[a-z0-9]+){0,4}$
Response
The mutation was accepted for asynchronous processing.
Durable record returned for an accepted asynchronous mutation. Optional reconciliation is a current observation for queued/running work, separate from immutable terminal state. A completed reconciliation attempt alone does not mean the operation succeeded.
Current deployment dependency observation, separate from immutable operation history. Poll the same operation; mail readiness does not mean application activation.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ohmyho.st","colors":{"primary":"#000000","light":"#FFFFFF","dark":"#000000"},"logo":{"light":"https://mintcdn.com/ohmyhost/-GyHWgaHhneGtZo_/logo/light.svg?fit=max\u0026auto=format\u0026n=-GyHWgaHhneGtZo_\u0026q=85\u0026s=13af4972252c9a884618d20beaf5a174","dark":"https://mintcdn.com/ohmyhost/-GyHWgaHhneGtZo_/logo/dark.svg?fit=max\u0026auto=format\u0026n=-GyHWgaHhneGtZo_\u0026q=85\u0026s=542486c4c29d8647feb1cef3906c2b9a","href":"https://ohmyho.st/"},"favicon":"https://mintcdn.com/ohmyhost/-GyHWgaHhneGtZo_/favicon.svg?fit=max\u0026auto=format\u0026n=-GyHWgaHhneGtZo_\u0026q=85\u0026s=126e1d59c2b4e9943170f00595a8d730","navbar":{"links":[{"href":"https://ohmyho.st/","label":"Back to website"}],"primary":{"type":"button","label":"Back to Home","href":"https://ohmyho.st/"}},"footer":{"socials":{"github":"https://github.com/amerged-org/ohmyhost-docs"},"links":[{"header":"ohmyho.st","items":[{"label":"Home","href":"https://ohmyho.st/"},{"label":"Brand","href":"https://ohmyho.st/brand"},{"label":"Support","href":"https://docs.ohmyho.st/support"},{"label":"Contact","href":"https://ohmyho.st/contact"},{"label":"Privacy","href":"https://ohmyho.st/privacy"},{"label":"Terms","href":"https://ohmyho.st/terms"},{"label":"DPA","href":"https://ohmyho.st/dpa"},{"label":"PostgreSQL platform (PGCF)","href":"https://github.com/amerged-org/cloudflare-postgres"}]}]},"fonts":{"heading":{"family":"Space Grotesk","weight":600,"source":"fonts/space-grotesk-600.woff2","format":"woff2"},"body":{"family":"Space Grotesk","weight":400,"source":"fonts/space-grotesk-400.woff2","format":"woff2"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode","download-spec"],"display":"header"},"markdown":{"instructions":"For account actions, read https://ohmyho.st/skills/ohmyhost-get-started/SKILL.md and use the authenticated ohmyho.st CLI, local product MCP or supported remote OAuth MCP. Read the current project source binding before choosing GitHub or managed versions. Mintlify search only reads documentation. Preserve the customer’s selected project, environment and authentication provider; keep private application values in the portal or local stdin flow."},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ohmyhost","hasAudioNarration":false,"actualSubdomain":"ohmyhost","customDomains":["docs.ohmyho.st"],"gitSource":{"type":"github","owner":"amerged-org","repo":"ohmyhost-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af1826f4304606973689414","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API reference","count":155},{"language":"default","tag":"Endpoints","count":154},{"language":"default","tag":"API Reference","count":154},{"language":"default","tag":"Guides","count":46},{"language":"default","tag":"Operate","count":16},{"language":"default","tag":"Deploy","count":12},{"language":"default","tag":"Start","count":8},{"language":"default","tag":"Legal","count":6},{"language":"default","tag":"Agent reference","count":4},{"language":"default","tag":"Overview","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"brand-fonts.css","content":"@font-face{font-family:\"JetBrains Mono\";font-style:normal;font-weight:400;font-display:swap;src:url(\"/fonts/jetbrains-mono-400.woff2\") format(\"woff2\")}:root{--font-family-mono-custom: \"JetBrains Mono\"}pre,code,kbd,samp{font-family:\"JetBrains Mono\", ui-monospace, SFMono-Regular, Menlo, monospace}"},{"filePath":"analytics.css","content":"#cookie-notice,#omh-cookie-dialog{--cookie-bg:#fff;--cookie-fg:#18181b;--cookie-muted:#71717a;--cookie-border:#e4e4e7;background:var(--cookie-bg);color:var(--cookie-fg);border:1px solid var(--cookie-border);font:13px/1.5 var(--sans,system-ui);box-sizing:border-box}#cookie-notice{position:fixed;bottom:16px;right:16px;z-index:9999;display:flex;align-items:center;gap:8px;padding:12px 14px;max-width:min(440px,calc(100% - 32px));border-radius:12px;box-shadow:0 4px 20px #0000000d}#cookie-notice[hidden]{display:none}#cookie-notice>span{flex:1;color:var(--cookie-muted);font-size:12px}#cookie-notice a{color:inherit;text-underline-offset:2px}#cookie-notice button,#omh-cookie-dialog button{border:1px solid var(--cookie-border);border-radius:7px;background:transparent;color:inherit;padding:8px 14px;font:inherit;cursor:pointer;white-space:nowrap}#cookie-notice #omh-analytics-accept,#omh-cookie-dialog #omh-analytics-save{background:var(--cookie-fg);border-color:var(--cookie-fg);color:var(--cookie-bg)}#omh-cookie-dialog{width:440px;max-width:calc(100% - 32px);max-height:calc(100% - 32px);margin:auto;padding:24px;border-radius:16px;box-shadow:0 16px 64px #0003;overflow:auto}#omh-cookie-dialog::backdrop{background:#0006}#omh-cookie-dialog h2{font:600 20px/1.3 var(--sans,system-ui);margin:0 32px 6px 0;color:inherit}#omh-cookie-dialog p{font:13px/1.5 var(--sans,system-ui);color:var(--cookie-muted);margin:0}#omh-cookie-dialog .omh-cookie-option{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--cookie-border);padding:18px 0}#omh-cookie-dialog>.omh-cookie-option:first-of-type{margin-top:20px}#omh-cookie-dialog .omh-cookie-option strong,#omh-cookie-dialog .omh-cookie-option label{display:block;font-weight:600;color:var(--cookie-fg);margin-bottom:4px}#omh-cookie-dialog .omh-cookie-required{font-size:11px;white-space:nowrap;color:var(--cookie-muted)}#omh-analytics-toggle{appearance:none;-webkit-appearance:none;flex-shrink:0;width:38px;height:22px;margin:0;border:1px solid var(--cookie-border);border-radius:20px;background:var(--cookie-border);cursor:pointer;position:relative}#omh-analytics-toggle::before{content:\"\";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--cookie-bg);transition:transform .15s}#omh-analytics-toggle:checked{background:var(--cookie-fg);border-color:var(--cookie-fg)}#omh-analytics-toggle:checked::before{transform:translateX(16px)}#omh-cookie-dialog .omh-cookie-actions{display:flex;gap:10px;margin-top:6px}#omh-cookie-dialog .omh-cookie-actions button{flex:1}#omh-cookie-dialog #omh-cookie-close{position:absolute;top:14px;right:14px;border:0;font-size:24px;line-height:1;padding:6px;background:transparent;color:var(--cookie-muted)}#omh-analytics-settings{display:inline-flex;align-items:center;justify-content:center;position:static;vertical-align:middle;width:32px;height:32px;margin:0 0 0 auto;padding:6px;border:0;border-radius:6px;background:transparent;color:#71717a;opacity:1;cursor:pointer;flex-shrink:0}#omh-analytics-settings:hover{background:#71717a15}#omh-analytics-settings svg{display:block;pointer-events:none}#cookie-notice button:focus-visible,#omh-cookie-dialog button:focus-visible,#omh-analytics-toggle:focus-visible,#omh-analytics-settings:focus-visible{outline:2px solid currentColor;outline-offset:3px}html.dark #cookie-notice,html.dark #omh-cookie-dialog,html[data-theme=\"dark\"] #cookie-notice,html[data-theme=\"dark\"] #omh-cookie-dialog{--cookie-bg:#0a0a0a;--cookie-fg:#f0f0f2;--cookie-muted:#a1a1aa;--cookie-border:#27272a}@media (max-width:420px){#cookie-notice{flex-wrap:wrap}#cookie-notice>span{flex-basis:100%;margin-bottom:2px}#cookie-notice button{flex:1}#omh-cookie-dialog{padding:20px}}@media (prefers-reduced-motion:reduce){#omh-analytics-toggle::before{transition:none}}@media print{#cookie-notice,#omh-cookie-dialog,#omh-analytics-settings{display:none!important}}"}],"page":{"pagePath":"api-reference/move-a-project-to-a-chosen-address","slug":"/api-reference/move-a-project-to-a-chosen-address","pageMetadata":{"title":"Move a project to a chosen address","description":"Starts a durable operation that re-publishes the project's Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/{handle} first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/handle","href":"/api-reference/move-a-project-to-a-chosen-address","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Starts a durable operation that re-publishes the project’s Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/\", \" first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Move a project to a chosen address","description":"Starts a durable operation that re-publishes the project's Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/{handle} first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/handle","href":"/api-reference/move-a-project-to-a-chosen-address","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/ohmyhost/8ed1e082b4c23339/analytics.js"],"openApiReferenceData":{"operation":{"operationId":"changeProjectHandle","summary":"Move a project to a chosen address","description":"Starts a durable operation that re-publishes the project's Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/{handle} first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.","parameters":["83d69776-6499-4c9d-aad0-e7650b2fa370","fadb7bf7-8518-48a7-b7f7-265f58e41398","dc4386f3-4d72-4a44-be32-1785f81860b8","84a62c91-e495-459d-9c34-de6d606c953e"],"requestBody":"0277ecff-789d-4e13-9f0b-09d9d344e8b4","responses":{"202":"30f13c3e-486e-4841-bcf5-128359459e81","400":"32326d49-cb5f-4160-a343-7ee861552269","401":"d6f44d60-5b29-4108-9fbe-33ea70bc94c6","403":"94b62b2f-2372-4d64-9b38-b787052a5754","404":"84adc3e2-2b47-492a-b4f9-0cd4aa0dc76d","409":"bcf03f19-8e99-4174-b189-9797904c1e28","429":"e1d985ad-ba06-4298-8a37-198892e0bc67","503":"e8e17917-7003-4aef-949e-77c06c3ab01f"},"x-ohmyhost-idempotency":{"canonicalRequestVersion":"v1","identicalRequest":"replay-stored-response","changedRequest":"409-idempotency-key-reused"},"x-ohmyhost-resource-disclosure":"indistinguishable-not-found","method":"put","type":"path","servers":["62c71dee-5562-45c5-9ee5-1ea103e08ce4","18c9d121-9110-40f3-b481-27bca6b9f02a"],"security":["d4879a90-e457-462a-8766-550091d81763"],"path":"/v1/projects/{project_id}/handle","baseUrlOptions":["https://app.ohmyho.st","https://dev.app.ohmyho.st"],"title":"Move a project to a chosen address","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"83d69776-6499-4c9d-aad0-e7650b2fa370":{"name":"X-Request-Id","in":"header","description":"Optional caller-provided correlation identifier.","required":false,"schema":{"type":"string","minLength":1,"maxLength":128,"isRequired":false,"description":"Optional caller-provided correlation identifier.","uniqueKey":"","typeLabel":"string"}},"fadb7bf7-8518-48a7-b7f7-265f58e41398":{"name":"project_id","in":"path","description":"Project identifier.","required":true,"schema":{"type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$","isRequired":true,"description":"Project identifier.","uniqueKey":"","typeLabel":"string"}},"dc4386f3-4d72-4a44-be32-1785f81860b8":{"name":"Idempotency-Key","in":"header","description":"Identifies one mutation and its canonical request payload.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"description":"Identifies one mutation and its canonical request payload.","uniqueKey":"","typeLabel":"string"}},"84a62c91-e495-459d-9c34-de6d606c953e":{"name":"If-Match","in":"header","description":"Use resource_etag from a fresh rollback, promotion, deletion or data-change plan. For a project address change, use etag from project status; an ETag from another representation is not accepted.","required":true,"schema":{"type":"string","minLength":3,"maxLength":128,"isRequired":true,"description":"Use resource_etag from a fresh rollback, promotion, deletion or data-change plan. For a project address change, use etag from project status; an ETag from another representation is not accepted.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["handle"],"properties":{"handle":{"type":"string","minLength":3,"maxLength":59,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+){0,4}$","description":"One to five lowercase words of letters and digits.","isRequired":true,"uniqueKey":"handle","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"handle":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"30f13c3e-486e-4841-bcf5-128359459e81":{"description":"The mutation was accepted for asynchronous processing.","headers":{"Location":{"description":"Relative URL of the durable operation resource.","required":true,"schema":{"type":"string","pattern":"^/v1/operations/[0-9A-HJKMNP-TV-Z]{26}$"}},"X-Request-Id":{"description":"Correlates the request with operations, events, logs, and audit records.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}},"content":{"application/json":{"schema":{"type":"object","description":"Durable record returned for an accepted asynchronous mutation. Optional reconciliation is a current observation for queued/running work, separate from immutable terminal state. A completed reconciliation attempt alone does not mean the operation succeeded.","additionalProperties":false,"required":["id","state","created_at","updated_at"],"properties":{"id":{"type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"state":{"type":"string","enum":["queued","running","succeeded","failed","cancelled"],"isRequired":true,"uniqueKey":"state","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"blocking_operation_id":{"type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$","description":"The active operation holding this queued operation's project mutation claim.","uniqueKey":"blocking_operation_id","typeLabel":"string"},"deployment_id":{"type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$","description":"The deployment this operation created (deploy, promotion or rollback), in every state. After a failure, read its diagnostics with deployment logs.","uniqueKey":"deployment_id","typeLabel":"string"},"result":{"type":"object","additionalProperties":true,"uniqueKey":"result","typeLabel":"object"},"error":{"type":"object","additionalProperties":false,"required":["code","message","retryable","suggested_action"],"properties":{"code":{"type":"string","enum":["operation_failed","operation_abandoned","authorization_changed","source_commit_conflict","source_snapshot_invalid","source_upload_expired","recovery_dispatch_failed","recovery_job_failed","recovery_input_expired","recovery_database_unavailable","recovery_checksum_mismatch","recovery_scope_unavailable","recovery_archive_too_large","build_not_started","build_failed","database_write_rejected","database_write_unavailable","database_write_outcome_unknown","database_compute_failed","database_compute_plan_changed","database_compute_rejected","database_migration_failed","insufficient_organization_credits","project_budget_exceeded","paid_plan_required","runtime_candidate_failed","runtime_candidate_rejected","storage_jurisdiction_conflict","provider_state_absent","auto_deploy_plan_rejected","promotion_source_stale","promotion_target_stale"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":512,"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"retryable":{"type":"boolean","const":false,"description":"A terminal operation cannot be retried in place; follow suggested_action.","isRequired":true,"uniqueKey":"error.retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","minLength":1,"maxLength":500,"isRequired":true,"uniqueKey":"error.suggested_action","typeLabel":"string"},"detail":{"type":"string","minLength":1,"maxLength":2000,"description":"Present only on auto_deploy_plan_rejected when planning the pushed commit returned a typed refusal. It is the same fixed catalog sentence that the planning 409 problem returns as detail, naming the file, the rule and the required change.","uniqueKey":"error.detail","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"progress":{"type":"object","additionalProperties":false,"description":"Current deployment dependency observation, separate from immutable operation history. Poll the same operation; mail readiness does not mean application activation.","required":["phase","project_id","deployment_id","observed_at","next_poll_after_seconds","suggested_action"],"properties":{"phase":{"type":"string","enum":["queued","building","publishing","waiting_for_mail","mail_status_unavailable"],"isRequired":true,"uniqueKey":"progress.phase","typeLabel":"enum\u003cstring>"},"project_id":{"type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$","isRequired":true,"uniqueKey":"progress.project_id","typeLabel":"string"},"deployment_id":{"type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$","isRequired":true,"uniqueKey":"progress.deployment_id","typeLabel":"string"},"observed_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"progress.observed_at","typeLabel":"string\u003cdate-time>"},"next_poll_after_seconds":{"type":"integer","const":60,"isRequired":true,"uniqueKey":"progress.next_poll_after_seconds","typeLabel":"integer"},"suggested_action":{"type":"string","minLength":1,"maxLength":500,"isRequired":true,"uniqueKey":"progress.suggested_action","typeLabel":"string"},"build_completed_at":{"type":"string","format":"date-time","description":"Actual successful build completion time when this operation ran a build; omitted for reused artifacts without a current build.","uniqueKey":"progress.build_completed_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"progress","typeLabel":"object"},"reconciliation":{"type":"object","additionalProperties":false,"required":["state","attempt_id","observed_at","suggested_action"],"properties":{"state":{"type":"string","enum":["required","pending"],"isRequired":true,"uniqueKey":"reconciliation.state","typeLabel":"enum\u003cstring>"},"attempt_id":{"oneOf":[{"type":"string","description":"Active attempt for pending reconciliation; null when a new confirmed reconciliation is required.","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$","isRequired":true,"uniqueKey":"reconciliation.attempt_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Active attempt for pending reconciliation; null when a new confirmed reconciliation is required.","isRequired":true,"uniqueKey":"reconciliation.attempt_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"reconciliation.attempt_id","typeLabel":"string | null"},"observed_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"reconciliation.observed_at","typeLabel":"string\u003cdate-time>"},"suggested_action":{"type":"string","minLength":1,"maxLength":500,"isRequired":true,"uniqueKey":"reconciliation.suggested_action","typeLabel":"string"}},"uniqueKey":"reconciliation","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","state":"queued","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","blocking_operation_id":"\u003cstring>","deployment_id":"\u003cstring>","result":{},"error":{"code":"operation_failed","message":"\u003cstring>","retryable":false,"suggested_action":"\u003cstring>","detail":"\u003cstring>"},"progress":{"phase":"queued","project_id":"\u003cstring>","deployment_id":"\u003cstring>","observed_at":"2023-11-07T05:31:56Z","next_poll_after_seconds":60,"suggested_action":"\u003cstring>","build_completed_at":"2023-11-07T05:31:56Z"},"reconciliation":{"state":"required","attempt_id":"\u003cstring>","observed_at":"2023-11-07T05:31:56Z","suggested_action":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"32326d49-cb5f-4160-a343-7ee861552269":{"description":"The request failed.","headers":{"X-Request-Id":{"description":"Correlates the request with operations, events, logs, and audit records.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details extended with stable ohmyhost recovery fields.","additionalProperties":false,"required":["type","title","status","code","request_id","retryable","suggested_action"],"properties":{"type":{"type":"string","format":"uri-reference","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","enum":["invalid_request","unauthenticated","forbidden","organization_required","resource_not_found","idempotency_key_reused","project_handle_unavailable","project_identity_unavailable","deployment_plan_expired","deployment_plan_incompatible","confirmation_expired","confirmation_invalid","etag_mismatch","promotion_source_stale","promotion_target_stale","promotion_invalid_target","mail_domain_conflict","mail_domain_required","mail_capacity_unavailable","storage_jurisdiction_conflict","shared_data_requires_promotion","production_deployment_required","framework_conversion_required","repository_configuration_missing","migration_filename_noncanonical","environment_secret_mutation_blocked","workers_runtime_incompatible","project_handle_invalid","project_handle_taken","project_handle_unchanged","project_rename_blocked","payload_too_large","rate_limited","insufficient_organization_credits","paid_plan_required","project_budget_exceeded","compute_performance_paid_required","compute_paid_required","compute_storage_shrink_requires_migration","compute_performance_unavailable","database_write_pending","database_access_limit","database_webhook_limit","database_schedule_limit","database_schedule_not_runnable","database_webhook_delivery_pending","database_watch_limit","database_watch_table_unavailable","database_watch_column_unavailable","database_watch_events_unavailable","database_watch_conflict","database_table_conflict","database_table_limit","compute_change_pending","compute_change_conflict","billing_purchase_conflict","billing_recharge_conflict","github_connection_required","github_connection_revoked","repository_not_installed","cloudflare_zone_not_bound","cloudflare_authorization_closed","project_notes_conflict","project_export_not_ready","powered_by_flag_required","interactive_login_required","api_key_creation_uncertain","api_key_permissions_unavailable","reconciliation_exhausted","service_unavailable","source_commit_not_found","domain_hostname_taken","domain_dns_conflict","data_change_blocked","data_change_in_progress","data_change_not_applicable","rollback_target_data_changed","project_domain_delete_required","native_domain_sync_pending"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"suggested_action","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"retry_after_seconds":{"type":"integer","minimum":1,"maximum":86400,"description":"Optional machine-readable retry delay for a rate limit, matching Retry-After.","uniqueKey":"retry_after_seconds","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":499,"code":"invalid_request","request_id":"\u003cstring>","retryable":true,"suggested_action":"\u003cstring>","detail":"\u003cstring>","instance":"\u003cstring>","retry_after_seconds":43200}}},"exampleType":"generated"}},"exampleType":"generated"},"d6f44d60-5b29-4108-9fbe-33ea70bc94c6":{"description":"The request failed.","headers":{"X-Request-Id":{"description":"Correlates the request with operations, events, logs, and audit records.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details extended with stable ohmyhost recovery fields.","additionalProperties":false,"required":["type","title","status","code","request_id","retryable","suggested_action"],"properties":{"type":{"type":"string","format":"uri-reference","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","enum":["invalid_request","unauthenticated","forbidden","organization_required","resource_not_found","idempotency_key_reused","project_handle_unavailable","project_identity_unavailable","deployment_plan_expired","deployment_plan_incompatible","confirmation_expired","confirmation_invalid","etag_mismatch","promotion_source_stale","promotion_target_stale","promotion_invalid_target","mail_domain_conflict","mail_domain_required","mail_capacity_unavailable","storage_jurisdiction_conflict","shared_data_requires_promotion","production_deployment_required","framework_conversion_required","repository_configuration_missing","migration_filename_noncanonical","environment_secret_mutation_blocked","workers_runtime_incompatible","project_handle_invalid","project_handle_taken","project_handle_unchanged","project_rename_blocked","payload_too_large","rate_limited","insufficient_organization_credits","paid_plan_required","project_budget_exceeded","compute_performance_paid_required","compute_paid_required","compute_storage_shrink_requires_migration","compute_performance_unavailable","database_write_pending","database_access_limit","database_webhook_limit","database_schedule_limit","database_schedule_not_runnable","database_webhook_delivery_pending","database_watch_limit","database_watch_table_unavailable","database_watch_column_unavailable","database_watch_events_unavailable","database_watch_conflict","database_table_conflict","database_table_limit","compute_change_pending","compute_change_conflict","billing_purchase_conflict","billing_recharge_conflict","github_connection_required","github_connection_revoked","repository_not_installed","cloudflare_zone_not_bound","cloudflare_authorization_closed","project_notes_conflict","project_export_not_ready","powered_by_flag_required","interactive_login_required","api_key_creation_uncertain","api_key_permissions_unavailable","reconciliation_exhausted","service_unavailable","source_commit_not_found","domain_hostname_taken","domain_dns_conflict","data_change_blocked","data_change_in_progress","data_change_not_applicable","rollback_target_data_changed","project_domain_delete_required","native_domain_sync_pending"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"suggested_action","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"retry_after_seconds":{"type":"integer","minimum":1,"maximum":86400,"description":"Optional machine-readable retry delay for a rate limit, matching Retry-After.","uniqueKey":"retry_after_seconds","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":499,"code":"invalid_request","request_id":"\u003cstring>","retryable":true,"suggested_action":"\u003cstring>","detail":"\u003cstring>","instance":"\u003cstring>","retry_after_seconds":43200}}},"exampleType":"generated"}},"exampleType":"generated"},"94b62b2f-2372-4d64-9b38-b787052a5754":{"description":"The request failed.","headers":{"X-Request-Id":{"description":"Correlates the request with operations, events, logs, and audit records.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details extended with stable ohmyhost recovery fields.","additionalProperties":false,"required":["type","title","status","code","request_id","retryable","suggested_action"],"properties":{"type":{"type":"string","format":"uri-reference","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","enum":["invalid_request","unauthenticated","forbidden","organization_required","resource_not_found","idempotency_key_reused","project_handle_unavailable","project_identity_unavailable","deployment_plan_expired","deployment_plan_incompatible","confirmation_expired","confirmation_invalid","etag_mismatch","promotion_source_stale","promotion_target_stale","promotion_invalid_target","mail_domain_conflict","mail_domain_required","mail_capacity_unavailable","storage_jurisdiction_conflict","shared_data_requires_promotion","production_deployment_required","framework_conversion_required","repository_configuration_missing","migration_filename_noncanonical","environment_secret_mutation_blocked","workers_runtime_incompatible","project_handle_invalid","project_handle_taken","project_handle_unchanged","project_rename_blocked","payload_too_large","rate_limited","insufficient_organization_credits","paid_plan_required","project_budget_exceeded","compute_performance_paid_required","compute_paid_required","compute_storage_shrink_requires_migration","compute_performance_unavailable","database_write_pending","database_access_limit","database_webhook_limit","database_schedule_limit","database_schedule_not_runnable","database_webhook_delivery_pending","database_watch_limit","database_watch_table_unavailable","database_watch_column_unavailable","database_watch_events_unavailable","database_watch_conflict","database_table_conflict","database_table_limit","compute_change_pending","compute_change_conflict","billing_purchase_conflict","billing_recharge_conflict","github_connection_required","github_connection_revoked","repository_not_installed","cloudflare_zone_not_bound","cloudflare_authorization_closed","project_notes_conflict","project_export_not_ready","powered_by_flag_required","interactive_login_required","api_key_creation_uncertain","api_key_permissions_unavailable","reconciliation_exhausted","service_unavailable","source_commit_not_found","domain_hostname_taken","domain_dns_conflict","data_change_blocked","data_change_in_progress","data_change_not_applicable","rollback_target_data_changed","project_domain_delete_required","native_domain_sync_pending"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"suggested_action","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"retry_after_seconds":{"type":"integer","minimum":1,"maximum":86400,"description":"Optional machine-readable retry delay for a rate limit, matching Retry-After.","uniqueKey":"retry_after_seconds","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":499,"code":"invalid_request","request_id":"\u003cstring>","retryable":true,"suggested_action":"\u003cstring>","detail":"\u003cstring>","instance":"\u003cstring>","retry_after_seconds":43200}}},"exampleType":"generated"}},"exampleType":"generated"},"84adc3e2-2b47-492a-b4f9-0cd4aa0dc76d":{"description":"The resource does not exist or is not visible to the authenticated principal.","headers":{"X-Request-Id":{"description":"Correlates the request with operations, events, logs, and audit records.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details extended with stable ohmyhost recovery fields.","additionalProperties":false,"required":["type","title","status","code","request_id","retryable","suggested_action"],"properties":{"type":{"type":"string","format":"uri-reference","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","enum":["invalid_request","unauthenticated","forbidden","organization_required","resource_not_found","idempotency_key_reused","project_handle_unavailable","project_identity_unavailable","deployment_plan_expired","deployment_plan_incompatible","confirmation_expired","confirmation_invalid","etag_mismatch","promotion_source_stale","promotion_target_stale","promotion_invalid_target","mail_domain_conflict","mail_domain_required","mail_capacity_unavailable","storage_jurisdiction_conflict","shared_data_requires_promotion","production_deployment_required","framework_conversion_required","repository_configuration_missing","migration_filename_noncanonical","environment_secret_mutation_blocked","workers_runtime_incompatible","project_handle_invalid","project_handle_taken","project_handle_unchanged","project_rename_blocked","payload_too_large","rate_limited","insufficient_organization_credits","paid_plan_required","project_budget_exceeded","compute_performance_paid_required","compute_paid_required","compute_storage_shrink_requires_migration","compute_performance_unavailable","database_write_pending","database_access_limit","database_webhook_limit","database_schedule_limit","database_schedule_not_runnable","database_webhook_delivery_pending","database_watch_limit","database_watch_table_unavailable","database_watch_column_unavailable","database_watch_events_unavailable","database_watch_conflict","database_table_conflict","database_table_limit","compute_change_pending","compute_change_conflict","billing_purchase_conflict","billing_recharge_conflict","github_connection_required","github_connection_revoked","repository_not_installed","cloudflare_zone_not_bound","cloudflare_authorization_closed","project_notes_conflict","project_export_not_ready","powered_by_flag_required","interactive_login_required","api_key_creation_uncertain","api_key_permissions_unavailable","reconciliation_exhausted","service_unavailable","source_commit_not_found","domain_hostname_taken","domain_dns_conflict","data_change_blocked","data_change_in_progress","data_change_not_applicable","rollback_target_data_changed","project_domain_delete_required","native_domain_sync_pending"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"suggested_action","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"retry_after_seconds":{"type":"integer","minimum":1,"maximum":86400,"description":"Optional machine-readable retry delay for a rate limit, matching Retry-After.","uniqueKey":"retry_after_seconds","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"resourceNotFound":{"title":"resourceNotFound","value":{"type":"https://docs.ohmyho.st/errors/resource-not-found","title":"Resource not found","status":404,"code":"resource_not_found","request_id":"req_01J00000000000000000000000","retryable":false,"suggested_action":"Check the resource identifier and your access scope."}}},"exampleType":"examples"}},"exampleType":"examples"},"bcf03f19-8e99-4174-b189-9797904c1e28":{"description":"The idempotency key was already used with a different canonical request.","headers":{"X-Request-Id":{"description":"Correlates the request with operations, events, logs, and audit records.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details extended with stable ohmyhost recovery fields.","required":["type","title","status","code","request_id","retryable","suggested_action"],"properties":{"type":{"type":"string","format":"uri-reference","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","enum":["invalid_request","unauthenticated","forbidden","organization_required","resource_not_found","idempotency_key_reused","project_handle_unavailable","project_identity_unavailable","deployment_plan_expired","deployment_plan_incompatible","confirmation_expired","confirmation_invalid","etag_mismatch","promotion_source_stale","promotion_target_stale","promotion_invalid_target","mail_domain_conflict","mail_domain_required","mail_capacity_unavailable","storage_jurisdiction_conflict","shared_data_requires_promotion","production_deployment_required","framework_conversion_required","repository_configuration_missing","migration_filename_noncanonical","environment_secret_mutation_blocked","workers_runtime_incompatible","project_handle_invalid","project_handle_taken","project_handle_unchanged","project_rename_blocked","payload_too_large","rate_limited","insufficient_organization_credits","paid_plan_required","project_budget_exceeded","compute_performance_paid_required","compute_paid_required","compute_storage_shrink_requires_migration","compute_performance_unavailable","database_write_pending","database_access_limit","database_webhook_limit","database_schedule_limit","database_schedule_not_runnable","database_webhook_delivery_pending","database_watch_limit","database_watch_table_unavailable","database_watch_column_unavailable","database_watch_events_unavailable","database_watch_conflict","database_table_conflict","database_table_limit","compute_change_pending","compute_change_conflict","billing_purchase_conflict","billing_recharge_conflict","github_connection_required","github_connection_revoked","repository_not_installed","cloudflare_zone_not_bound","cloudflare_authorization_closed","project_notes_conflict","project_export_not_ready","powered_by_flag_required","interactive_login_required","api_key_creation_uncertain","api_key_permissions_unavailable","reconciliation_exhausted","service_unavailable","source_commit_not_found","domain_hostname_taken","domain_dns_conflict","data_change_blocked","data_change_in_progress","data_change_not_applicable","rollback_target_data_changed","project_domain_delete_required","native_domain_sync_pending"],"const":"idempotency_key_reused","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"suggested_action","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"retry_after_seconds":{"type":"integer","minimum":1,"maximum":86400,"description":"Optional machine-readable retry delay for a rate limit, matching Retry-After.","uniqueKey":"retry_after_seconds","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"reusedKey":{"title":"reusedKey","value":{"type":"https://docs.ohmyho.st/errors/idempotency-key-reused","title":"Idempotency key reused","status":409,"code":"idempotency_key_reused","request_id":"req_01J00000000000000000000000","retryable":false,"suggested_action":"Retry with a new idempotency key."}}},"exampleType":"examples"}},"exampleType":"examples"},"e1d985ad-ba06-4298-8a37-198892e0bc67":{"description":"The request failed.","headers":{"X-Request-Id":{"description":"Correlates the request with operations, events, logs, and audit records.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details extended with stable ohmyhost recovery fields.","additionalProperties":false,"required":["type","title","status","code","request_id","retryable","suggested_action"],"properties":{"type":{"type":"string","format":"uri-reference","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","enum":["invalid_request","unauthenticated","forbidden","organization_required","resource_not_found","idempotency_key_reused","project_handle_unavailable","project_identity_unavailable","deployment_plan_expired","deployment_plan_incompatible","confirmation_expired","confirmation_invalid","etag_mismatch","promotion_source_stale","promotion_target_stale","promotion_invalid_target","mail_domain_conflict","mail_domain_required","mail_capacity_unavailable","storage_jurisdiction_conflict","shared_data_requires_promotion","production_deployment_required","framework_conversion_required","repository_configuration_missing","migration_filename_noncanonical","environment_secret_mutation_blocked","workers_runtime_incompatible","project_handle_invalid","project_handle_taken","project_handle_unchanged","project_rename_blocked","payload_too_large","rate_limited","insufficient_organization_credits","paid_plan_required","project_budget_exceeded","compute_performance_paid_required","compute_paid_required","compute_storage_shrink_requires_migration","compute_performance_unavailable","database_write_pending","database_access_limit","database_webhook_limit","database_schedule_limit","database_schedule_not_runnable","database_webhook_delivery_pending","database_watch_limit","database_watch_table_unavailable","database_watch_column_unavailable","database_watch_events_unavailable","database_watch_conflict","database_table_conflict","database_table_limit","compute_change_pending","compute_change_conflict","billing_purchase_conflict","billing_recharge_conflict","github_connection_required","github_connection_revoked","repository_not_installed","cloudflare_zone_not_bound","cloudflare_authorization_closed","project_notes_conflict","project_export_not_ready","powered_by_flag_required","interactive_login_required","api_key_creation_uncertain","api_key_permissions_unavailable","reconciliation_exhausted","service_unavailable","source_commit_not_found","domain_hostname_taken","domain_dns_conflict","data_change_blocked","data_change_in_progress","data_change_not_applicable","rollback_target_data_changed","project_domain_delete_required","native_domain_sync_pending"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"suggested_action","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"retry_after_seconds":{"type":"integer","minimum":1,"maximum":86400,"description":"Optional machine-readable retry delay for a rate limit, matching Retry-After.","uniqueKey":"retry_after_seconds","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":499,"code":"invalid_request","request_id":"\u003cstring>","retryable":true,"suggested_action":"\u003cstring>","detail":"\u003cstring>","instance":"\u003cstring>","retry_after_seconds":43200}}},"exampleType":"generated"}},"exampleType":"generated"},"e8e17917-7003-4aef-949e-77c06c3ab01f":{"description":"The request failed.","headers":{"X-Request-Id":{"description":"Correlates the request with operations, events, logs, and audit records.","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}}},"content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details extended with stable ohmyhost recovery fields.","additionalProperties":false,"required":["type","title","status","code","request_id","retryable","suggested_action"],"properties":{"type":{"type":"string","format":"uri-reference","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi-reference>"},"title":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","minimum":400,"maximum":599,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","enum":["invalid_request","unauthenticated","forbidden","organization_required","resource_not_found","idempotency_key_reused","project_handle_unavailable","project_identity_unavailable","deployment_plan_expired","deployment_plan_incompatible","confirmation_expired","confirmation_invalid","etag_mismatch","promotion_source_stale","promotion_target_stale","promotion_invalid_target","mail_domain_conflict","mail_domain_required","mail_capacity_unavailable","storage_jurisdiction_conflict","shared_data_requires_promotion","production_deployment_required","framework_conversion_required","repository_configuration_missing","migration_filename_noncanonical","environment_secret_mutation_blocked","workers_runtime_incompatible","project_handle_invalid","project_handle_taken","project_handle_unchanged","project_rename_blocked","payload_too_large","rate_limited","insufficient_organization_credits","paid_plan_required","project_budget_exceeded","compute_performance_paid_required","compute_paid_required","compute_storage_shrink_requires_migration","compute_performance_unavailable","database_write_pending","database_access_limit","database_webhook_limit","database_schedule_limit","database_schedule_not_runnable","database_webhook_delivery_pending","database_watch_limit","database_watch_table_unavailable","database_watch_column_unavailable","database_watch_events_unavailable","database_watch_conflict","database_table_conflict","database_table_limit","compute_change_pending","compute_change_conflict","billing_purchase_conflict","billing_recharge_conflict","github_connection_required","github_connection_revoked","repository_not_installed","cloudflare_zone_not_bound","cloudflare_authorization_closed","project_notes_conflict","project_export_not_ready","powered_by_flag_required","interactive_login_required","api_key_creation_uncertain","api_key_permissions_unavailable","reconciliation_exhausted","service_unavailable","source_commit_not_found","domain_hostname_taken","domain_dns_conflict","data_change_blocked","data_change_in_progress","data_change_not_applicable","rollback_target_data_changed","project_domain_delete_required","native_domain_sync_pending"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","minLength":1,"maxLength":128,"isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"suggested_action","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","format":"uri-reference","uniqueKey":"instance","typeLabel":"string\u003curi-reference>"},"retry_after_seconds":{"type":"integer","minimum":1,"maximum":86400,"description":"Optional machine-readable retry delay for a rate limit, matching Retry-After.","uniqueKey":"retry_after_seconds","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":499,"code":"invalid_request","request_id":"\u003cstring>","retryable":true,"suggested_action":"\u003cstring>","detail":"\u003cstring>","instance":"\u003cstring>","retry_after_seconds":43200}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"d4879a90-e457-462a-8766-550091d81763":{"BearerAuth":{"type":"http","scheme":"bearer","description":"WorkOS access JWT or a user-owned WorkOS API key. User keys are bound to one organization and restricted to their enabled product permissions. Session-only onboarding and session revocation require an interactive access JWT. No cookie session is assumed.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"62c71dee-5562-45c5-9ee5-1ea103e08ce4":{"url":"https://app.ohmyho.st","description":"Production control API"},"18c9d121-9110-40f3-b481-27bca6b9f02a":{"url":"https://dev.app.ohmyho.st","description":"Development control API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"WorkOS access JWT or a user-owned WorkOS API key. User keys are bound to one organization and restricted to their enabled product permissions. Session-only onboarding and session revocation require an interactive access JWT. No cookie session is assumed.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"WorkOS access JWT or a user-owned WorkOS API key. User keys are bound to one organization and restricted to their enabled product permissions. Session-only onboarding and session revocation require an interactive access JWT. No cookie session is assumed.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"ohmyhost","siteName":"ohmyho.st","title":"Move a project to a chosen address - ohmyho.st","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-07T13:55:52.954Z","originalFileLocation":"api-reference/move-a-project-to-a-chosen-address.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=\"Starts a durable operation that re-publishes the project\u0026#x27;s Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/{handle} first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ohmyho.st\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ohmyhost/M042vB6Ys6BiOROh/_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/ohmyhost/M042vB6Ys6BiOROh/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ohmyhost/M042vB6Ys6BiOROh/_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/ohmyhost/M042vB6Ys6BiOROh/_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/ohmyhost/M042vB6Ys6BiOROh/_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/ohmyhost/M042vB6Ys6BiOROh/_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/ohmyhost/M042vB6Ys6BiOROh/_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/ohmyhost/M042vB6Ys6BiOROh/_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/ohmyhost/M042vB6Ys6BiOROh/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Move a project to a chosen address - ohmyho.st\">\u003cmeta data-mint-head property=\"og:description\" content=\"Starts a durable operation that re-publishes the project\u0026#x27;s Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/{handle} first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ohmyho.st\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ohmyho.st/api-reference/move-a-project-to-a-chosen-address\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ohmyhost.mintlify.site/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Move+a+project+to+a+chosen+address\u0026amp;description=Starts+a+durable+operation+that+re-publishes+the+project%27s+Dev+and+Prod+gateways+at+the+chosen+address+and+stores+it+only+once+both+serve+it.+The+previous+addre\u0026amp;theme=2931624c6204c4e02050e6f2\u0026amp;signature=305053ddb56f20a53e9f2586b07148f9ee08264c76217a791926655b2b9a1a4b\">\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=\"Move a project to a chosen address - ohmyho.st\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Starts a durable operation that re-publishes the project\u0026#x27;s Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/{handle} first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ohmyhost.mintlify.site/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Move+a+project+to+a+chosen+address\u0026amp;description=Starts+a+durable+operation+that+re-publishes+the+project%27s+Dev+and+Prod+gateways+at+the+chosen+address+and+stores+it+only+once+both+serve+it.+The+previous+addre\u0026amp;theme=2931624c6204c4e02050e6f2\u0026amp;signature=305053ddb56f20a53e9f2586b07148f9ee08264c76217a791926655b2b9a1a4b\">\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/ohmyhost/M042vB6Ys6BiOROh/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ohmyho.st\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ohmyho.st/api-reference/move-a-project-to-a-chosen-address\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/move-a-project-to-a-chosen-address.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ohmyho.st/#organization\",\"name\":\"ohmyho.st\",\"url\":\"https://docs.ohmyho.st\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ohmyhost/-GyHWgaHhneGtZo_/logo/light.svg?fit=max\u0026auto=format\u0026n=-GyHWgaHhneGtZo_\u0026q=85\u0026s=13af4972252c9a884618d20beaf5a174\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ohmyho.st#website\",\"name\":\"ohmyho.st\",\"url\":\"https://docs.ohmyho.st\",\"publisher\":{\"@id\":\"https://docs.ohmyho.st/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ohmyho.st/api-reference/move-a-project-to-a-chosen-address#webpage\",\"url\":\"https://docs.ohmyho.st/api-reference/move-a-project-to-a-chosen-address\",\"name\":\"Move a project to a chosen address\",\"description\":\"Starts a durable operation that re-publishes the project's Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/{handle} first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.\",\"dateModified\":\"2026-11-07T13:55:52.954Z\",\"isPartOf\":{\"@id\":\"https://docs.ohmyho.st#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ohmyho.st/api-reference/move-a-project-to-a-chosen-address#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ohmyho.st/api-reference/move-a-project-to-a-chosen-address#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.ohmyho.st/api-reference/read-native-auth-configuration\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Reference\",\"item\":\"https://docs.ohmyho.st/api-reference/read-native-auth-configuration\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Move a project to a chosen address\",\"item\":\"https://docs.ohmyho.st/api-reference/move-a-project-to-a-chosen-address\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.ohmyho.st/api-reference/move-a-project-to-a-chosen-address#apireference\",\"headline\":\"Move a project to a chosen address\",\"name\":\"Move a project to a chosen address\",\"description\":\"Starts a durable operation that re-publishes the project's Dev and Prod gateways at the chosen address and stores it only once both serve it. The previous address stops answering and returns to the pool for any project to claim. Ask GET /v1/project-handles/{handle} first; a taken, unusable or unchanged address is refused before any gateway moves, and a project with an operation in flight is refused until it finishes.\",\"url\":\"https://docs.ohmyho.st/api-reference/move-a-project-to-a-chosen-address\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ohmyho.st/api-reference/move-a-project-to-a-chosen-address#webpage\"},\"dateModified\":\"2026-11-07T13:55:52.954Z\",\"publisher\":{\"@id\":\"https://docs.ohmyho.st/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ohmyho.st#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ohmyho.st\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"ohmyho.st\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/move-a-project-to-a-chosen-address.md","siteName":"ohmyho.st","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API reference","href":"/api"}]},{"group":"Endpoints","pages":[{"group":"API Reference","pages":[{"title":"Read Native Auth configuration","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/auth","href":"/api-reference/read-native-auth-configuration"},{"title":"Update Native Auth configuration","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/environments/{environment_id}/auth","href":"/api-reference/update-native-auth-configuration"},{"title":"Read a Native Auth provider","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/auth/providers/{provider}","href":"/api-reference/read-a-native-auth-provider"},{"title":"Update a Native Auth provider","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/environments/{environment_id}/auth/providers/{provider}","href":"/api-reference/update-a-native-auth-provider"},{"title":"List Native Auth users","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/auth/users","href":"/api-reference/list-native-auth-users"},{"title":"Create and invite a Native Auth user","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/environments/{environment_id}/auth/users","href":"/api-reference/create-and-invite-a-native-auth-user"},{"title":"Read a Native Auth user","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/auth/users/{user_id}","href":"/api-reference/read-a-native-auth-user"},{"title":"Delete a Native Auth user","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/environments/{environment_id}/auth/users/{user_id}","href":"/api-reference/delete-a-native-auth-user"},{"title":"Resend an invitation","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/environments/{environment_id}/auth/users/{user_id}/invite","href":"/api-reference/resend-an-invitation"},{"title":"Suspend a Native Auth user","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/environments/{environment_id}/auth/users/{user_id}/suspend","href":"/api-reference/suspend-a-native-auth-user"},{"title":"Reactivate a Native Auth user","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/environments/{environment_id}/auth/users/{user_id}/reactivate","href":"/api-reference/reactivate-a-native-auth-user"},{"title":"Revoke a Native Auth user's sessions","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/environments/{environment_id}/auth/users/{user_id}/revoke-sessions","href":"/api-reference/revoke-a-native-auth-users-sessions"},{"title":"List authorized workspace sending domains","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/mail-domains","href":"/api-reference/list-authorized-workspace-sending-domains"},{"title":"Create a workspace sending domain","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/organizations/{organization_id}/mail-domains","href":"/api-reference/create-a-workspace-sending-domain"},{"title":"Read one authorized workspace sending domain","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/mail-domains/{mail_domain_id}","href":"/api-reference/read-one-authorized-workspace-sending-domain"},{"title":"Retire an unused workspace mail domain","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/organizations/{organization_id}/mail-domains/{mail_domain_id}","href":"/api-reference/retire-an-unused-workspace-mail-domain"},{"title":"Read sender-domain DNS authorization","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/mail-domains/{mail_domain_id}/dns-authorization","href":"/api-reference/read-sender-domain-dns-authorization"},{"title":"Authorize exact sender-domain DNS management","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/organizations/{organization_id}/mail-domains/{mail_domain_id}/dns-authorization","href":"/api-reference/authorize-exact-sender-domain-dns-management"},{"title":"Revoke workspace mail DNS management without changing sending","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/organizations/{organization_id}/mail-domains/{mail_domain_id}/dns-authorization","href":"/api-reference/revoke-workspace-mail-dns-management-without-changing-sending"},{"title":"Read project sender settings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/mail-domain-binding","href":"/api-reference/read-project-sender-settings"},{"title":"Attach or update a same-main-domain sender","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/environments/{environment_id}/mail-domain-binding","href":"/api-reference/attach-or-update-a-same-main-domain-sender"},{"title":"Detach only the selected project sender","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/environments/{environment_id}/mail-domain-binding","href":"/api-reference/detach-only-the-selected-project-sender"},{"title":"Read the intended application domain proof","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/application-domain-identity","href":"/api-reference/read-the-intended-application-domain-proof"},{"title":"Declare an intended application domain without switching traffic","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/application-domain-identity","href":"/api-reference/declare-an-intended-application-domain-without-switching-traffic"},{"title":"Revoke application domain proof and dependent shared sends","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/application-domain-identity","href":"/api-reference/revoke-application-domain-proof-and-dependent-shared-sends"},{"title":"Verify the current application DNS challenge","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/application-domain-identity/verify","href":"/api-reference/verify-the-current-application-dns-challenge"},{"title":"Read application proof DNS authorization","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/application-domain-identity/dns-authorization","href":"/api-reference/read-application-proof-dns-authorization"},{"title":"Authorize only the frozen application TXT challenge","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/application-domain-identity/dns-authorization","href":"/api-reference/authorize-only-the-frozen-application-txt-challenge"},{"title":"Revoke application proof DNS management without switching traffic","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/application-domain-identity/dns-authorization","href":"/api-reference/revoke-application-proof-dns-management-without-switching-traffic"},{"title":"Read the current interactive user profile and signup attribution","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/me/profile","href":"/api-reference/read-the-current-interactive-user-profile-and-signup-attribution"},{"title":"Record the authenticated user signup source once","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/me/signup-source","href":"/api-reference/record-the-authenticated-user-signup-source-once"},{"title":"Connect a GitHub installation to the workspace","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/organizations/{organization_id}/github:connect","href":"/api-reference/connect-a-github-installation-to-the-workspace"},{"title":"Read the workspace GitHub connection","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/github","href":"/api-reference/read-the-workspace-github-connection"},{"title":"Read the workspace's referral link","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/referral","href":"/api-reference/read-the-workspaces-referral-link"},{"title":"Read effective plan and monthly versus one-time credit balance","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/account","href":"/api-reference/read-effective-plan-and-monthly-versus-one-time-credit-balance"},{"title":"Submit a contact or privacy question","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/contact-requests","href":"/api-reference/submit-a-contact-or-privacy-question"},{"title":"Read this anonymous browser's current roadmap votes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/site/feature-interests","href":"/api-reference/read-this-anonymous-browsers-current-roadmap-votes"},{"title":"Set or remove this anonymous browser's roadmap vote","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/site/feature-interests","href":"/api-reference/set-or-remove-this-anonymous-browsers-roadmap-vote"},{"title":"Read distinct active projects successfully deployed in the past seven days","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/site/stats","href":"/api-reference/read-distinct-active-projects-successfully-deployed-in-the-past-seven-days"},{"title":"List the current user's tokens in one organization","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/user-api-keys","href":"/api-reference/list-the-current-users-tokens-in-one-organization"},{"title":"Create a user-owned API token valid until revoked","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/organizations/{organization_id}/user-api-keys","href":"/api-reference/create-a-user-owned-api-token-valid-until-revoked"},{"title":"Revoke one of the current user's API tokens","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/organizations/{organization_id}/user-api-keys/{key_id}","href":"/api-reference/revoke-one-of-the-current-users-api-tokens"},{"title":"Store a redacted customer-agent feedback report","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/feedback","href":"/api-reference/store-a-redacted-customer-agent-feedback-report"},{"title":"Read the status of one feedback receipt and ohmyho.st's replies","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/feedback/{feedback_id}","href":"/api-reference/read-the-status-of-one-feedback-receipt-and-ohmyhosts-replies"},{"title":"Complete the bound GitHub browser authorization","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/github/oauth/callback","href":"/api-reference/complete-the-bound-github-browser-authorization"},{"title":"Complete one Cloudflare DNS authorization","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cloudflare/oauth/callback","href":"/api-reference/complete-one-cloudflare-dns-authorization"},{"title":"Get the current authenticated identity","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/me","href":"/api-reference/get-the-current-authenticated-identity"},{"title":"Revoke the current signed-in user session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/session:revoke","href":"/api-reference/revoke-the-current-signed-in-user-session"},{"title":"Create an organization for the signed-in user","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/organizations","href":"/api-reference/create-an-organization-for-the-signed-in-user"},{"title":"Create or resume an owner's hosted Stripe Checkout","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/organizations/{organization_id}/billing/checkouts","href":"/api-reference/create-or-resume-an-owners-hosted-stripe-checkout"},{"title":"Observe and reconcile an owner's original checkout","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/billing/checkouts/{checkout_id}","href":"/api-reference/observe-and-reconcile-an-owners-original-checkout"},{"title":"Open the owner's Stripe billing portal","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/organizations/{organization_id}/billing/portal","href":"/api-reference/open-the-owners-stripe-billing-portal"},{"title":"Read auto-recharge and the current payment handoff","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/billing/recharge","href":"/api-reference/read-auto-recharge-and-the-current-payment-handoff"},{"title":"Enable or disable explicitly authorized auto-recharge","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/organizations/{organization_id}/billing/recharge","href":"/api-reference/enable-or-disable-explicitly-authorized-auto-recharge"},{"title":"Read the owner's shared organization credit pool","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/credits","href":"/api-reference/read-the-owners-shared-organization-credit-pool"},{"title":"Read recent measured usage by day, project and meter","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/organizations/{organization_id}/credit-usage","href":"/api-reference/read-recent-measured-usage-by-day-project-and-meter"},{"title":"Request an asynchronous password-encrypted SQL ZIP","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/exports","href":"/api-reference/request-an-asynchronous-password-encrypted-sql-zip"},{"title":"Read export progress and its verified 24-hour download capability","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/exports/{export_id}","href":"/api-reference/read-export-progress-and-its-verified-24-hour-download-capability"},{"title":"Read a project's optional monthly credit budget","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/credit-budget","href":"/api-reference/read-a-projects-optional-monthly-credit-budget"},{"title":"Set or clear the owner's project budget","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/credit-budget","href":"/api-reference/set-or-clear-the-owners-project-budget"},{"title":"List projects visible to the current authenticated identity","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects","href":"/api-reference/list-projects-visible-to-the-current-authenticated-identity"},{"title":"Create a project","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects","href":"/api-reference/create-a-project"},{"title":"Get a project","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}","href":"/api-reference/get-a-project"},{"title":"Delete a project","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}","href":"/api-reference/delete-a-project"},{"title":"Read current project context for an agent","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/context","href":"/api-reference/read-current-project-context-for-an-agent"},{"title":"Replace bounded shared project notes without losing concurrent edits","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/context/notes","href":"/api-reference/replace-bounded-shared-project-notes-without-losing-concurrent-edits"},{"title":"Get the current project deployment status","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/status","href":"/api-reference/get-the-current-project-deployment-status"},{"title":"Check whether a project handle is free","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/project-handles/{handle}","href":"/api-reference/check-whether-a-project-handle-is-free"},{"title":"Get or create the persistent Dev share link","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/dev-share-link","href":"/api-reference/get-or-create-the-persistent-dev-share-link"},{"title":"Revoke the Dev share link and active sessions","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/dev-share-link","href":"/api-reference/revoke-the-dev-share-link-and-active-sessions"},{"title":"Rotate the persistent Dev share link","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/dev-share-link:rotate","href":"/api-reference/rotate-the-persistent-dev-share-link"},{"title":"Select public or protected Dev access","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/dev-access-mode","href":"/api-reference/select-public-or-protected-dev-access"},{"title":"Read the \"Powered by ohmyho.st\" flag","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/powered-by-flag","href":"/api-reference/read-the-\"powered-by-ohmyhost\"-flag"},{"title":"Show or hide the \"Powered by ohmyho.st\" flag","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/powered-by-flag","href":"/api-reference/show-or-hide-the-\"powered-by-ohmyhost\"-flag"},{"title":"Create a single-use dev access ticket","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/dev-access-tickets","href":"/api-reference/create-a-single-use-dev-access-ticket"},{"title":"Plan project deletion","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}:delete-plan","href":"/api-reference/plan-project-deletion"},{"title":"Link a GitHub source repository","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/source:link","href":"/api-reference/link-a-github-source-repository"},{"title":"Get the linked source status","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/source","href":"/api-reference/get-the-linked-source-status"},{"title":"Initialize a managed Cloudflare Git source","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/source:initialize","href":"/api-reference/initialize-a-managed-cloudflare-git-source"},{"title":"Read managed source files","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/source/files","href":"/api-reference/read-managed-source-files"},{"title":"Read managed source version history","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/source/versions","href":"/api-reference/read-managed-source-version-history"},{"title":"Compare two managed source versions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/source/diff","href":"/api-reference/compare-two-managed-source-versions"},{"title":"Save an atomic managed source file batch","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/source/changes","href":"/api-reference/save-an-atomic-managed-source-file-batch"},{"title":"Restore an earlier file tree as a new version","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/source:restore","href":"/api-reference/restore-an-earlier-file-tree-as-a-new-version"},{"title":"Start a stable managed source snapshot upload","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/source/uploads","href":"/api-reference/start-a-stable-managed-source-snapshot-upload"},{"title":"Read a managed source upload receipt","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/source/uploads/{operation_id}","href":"/api-reference/read-a-managed-source-upload-receipt"},{"title":"Upload one source file with its content hash","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/source/uploads/{operation_id}/files","href":"/api-reference/upload-one-source-file-with-its-content-hash"},{"title":"Commit one complete uploaded source snapshot","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/source/uploads/{operation_id}:commit","href":"/api-reference/commit-one-complete-uploaded-source-snapshot"},{"title":"Switch an existing GitHub project to a prepared managed source","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/source:switch","href":"/api-reference/switch-an-existing-github-project-to-a-prepared-managed-source"},{"title":"Get automatic GitHub push deployment status","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/source/auto-deploy","href":"/api-reference/get-automatic-github-push-deployment-status"},{"title":"Configure automatic GitHub push deployment","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/source/auto-deploy","href":"/api-reference/configure-automatic-github-push-deployment"},{"title":"Start project-scoped Cloudflare DNS authorization","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/cloudflare-dns/authorization","href":"/api-reference/start-project-scoped-cloudflare-dns-authorization"},{"title":"Get project-scoped Cloudflare DNS authorization status","description":"Returns only the fixed zone, closed scope set, expiry, and authorization state; provider credentials are never exposed.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/cloudflare-dns","href":"/api-reference/get-project-scoped-cloudflare-dns-authorization-status"},{"title":"Move a project to a chosen address","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/handle","href":"/api-reference/move-a-project-to-a-chosen-address"},{"title":"Apply the server-derived project domains","description":"Starts an idempotent durable operation for the exact project-derived development, production, and mail hostnames. The request has no body.","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/domains","href":"/api-reference/apply-the-server-derived-project-domains"},{"title":"Plan one Paid customer-owned hostname","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/paid-domain:plan","href":"/api-reference/plan-one-paid-customer-owned-hostname"},{"title":"Read the Paid customer-owned hostname","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/paid-domain","href":"/api-reference/read-the-paid-customer-owned-hostname"},{"title":"Apply one Paid customer-owned hostname","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/paid-domain","href":"/api-reference/apply-one-paid-customer-owned-hostname"},{"title":"Delete one exact Paid customer-owned hostname","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/paid-domain","href":"/api-reference/delete-one-exact-paid-customer-owned-hostname"},{"title":"Plan a deployment","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/deployments:plan","href":"/api-reference/plan-a-deployment"},{"title":"List deployments","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/deployments","href":"/api-reference/list-deployments"},{"title":"Create a deployment","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/deployments","href":"/api-reference/create-a-deployment"},{"title":"Get deployment status","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/deployments/{deployment_id}","href":"/api-reference/get-deployment-status"},{"title":"List normalized deployment diagnostics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/deployments/{deployment_id}/logs","href":"/api-reference/list-normalized-deployment-diagnostics"},{"title":"Stream normalized deployment diagnostics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/deployments/{deployment_id}/logs/events","href":"/api-reference/stream-normalized-deployment-diagnostics"},{"title":"Read actual managed database compute configuration","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/database/compute","href":"/api-reference/read-actual-managed-database-compute-configuration"},{"title":"Select database memory and included storage","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/database/compute","href":"/api-reference/select-database-memory-and-included-storage"},{"title":"Execute one bounded database write in Dev or Prod","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/database/write","href":"/api-reference/execute-one-bounded-database-write-in-dev-or-prod"},{"title":"Run one bounded read-only Dev or Prod database query","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/database/query","href":"/api-reference/run-one-bounded-read-only-dev-or-prod-database-query"},{"title":"List the project's issued database credentials","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/database/access","href":"/api-reference/list-the-projects-issued-database-credentials"},{"title":"Issue one time-bound PostgreSQL credential for Dev or Prod","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/database/access","href":"/api-reference/issue-one-time-bound-postgresql-credential-for-dev-or-prod"},{"title":"Revoke one issued database credential","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/database/access/{access_id}","href":"/api-reference/revoke-one-issued-database-credential"},{"title":"Create a table in the project's database","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/database/tables","href":"/api-reference/create-a-table-in-the-projects-database"},{"title":"List the project's database watches","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/database/watches","href":"/api-reference/list-the-projects-database-watches"},{"title":"Watch the columns of one table for data events","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/database/watches","href":"/api-reference/watch-the-columns-of-one-table-for-data-events"},{"title":"Delete one database watch","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/database/watches/{watch_id}","href":"/api-reference/delete-one-database-watch"},{"title":"List the project's database webhooks","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/database/webhooks","href":"/api-reference/list-the-projects-database-webhooks"},{"title":"Create a signed webhook for database lifecycle events","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/database/webhooks","href":"/api-reference/create-a-signed-webhook-for-database-lifecycle-events"},{"title":"Read one database webhook","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/database/webhooks/{webhook_id}","href":"/api-reference/read-one-database-webhook"},{"title":"Delete one database webhook","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/database/webhooks/{webhook_id}","href":"/api-reference/delete-one-database-webhook"},{"title":"Send one test delivery to a database webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/database/webhooks/{webhook_id}/test","href":"/api-reference/send-one-test-delivery-to-a-database-webhook"},{"title":"List database webhook deliveries","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/database/webhook-deliveries","href":"/api-reference/list-database-webhook-deliveries"},{"title":"Replay one database webhook delivery","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/database/webhook-deliveries/{delivery_id}/replay","href":"/api-reference/replay-one-database-webhook-delivery"},{"title":"List the project's database schedules","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/database/schedules","href":"/api-reference/list-the-projects-database-schedules"},{"title":"Read one database schedule","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/database/schedules/{name}","href":"/api-reference/read-one-database-schedule"},{"title":"Create or replace one database schedule","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/database/schedules/{name}","href":"/api-reference/create-or-replace-one-database-schedule"},{"title":"Delete one database schedule","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/database/schedules/{name}","href":"/api-reference/delete-one-database-schedule"},{"title":"List the recent runs of one database schedule","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/database/schedules/{name}/runs","href":"/api-reference/list-the-recent-runs-of-one-database-schedule"},{"title":"Queue one immediate run of a database schedule","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/database/schedules/{name}/run","href":"/api-reference/queue-one-immediate-run-of-a-database-schedule"},{"title":"Read metered database execution usage","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/database/execution-usage","href":"/api-reference/read-metered-database-execution-usage"},{"title":"Plan a deployment rollback","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/deployments/{target_deployment_id}:rollback-plan","href":"/api-reference/plan-a-deployment-rollback"},{"title":"Roll back to an immutable deployment","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/deployments/{target_deployment_id}:rollback","href":"/api-reference/roll-back-to-an-immutable-deployment"},{"title":"Plan promotion of the current dev deployment","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/deployments/{source_deployment_id}:promote-plan","href":"/api-reference/plan-promotion-of-the-current-dev-deployment"},{"title":"Promote a verified dev artifact to prod","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/deployments/{source_deployment_id}:promote","href":"/api-reference/promote-a-verified-dev-artifact-to-prod"},{"title":"List environment secret metadata","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/secrets","href":"/api-reference/list-environment-secret-metadata"},{"title":"List the newest scheduled function runs of an environment","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/function-runs","href":"/api-reference/list-the-newest-scheduled-function-runs-of-an-environment"},{"title":"Create or rotate an environment secret","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/environments/{environment_id}/secrets/{secret_name}","href":"/api-reference/create-or-rotate-an-environment-secret"},{"title":"Delete an environment secret","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/environments/{environment_id}/secrets/{secret_name}","href":"/api-reference/delete-an-environment-secret"},{"title":"Get an operation","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/operations/{operation_id}","href":"/api-reference/get-an-operation"},{"title":"Reconcile an uncertain platform delivery or provider mutation","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/operations/{operation_id}:reconcile","href":"/api-reference/reconcile-an-uncertain-platform-delivery-or-provider-mutation"},{"title":"Stream operation events","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/operations/{operation_id}/events","href":"/api-reference/stream-operation-events"},{"title":"List audit events","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/audit-events","href":"/api-reference/list-audit-events"},{"title":"Read independent sending and receiving readiness","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/mail-domain","href":"/api-reference/read-independent-sending-and-receiving-readiness"},{"title":"Configure sending and receiving on a selected mail domain","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/environments/{environment_id}/mail-domain","href":"/api-reference/configure-sending-and-receiving-on-a-selected-mail-domain"},{"title":"Retire the project's mail domain while the project stays active","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/environments/{environment_id}/mail-domain","href":"/api-reference/retire-the-projects-mail-domain-while-the-project-stays-active"},{"title":"Prepare a required customer webhook and return its signing secret","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/projects/{project_id}/environments/{environment_id}/mail-webhook","href":"/api-reference/prepare-a-required-customer-webhook-and-return-its-signing-secret"},{"title":"Disable receiving and remove the customer webhook","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{project_id}/environments/{environment_id}/mail-webhook","href":"/api-reference/disable-receiving-and-remove-the-customer-webhook"},{"title":"Verify the customer endpoint and enable receiving","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/environments/{environment_id}/mail-webhook/verify","href":"/api-reference/verify-the-customer-endpoint-and-enable-receiving"},{"title":"List mail handoff metadata within the 72 hour window","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/mail/messages","href":"/api-reference/list-mail-handoff-metadata-within-the-72-hour-window"},{"title":"Retrieve owned mail content before expiry","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/mail/messages/{message_id}","href":"/api-reference/retrieve-owned-mail-content-before-expiry"},{"title":"Retry within the shared maximum of three retries","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/environments/{environment_id}/mail/messages/{message_id}/retry","href":"/api-reference/retry-within-the-shared-maximum-of-three-retries"},{"title":"Download an owned attachment before expiry","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{project_id}/environments/{environment_id}/mail/messages/{message_id}/attachments/{attachment_id}","href":"/api-reference/download-an-owned-attachment-before-expiry"},{"title":"Plan a Dev and Prod data assignment change","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/data-changes:plan","href":"/api-reference/plan-a-dev-and-prod-data-assignment-change"},{"title":"Execute a confirmed Dev and Prod data assignment change","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{project_id}/data-changes","href":"/api-reference/execute-a-confirmed-dev-and-prod-data-assignment-change"}]}]}]}]},"basePath":"","title":"Move a project to a chosen address - ohmyho.st","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}