{
"detail": {
"code": "virtual_machine_not_found",
"message": "Ornn could not find that virtual machine."
}
}
{
"code": "<string>",
"detail": "<string>"
}
List a VM's ports
Lists the TCP and UDP ports opened on one VM, ordered by public port and then protocol. While the reservation is public, each open port forwards public_port on the host’s public IP to guest_port in the VM over its protocol. While it is private, nothing is published on the host and every port is reachable at the VM’s private_ip from your organization’s private network.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ornn","description":"Ornn: The Omnicloud for AI Workloads\nOrnn is an omnicloud for high-performance GPU compute. Reserve capacity, manage your reservations, and connect via VM, Bare Metal, Kubernetes, or Slurm.","colors":{"primary":"#000000","light":"#F3F3F3","dark":"#0B0B0C"},"logo":{"light":"https://mintcdn.com/ornn/kJ0iqH_E0L2Jw6j6/images/ornn-docs-logo-light.svg?fit=max\u0026auto=format\u0026n=kJ0iqH_E0L2Jw6j6\u0026q=85\u0026s=6f5b0c872f8bb7b4b5b6b8ab492dc2a6","dark":"https://mintcdn.com/ornn/kJ0iqH_E0L2Jw6j6/images/ornn-docs-logo-dark.svg?fit=max\u0026auto=format\u0026n=kJ0iqH_E0L2Jw6j6\u0026q=85\u0026s=518cd92bb74cb6eb82ac33e462421918","href":"https://ornn.com"},"favicon":"https://mintcdn.com/ornn/fNQRwmmR9H-yzza5/favicon.png?fit=max\u0026auto=format\u0026n=fNQRwmmR9H-yzza5\u0026q=85\u0026s=ae08364c28579651525833a71bd8ec7c","api":{"examples":{"languages":["curl","python","javascript","php","go","java","ruby"]}},"appearance":{"default":"dark","strict":true},"background":{"color":{"light":"#FFFFFF","dark":"#0B0B0C"}},"navbar":{"links":[{"href":"/changelog","label":"Changelog"}],"primary":{"type":"button","label":"Visit Ornn","href":"https://ornn.com"}},"footer":{"socials":{"x":"https://x.com/OrnnExchange","linkedin":"https://www.linkedin.com/company/ornn"}},"fonts":{"family":"PP Neue Montreal Regular","weight":400,"source":"fonts/PPNeueMontreal-Regular.woff2","format":"woff2"},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","latex":true},"contextual":{"options":["copy","view","assistant","chatgpt","claude","perplexity","grok","aistudio","devin","windsurf","mcp","add-mcp","cursor","vscode","devin-mcp","download-spec"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ornn","hasAudioNarration":false,"actualSubdomain":"ornn","customDomains":["docs.ornn.com"],"gitSource":{"type":"github","owner":"ornn-ai","repo":"fabric","deployBranch":"main","contentDirectory":"docs-site","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ade7cc6d2e4fef472e10a97","collectionId":"af498dcf-a0bb-45e4-b140-e9a64ce3d61f","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ade7cc6d2e4fef472e10a97"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ade87948a5fe482cc003fe3","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API reference","count":111},{"language":"default","tag":"Guides","count":28},{"language":"default","tag":"Storage","count":17},{"language":"default","tag":"VM and Bare Metal","count":13},{"language":"default","tag":"Private networks","count":12},{"language":"default","tag":"Order books","count":11},{"language":"default","tag":"Billing","count":9},{"language":"default","tag":"Monitoring","count":8},{"language":"default","tag":"Get Started","count":7},{"language":"default","tag":"Reserve","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@ornn.com","showHelpButton":true}},"hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/_mintlify/custom/ornn/0ca437793353238f/style.css"}],"page":{"pagePath":"api-reference/virtual-machines/list-ports","slug":"/api-reference/virtual-machines/list-ports","pageMetadata":{"title":"List a VM's ports","openapi":"openapi.yaml GET /v1/orchestrator/nodes/{node_id}/virtual-machines/{vm_id}/ports","description":"Lists the TCP and UDP ports opened on one VM, ordered by public port and then protocol. While the reservation is public, each open port forwards public_port on the host's public IP to guest_port in the VM over its protocol. While it is private, nothing is published on the host and every port is reachable at the VM's private_ip from your organization's private network.","href":"/api-reference/virtual-machines/list-ports"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Lists the TCP and UDP ports opened on one VM, ordered by public port and then protocol. While the reservation is public, each open port forwards public_port on the host’s public IP to guest_port in the VM over its protocol. While it is private, nothing is published on the host and every port is reachable at the VM’s private_ip from your organization’s private network.\"\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{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components};return _jsxs(_components.p,{children:[`For how ports behave on public and private reservations, see `,_jsx(_components.a,{href:`/guides/vm-access#open-ports-on-a-vm`,children:`Open ports on a VM`}),`.`]})}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":"List a VM's ports","openapi":"openapi.yaml GET /v1/orchestrator/nodes/{node_id}/virtual-machines/{vm_id}/ports","description":"Lists the TCP and UDP ports opened on one VM, ordered by public port and then protocol. While the reservation is public, each open port forwards public_port on the host's public IP to guest_port in the VM over its protocol. While it is private, nothing is published on the host and every port is reachable at the VM's private_ip from your organization's private network.","href":"/api-reference/virtual-machines/list-ports"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/ornn/51d5a96cc0778150/region-picker.js","/_mintlify/custom/ornn/0f843ad695dae46a/toc-hatch.js","/_mintlify/custom/ornn/38a1cac05e624580/copy-page-label.js"],"openApiReferenceData":{"operation":{"summary":"List a VM's ports","operationId":"accessListVirtualMachinePorts","tags":["Virtual machines"],"description":"Lists the TCP and UDP ports opened on one VM, ordered by public port and then protocol. While the reservation is public, each open port forwards public_port on the host's public IP to guest_port in the VM over its protocol. While it is private, nothing is published on the host and every port is reachable at the VM's private_ip from your organization's private network.","parameters":["1ba650ea-a016-4044-8d41-1433b6de9bd7","b9af3e31-7155-427a-bc2e-fc532fbd7b87"],"responses":{"200":"e1fb895e-b397-4143-a552-4d324a04b8ab","401":"90d3c1aa-01d7-4164-afb5-9cc6ddc0537d","404":"1b2a0bf4-ddf0-4710-8d2f-9df486c9e201","default":"63066074-01e5-490f-b72c-b3c06714fe83"},"method":"get","type":"path","servers":["44c1a685-3b9c-4169-aa9e-e593ad109927"],"security":["749cca98-0c4b-4104-9f69-95063655cb50"],"path":"/v1/orchestrator/nodes/{node_id}/virtual-machines/{vm_id}/ports","baseUrlOptions":["https://api.ornn.com"],"title":"List a VM's ports","codeSamples":[],"requestExampleLanguages":["bash","python","javascript","php","go","java","ruby"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"1ba650ea-a016-4044-8d41-1433b6de9bd7":{"name":"node_id","in":"path","required":true,"description":"The VM's node_id from the reservation's VM list.","schema":{"type":"string","format":"uuid","isRequired":true,"description":"The VM's node_id from the reservation's VM list.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"example":"33333333-3333-4333-8333-333333333333"},"b9af3e31-7155-427a-bc2e-fc532fbd7b87":{"name":"vm_id","in":"path","required":true,"description":"The VM's id from the reservation's VM list.","schema":{"type":"string","format":"uuid","isRequired":true,"description":"The VM's id from the reservation's VM list.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"example":"66666666-6666-4666-8666-666666666666"}},"responses":{"e1fb895e-b397-4143-a552-4d324a04b8ab":{"description":"The VM's ports.","content":{"application/json":{"schema":{"type":"object","required":["ports"],"properties":{"ports":{"type":"array","items":{"type":"object","required":["id","virtual_machine_id","node_id","protocol","public_port","guest_port","status","created_at"],"properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"ports.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"virtual_machine_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"ports.items.[INDEX].virtual_machine_id","typeLabel":"string\u003cuuid>"},"node_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"ports.items.[INDEX].node_id","typeLabel":"string\u003cuuid>"},"protocol":{"type":"string","enum":["tcp","udp"],"isRequired":true,"uniqueKey":"ports.items.[INDEX].protocol","typeLabel":"enum\u003cstring>"},"public_port":{"type":"integer","description":"The port on the host's public IP. Held for this VM while the reservation is private, so it opens again when the reservation switches back to public.","isRequired":true,"uniqueKey":"ports.items.[INDEX].public_port","typeLabel":"integer"},"guest_port":{"type":"integer","description":"The port inside the VM that public_port forwards to.","isRequired":true,"uniqueKey":"ports.items.[INDEX].guest_port","typeLabel":"integer"},"status":{"type":"string","enum":["opening","open","private","failed"],"description":"opening until the host applies the change; open when published on the host's public IP; private while the reservation is private (reach the VM at its private_ip instead); failed with failure set.","isRequired":true,"uniqueKey":"ports.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"ports.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"failure":{"oneOf":[{"type":"null","uniqueKey":"ports.items.[INDEX].failure.oneOf.0","typeLabel":"null"},{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"port_in_use_on_host or port_forwarding_failed.","isRequired":true,"uniqueKey":"ports.items.[INDEX].failure.oneOf.1.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"ports.items.[INDEX].failure.oneOf.1.message","typeLabel":"string"}},"uniqueKey":"ports.items.[INDEX].failure.oneOf.1","typeLabel":"object"}],"uniqueKey":"ports.items.[INDEX].failure","typeLabel":"null | object"}},"uniqueKey":"ports.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"ports","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"ports":[{"id":"99999999-9999-4999-8999-999999999999","virtual_machine_id":"66666666-6666-4666-8666-666666666666","node_id":"33333333-3333-4333-8333-333333333333","protocol":"tcp","public_port":8443,"guest_port":8443,"status":"open","failure":null,"created_at":"2026-10-22T18:00:00Z"}]},"examples":{"Example":{"title":"Example","value":{"ports":[{"id":"99999999-9999-4999-8999-999999999999","virtual_machine_id":"66666666-6666-4666-8666-666666666666","node_id":"33333333-3333-4333-8333-333333333333","protocol":"tcp","public_port":8443,"guest_port":8443,"status":"open","failure":null,"created_at":"2026-10-22T18:00:00Z"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"90d3c1aa-01d7-4164-afb5-9cc6ddc0537d":{"description":"The credential is missing, invalid, revoked, or no longer belongs to a current organization member. Check the HTTP status before parsing the body.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"code","typeLabel":"string"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"detail.oneOf.1.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"detail.oneOf.1.message","typeLabel":"string"}},"uniqueKey":"detail.oneOf.1","typeLabel":"object"}],"uniqueKey":"detail","typeLabel":"string | object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","detail":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"1b2a0bf4-ddf0-4710-8d2f-9df486c9e201":{"description":"The VM, its node, or its reservation is absent or not owned by your organization.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"code","typeLabel":"string"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"detail.oneOf.1.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"detail.oneOf.1.message","typeLabel":"string"}},"uniqueKey":"detail.oneOf.1","typeLabel":"object"}],"uniqueKey":"detail","typeLabel":"string | object"}},"uniqueKey":"","typeLabel":"object"},"example":{"detail":{"code":"virtual_machine_not_found","message":"Ornn could not find that virtual machine."}},"examples":{"Example":{"title":"Example","value":{"detail":{"code":"virtual_machine_not_found","message":"Ornn could not find that virtual machine."}}}},"exampleType":"examples"}},"exampleType":"examples"},"63066074-01e5-490f-b72c-b3c06714fe83":{"description":"Unsuccessful request. Check HTTP status first. Errors may have detail.code/detail.message, a string detail and optional top-level code, or an empty/non-JSON body. 401: invalid credential; 403: access or approval required; 404: not visible or credentials not ready; 409: lifecycle conflict; 429: back off; 5xx: service failure. Inspect current state before retrying mutations.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"code","typeLabel":"string"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"detail.oneOf.1.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"detail.oneOf.1.message","typeLabel":"string"}},"uniqueKey":"detail.oneOf.1","typeLabel":"object"}],"uniqueKey":"detail","typeLabel":"string | object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","detail":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"749cca98-0c4b-4104-9f69-95063655cb50":{"OrnnApiKey":{"type":"http","scheme":"bearer","bearerFormat":"ornn_sk_...","description":"Create an organization API key in Account Settings > Developer. Do not send this key to the Kubernetes API server.","scopes":[],"schemeName":"OrnnApiKey"}}},"servers":{"44c1a685-3b9c-4169-aa9e-e593ad109927":{"url":"https://api.ornn.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"ornn_sk_...","description":"Create an organization API key in Account Settings > Developer. Do not send this key to the Kubernetes API server.","scopes":[],"schemeName":"OrnnApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Create an organization API key in Account Settings > Developer. Do not send this key to the Kubernetes API server.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"OrnnApiKey","name":"Authorization"}],"title":"OrnnApiKey"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"ornn","siteName":"Ornn","title":"List a VM's ports - Ornn","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T22:04:01.615Z","originalFileLocation":"api-reference/virtual-machines/list-ports.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";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=\"dark\"}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=\"Lists the TCP and UDP ports opened on one VM, ordered by public port and then protocol. While the reservation is public, each open port forwards public_port on the host\u0026#x27;s public IP to guest_port in the VM over its protocol. While it is private, nothing is published on the host and every port is reachable at the VM\u0026#x27;s private_ip from your organization\u0026#x27;s private network.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ornn\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ornn/xSbMvd8knxlcr1Zk/_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/ornn/xSbMvd8knxlcr1Zk/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ornn/xSbMvd8knxlcr1Zk/_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/ornn/xSbMvd8knxlcr1Zk/_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/ornn/xSbMvd8knxlcr1Zk/_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/ornn/xSbMvd8knxlcr1Zk/_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/ornn/xSbMvd8knxlcr1Zk/_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/ornn/xSbMvd8knxlcr1Zk/_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/ornn/xSbMvd8knxlcr1Zk/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List a VM\u0026#x27;s ports - Ornn\">\u003cmeta data-mint-head property=\"og:description\" content=\"Lists the TCP and UDP ports opened on one VM, ordered by public port and then protocol. While the reservation is public, each open port forwards public_port on the host\u0026#x27;s public IP to guest_port in the VM over its protocol. While it is private, nothing is published on the host and every port is reachable at the VM\u0026#x27;s private_ip from your organization\u0026#x27;s private network.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ornn\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ornn.com/api-reference/virtual-machines/list-ports\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ornn.mintlify.app/_mintlify/api/og/v2?division=VM+and+Bare+Metal\u0026amp;title=List+a+VM%27s+ports\u0026amp;description=Lists+the+TCP+and+UDP+ports+opened+on+one+VM%2C+ordered+by+public+port+and+then+protocol.+While+the+reservation+is+public%2C+each+open+port+forwards+public_port+on+\u0026amp;theme=31adf0fb1ec6851fb1f1fc02\u0026amp;signature=69254ca8130a58712d32010650c2285b6641c022508dfd96a971f82c6ad7ea45\">\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=\"List a VM\u0026#x27;s ports - Ornn\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Lists the TCP and UDP ports opened on one VM, ordered by public port and then protocol. While the reservation is public, each open port forwards public_port on the host\u0026#x27;s public IP to guest_port in the VM over its protocol. While it is private, nothing is published on the host and every port is reachable at the VM\u0026#x27;s private_ip from your organization\u0026#x27;s private network.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ornn.mintlify.app/_mintlify/api/og/v2?division=VM+and+Bare+Metal\u0026amp;title=List+a+VM%27s+ports\u0026amp;description=Lists+the+TCP+and+UDP+ports+opened+on+one+VM%2C+ordered+by+public+port+and+then+protocol.+While+the+reservation+is+public%2C+each+open+port+forwards+public_port+on+\u0026amp;theme=31adf0fb1ec6851fb1f1fc02\u0026amp;signature=69254ca8130a58712d32010650c2285b6641c022508dfd96a971f82c6ad7ea45\">\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/ornn/xSbMvd8knxlcr1Zk/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ornn\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ornn.com/api-reference/virtual-machines/list-ports\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/virtual-machines/list-ports.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ornn.com/#organization\",\"name\":\"Ornn\",\"url\":\"https://docs.ornn.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ornn/kJ0iqH_E0L2Jw6j6/images/ornn-docs-logo-light.svg?fit=max\u0026auto=format\u0026n=kJ0iqH_E0L2Jw6j6\u0026q=85\u0026s=6f5b0c872f8bb7b4b5b6b8ab492dc2a6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ornn.com#website\",\"name\":\"Ornn\",\"url\":\"https://docs.ornn.com\",\"publisher\":{\"@id\":\"https://docs.ornn.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ornn.com/api-reference/virtual-machines/list-ports#webpage\",\"url\":\"https://docs.ornn.com/api-reference/virtual-machines/list-ports\",\"name\":\"List a VM's ports\",\"description\":\"Lists the TCP and UDP ports opened on one VM, ordered by public port and then protocol. While the reservation is public, each open port forwards public_port on the host's public IP to guest_port in the VM over its protocol. While it is private, nothing is published on the host and every port is reachable at the VM's private_ip from your organization's private network.\",\"dateModified\":\"2026-10-25T22:04:01.615Z\",\"isPartOf\":{\"@id\":\"https://docs.ornn.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ornn.com/api-reference/virtual-machines/list-ports#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ornn.com/api-reference/virtual-machines/list-ports#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"VM and Bare Metal\",\"item\":\"https://docs.ornn.com/api-reference/virtual-machines/set-image\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"List a VM's ports\",\"item\":\"https://docs.ornn.com/api-reference/virtual-machines/list-ports\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.ornn.com/api-reference/virtual-machines/list-ports#apireference\",\"headline\":\"List a VM's ports\",\"name\":\"List a VM's ports\",\"description\":\"Lists the TCP and UDP ports opened on one VM, ordered by public port and then protocol. While the reservation is public, each open port forwards public_port on the host's public IP to guest_port in the VM over its protocol. While it is private, nothing is published on the host and every port is reachable at the VM's private_ip from your organization's private network.\",\"url\":\"https://docs.ornn.com/api-reference/virtual-machines/list-ports\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ornn.com/api-reference/virtual-machines/list-ports#webpage\"},\"dateModified\":\"2026-10-25T22:04:01.615Z\",\"publisher\":{\"@id\":\"https://docs.ornn.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ornn.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ornn\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ornn","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API reference","groups":[{"group":"Start here","pages":[{"title":"Integrate with the Ornn REST API","sidebarTitle":"Overview","href":"/api-reference/overview"},{"title":"Check API authentication","openapi":"openapi.yaml GET /v1/auth/session","href":"/api-reference/session"}]},{"group":"Reserved capacity","pages":[{"title":"List reservations","openapi":"openapi.yaml GET /commerce/reservations","href":"/api-reference/reservations/list"},{"title":"Get a reservation","openapi":"openapi.yaml GET /commerce/reservations/{reservationId}","href":"/api-reference/reservations/get"},{"title":"List reserved GPU nodes","openapi":"openapi.yaml GET /v1/orchestrator/nodes","href":"/api-reference/nodes/list"}]},{"group":"VM and Bare Metal","pages":[{"title":"Choose a VM disk","openapi":"openapi.yaml PUT /commerce/reservations/{reservationId}/disk","href":"/api-reference/virtual-machines/set-image"},{"title":"Activate a reservation","openapi":"openapi.yaml POST /commerce/reservations/{reservationId}/activate","href":"/api-reference/virtual-machines/activate"},{"title":"Launch VM or Bare Metal access","openapi":"openapi.yaml POST /v1/orchestrator/nodes/reservations/{reservation_id}/launch","href":"/api-reference/virtual-machines/launch"},{"title":"List a reservation's VMs","openapi":"openapi.yaml GET /v1/orchestrator/reservations/{reservation_id}/virtual-machines","href":"/api-reference/virtual-machines/list"},{"title":"Reboot a VM","openapi":"openapi.yaml POST /v1/orchestrator/nodes/{node_id}/virtual-machines/{vm_id}/reboot","href":"/api-reference/virtual-machines/reboot"},{"title":"Reimage a VM","openapi":"openapi.yaml POST /v1/orchestrator/nodes/{node_id}/virtual-machines/{vm_id}/reimage","description":"Rebuilds one VM from a disk you choose, on the same node and reservation. Everything on the VM's current disk is erased. The VM keeps its id, hostname, GPUs, and size. Any member of the reservation's organization can reimage. The VM must be running, or its last start must have failed. A VM on a private network stays private and keeps its private address. The new disk boots with the reservation's selected SSH keys, or every active key on your account when none is selected. A 202 response is acceptance, not readiness. The VM returns to provisioning; poll the reservation's VM list until status is running, then reconnect with the returned ip and port. If the reimage fails, the reservation stays active and you can reimage again.","href":"/api-reference/virtual-machines/reimage"},{"title":"List a VM's ports","openapi":"openapi.yaml GET /v1/orchestrator/nodes/{node_id}/virtual-machines/{vm_id}/ports","href":"/api-reference/virtual-machines/list-ports"},{"title":"Open a VM port","openapi":"openapi.yaml POST /v1/orchestrator/nodes/{node_id}/virtual-machines/{vm_id}/ports","description":"Opens one TCP or UDP port on a running VM. protocol defaults to tcp. public_port defaults to guest_port and must be in 1024-21999 or 23000-29999; ports the host itself serves are refused. A public port belongs to one VM per host and protocol, so a TCP port and a UDP port can share a number. A VM opens at most 16 ports. While the reservation is public the port is reachable from the internet on the host's public IP, so open only what the VM should serve publicly. A 202 response is acceptance: the port is opening until the host applies it. Poll the VM's ports until its status is open, private, or failed.","href":"/api-reference/virtual-machines/open-port"},{"title":"Close a VM port","openapi":"openapi.yaml DELETE /v1/orchestrator/nodes/{node_id}/virtual-machines/{vm_id}/ports/{port_id}","href":"/api-reference/virtual-machines/close-port"},{"title":"Get a reserved node","openapi":"openapi.yaml GET /v1/orchestrator/nodes/{node_id}","href":"/api-reference/bare-metal/get-node"},{"title":"Reboot or hard reset a Bare Metal host","openapi":"openapi.yaml POST /v1/orchestrator/nodes/{node_id}/reboot","href":"/api-reference/bare-metal/reboot"},{"title":"Switch access mode or network","openapi":"openapi.yaml POST /v1/orchestrator/nodes/reservations/{reservation_id}/switch-access","href":"/api-reference/virtual-machines/switch-access"},{"title":"Stop a reservation","openapi":"openapi.yaml POST /commerce/reservations/{reservationId}/stop","href":"/api-reference/virtual-machines/stop"}]},{"group":"Clusters","pages":[{"title":"Create a cluster","openapi":"openapi.yaml POST /v1/orchestrator/controllers","href":"/api-reference/clusters/create"},{"title":"List clusters and workers","openapi":"openapi.yaml GET /v1/orchestrator/controllers","href":"/api-reference/clusters/list"},{"title":"Get cluster access","openapi":"openapi.yaml GET /v1/orchestrator/controllers/{controller_id}/access","href":"/api-reference/clusters/access"},{"title":"Tear down a cluster","openapi":"openapi.yaml POST /v1/orchestrator/controllers/{controller_id}/teardown","href":"/api-reference/clusters/teardown"}]},{"group":"Workers","pages":[{"title":"Add a physical worker","openapi":"openapi.yaml POST /v1/orchestrator/controllers/{controller_id}/nodes/{node_id}","href":"/api-reference/clusters/add-node"},{"title":"Remove a physical worker","openapi":"openapi.yaml DELETE /v1/orchestrator/controllers/{controller_id}/nodes/{node_id}","href":"/api-reference/clusters/remove-node"},{"title":"Add a VM worker","openapi":"openapi.yaml POST /v1/orchestrator/controllers/{controller_id}/virtual-machines/{virtual_machine_id}","href":"/api-reference/clusters/add-vm"},{"title":"Remove a VM worker","openapi":"openapi.yaml DELETE /v1/orchestrator/controllers/{controller_id}/virtual-machines/{virtual_machine_id}","href":"/api-reference/clusters/remove-vm"}]},{"group":"SSH keys","pages":[{"title":"List organization SSH keys","openapi":"openapi.yaml GET /v1/organizations/{organization_id}/ssh-keys","href":"/api-reference/ssh-keys/list"},{"title":"Add an organization SSH key","openapi":"openapi.yaml POST /v1/organizations/{organization_id}/ssh-keys","href":"/api-reference/ssh-keys/create"},{"title":"Revoke an organization SSH key","openapi":"openapi.yaml DELETE /v1/organizations/{organization_id}/ssh-keys/{key_id}","href":"/api-reference/ssh-keys/revoke"},{"title":"List a reservation's SSH keys","openapi":"openapi.yaml GET /v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys","href":"/api-reference/ssh-keys/reservation-list"},{"title":"Assign an SSH key to a reservation","openapi":"openapi.yaml POST /v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys","href":"/api-reference/ssh-keys/reservation-assign"},{"title":"Unassign an SSH key from a reservation","openapi":"openapi.yaml DELETE /v1/orchestrator/nodes/reservations/{reservation_id}/ssh-keys/{key_id}","href":"/api-reference/ssh-keys/reservation-unassign"},{"title":"Push SSH keys to a machine","openapi":"openapi.yaml POST /v1/orchestrator/nodes/{node_id}/push-keys","href":"/api-reference/ssh-keys/push"}]},{"group":"Storage","pages":[{"title":"List volumes","openapi":"openapi.yaml GET /v1/orchestrator/drives","href":"/api-reference/storage/list"},{"title":"Create a volume","openapi":"openapi.yaml POST /v1/orchestrator/drives","href":"/api-reference/storage/create"},{"title":"Get a volume","openapi":"openapi.yaml GET /v1/orchestrator/drives/{drive_id}","href":"/api-reference/storage/get"},{"title":"Attach or detach a volume","openapi":"openapi.yaml PATCH /v1/orchestrator/drives/{drive_id}","href":"/api-reference/storage/attach"},{"title":"Delete a volume","openapi":"openapi.yaml DELETE /v1/orchestrator/drives/{drive_id}","href":"/api-reference/storage/delete"},{"title":"List volume files","openapi":"openapi.yaml GET /v1/orchestrator/drives/{drive_id}/contents","href":"/api-reference/storage/files/list"},{"title":"Upload a small file","openapi":"openapi.yaml PUT /v1/orchestrator/drives/{drive_id}/files/{file_path}","href":"/api-reference/storage/files/upload"},{"title":"Start a staged upload","openapi":"openapi.yaml POST /v1/orchestrator/drives/{drive_id}/uploads","href":"/api-reference/storage/files/upload-start"},{"title":"Complete a staged upload","openapi":"openapi.yaml POST /v1/orchestrator/drives/{drive_id}/uploads/{upload_id}","href":"/api-reference/storage/files/upload-complete"},{"title":"Cancel a staged upload","openapi":"openapi.yaml DELETE /v1/orchestrator/drives/{drive_id}/uploads/{upload_id}","href":"/api-reference/storage/files/upload-cancel"},{"title":"Download a file","openapi":"openapi.yaml GET /v1/orchestrator/drives/{drive_id}/files/{file_path}","href":"/api-reference/storage/files/download"},{"title":"Download a volume as a ZIP archive","openapi":"openapi.yaml GET /v1/orchestrator/drives/{drive_id}/archive","href":"/api-reference/storage/files/archive"},{"title":"Delete a file","openapi":"openapi.yaml DELETE /v1/orchestrator/drives/{drive_id}/files/{file_path}","href":"/api-reference/storage/files/delete"},{"title":"Delete a folder","openapi":"openapi.yaml DELETE /v1/orchestrator/drives/{drive_id}/folders/{folder_path}","href":"/api-reference/storage/files/delete-folder"},{"title":"Delete all volume files","openapi":"openapi.yaml DELETE /v1/orchestrator/drives/{drive_id}/contents","href":"/api-reference/storage/files/clear"}]},{"group":"GitHub repositories","pages":[{"title":"List GitHub connections","openapi":"openapi.yaml GET /v1/orchestrator/github/connections","href":"/api-reference/storage/github/connections"},{"title":"List GitHub repositories","openapi":"openapi.yaml GET /v1/orchestrator/github/connections/{connection_id}/repositories","href":"/api-reference/storage/github/repositories"},{"title":"List repository branches","openapi":"openapi.yaml GET /v1/orchestrator/github/connections/{connection_id}/repositories/{repository_id}/branches","href":"/api-reference/storage/github/branches"},{"title":"Pull a repository into a volume","openapi":"openapi.yaml POST /v1/orchestrator/drives/{drive_id}/github","href":"/api-reference/storage/github/pull"},{"title":"Sync a repository","openapi":"openapi.yaml POST /v1/orchestrator/drives/{drive_id}/github/{folder}/sync","href":"/api-reference/storage/github/sync"},{"title":"Disconnect a GitHub account","openapi":"openapi.yaml DELETE /v1/orchestrator/github/connections/{connection_id}","href":"/api-reference/storage/github/disconnect"}]},{"group":"Private networks","pages":[{"title":"Private networks and WireGuard","sidebarTitle":"Overview","href":"/api-reference/networks/overview"},{"title":"List private networks","openapi":"openapi.yaml GET /v1/orchestrator/networks","href":"/api-reference/networks/list"},{"title":"Create a private network","openapi":"openapi.yaml POST /v1/orchestrator/networks","href":"/api-reference/networks/create"},{"title":"Get a private network","openapi":"openapi.yaml GET /v1/orchestrator/networks/{network_id}","href":"/api-reference/networks/get"},{"title":"Rename a private network","openapi":"openapi.yaml PATCH /v1/orchestrator/networks/{network_id}","href":"/api-reference/networks/rename"},{"title":"Delete a private network","openapi":"openapi.yaml DELETE /v1/orchestrator/networks/{network_id}","href":"/api-reference/networks/delete"},{"title":"List default-network WireGuard configs","openapi":"openapi.yaml GET /v1/orchestrator/networks/shared/peers","href":"/api-reference/networks/wireguard/default-list"},{"title":"Add a default-network WireGuard config","openapi":"openapi.yaml POST /v1/orchestrator/networks/shared/peers","href":"/api-reference/networks/wireguard/default-create"},{"title":"Remove a default-network WireGuard config","openapi":"openapi.yaml DELETE /v1/orchestrator/networks/shared/peers/{peer_id}","href":"/api-reference/networks/wireguard/default-delete"},{"title":"List network WireGuard configs","openapi":"openapi.yaml GET /v1/orchestrator/networks/{network_id}/peers","href":"/api-reference/networks/wireguard/list"},{"title":"Add a network WireGuard config","openapi":"openapi.yaml POST /v1/orchestrator/networks/{network_id}/peers","href":"/api-reference/networks/wireguard/create"},{"title":"Remove a network WireGuard config","openapi":"openapi.yaml DELETE /v1/orchestrator/networks/{network_id}/peers/{peer_id}","href":"/api-reference/networks/wireguard/delete"}]},{"group":"Monitoring","pages":[{"title":"Read machine metrics and console logs","sidebarTitle":"Overview","href":"/api-reference/monitoring/overview"},{"title":"Get latest node telemetry","openapi":"openapi.yaml GET /v1/observability/nodes/{node_id}/telemetry/latest","href":"/api-reference/monitoring/node-telemetry-latest"},{"title":"Query node telemetry history","openapi":"openapi.yaml GET /v1/observability/nodes/{node_id}/telemetry/query","href":"/api-reference/monitoring/node-telemetry-query"},{"title":"Get latest VM telemetry","openapi":"openapi.yaml GET /v1/observability/virtual-machines/{virtual_machine_id}/telemetry/latest","href":"/api-reference/monitoring/vm-telemetry-latest"},{"title":"Query VM telemetry history","openapi":"openapi.yaml GET /v1/observability/virtual-machines/{virtual_machine_id}/telemetry/query","href":"/api-reference/monitoring/vm-telemetry-query"},{"title":"Get latest telemetry for many machines","openapi":"openapi.yaml POST /v1/observability/nodes/telemetry/latest","href":"/api-reference/monitoring/telemetry-batch"},{"title":"Query node console logs","openapi":"openapi.yaml GET /v1/observability/nodes/{node_id}/logs/{stream}/query","href":"/api-reference/monitoring/node-logs"},{"title":"Query VM console logs","openapi":"openapi.yaml GET /v1/observability/virtual-machines/{virtual_machine_id}/logs/{stream}/query","href":"/api-reference/monitoring/vm-logs"}]},{"group":"Reserve","pages":[{"title":"List capacity listings","openapi":"openapi.yaml GET /commerce/v2/listings","href":"/api-reference/reserve/list-listings"},{"title":"Get a capacity listing","openapi":"openapi.yaml GET /commerce/v2/listings/{listingId}","href":"/api-reference/reserve/get-listing"},{"title":"List a listing's terms","openapi":"openapi.yaml GET /commerce/v2/listings/{listingId}/terms","href":"/api-reference/reserve/list-terms"},{"title":"Post a Reserve offer","openapi":"openapi.yaml POST /v1/markets/offers","href":"/api-reference/reserve/post-offer"},{"title":"List offers","openapi":"openapi.yaml GET /v1/markets/offers","href":"/api-reference/reserve/list-my-offers"},{"title":"Cancel an offer","openapi":"openapi.yaml DELETE /v1/markets/offers/{offerId}","href":"/api-reference/reserve/cancel-offer"},{"title":"Accept an offer on your listing","openapi":"openapi.yaml POST /v1/markets/offers/{offerId}/accept","href":"/api-reference/reserve/accept-offer"}]},{"group":"Market","pages":[{"title":"Get a listing's free capacity","openapi":"openapi.yaml GET /v1/markets/listings/{listingId}/availability","href":"/api-reference/market/availability"},{"title":"Buy Market windows","openapi":"openapi.yaml POST /v1/markets/bookings","href":"/api-reference/market/buy"},{"title":"List your bookings","openapi":"openapi.yaml GET /v1/markets/bookings","href":"/api-reference/market/list-bookings"},{"title":"Cancel a booking","openapi":"openapi.yaml DELETE /v1/markets/bookings/{bookingId}","href":"/api-reference/market/cancel-booking"}]},{"group":"Order books","pages":[{"title":"List order books","openapi":"openapi.yaml GET /v1/markets/books","href":"/api-reference/order-books/list-books"},{"title":"Get order book depth","openapi":"openapi.yaml GET /v1/markets/books/{gpuSlug}","href":"/api-reference/order-books/get-book"},{"title":"List recent trades","openapi":"openapi.yaml GET /v1/markets/books/{gpuSlug}/trades","href":"/api-reference/order-books/list-trades"},{"title":"Quote a bid","openapi":"openapi.yaml GET /v1/markets/books/{gpuSlug}/quote","href":"/api-reference/order-books/quote"},{"title":"Place a bid","openapi":"openapi.yaml POST /v1/markets/orders","href":"/api-reference/order-books/place-bid"},{"title":"List your orders","openapi":"openapi.yaml GET /v1/markets/orders","href":"/api-reference/order-books/list-orders"},{"title":"Get an order","openapi":"openapi.yaml GET /v1/markets/orders/{orderId}","href":"/api-reference/order-books/get-order"},{"title":"Cancel a bid","openapi":"openapi.yaml DELETE /v1/markets/orders/{orderId}","href":"/api-reference/order-books/cancel-order"},{"title":"List your fills","openapi":"openapi.yaml GET /v1/markets/fills","href":"/api-reference/order-books/list-fills"},{"title":"Get a fill","openapi":"openapi.yaml GET /v1/markets/fills/{fillId}","href":"/api-reference/order-books/get-fill"},{"title":"End a fill","openapi":"openapi.yaml POST /commerce/reservations/{reservationId}/stop","href":"/api-reference/order-books/end-fill"}]},{"group":"Relist","pages":[{"title":"Relist capacity from a reservation","openapi":"openapi.yaml POST /commerce/reservations/{reservationId}/relist","href":"/api-reference/relist/create"},{"title":"Pause, resume, or withdraw your listing","openapi":"openapi.yaml PATCH /commerce/v2/listings/{listingId}","href":"/api-reference/relist/update-listing"},{"title":"Delist your listing","openapi":"openapi.yaml POST /commerce/v2/listings/{listingId}/delist","href":"/api-reference/relist/delist"},{"title":"Add a term to your listing","openapi":"openapi.yaml POST /commerce/v2/listings/{listingId}/terms","href":"/api-reference/relist/add-term"},{"title":"Delete a term from your listing","openapi":"openapi.yaml DELETE /commerce/v2/listings/{listingId}/terms/{listingTermsId}","href":"/api-reference/relist/delete-term"},{"title":"List your listing's nodes","openapi":"openapi.yaml GET /commerce/v2/listings/{listingId}/nodes","href":"/api-reference/relist/list-nodes"}]},{"group":"Billing","pages":[{"title":"List invoices","openapi":"openapi.yaml GET /commerce/invoices","href":"/api-reference/billing/invoices-list"},{"title":"Get an invoice","openapi":"openapi.yaml GET /commerce/invoices/{invoiceId}","href":"/api-reference/billing/invoice-get"},{"title":"List a reservation's invoices","openapi":"openapi.yaml GET /commerce/reservations/{reservationId}/invoices","href":"/api-reference/billing/reservation-invoices"},{"title":"Get billing summary","openapi":"openapi.yaml GET /commerce/billing/summary","href":"/api-reference/billing/summary"},{"title":"Get GPU usage cost","openapi":"openapi.yaml GET /commerce/billing/showback","href":"/api-reference/billing/usage"},{"title":"Get billing contact","openapi":"openapi.yaml GET /commerce/billing/contact","href":"/api-reference/billing/contact"},{"title":"Check for a saved card","openapi":"openapi.yaml GET /commerce/billing/payment-method","href":"/api-reference/billing/payment-method"},{"title":"List account balances","openapi":"openapi.yaml GET /v1/ledger/accounts","href":"/api-reference/billing/credits"},{"title":"List account transactions","openapi":"openapi.yaml GET /v1/ledger/transactions","href":"/api-reference/billing/transactions"}]}]}]},"title":"List a VM's ports - Ornn","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}