{"openapi":"3.0.0","info":{"description":"TensorDock GPU cloud API (v2) — deploy and manage virtual machine instances, discover locations and hostnodes, and manage SSH-key secrets on dashboard.tensordock.com/api/v2. Verified live 2026-09-04 (Bearer token auth; no published OpenAPI spec, SSR docs pages are the route source).","version":"v2"},"servers":[{"description":"TensorDock GPU cloud API (v2) — deploy and manage virtual machine instances, discover locations and hostnodes, and manage SSH-key secrets on dashboard.tensordock.com/api/v2. Verified live 2026-09-04 (Bearer token auth; no published OpenAPI spec, SSR docs pages are the route source).","url":"https://api.apirails.com/tensordock"}],"paths":{"/locations":{"get":{"tags":["Locations And Hostnodes"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/fetch-hostnodes","api_endpoint":"https://dashboard.tensordock.com/api/v2/locations"},"summary":"List available locations","description":"Fetch all locations with their available GPU configurations and deployable resources (public endpoint).","security":[{"bearerAuth":[]}]}},"/hostnodes":{"get":{"tags":["Locations And Hostnodes"],"parameters":[{"name":"gpu","in":"query","description":"Filter by GPU type (optional)","required":false,"schema":{"type":"string","example":""}},{"name":"location","in":"query","description":"Filter by location UUID (optional). Must be a valid UUID; invalid values return HTTP 400.","required":false,"schema":{"type":"string","example":""}},{"name":"minRamGb","in":"query","description":"Minimum available RAM in GB (optional)","required":false,"schema":{"type":"number","example":""}},{"name":"minVcpu","in":"query","description":"Minimum available vCPUs (optional)","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/fetch-hostnodes","api_endpoint":"https://dashboard.tensordock.com/api/v2/hostnodes"},"summary":"List hostnodes","description":"Fetch a list of all available hostnodes with their resources, pricing, and location information.","security":[{"bearerAuth":[]}]}},"/hostnodes/{uuid}":{"get":{"tags":["Locations And Hostnodes"],"parameters":[{"name":"uuid","in":"path","description":"The unique identifier of the hostnode (e.g., hn-uuid-12345)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/fetch-hostnodes","api_endpoint":"https://dashboard.tensordock.com/api/v2/hostnodes/{uuid}"},"summary":"Get hostnode","description":"Fetch detailed information about a specific hostnode including available ports and extended resource details.","security":[{"bearerAuth":[]}]}},"/instances":{"get":{"tags":["Instances"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/instance-management","api_endpoint":"https://dashboard.tensordock.com/api/v2/instances"},"summary":"List instances","description":"Get a list of all virtual machine instances (scoped to your organization).","security":[{"bearerAuth":[]}]},"post":{"tags":["Instances"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/instance-creation","api_endpoint":"https://dashboard.tensordock.com/api/v2/instances"},"summary":"Create instance","description":"Create a virtual machine instance with GPU acceleration. Location-based deployment auto-selects a hostnode; at least one GPU and a $1 minimum balance are required.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"data":{"type":"object","description":"JSON:API wrapper object for the create request","required":true,"properties":{"type":{"type":"string","description":"Resource type; use \"virtualmachine\"","required":true},"attributes":{"type":"object","description":"Instance attributes","required":true}}}}},"example":{"data":[""]}}}}}},"/instances/{id}":{"get":{"tags":["Instances"],"parameters":[{"name":"id","in":"path","description":"The ID of the instance to retrieve","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/instance-management","api_endpoint":"https://dashboard.tensordock.com/api/v2/instances/{id}"},"summary":"Get instance","description":"Get details about a specific instance (status, IP address, port forwards, resources, hourly rate).","security":[{"bearerAuth":[]}]},"delete":{"tags":["Instances"],"parameters":[{"name":"id","in":"path","description":"The ID of the instance to delete","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/instance-management","api_endpoint":"https://dashboard.tensordock.com/api/v2/instances/{id}"},"summary":"Delete instance","description":"Delete an instance and its associated resources.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/instances/{id}/start":{"post":{"tags":["Instances"],"parameters":[{"name":"id","in":"path","description":"The ID of the instance to start","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/instance-management","api_endpoint":"https://dashboard.tensordock.com/api/v2/instances/{id}/start"},"summary":"Start instance","description":"Start a stopped instance.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/instances/{id}/stop":{"post":{"tags":["Instances"],"parameters":[{"name":"id","in":"path","description":"The ID of the instance to stop","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/instance-management","api_endpoint":"https://dashboard.tensordock.com/api/v2/instances/{id}/stop"},"summary":"Stop instance","description":"Stop a running instance.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/instances/{id}/modify":{"put":{"tags":["Instances"],"parameters":[{"name":"id","in":"path","description":"The ID of the instance to modify (must be Stopped or StoppedDisassociated)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/instance-management","api_endpoint":"https://dashboard.tensordock.com/api/v2/instances/{id}/modify"},"summary":"Modify instance","description":"Modify the resources of a stopped instance. Storage can only be increased.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"cpuCores":{"type":"number","description":"New CPU core count (steps of 2)"},"diskGb":{"type":"number","description":"New storage in GB (steps of 50, min 100; can only be increased)"},"gpus":{"type":"object","description":"GPU allocation object","properties":{"count":{"type":"number","description":"Number of this GPU type"},"gpuV0Name":{"type":"string","description":"GPU v0Name, e.g. geforcertx4090-pcie-24gb"}}},"ramGb":{"type":"number","description":"New RAM in GB (allowed steps: 2,4,6,8,10,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256,512)","enum":[2,4,6,8,10,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256,512]}}},"example":{"cpuCores":[8],"diskGb":[200],"gpus":[""],"ramGb":[32]}}}}}},"/secrets":{"get":{"tags":["Secrets"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/secrets","api_endpoint":"https://dashboard.tensordock.com/api/v2/secrets"},"summary":"List secrets","description":"Retrieve all secrets (SSH keys and generic secrets) for your organization. SECRET-type values are never returned.","security":[{"bearerAuth":[]}]},"post":{"tags":["Secrets"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/secrets","api_endpoint":"https://dashboard.tensordock.com/api/v2/secrets"},"summary":"Create secret","description":"Create a new secret in your organization.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"data":{"type":"object","description":"JSON:API wrapper object for the create request","required":true,"properties":{"type":{"type":"string","description":"Resource type; use \"secret\"","required":true},"attributes":{"type":"object","description":"Secret attributes","required":true}}}}},"example":{"data":[""]}}}}}},"/secrets/{id}":{"get":{"tags":["Secrets"],"parameters":[{"name":"id","in":"path","description":"The ID of the secret to retrieve","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/secrets","api_endpoint":"https://dashboard.tensordock.com/api/v2/secrets/{id}"},"summary":"Get secret","description":"Retrieve a specific secret by ID. For secrets of type SECRET, the value is not returned.","security":[{"bearerAuth":[]}]},"delete":{"tags":["Secrets"],"parameters":[{"name":"id","in":"path","description":"The ID of the secret to delete","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://dashboard.tensordock.com/api/docs/secrets","api_endpoint":"https://dashboard.tensordock.com/api/v2/secrets/{id}"},"summary":"Delete secret","description":"Delete a secret from your organization.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}},"security":[{"bearerAuth":[]}]}