{"openapi":"3.0.0","info":{"description":"Targon decentralized GPU compute platform API - manage organizations, projects, GPU workloads, volumes, SSH keys, templates and API tokens on the /tha/v3 control plane. Bearer API token auth. No hosted model-inference endpoints (probe-proven: no /models or chat surface).","version":"v3"},"servers":[{"description":"Targon decentralized GPU compute platform API - manage organizations, projects, GPU workloads, volumes, SSH keys, templates and API tokens on the /tha/v3 control plane. Bearer API token auth. No hosted model-inference endpoints (probe-proven: no /models or chat surface).","url":"https://api.apirails.com/targon"}],"paths":{"/healthz":{"get":{"tags":["Health"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/health","api_endpoint":"https://api.targon.com/tha/v3/healthz"},"summary":"Liveness check","description":"Liveness check. Returns service liveness status.","security":[{"bearerAuth":[]}]}},"/readyz":{"get":{"tags":["Health"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/health","api_endpoint":"https://api.targon.com/tha/v3/readyz"},"summary":"Readiness check","description":"Readiness check. Returns service readiness status.","security":[{"bearerAuth":[]}]}},"/version":{"get":{"tags":["Health"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/version","api_endpoint":"https://api.targon.com/tha/v3/version"},"summary":"Get version","description":"Get version. Returns the current API version.","security":[{"bearerAuth":[]}]}},"/inventory":{"get":{"tags":["Inventory"],"parameters":[{"name":"type","in":"query","description":"Filter by resource type: rental, storage, or vm.","required":false,"schema":{"type":"string","example":""}},{"name":"gpu","in":"query","description":"Filter by GPU availability. Set to true to only return GPU resources.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/inventory","api_endpoint":"https://api.targon.com/tha/v3/inventory"},"summary":"List inventory","description":"List inventory. Lists available compute inventory resources with pricing and availability.","security":[{"bearerAuth":[]}]}},"/orgs":{"get":{"tags":["Organizations"],"parameters":[{"name":"cursor","in":"query","description":"Pagination cursor.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Max items.","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/orgs","api_endpoint":"https://api.targon.com/tha/v3/orgs"},"summary":"List organizations","description":"List organizations. Lists organizations the authenticated user belongs to.","security":[{"bearerAuth":[]}]},"post":{"tags":["Organizations"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/orgs","api_endpoint":"https://api.targon.com/tha/v3/orgs"},"summary":"Create organization","description":"Create organization. Creates an organization for the authenticated user.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Required. Display name.","required":true},"slug":{"type":"string","description":"Required. URL-safe organization slug.","required":true}}},"example":{"name":["my-resource"],"slug":["my-team"]}}}}}},"/orgs/{org_slug}":{"get":{"tags":["Organizations"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/orgs","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}"},"summary":"Get organization","description":"Get organization. Retrieves the selected organization.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Organizations"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/orgs","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}"},"summary":"Update organization","description":"Update organization. Updates organization fields. Requires OWNER role.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"billing_email":{"type":"string","description":"Billing contact email."},"name":{"type":"string","description":"New display name."},"slug":{"type":"string","description":"New slug."}}},"example":{"billing_email":["billing@example.com"],"name":["my-resource"],"slug":["my-team"]}}}}},"delete":{"tags":["Organizations"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/orgs","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}"},"summary":"Delete organization","description":"Delete organization. Deletes the selected organization. Requires OWNER role. Returns 204 No Content.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/wallet":{"get":{"tags":["Organizations"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/orgs","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/wallet"},"summary":"Get organization wallet","description":"Get organization wallet. Returns the wallet address for the selected organization.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/credits":{"get":{"tags":["Organizations"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/orgs","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/credits"},"summary":"Get organization credits","description":"Get organization credits. Returns the credit balance for the selected organization.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/members":{"get":{"tags":["Members"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"cursor","in":"query","description":"Pagination cursor.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Max items.","required":false,"schema":{"type":"number","example":""}},{"name":"role","in":"query","description":"Filter by role: OWNER, ADMIN, MEMBER.","required":false,"schema":{"type":"string","example":""}},{"name":"status","in":"query","description":"Filter by status: ACTIVE, INVITED, SUSPENDED.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/members","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/members"},"summary":"List members","description":"List members. Lists members of the organization.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/members/{username}":{"get":{"tags":["Members"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"username","in":"path","description":"Username of the member","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/members","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/members/{username}"},"summary":"Get member","description":"Get member. Retrieves a member by username. Returns a Membership object.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Members"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"username","in":"path","description":"Username of the member","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/members","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/members/{username}"},"summary":"Update member","description":"Update member. Updates a member's role.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"role":{"type":"string","description":"Required. New role: OWNER, ADMIN, or MEMBER.","required":true}}},"example":{"role":["MEMBER"]}}}}},"delete":{"tags":["Members"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"username","in":"path","description":"Username of the member","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/members","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/members/{username}"},"summary":"Delete member","description":"Delete member. Removes a member from the organization. Returns 204 No Content.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/projects":{"post":{"tags":["Projects"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/projects","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/projects"},"summary":"Create project","description":"Create project. Creates a project in the organization.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Required. Project name.","required":true}}},"example":{"name":["my-resource"]}}}}},"get":{"tags":["Projects"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"cursor","in":"query","description":"Pagination cursor.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Max items.","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/projects","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/projects"},"summary":"List projects","description":"List projects. Lists projects in the organization.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/projects/{project_uid}":{"get":{"tags":["Projects"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"project_uid","in":"path","description":"Unique identifier of the project","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/projects","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/projects/{project_uid}"},"summary":"Get project","description":"Get project. Retrieves a project by UID.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Projects"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"project_uid","in":"path","description":"Unique identifier of the project","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/projects","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/projects/{project_uid}"},"summary":"Update project","description":"Update project. Updates project fields.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Required. New project name.","required":true}}},"example":{"name":["my-resource"]}}}}},"delete":{"tags":["Projects"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"project_uid","in":"path","description":"Unique identifier of the project","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/projects","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/projects/{project_uid}"},"summary":"Delete project","description":"Delete project. Deletes a project. Returns 204 No Content.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/ssh-keys":{"post":{"tags":["SSH Keys"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/ssh-keys","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/ssh-keys"},"summary":"Create SSH key","description":"Create SSH key. Creates a new SSH key.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Required. Name for the SSH key.","required":true},"ssh_key":{"type":"string","description":"Required. The public SSH key content.","required":true}}},"example":{"name":["my-resource"],"ssh_key":["string"]}}}}},"get":{"tags":["SSH Keys"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"cursor","in":"query","description":"Pagination cursor.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Maximum number of items to return.","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/ssh-keys","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/ssh-keys"},"summary":"List SSH keys","description":"List SSH keys. Lists all SSH keys in the organization.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/ssh-keys/{ssh_key_uid}":{"get":{"tags":["SSH Keys"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"ssh_key_uid","in":"path","description":"Unique identifier of the SSH key","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/ssh-keys","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/ssh-keys/{ssh_key_uid}"},"summary":"Get SSH key","description":"Get SSH key. Retrieves an SSH key by UID.","security":[{"bearerAuth":[]}]},"patch":{"tags":["SSH Keys"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"ssh_key_uid","in":"path","description":"Unique identifier of the SSH key","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/ssh-keys","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/ssh-keys/{ssh_key_uid}"},"summary":"Update SSH key","description":"Update SSH key. Updates an SSH key's name.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Required. New name for the SSH key.","required":true}}},"example":{"name":["my-resource"]}}}}},"delete":{"tags":["SSH Keys"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"ssh_key_uid","in":"path","description":"Unique identifier of the SSH key","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/ssh-keys","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/ssh-keys/{ssh_key_uid}"},"summary":"Delete SSH key","description":"Delete SSH key. Deletes an SSH key. Returns 204 No Content.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/templates":{"post":{"tags":["Templates"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/templates","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/templates"},"summary":"Create template","description":"Create template. Creates a workload template.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"Required. Workload type (e.g. RENTAL)","required":true},"description":{"type":"string","description":"Optional description"},"manifest":{"type":"object","description":"Required. Full create-workload body; manifest.type must equal type.","required":true,"properties":{"type":{"type":"string","description":"Required. RENTAL or VM","required":true,"enum":["RENTAL","VM"]},"args":{"type":"array","description":"Container arguments. Not for VM"},"commands":{"type":"array","description":"Container command override. Not for VM"},"envs":{"type":"array","description":"Environment variables. Not for VM"},"image":{"type":"string","description":"Required. Container image reference (not validated for VM)","required":true},"name":{"type":"string","description":"Required. Lowercase alphanumeric and hyphens, max 32 characters","required":true},"ports":{"type":"array","description":"Port mappings. See Port object"},"registry_auth":{"type":"object","description":"Private registry credentials. Not for VM"},"resource_name":{"type":"string","description":"Required. Inventory resource name (e.g. h200-small)","required":true,"enum":["cpu-small","cpu-medium","cpu-large","cpu-xlarge","h200-small","h200-medium","h200-large","h200-xlarge","h100-small","h100-medium","h100-large","h100-xlarge","b200-small","b200-medium","b200-large","b200-xlarge","b300-small","b300-medium","b300-large","b300-xlarge","rtx6000b-small","rtx4090-small","rtx4090-medium","rtx4090-large"]},"ssh_keys":{"type":"array","description":"SSH key UIDs to attach"},"vm_config":{"type":"object","description":"Required for VM. See VM config"},"volumes":{"type":"array","description":"Volume mounts. RENTAL only"}}},"name":{"type":"string","description":"Required. Template name","required":true}}},"example":{"type":["RENTAL"],"description":["string"],"manifest":[{"type":"RENTAL","image":"pytorch/pytorch:latest","name":"my-training-job","resource_name":"h200-small"}],"name":["my-resource"]}}}}},"get":{"tags":["Templates"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"type","in":"query","description":"Filter by workload type","required":false,"schema":{"type":"string","example":""}},{"name":"cursor","in":"query","description":"Pagination cursor","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Max items","required":false,"schema":{"type":"number","example":""}},{"name":"visibility","in":"query","description":"Filter by visibility: PUBLIC or PRIVATE. Defaults to both.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/templates","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/templates"},"summary":"List templates","description":"List templates. Lists templates in the organization.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/templates/{template_uid}":{"get":{"tags":["Templates"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"template_uid","in":"path","description":"Unique identifier of the template","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/templates","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/templates/{template_uid}"},"summary":"Get template","description":"Get template. Retrieves a template by UID.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Templates"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"template_uid","in":"path","description":"Unique identifier of the template","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/templates","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/templates/{template_uid}"},"summary":"Update template","description":"Update template. Updates template fields. Optional fields: name, description, manifest.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"description":{"type":"string","description":"Optional. New description."},"manifest":{"type":"object","description":"Optional. Full create-workload body; manifest.type must equal type.","properties":{"type":{"type":"string","description":"Required. RENTAL or VM","required":true,"enum":["RENTAL","VM"]},"args":{"type":"array","description":"Container arguments. Not for VM"},"commands":{"type":"array","description":"Container command override. Not for VM"},"envs":{"type":"array","description":"Environment variables. Not for VM"},"image":{"type":"string","description":"Required. Container image reference (not validated for VM)","required":true},"name":{"type":"string","description":"Required. Lowercase alphanumeric and hyphens, max 32 characters","required":true},"ports":{"type":"array","description":"Port mappings. See Port object"},"registry_auth":{"type":"object","description":"Private registry credentials. Not for VM"},"resource_name":{"type":"string","description":"Required. Inventory resource name (e.g. h200-small)","required":true,"enum":["cpu-small","cpu-medium","cpu-large","cpu-xlarge","h200-small","h200-medium","h200-large","h200-xlarge","h100-small","h100-medium","h100-large","h100-xlarge","b200-small","b200-medium","b200-large","b200-xlarge","b300-small","b300-medium","b300-large","b300-xlarge","rtx6000b-small","rtx4090-small","rtx4090-medium","rtx4090-large"]},"ssh_keys":{"type":"array","description":"SSH key UIDs to attach"},"vm_config":{"type":"object","description":"Required for VM. See VM config"},"volumes":{"type":"array","description":"Volume mounts. RENTAL only"}}},"name":{"type":"string","description":"Optional. New template name."}}},"example":{"description":["string"],"manifest":[{"type":"RENTAL","image":"pytorch/pytorch:latest","name":"my-training-job","resource_name":"h200-small"}],"name":["my-resource"]}}}}},"delete":{"tags":["Templates"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"template_uid","in":"path","description":"Unique identifier of the template","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/templates","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/templates/{template_uid}"},"summary":"Delete template","description":"Delete template. Deletes a template. Returns 204 No Content.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/tokens":{"get":{"tags":["Service Tokens"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"cursor","in":"query","description":"Pagination cursor.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Max items.","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/tokens","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/tokens"},"summary":"List service tokens","description":"List service tokens. Lists org service tokens.","security":[{"bearerAuth":[]}]},"post":{"tags":["Service Tokens"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/tokens","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/tokens"},"summary":"Create service token","description":"Create service token. Creates an org service token.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Required. Name for the token.","required":true}}},"example":{"name":["my-resource"]}}}}}},"/orgs/{org_slug}/tokens/{token_uid}":{"delete":{"tags":["Service Tokens"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"token_uid","in":"path","description":"Unique identifier of the token","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/tokens","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/tokens/{token_uid}"},"summary":"Delete service token","description":"Delete service token. Deletes an org service token. Returns 204 No Content.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/me/api-tokens":{"get":{"tags":["API Tokens"],"parameters":[{"name":"cursor","in":"query","description":"Pagination cursor.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Maximum number of items to return.","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/user","api_endpoint":"https://api.targon.com/tha/v3/me/api-tokens"},"summary":"List API tokens","description":"List API tokens. Lists personal access tokens. User-scoped, no organization required.","security":[{"bearerAuth":[]}]},"post":{"tags":["API Tokens"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/user","api_endpoint":"https://api.targon.com/tha/v3/me/api-tokens"},"summary":"Create API token","description":"Create API token. Creates a personal access token. The token value is shown once on creation.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Required. Name for the new token.","required":true}}},"example":{"name":["my-resource"]}}}}}},"/me/api-tokens/{token_uid}":{"patch":{"tags":["API Tokens"],"parameters":[{"name":"token_uid","in":"path","description":"Unique identifier of the token","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/user","api_endpoint":"https://api.targon.com/tha/v3/me/api-tokens/{token_uid}"},"summary":"Update API token","description":"Update API token. Renames a personal access token.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Required. New name for the token.","required":true}}},"example":{"name":["my-resource"]}}}}},"delete":{"tags":["API Tokens"],"parameters":[{"name":"token_uid","in":"path","description":"Unique identifier of the token","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/user","api_endpoint":"https://api.targon.com/tha/v3/me/api-tokens/{token_uid}"},"summary":"Delete API token","description":"Delete API token. Deletes a personal access token. Returns 204 No Content.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/volumes":{"post":{"tags":["Volumes"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/volumes","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/volumes"},"summary":"Create volume","description":"Create volume. Creates a storage volume.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Required. Name for the volume.","required":true},"resource_name":{"type":"string","description":"Required. The compute resource to provision the volume on.","required":true},"size_in_mb":{"type":"number","description":"Required. Size of the volume in megabytes.","required":true}}},"example":{"name":["my-resource"],"resource_name":["h200-small"],"size_in_mb":[102400]}}}}},"get":{"tags":["Volumes"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"cursor","in":"query","description":"Pagination cursor.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Maximum number of items to return.","required":false,"schema":{"type":"number","example":""}},{"name":"workload_uid","in":"query","description":"Filter volumes attached to a workload.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/volumes","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/volumes"},"summary":"List volumes","description":"List volumes. Lists volumes in the organization.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/volumes/{volume_uid}":{"get":{"tags":["Volumes"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"volume_uid","in":"path","description":"Unique identifier of the volume","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/volumes","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/volumes/{volume_uid}"},"summary":"Get volume","description":"Get volume. Retrieves a volume by UID.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Volumes"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"volume_uid","in":"path","description":"Unique identifier of the volume","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/volumes","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/volumes/{volume_uid}"},"summary":"Update volume","description":"Update volume. Renames a volume.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Required. New name for the volume.","required":true}}},"example":{"name":["my-resource"]}}}}},"delete":{"tags":["Volumes"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"volume_uid","in":"path","description":"Unique identifier of the volume","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/volumes","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/volumes/{volume_uid}"},"summary":"Delete volume","description":"Delete volume. Deletes a volume. Returns 204 No Content.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/volumes/{volume_uid}/state":{"get":{"tags":["Volumes"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"volume_uid","in":"path","description":"Unique identifier of the volume","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/volumes","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/volumes/{volume_uid}/state"},"summary":"Get volume state","description":"Get volume state. Returns the current state of a volume.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/volumes/{volume_uid}/events":{"get":{"tags":["Volumes"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"volume_uid","in":"path","description":"Unique identifier of the volume","required":true,"schema":{"type":"string","example":""}},{"name":"cursor","in":"query","description":"Pagination cursor.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Maximum number of items to return.","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/volumes","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/volumes/{volume_uid}/events"},"summary":"List volume events","description":"List volume events. Lists events for a volume.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/workloads":{"post":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads"},"summary":"Create workload","description":"Create workload. Creates a RENTAL (container) or VM workload. Asynchronous: poll the state endpoint.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"Required. RENTAL or VM","required":true,"enum":["RENTAL","VM"]},"args":{"type":"array","description":"Container arguments. Not for VM","items":{"type":"string"}},"commands":{"type":"array","description":"Container command override. Not for VM","items":{"type":"string"}},"envs":{"type":"array","description":"Environment variables. Not for VM","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"value":{"type":"string","description":"Variable value"}}}},"experiments":{"type":"object","description":"Feature experiments (config-gated). Keys: reserved-gpu, persistent-workload","properties":{"persistent-workload":{"type":"boolean","description":"Persistent workload experiment flag (config-gated)","enum":[true,false]},"reserved-gpu":{"type":"boolean","description":"Reserved GPU experiment flag (config-gated)","enum":[true,false]}}},"image":{"type":"string","description":"Required. Container image reference (not validated for VM)","required":true},"name":{"type":"string","description":"Required. Lowercase alphanumeric and hyphens, max 32 characters","required":true},"ports":{"type":"array","description":"Port mappings. See Port object","items":{"type":"object","properties":{"port":{"type":"number","description":"Required. 1024–65535","required":true},"protocol":{"type":"string","description":"TCP, UDP, or SCTP (VM: TCP / UDP only)","enum":["TCP","UDP","SCTP"]},"routing":{"type":"string","description":"PROXIED (default) or DIRECT (max 10 direct ports per workload)","enum":["PROXIED","DIRECT"]}}}},"project_id":{"type":"string","description":"Optional project UID to assign the workload"},"registry_auth":{"type":"object","description":"Private registry credentials. Not for VM","properties":{"password":{"type":"string","description":"Registry password or token"},"server":{"type":"string","description":"Registry server URL"},"username":{"type":"string","description":"Registry username"}}},"resource_name":{"type":"string","description":"Required. Inventory resource name (e.g. h200-small)","required":true,"enum":["cpu-small","cpu-medium","cpu-large","cpu-xlarge","h200-small","h200-medium","h200-large","h200-xlarge","h100-small","h100-medium","h100-large","h100-xlarge","b200-small","b200-medium","b200-large","b200-xlarge","b300-small","b300-medium","b300-large","b300-xlarge","rtx6000b-small","rtx4090-small","rtx4090-medium","rtx4090-large"]},"ssh_keys":{"type":"array","description":"SSH key UIDs to attach","items":{"type":"string"}},"vm_config":{"type":"object","description":"Required for VM. See VM config","required":true,"properties":{"password":{"type":"string","description":"Required. Min 4 characters","required":true}}},"volumes":{"type":"array","description":"Volume mounts. RENTAL only","items":{"type":"object","properties":{"mount_path":{"type":"string","description":"Required. Absolute path inside the container","required":true},"read_only":{"type":"boolean","description":"Mount read-only. Default false","enum":[true,false]},"uid":{"type":"string","description":"Required. Volume UID","required":true}}}}}},"example":{"type":["RENTAL"],"args":[["--epochs","10"]],"commands":[["python","train.py"]],"envs":[[{"name":"LOG_LEVEL","value":"debug"}]],"experiments":[{"persistent-workload":false,"reserved-gpu":false}],"image":["pytorch/pytorch:latest"],"name":["my-resource"],"ports":[[{"port":8080,"protocol":"TCP","routing":"PROXIED"}]],"project_id":["string"],"registry_auth":[{"password":"pass","server":"registry.example.com","username":"user"}],"resource_name":["h200-small"],"ssh_keys":[["shk-def456ghi789"]],"vm_config":[{"password":"your-sudo-password"}],"volumes":[[{"mount_path":"/data","uid":"vol-xyz789abc123"}]]}}}}},"get":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"type","in":"query","description":"Filter by workload type.","required":false,"schema":{"type":"string","example":""}},{"name":"cursor","in":"query","description":"Pagination cursor.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Max items.","required":false,"schema":{"type":"number","example":""}},{"name":"name","in":"query","description":"Filter by name.","required":false,"schema":{"type":"string","example":""}},{"name":"project_id","in":"query","description":"Filter by project UID.","required":false,"schema":{"type":"string","example":""}},{"name":"status","in":"query","description":"Filter by status.","required":false,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads"},"summary":"List workloads","description":"List workloads. Lists workloads in the organization.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/workloads/vm-images":{"get":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/vm-images"},"summary":"List VM images","description":"List VM images. Returns available VM images (name, display_name, description).","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/workloads/{workload_uid}":{"get":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}"},"summary":"Get workload","description":"Get workload. Returns the full workload object including envs, ports, commands, args, registry_auth, ssh_keys, and experiments.","security":[{"bearerAuth":[]}]},"patch":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}"},"summary":"Update workload","description":"Update workload. Updates workload fields. All fields optional. Supported: name, image.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"image":{"type":"string","description":"Optional. New container image reference."},"name":{"type":"string","description":"Optional. New workload name."}}},"example":{"image":["pytorch/pytorch:latest"],"name":["my-resource"]}}}}},"delete":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}"},"summary":"Delete workload","description":"Delete workload. Deletes a workload.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/workloads/{workload_uid}/deploy":{"post":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/deploy"},"summary":"Deploy workload","description":"Deploy workload. Deploys a created workload.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/workloads/{workload_uid}/suspend":{"post":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/suspend"},"summary":"Suspend workload","description":"Suspend workload. Suspends a running workload.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/workloads/{workload_uid}/reboot":{"post":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/reboot"},"summary":"Reboot workload","description":"Reboot workload. Reboots a workload.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/workloads/{workload_uid}/state":{"get":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/state"},"summary":"Get workload state","description":"Get workload state. Returns the current workload state, access URLs, public IP, SSH port, and replica counts.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/workloads/{workload_uid}/events":{"get":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}},{"name":"cursor","in":"query","description":"Pagination cursor.","required":false,"schema":{"type":"string","example":""}},{"name":"limit","in":"query","description":"Max items.","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/events"},"summary":"List workload events","description":"List workload events. Lists events for a workload.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/workloads/{workload_uid}/logs":{"get":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}},{"name":"type","in":"query","description":"VM only: serial or qemu.","required":false,"schema":{"type":"string","example":""}},{"name":"follow","in":"query","description":"Stream logs as text/plain.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"previous","in":"query","description":"Logs from previous container instance.","required":false,"schema":{"type":"boolean","example":"","items":{"type":"string","enum":[true,false]}}},{"name":"since","in":"query","description":"RFC 3339 timestamp.","required":false,"schema":{"type":"string","example":""}},{"name":"tail","in":"query","description":"Number of recent lines.","required":false,"schema":{"type":"number","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/logs"},"summary":"Get workload logs","description":"Get workload logs. Returns workload logs. Set follow=true to stream as text/plain.","security":[{"bearerAuth":[]}]}},"/orgs/{org_slug}/workloads/{workload_uid}/exec":{"post":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}},{"name":"command","in":"query","description":"Command and arguments, repeatable query parameter (e.g. ?command=ls&command=-la)","required":true,"schema":{"type":"array","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/exec"},"summary":"Exec workload","description":"Exec workload. RENTAL only. Executes a command in the workload; streams output as text/plain. Command is passed as repeatable query parameters.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/workloads/verify":{"post":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/verify"},"summary":"Verify workload digest","description":"Verify workload digest. Verifies a workload image digest (SHA256).","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"digest":{"type":"string","description":"Required. SHA256 digest.","required":true},"uid":{"type":"string","description":"Required. Workload UID.","required":true}}},"example":{"digest":["string"],"uid":["string"]}}}}}},"/orgs/{org_slug}/workloads/{workload_uid}/volumes/{volume_uid}":{"put":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"volume_uid","in":"path","description":"Unique identifier of the volume","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/volumes/{volume_uid}"},"summary":"Attach volume to workload","description":"Attach volume to workload. Attaches a volume to a RENTAL workload with the given mount configuration.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"mount_path":{"type":"string","description":"Required. Absolute path inside the container.","required":true},"read_only":{"type":"boolean","description":"Mount read-only. Default false.","enum":[true,false]}}},"example":{"mount_path":["/data"],"read_only":[false]}}}}},"delete":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"volume_uid","in":"path","description":"Unique identifier of the volume","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/volumes/{volume_uid}"},"summary":"Detach volume from workload","description":"Detach volume from workload. Detaches a volume from a workload. Returns 204 No Content.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}},"/orgs/{org_slug}/workloads/{workload_uid}/ssh-keys/{ssh_key_uid}":{"put":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"ssh_key_uid","in":"path","description":"Unique identifier of the SSH key","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/ssh-keys/{ssh_key_uid}"},"summary":"Attach SSH key to workload","description":"Attach SSH key to workload. Attaches an SSH key to a workload. Empty body.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}},"delete":{"tags":["Workloads"],"parameters":[{"name":"org_slug","in":"path","description":"Organization slug identifier","required":true,"schema":{"type":"string","example":""}},{"name":"ssh_key_uid","in":"path","description":"Unique identifier of the SSH key","required":true,"schema":{"type":"string","example":""}},{"name":"workload_uid","in":"path","description":"Unique identifier of the workload","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://docs.targon.com/api/workloads","api_endpoint":"https://api.targon.com/tha/v3/orgs/{org_slug}/workloads/{workload_uid}/ssh-keys/{ssh_key_uid}"},"summary":"Detach SSH key from workload","description":"Detach SSH key from workload. Detaches an SSH key from a workload. Returns 204 No Content.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{}},"example":{}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}},"security":[{"bearerAuth":[]}]}