Creates a virtual machine. Choose image from List images and machineClass from List machine classes; unknown values are rejected before anything is created. The response returns as soon as the machine is accepted; poll Get virtual machine until status.ready is true.
Service accounts can call it with the compute:CreateVirtualMachine permission.
Send Authorization: Bearer <credential> to https://customer-api.mountthor.com. People use the session that mthr login stores (a token starting mt_session_, valid for up to 12 hours). Automation uses a service-account credential (starting mt_sa_v1_, valid for 90 days) from Create credential. Each operation names the permission it needs. Service accounts hold permissions through custom roles, and some operations refuse them; those operations say so.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Mount Thor","description":"Customer documentation for Mount Thor: Apple hardware at datacenter scale for bare-metal machines and macOS virtual machines.","colors":{"primary":"#2f3ae0","light":"#9fc9de","dark":"#4a53fb"},"logo":{"light":"https://mintcdn.com/mountthor/FI-NP0X3jMU6ANs9/logo/light.svg?fit=max\u0026auto=format\u0026n=FI-NP0X3jMU6ANs9\u0026q=85\u0026s=a075dbc8738ac4ddb608c81b72dc8f3e","dark":"https://mintcdn.com/mountthor/FI-NP0X3jMU6ANs9/logo/dark.svg?fit=max\u0026auto=format\u0026n=FI-NP0X3jMU6ANs9\u0026q=85\u0026s=cce877d86f8ee91a5cb105dd433fbeec","href":"https://docs.mountthor.com"},"favicon":"https://mintcdn.com/mountthor/iB6WtUcnMc-562Sd/favicon.svg?fit=max\u0026auto=format\u0026n=iB6WtUcnMc-562Sd\u0026q=85\u0026s=1e7406d7ab2decc0c014c59cdac3acbf","appearance":{"default":"system","strict":false},"background":{"color":{"light":"#f7f8f9","dark":"#101010"}},"navbar":{"primary":{"type":"button","label":"Request access","href":"https://portal.mountthor.com/request-access"}},"fonts":{"heading":{"family":"Instrument Sans","weight":500},"body":{"family":"Instrument Sans","weight":400}},"thumbnails":{"appearance":"light","fonts":{"family":"Instrument Sans"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mountthor","hasAudioNarration":false,"actualSubdomain":"mountthor","customDomains":["docs.mountthor.com"],"gitSource":{"type":"github","owner":"mount-thor","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae0ead3d22959c2aa83be3a","collectionId":"94a95107-8cb3-4006-81c4-45a3c417b42c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae0ead3d22959c2aa83be3a"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae0ead3d22959c2aa83be3a","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Documentation","count":34},{"language":"default","tag":"API Reference","count":21},{"language":"default","tag":"Compute","count":14},{"language":"default","tag":"Platform","count":9},{"language":"default","tag":"Billing","count":8},{"language":"default","tag":"Virtual machines","count":5},{"language":"default","tag":"Bare metal","count":4},{"language":"default","tag":"Account and funds","count":3},{"language":"default","tag":"Usage and costs","count":3},{"language":"default","tag":"Account","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"#footer a[href*=\"mintlify.com\"],footer a[href*=\"mintlify.com\"]{display:none!important}.mermaid,.mermaid svg{max-width:100%;height:auto!important}@media (max-width:640px){.mermaid+div:has(button){display:none!important}}"},{"filePath":"brand.css","content":"#pagination{border-top:1px solid #d4d5d6;margin-top:2.5rem;padding-top:1.25rem}html.dark #pagination{border-top-color:#4a4a4a}"}],"page":{"pagePath":"api-reference/compute/create-virtual-machine","slug":"/api-reference/compute/create-virtual-machine","pageMetadata":{"title":"Create virtual machine","description":"Creates a virtual machine. Choose `image` from List images and `machineClass` from List machine classes; unknown values are rejected before anything is created. The response returns as soon as the machine is accepted; poll Get virtual machine until `status.ready` is true.\n\nService accounts can call it with the `compute:CreateVirtualMachine` permission.","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json post /compute/v1/virtualmachines","href":"/api-reference/compute/create-virtual-machine","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Creates a virtual machine. Choose \", _jsx(_components.code, {\n children: \"image\"\n }), \" from List images and \", _jsx(_components.code, {\n children: \"machineClass\"\n }), \" from List machine classes; unknown values are rejected before anything is created. The response returns as soon as the machine is accepted; poll Get virtual machine until \", _jsx(_components.code, {\n children: \"status.ready\"\n }), \" is true.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Service accounts can call it with the \", _jsx(_components.code, {\n children: \"compute:CreateVirtualMachine\"\n }), \" permission.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create virtual machine","description":"Creates a virtual machine. Choose `image` from List images and `machineClass` from List machine classes; unknown values are rejected before anything is created. The response returns as soon as the machine is accepted; poll Get virtual machine until `status.ready` is true.\n\nService accounts can call it with the `compute:CreateVirtualMachine` permission.","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json post /compute/v1/virtualmachines","href":"/api-reference/compute/create-virtual-machine","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Creates a virtual machine. Choose `image` from List images and `machineClass` from List machine classes; unknown values are rejected before anything is created. The response returns as soon as the machine is accepted; poll Get virtual machine until `status.ready` is true.\n\nService accounts can call it with the `compute:CreateVirtualMachine` permission.","operationId":"ComputeService_CreateVirtualMachine","requestBody":"37eab342-f9e7-4881-8be4-ecf67d16525a","responses":{"201":"e9931549-c179-46e3-b46b-81a1cd8630bc","400":"ae9e9642-25e9-4bcd-8255-fc553dc88f8d","401":"801d8329-0197-4492-b38b-b616eeef40e2","402":"9cc162fe-21c0-4cf0-a163-818353db712b","403":"6ba240d4-7981-4b90-bc75-7959d8d2a3e8","409":"3e72cdfc-4eae-4392-a7c1-58c4daa52195","422":"cbe3e5b7-baeb-4a38-b1db-f9f0346a80fe","502":"0d4e6622-5813-46d5-9c24-73c6cc8b0ac8"},"summary":"Create virtual machine","method":"post","type":"path","servers":["d2bcbc6e-9e07-4e9c-a384-f24f15545327"],"security":["89e0db58-87fe-41bb-bcf3-26abc51fb32f"],"path":"/compute/v1/virtualmachines","baseUrlOptions":["https://customer-api.mountthor.com"],"title":"Create virtual machine","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string","description":"An image `ref` from List images.","isRequired":true,"uniqueKey":"image","typeLabel":"string"},"machineClass":{"type":"string","description":"A machine class `name` from List machine classes, for example `m4-24g`.","isRequired":true,"uniqueKey":"machineClass","typeLabel":"string"},"name":{"type":"string","description":"Optional. A name is generated when you omit it.","uniqueKey":"name","typeLabel":"string"},"ports":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"name of the endpoint, for example \"ssh\".","uniqueKey":"ports.items.[INDEX].name","typeLabel":"string"},"guestPort":{"type":"integer","description":"guest_port inside the machine (1-65535).","format":"uint32","uniqueKey":"ports.items.[INDEX].guestPort","typeLabel":"integer\u003cuint32>"}},"description":"A guest port reachable through the Mount Thor tunnel.","uniqueKey":"ports.items.[INDEX]","typeLabel":"object"},"uniqueKey":"ports","typeLabel":"object[]"}},"required":["image","machineClass"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"image":"\u003cstring>","machineClass":"\u003cstring>","name":"\u003cstring>","ports":[{"name":"\u003cstring>","guestPort":123}]}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"e9931549-c179-46e3-b46b-81a1cd8630bc":{"description":"The virtual machine was accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"virtualMachine":{"type":"object","properties":{"name":{"type":"string","description":"The machine's name.","uniqueKey":"virtualMachine.name","typeLabel":"string"},"image":{"type":"string","description":"The image the machine was created from.","uniqueKey":"virtualMachine.image","typeLabel":"string"},"machineClass":{"type":"string","description":"The machine's class, for example `m4-24g`.","uniqueKey":"virtualMachine.machineClass","typeLabel":"string"},"ports":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"name of the endpoint, for example \"ssh\".","uniqueKey":"virtualMachine.ports.items.[INDEX].name","typeLabel":"string"},"guestPort":{"type":"integer","description":"guest_port inside the machine (1-65535).","format":"uint32","uniqueKey":"virtualMachine.ports.items.[INDEX].guestPort","typeLabel":"integer\u003cuint32>"}},"description":"A guest port reachable through the Mount Thor tunnel.","uniqueKey":"virtualMachine.ports.items.[INDEX]","typeLabel":"object"},"uniqueKey":"virtualMachine.ports","typeLabel":"object[]"},"status":{"type":"object","properties":{"id":{"type":"string","description":"The machine's platform identifier, for example `vm_…` or `bm_…`.","uniqueKey":"virtualMachine.status.id","typeLabel":"string"},"state":{"enum":["MACHINE_STATE_UNSPECIFIED","MACHINE_STATE_PENDING","MACHINE_STATE_RUNNING","MACHINE_STATE_FAILED","MACHINE_STATE_TERMINATING","MACHINE_STATE_STOPPED","MACHINE_STATE_PAUSED"],"type":"string","format":"enum","uniqueKey":"virtualMachine.status.state","typeLabel":"enum\u003cstring>"},"ready":{"type":"boolean","description":"Whether the machine is ready to use.","uniqueKey":"virtualMachine.status.ready","typeLabel":"boolean"},"reason":{"type":"string","description":"A machine-readable reason for the current state, for example `InsufficientFunds` when billing refused the launch.","uniqueKey":"virtualMachine.status.reason","typeLabel":"string"},"macOSVersion":{"type":"string","description":"Bare metal only. The installed macOS version the host last reported.","uniqueKey":"virtualMachine.status.macOSVersion","typeLabel":"string"},"macOSBuild":{"type":"string","description":"Bare metal only. The installed macOS build; absent until the host reports it.","uniqueKey":"virtualMachine.status.macOSBuild","typeLabel":"string"}},"description":"The machine's current state.","uniqueKey":"virtualMachine.status","typeLabel":"object"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"virtualMachine.createdAt","typeLabel":"string\u003cdate-time>"}},"description":"A virtual machine.","uniqueKey":"virtualMachine","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"virtualMachine":{"name":"\u003cstring>","image":"\u003cstring>","machineClass":"\u003cstring>","ports":[{"name":"\u003cstring>","guestPort":123}],"status":{"id":"\u003cstring>","state":"MACHINE_STATE_UNSPECIFIED","ready":true,"reason":"\u003cstring>","macOSVersion":"\u003cstring>","macOSBuild":"\u003cstring>"},"createdAt":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"ae9e9642-25e9-4bcd-8255-fc553dc88f8d":{"description":"The request is malformed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"The HTTP status code.","uniqueKey":"error.code","typeLabel":"integer"},"status":{"type":"string","description":"A short status name, for example `NotFound` or `Invalid`.","uniqueKey":"error.status","typeLabel":"string"},"reason":{"type":"string","description":"A machine-readable reason when one applies, for example `insufficient_funds` when a launch is refused for billing.","uniqueKey":"error.reason","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation.","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":123,"status":"\u003cstring>","reason":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"801d8329-0197-4492-b38b-b616eeef40e2":{"description":"The credential is missing, invalid or expired. The body is a Kubernetes-style `Status` object.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"9cc162fe-21c0-4cf0-a163-818353db712b":{"description":"Billing refused the launch; `error.reason` says why, for example `insufficient_funds` or `payment_method_required`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"The HTTP status code.","uniqueKey":"error.code","typeLabel":"integer"},"status":{"type":"string","description":"A short status name, for example `NotFound` or `Invalid`.","uniqueKey":"error.status","typeLabel":"string"},"reason":{"type":"string","description":"A machine-readable reason when one applies, for example `insufficient_funds` when a launch is refused for billing.","uniqueKey":"error.reason","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation.","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":123,"status":"\u003cstring>","reason":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"6ba240d4-7981-4b90-bc75-7959d8d2a3e8":{"description":"The credential does not allow this operation. The body is a Kubernetes-style `Status` object.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"3e72cdfc-4eae-4392-a7c1-58c4daa52195":{"description":"A machine with this name already exists.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"The HTTP status code.","uniqueKey":"error.code","typeLabel":"integer"},"status":{"type":"string","description":"A short status name, for example `NotFound` or `Invalid`.","uniqueKey":"error.status","typeLabel":"string"},"reason":{"type":"string","description":"A machine-readable reason when one applies, for example `insufficient_funds` when a launch is refused for billing.","uniqueKey":"error.reason","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation.","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":123,"status":"\u003cstring>","reason":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"cbe3e5b7-baeb-4a38-b1db-f9f0346a80fe":{"description":"A field failed validation, for example an unknown image or machine class.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"The HTTP status code.","uniqueKey":"error.code","typeLabel":"integer"},"status":{"type":"string","description":"A short status name, for example `NotFound` or `Invalid`.","uniqueKey":"error.status","typeLabel":"string"},"reason":{"type":"string","description":"A machine-readable reason when one applies, for example `insufficient_funds` when a launch is refused for billing.","uniqueKey":"error.reason","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation.","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":123,"status":"\u003cstring>","reason":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"0d4e6622-5813-46d5-9c24-73c6cc8b0ac8":{"description":"Compute is temporarily unable to complete the request; retry later.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"The HTTP status code.","uniqueKey":"error.code","typeLabel":"integer"},"status":{"type":"string","description":"A short status name, for example `NotFound` or `Invalid`.","uniqueKey":"error.status","typeLabel":"string"},"reason":{"type":"string","description":"A machine-readable reason when one applies, for example `insufficient_funds` when a launch is refused for billing.","uniqueKey":"error.reason","typeLabel":"string"},"message":{"type":"string","description":"A human-readable explanation.","uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":123,"status":"\u003cstring>","reason":"\u003cstring>","message":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"89e0db58-87fe-41bb-bcf3-26abc51fb32f":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Send `Authorization: Bearer \u003ccredential>` to https://customer-api.mountthor.com. People use the session that `mthr login` stores (a token starting `mt_session_`, valid for up to 12 hours). Automation uses a service-account credential (starting `mt_sa_v1_`, valid for 90 days) from Create credential. Each operation names the permission it needs. Service accounts hold permissions through custom roles, and some operations refuse them; those operations say so.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"d2bcbc6e-9e07-4e9c-a384-f24f15545327":{"url":"https://customer-api.mountthor.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Send `Authorization: Bearer \u003ccredential>` to https://customer-api.mountthor.com. People use the session that `mthr login` stores (a token starting `mt_session_`, valid for up to 12 hours). Automation uses a service-account credential (starting `mt_sa_v1_`, valid for 90 days) from Create credential. Each operation names the permission it needs. Service accounts hold permissions through custom roles, and some operations refuse them; those operations say so.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Send `Authorization: Bearer \u003ccredential>` to https://customer-api.mountthor.com. People use the session that `mthr login` stores (a token starting `mt_session_`, valid for up to 12 hours). Automation uses a service-account credential (starting `mt_sa_v1_`, valid for 90 days) from Create credential. Each operation names the permission it needs. Service accounts hold permissions through custom roles, and some operations refuse them; those operations say so.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi/compute.json"},"subdomain":"mountthor","siteName":"Mount Thor","title":"Create virtual machine - Mount Thor","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-12T22:18:56.165Z","originalFileLocation":"api-reference/compute/create-virtual-machine.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=\"Creates a virtual machine. Choose image from List images and machineClass from List machine classes; unknown values are rejected before anything is created. The response returns as soon as the machine is accepted; poll Get virtual machine until status.ready is true. Service accounts can call it with the compute:CreateVirtualMachine permission.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mount Thor\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mountthor/riiAjzkRqq-b2xpc/_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/mountthor/riiAjzkRqq-b2xpc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mountthor/riiAjzkRqq-b2xpc/_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/mountthor/riiAjzkRqq-b2xpc/_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/mountthor/riiAjzkRqq-b2xpc/_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/mountthor/riiAjzkRqq-b2xpc/_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/mountthor/riiAjzkRqq-b2xpc/_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/mountthor/riiAjzkRqq-b2xpc/_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/mountthor/riiAjzkRqq-b2xpc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create virtual machine - Mount Thor\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a virtual machine. Choose image from List images and machineClass from List machine classes; unknown values are rejected before anything is created. The response returns as soon as the machine is accepted; poll Get virtual machine until status.ready is true. Service accounts can call it with the compute:CreateVirtualMachine permission.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mount Thor\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mountthor.com/api-reference/compute/create-virtual-machine\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mountthor.mintlify.app/_mintlify/api/og/v2?division=Virtual+machines\u0026amp;title=Create+virtual+machine\u0026amp;description=Creates+a+virtual+machine.+Choose+%60image%60+from+List+images+and+%60machineClass%60+from+List+machine+classes%3B+unknown+values+are+rejected+before+anything+is+created.\u0026amp;theme=b865c0d5b7f41ac4ac38b40f\u0026amp;signature=fa2a81a5b8557fdde5e35fb97366dfcb9e20164b7b8e4bac86effddde1630cfa\">\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=\"Create virtual machine - Mount Thor\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a virtual machine. Choose image from List images and machineClass from List machine classes; unknown values are rejected before anything is created. The response returns as soon as the machine is accepted; poll Get virtual machine until status.ready is true. Service accounts can call it with the compute:CreateVirtualMachine permission.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mountthor.mintlify.app/_mintlify/api/og/v2?division=Virtual+machines\u0026amp;title=Create+virtual+machine\u0026amp;description=Creates+a+virtual+machine.+Choose+%60image%60+from+List+images+and+%60machineClass%60+from+List+machine+classes%3B+unknown+values+are+rejected+before+anything+is+created.\u0026amp;theme=b865c0d5b7f41ac4ac38b40f\u0026amp;signature=fa2a81a5b8557fdde5e35fb97366dfcb9e20164b7b8e4bac86effddde1630cfa\">\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/mountthor/riiAjzkRqq-b2xpc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mount Thor\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2f3ae0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mountthor.com/api-reference/compute/create-virtual-machine\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/compute/create-virtual-machine.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mountthor.com/#organization\",\"name\":\"Mount Thor\",\"url\":\"https://docs.mountthor.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mountthor/FI-NP0X3jMU6ANs9/logo/light.svg?fit=max\u0026auto=format\u0026n=FI-NP0X3jMU6ANs9\u0026q=85\u0026s=a075dbc8738ac4ddb608c81b72dc8f3e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mountthor.com#website\",\"name\":\"Mount Thor\",\"url\":\"https://docs.mountthor.com\",\"publisher\":{\"@id\":\"https://docs.mountthor.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mountthor.com/api-reference/compute/create-virtual-machine#webpage\",\"url\":\"https://docs.mountthor.com/api-reference/compute/create-virtual-machine\",\"name\":\"Create virtual machine\",\"description\":\"Creates a virtual machine. Choose image from List images and machineClass from List machine classes; unknown values are rejected before anything is created. The response returns as soon as the machine is accepted; poll Get virtual machine until status.ready is true. Service accounts can call it with the compute:CreateVirtualMachine permission.\",\"dateModified\":\"2026-10-12T22:18:56.165Z\",\"isPartOf\":{\"@id\":\"https://docs.mountthor.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mountthor.com/api-reference/compute/create-virtual-machine#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mountthor.com/api-reference/compute/create-virtual-machine#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.mountthor.com/api-reference/compute/list-virtual-machines\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compute\",\"item\":\"https://docs.mountthor.com/api-reference/compute/list-virtual-machines\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Virtual machines\",\"item\":\"https://docs.mountthor.com/api-reference/compute/list-virtual-machines\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create virtual machine\",\"item\":\"https://docs.mountthor.com/api-reference/compute/create-virtual-machine\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.mountthor.com/api-reference/compute/create-virtual-machine#apireference\",\"headline\":\"Create virtual machine\",\"name\":\"Create virtual machine\",\"description\":\"Creates a virtual machine. Choose image from List images and machineClass from List machine classes; unknown values are rejected before anything is created. The response returns as soon as the machine is accepted; poll Get virtual machine until status.ready is true. Service accounts can call it with the compute:CreateVirtualMachine permission.\",\"url\":\"https://docs.mountthor.com/api-reference/compute/create-virtual-machine\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mountthor.com/api-reference/compute/create-virtual-machine#webpage\"},\"dateModified\":\"2026-10-12T22:18:56.165Z\",\"publisher\":{\"@id\":\"https://docs.mountthor.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mountthor.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mount Thor\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Mount Thor","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Quickstart","href":"/quickstart"},{"group":"Compute","pages":[{"title":"Compute types","href":"/compute/types"},{"title":"Bare metal","href":"/compute/bare-metal"},{"title":"Virtual machines","href":"/compute/virtual-machines"}]},{"group":"Platform","pages":[{"title":"Kubernetes","href":"/platform/kubernetes"},{"title":"Account","href":"/platform/account"},{"title":"Billing","href":"/platform/billing"},{"title":"Team members","href":"/platform/members"},{"title":"Authentication and access","href":"/platform/authentication-and-access"},{"title":"Service accounts","href":"/platform/service-accounts"},{"title":"Roles and bindings","href":"/platform/roles-and-bindings"},{"title":"Actions","href":"/platform/actions"},{"title":"Machine identity","href":"/platform/machine-identity"}]},{"group":"API Reference","pages":[{"group":"Compute","pages":[{"group":"Virtual machines","pages":[{"title":"List virtual machines","description":"Returns the virtual machines in your account.\n\nService accounts can call it with the `compute:ListVirtualMachines` permission.","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json get /compute/v1/virtualmachines","href":"/api-reference/compute/list-virtual-machines"},{"title":"Create virtual machine","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json post /compute/v1/virtualmachines","href":"/api-reference/compute/create-virtual-machine"},{"title":"Get virtual machine","description":"Returns one virtual machine and, when your credential may read it, its screen sharing password. SSH does not use it: connect with the mthr CLI, which opens an authenticated tunnel.\n\nService-account credentials are refused.","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json get /compute/v1/virtualmachines/{name}","href":"/api-reference/compute/get-virtual-machine"},{"title":"Delete virtual machine","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json delete /compute/v1/virtualmachines/{name}","href":"/api-reference/compute/delete-virtual-machine"},{"title":"Power virtual machine","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json post /compute/v1/virtualmachines/{name}/power","href":"/api-reference/compute/power-virtual-machine"}]},{"group":"Bare metal","pages":[{"title":"List bare-metal machines","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json get /compute/v1/baremetalmachines","href":"/api-reference/compute/list-bare-metal-machines"},{"title":"Create bare-metal machine","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json post /compute/v1/baremetalmachines","href":"/api-reference/compute/create-bare-metal-machine"},{"title":"Get bare-metal machine","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json get /compute/v1/baremetalmachines/{name}","href":"/api-reference/compute/get-bare-metal-machine"},{"title":"Delete bare-metal machine","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json delete /compute/v1/baremetalmachines/{name}","href":"/api-reference/compute/delete-bare-metal-machine"}]},{"group":"Catalog","pages":[{"title":"List images","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json get /compute/v1/catalog/images","href":"/api-reference/compute/list-images"},{"title":"List machine classes","deprecated":null,"version":null,"openapi":"/api-reference/openapi/compute.json get /compute/v1/catalog/machineclasses","href":"/api-reference/compute/list-machine-classes"}]}]},{"group":"Billing","pages":[{"group":"Account and funds","pages":[{"title":"Get billing account","deprecated":null,"version":null,"openapi":"/api-reference/openapi/billing.json get /billing/v1/account","href":"/api-reference/billing/get-billing-account"},{"title":"Get funding status","deprecated":null,"version":null,"openapi":"/api-reference/openapi/billing.json get /billing/v1/funding","href":"/api-reference/billing/get-funding-status"},{"title":"Get credits","deprecated":null,"version":null,"openapi":"/api-reference/openapi/billing.json get /billing/v1/credits","href":"/api-reference/billing/get-credits"}]},{"group":"Usage and costs","pages":[{"title":"Get usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi/billing.json get /billing/v1/usage","href":"/api-reference/billing/get-usage"},{"title":"Get costs","deprecated":null,"version":null,"openapi":"/api-reference/openapi/billing.json get /billing/v1/costs","href":"/api-reference/billing/get-costs"},{"title":"List prices","deprecated":null,"version":null,"openapi":"/api-reference/openapi/billing.json get /billing/v1/price-catalog","href":"/api-reference/billing/list-prices"}]},{"group":"Invoices","pages":[{"title":"List invoices","deprecated":null,"version":null,"openapi":"/api-reference/openapi/billing.json get /billing/v1/invoices","href":"/api-reference/billing/list-invoices"},{"title":"Get invoice","deprecated":null,"version":null,"openapi":"/api-reference/openapi/billing.json get /billing/v1/invoices/{invoice_id}","href":"/api-reference/billing/get-invoice"}]}]},{"group":"Account","pages":[{"title":"Get account","deprecated":null,"version":null,"openapi":"/api-reference/openapi/account.json get /admin/v1/account","href":"/api-reference/account/get-account"},{"title":"Update account","deprecated":null,"version":null,"openapi":"/api-reference/openapi/account.json patch /admin/v1/account","href":"/api-reference/account/update-account"}]}]}]}]},"basePath":"","title":"Create virtual machine - Mount Thor","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}