openapi: 3.0.3
info:
title: remediation.proto Audio GPUClusterService API
version: version not set
servers:
- url: https://api.together.xyz/v1
security:
- bearerAuth: []
tags:
- name: GPUClusterService
paths:
/compute/clusters:
get:
tags:
- GPUClusterService
summary: List all GPU clusters.
description: List all GPU clusters.
operationId: GPUClusterService_List
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusters'
x-codeSamples:
- lang: Python
label: Together AI SDK (v2)
source: "from together import Together\nimport os\n\nclient = Together(\n api_key=os.environ.get(\"TOGETHER_API_KEY\"),\n)\n\nresponse = client.beta.clusters.list()\n\nprint(response.clusters)\n"
- lang: TypeScript
label: Together AI SDK (TypeScript)
source: "import Together from \"together-ai\";\n\nconst client = new Together({\n apiKey: process.env.TOGETHER_API_KEY,\n});\n\nconst response = await client.beta.clusters.list();\n\nconsole.log(response.clusters);\n"
- lang: JavaScript
label: Together AI SDK (JavaScript)
source: "import Together from \"together-ai\";\n\nconst client = new Together({\n apiKey: process.env.TOGETHER_API_KEY,\n});\n\nconst response = await client.beta.clusters.list();\n\nconsole.log(response.clusters);\n"
post:
tags:
- GPUClusterService
summary: Create GPU Cluster
description: 'Create an Instant Cluster on Together''s high-performance GPU clusters.
With features like on-demand scaling, long-lived resizable high-bandwidth shared DC-local storage,
Kubernetes and Slurm cluster flavors, a REST API, and Terraform support,
you can run workloads flexibly without complex infrastructure management.
'
operationId: GPUClusterService_Create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusterCreateRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusterInfo'
x-codeSamples:
- lang: Python
label: Together AI SDK (v2)
source: "from together import Together\n\nclient = Together()\n\nresponse = client.beta.clusters.create(\n cluster_name=\"my-gpu-cluster\",\n region=\"us-central-8\",\n gpu_type=\"H100_SXM\",\n num_gpus=8,\n driver_version=\"CUDA_12_6_560\",\n billint_type=\"ON_DEMAND\",\n)\n\nprint(response.cluster_id)\n"
- lang: TypeScript
label: Together AI SDK (v2)
source: "import Together from \"together-ai\";\n\nconst client = new Together();\n\nconst response = await client.beta.clusters.create({\n cluster_name: \"my-gpu-cluster\",\n region: \"us-central-8\",\n gpu_type: \"H100_SXM\",\n num_gpus: 8,\n driver_version: \"CUDA_12_6_560\",\n billint_type: \"ON_DEMAND\",\n});\n\nconsole.log(response.cluster_id)\n"
- lang: JavaScript
label: Together AI SDK (v2)
source: "import Together from \"together-ai\";\n\nconst client = new Together();\n\nconst response = await client.beta.clusters.create({\n cluster_name: \"my-gpu-cluster\",\n region: \"us-central-8\",\n gpu_type: \"H100_SXM\",\n num_gpus: 8,\n driver_version: \"CUDA_12_6_560\",\n billint_type: \"ON_DEMAND\",\n});\n\nconsole.log(response.cluster_id)\n"
- lang: Shell
label: CLI
source: "curl -X POST \\\n -H \"Authorization Bearer $TOGETHER_API_KEY\" \\\n --data '{ \"region\": \"us-west-2\", \"gpu_type\": \"H100_SXM\", \"num_gpus\": 8, \"cluster_name\": \"my-gpu-cluster\", \"driver_version\": \"CUDA_12_6_560\" }' \\\n https://api.together.ai/v1/compute/clusters\n"
/compute/clusters/{cluster_id}:
get:
tags:
- GPUClusterService
summary: Get GPU cluster by cluster ID
description: Retrieve information about a specific GPU cluster.
operationId: GPUClusterService_Get
parameters:
- name: cluster_id
in: path
required: true
schema:
description: The ID of the cluster to retrieve
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusterInfo'
x-codeSamples:
- lang: Python
label: Together AI SDK (v2)
source: 'from together import Together
client = Together()
cluster = client.beta.clusters.retrieve("cluster_id")
print(cluster)
'
- lang: TypeScript
label: Together AI SDK (TypeScript)
source: 'import Together from "together-ai";
const client = new Together();
const cluster = await client.beta.clusters.retrieve("cluster_id");
console.log(cluster);
'
- lang: JavaScript
label: Together AI SDK (JavaScript)
source: 'import Together from "together-ai";
const client = new Together();
const cluster = await client.beta.clusters.retrieve("cluster_id");
console.log(cluster);
'
put:
tags:
- GPUClusterService
summary: Update a GPU Cluster.
description: Update the configuration of an existing GPU cluster.
operationId: GPUClusterService_Update
parameters:
- name: cluster_id
in: path
required: true
schema:
description: The ID of the cluster to update
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusterUpdateRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusterInfo'
x-codeSamples:
- lang: Python
label: Together AI SDK (v2)
source: 'from together import Together
client = Together()
cluster = client.beta.clusters.update("cluster_id", cluster_type="KUBERNETES", num_gpus=24)
print(cluster)
'
- lang: TypeScript
label: Together AI SDK (TypeScript)
source: "import Together from \"together-ai\";\nconst client = new Together();\n\nconst cluster = await client.beta.clusters.update({\n cluster_id: \"cluster_id\",\n cluster_type: \"kubernetes\",\n num_gpus: 24,\n})\nconsole.log(cluster)\n"
- lang: JavaScript
label: Together AI SDK (JavaScript)
source: "import Together from \"together-ai\";\nconst client = new Together();\n\nconst cluster = await client.beta.clusters.update({\n cluster_id: \"cluster_id\",\n cluster_type: \"kubernetes\",\n num_gpus: 24,\n})\nconsole.log(cluster)\n"
- lang: Shell
label: cURL
source: "curl -X PUT \\\n -H \"Authorization Bearer $TOGETHER_API_KEY\" \\\n --data '{ \"cluster_id\": \"cluster id\", \"cluster_type\": \"kubernetes\", \"num_gpus\": 24 }' \\\n https://api.together.ai/v1/compute/clusters\n"
delete:
tags:
- GPUClusterService
summary: Delete GPU cluster by cluster ID
description: Delete a GPU cluster by cluster ID.
operationId: GPUClusterService_Delete
parameters:
- name: cluster_id
in: path
required: true
schema:
description: The ID of the cluster to delete
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- cluster_id
properties:
cluster_id:
type: string
x-codeSamples:
- lang: Python
label: Together AI SDK (v2)
source: 'from together import Together
client = Together()
cluster = client.beta.clusters.delete("cluster_id")
print(cluster)
'
- lang: TypeScript
label: Together AI SDK (TypeScript)
source: 'import Together from "together-ai";
const client = new Together();
const cluster = await client.beta.clusters.delete("cluster_id");
console.log(cluster);
'
- lang: JavaScript
label: Together AI SDK (JavaScript)
source: 'import Together from "together-ai";
const client = new Together();
const cluster = await client.beta.clusters.delete("cluster_id");
console.log(cluster);
'
- lang: Shell
label: cURL
source: "curl -X DELETE \\\n -H \"Authorization: Bearer $TOGETHER_API_KEY\" \\\n https://api.together.ai/v1/compute/clusters/${CLUSTER_ID}\n"
/api/v1/gpu_cluster:
put:
tags:
- GPUClusterService
summary: Update a GPU Cluster.
operationId: GPUClusterService_Update
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusterUpdateRequest_2'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusterUpdateResponse'
x-codeSamples:
- lang: Shell
label: cURL
source: "curl -X PUT \\\n -H \"Authorization: Bearer $TOGETHER_API_KEY\" \\\n --data '{ \"cluster_id\": \"cluster id\", \"cluster_type\": \"kubernetes\", \"num_gpus\": 24 }' \\\n https://manager.cloud.together.ai/api/v1/gpu_cluster\n"
post:
tags:
- GPUClusterService
summary: Create GPU Cluster
operationId: GPUClusterService_Create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusterCreateRequest_2'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusterCreateResponse'
x-codeSamples:
- lang: Shell
label: cURL
source: "curl -X POST \\\n -H \"Authorization: Bearer $TOGETHER_API_KEY\" \\\n --data '{ \"region\": \"us-west-2\", \"gpu_type\": \"H100_SXM\", \"num_gpus\": 8, \"cluster_name\": \"my-gpu-cluster\", \"duration_days\": 7, \"driver_version\": \"CUDA_12_6_560\" }' \\\n https://manager.cloud.together.ai/api/v1/gpu_cluster\n"
/api/v1/gpu_cluster/{cluster_id}:
get:
tags:
- GPUClusterService
summary: Get GPU cluster by cluster ID
operationId: GPUClusterService_Get
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusterInfo_2'
x-codeSamples:
- lang: Shell
label: cURL
source: "curl -X GET \\\n -H \"Authorization: Bearer $TOGETHER_API_KEY\" \\\n https://manager.cloud.together.ai/api/v1/gpu_cluster/${CLUSTER_ID}\n"
delete:
tags:
- GPUClusterService
summary: Delete GPU cluster by cluster ID
operationId: GPUClusterService_Delete
parameters:
- name: cluster_id
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GPUCLusterDeleteResponse'
x-codeSamples:
- lang: Shell
label: cURL
source: "curl -X DELETE \\\n -H \"Authorization: Bearer $TOGETHER_API_KEY\" \\\n https://manager.cloud.together.ai/api/v1/gpu_cluster/${CLUSTER_ID}\n"
/api/v1/gpu_clusters:
get:
tags:
- GPUClusterService
summary: List all GPU clusters.
operationId: GPUClusterService_List
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GPUClusters_2'
x-codeSamples:
- lang: Shell
label: cURL
source: "curl -X GET \\\n -H \"Authorization: Bearer $TOGETHER_API_KEY\" \\\n https://manager.cloud.together.ai/api/v1/gpu_clusters\n"
components:
schemas:
GPUCLusterDeleteResponse:
type: object
properties:
cluster_id:
type: string
GPUClusters:
type: object
required:
- clusters
properties:
clusters:
type: array
items:
$ref: '#/components/schemas/GPUClusterInfo'
GPUClusters_2:
type: object
properties:
clusters:
type: array
items:
$ref: '#/components/schemas/GPUClusterInfo_2'
GPUClusterUpdateResponse:
type: object
properties:
cluster_id:
type: string
status:
enum:
- UNKNOWN_STATUS
- PENDING
- QUEUED
- WAITING_CONTROL_PLANE
- WAITING_DATA_PLANE
- READY
- FAILED
type: string
format: enum
GPUClusterCreateRequest_2:
required:
- region
- gpu_type
- num_gpus
- cluster_name
- duration_days
- driver_version
- billing_type
type: object
properties:
cluster_type:
enum:
- UNKNOWN_TYPE
- KUBERNETES
- SLURM
type: string
description: GPU Cluster create request.
format: enum
region:
type: string
description: Region to create the GPU cluster in. Valid values are us-central-8 and us-central-4.
gpu_type:
enum:
- UNKNOWN_GPU_TYPE
- H100_SXM
- H200_SXM
- RTX_6000_PCI
type: string
description: Type of GPU to use in the cluster
format: enum
num_gpus:
type: integer
description: Number of GPUs to allocate in the cluster. This must be multiple of 8. For example, 8, 16 or 24
format: int32
cluster_name:
type: string
description: Name of the GPU cluster.
duration_days:
type: integer
description: Duration in days to keep the cluster running.
format: uint32
driver_version:
enum:
- UNKNOWN_DRIVER
- CUDA_12_5_555
- CUDA_12_6_560
- CUDA_12_6_565
- CUDA_12_8_570
type: string
description: NVIDIA driver version to use in the cluster.
format: enum
shared_volume:
$ref: '#/components/schemas/SharedVolumeCreateRequest'
volume_id:
type: string
billing_type:
enum:
- UNSPECIFIED
- RESERVED
- ON_DEMAND
type: string
format: enum
description: GPU Cluster create request
GPUClusterCreateRequest:
description: GPU Cluster create request
required:
- region
- gpu_type
- num_gpus
- cluster_name
- cuda_version
- nvidia_driver_version
- billing_type
type: object
properties:
cluster_type:
description: Type of cluster to create.
type: string
enum:
- KUBERNETES
- SLURM
region:
description: Region to create the GPU cluster in. Usable regions can be found from `client.clusters.list_regions()`
type: string
gpu_type:
description: Type of GPU to use in the cluster
type: string
enum:
- H100_SXM
- H200_SXM
- RTX_6000_PCI
- L40_PCIE
- B200_SXM
- H100_SXM_INF
num_gpus:
description: Number of GPUs to allocate in the cluster. This must be multiple of 8. For example, 8, 16 or 24
type: integer
cluster_name:
description: Name of the GPU cluster.
type: string
duration_days:
x-stainless-terraform-configurability: computed
description: Duration in days to keep the cluster running.
type: integer
shared_volume:
x-stainless-terraform-configurability: computed
$ref: '#/components/schemas/GPUClustersSharedVolumeCreateRequest'
description: Inline configuration to create a shared volume with the cluster creation.
volume_id:
description: ID of an existing volume to use with the cluster creation.
type: string
billing_type:
description: 'RESERVED billing types allow you to specify the duration of the cluster reservation via the duration_days field.
ON_DEMAND billing types will give you ownership of the cluster until you delete it.
SCHEDULED_CAPACITY billing types allow you to reserve capacity for a scheduled time window. You must specify the reservation_start_time and reservation_end_time with this request.
'
x-stainless-terraform-configurability: computed
type: string
enum:
- RESERVED
- ON_DEMAND
- SCHEDULED_CAPACITY
gpu_node_failover_enabled:
type: boolean
default: false
description: Whether automated GPU node failover should be enabled for this cluster. By default, it is disabled.
auto_scaled:
type: boolean
default: false
description: Whether GPU cluster should be auto-scaled based on the workload. By default, it is not auto-scaled.
auto_scale_max_gpus:
type: integer
description: Maximum number of GPUs to which the cluster can be auto-scaled up. This field is required if auto_scaled is true.
slurm_shm_size_gib:
type: integer
description: Shared memory size in GiB for Slurm cluster. This field is required if cluster_type is SLURM.
capacity_pool_id:
type: string
description: ID of the capacity pool to use for the cluster. This field is optional and only applicable if the cluster is created from a capacity pool.
reservation_start_time:
type: string
description: Reservation start time of the cluster. This field is required for SCHEDULED billing to specify the reservation start time for the cluster. If not provided, the cluster will be provisioned immediately.
format: date-time
reservation_end_time:
type: string
description: Reservation end time of the cluster. This field is required for SCHEDULED billing to specify the reservation end time for the cluster.
format: date-time
install_traefik:
type: boolean
default: false
description: Whether to install Traefik ingress controller in the cluster. This field is only applicable for Kubernetes clusters and is false by default.
cuda_version:
type: string
description: CUDA version for this cluster. For example, 12.5
nvidia_driver_version:
type: string
description: Nvidia driver version for this cluster. For example, 550. Only some combination of cuda_version and nvidia_driver_version are supported.
slurm_image:
type: string
description: Custom Slurm image for Slurm clusters.
GPUClusterUpdateRequest_2:
type: object
properties:
cluster_id:
type: string
cluster_type:
enum:
- UNKNOWN_TYPE
- KUBERNETES
- SLURM
type: string
format: enum
num_gpus:
type: integer
format: uint32
SharedVolumeCreateRequest:
type: object
properties:
volume_name:
type: string
size_tib:
type: integer
description: Volume size in whole tebibytes (TiB).
format: uint32
region:
type: string
GPUClusterCreateResponse:
type: object
properties:
cluster_id:
type: string
status:
enum:
- UNKNOWN_STATUS
- PENDING
- QUEUED
- WAITING_CONTROL_PLANE
- WAITING_DATA_PLANE
- READY
- FAILED
type: string
format: enum
GPUClusterGPUWorkerNode:
type: object
required:
- node_id
- node_name
- status
- host_name
- num_cpu_cores
- num_gpus
- memory_gib
- networks
properties:
node_id:
type: string
node_name:
type: string
status:
type: string
host_name:
type: string
num_cpu_cores:
type: integer
num_gpus:
type: integer
memory_gib:
type: number
networks:
type: array
items:
type: string
instance_id:
type: string
GPUClusterGPUWorkerNode_2:
type: object
properties:
node_id:
type: string
node_name:
type: string
status:
type: string
host_name:
type: string
num_cpu_cores:
type: integer
format: uint32
num_gpus:
type: integer
format: uint32
memory_gib:
type: number
format: float
networks:
type: array
items:
type: string
GPUClusterVolume_2:
type: object
properties:
volume_id:
type: string
volume_name:
type: string
size_tib:
type: integer
format: uint32
status:
type: string
GPUClusterControlPlaneNode:
type: object
required:
- node_id
- node_name
- status
- host_name
- num_cpu_cores
- memory_gib
- network
properties:
node_id:
type: string
node_name:
type: string
status:
type: string
host_name:
type: string
num_cpu_cores:
type: integer
memory_gib:
type: number
network:
type: string
GPUClusterInfo:
type: object
required:
- cluster_id
- cluster_type
- region
- gpu_type
- cluster_name
- cuda_version
- nvidia_driver_version
- volumes
- status
- control_plane_nodes
- gpu_worker_nodes
- kube_config
- num_gpus
properties:
cluster_id:
type: string
cluster_type:
description: Type of cluster.
enum:
- KUBERNETES
- SLURM
region:
type: string
gpu_type:
enum:
- H100_SXM
- H200_SXM
- RTX_6000_PCI
- L40_PCIE
- B200_SXM
- H100_SXM_INF
cluster_name:
type: string
duration_hours:
type: integer
volumes:
type: array
items:
$ref: '#/components/schemas/GPUClusterVolume'
status:
description: Current status of the GPU cluster.
enum:
- WaitingForControlPlaneNodes
- WaitingForDataPlaneNodes
- WaitingForSubnet
- WaitingForSharedVolume
- InstallingDrivers
- RunningAcceptanceTests
- Paused
- OnDemandComputePaused
- Ready
- Degraded
- Deleting
control_plane_nodes:
type: array
items:
$ref: '#/components/schemas/GPUClusterControlPlaneNode'
gpu_worker_nodes:
type: array
items:
$ref: '#/components/schemas/GPUClusterGPUWorkerNode'
kube_config:
type: string
num_gpus:
type: integer
slurm_shm_size_gib:
type: integer
capacity_pool_id:
type: string
reservation_start_time:
type: string
format: date-time
reservation_end_time:
type: string
format: date-time
install_traefik:
type: boolean
cuda_version:
type: string
nvidia_driver_version:
type: string
created_at:
type: string
format: date-time
GPUClusterVolume:
type: object
required:
- volume_id
- volume_name
- size_tib
- status
properties:
volume_id:
type: string
volume_name:
type: string
size_tib:
type: integer
status:
type: string
GPUClusterControlPlaneNode_2:
type: object
properties:
node_id:
type: string
node_name:
type: string
status:
type: string
host_name:
type: string
num_cpu_cores:
type: integer
format: uint32
memory_gib:
type: number
format: float
network:
type: string
GPUClusterUpdateRequest:
type: object
properties:
cluster_type:
description: Type of cluster to update.
enum:
- KUBERNETES
- SLURM
num_gpus:
description: Number of GPUs to allocate in the cluster. This must be multiple of 8. For example, 8, 16 or 24
type: integer
reservation_end_time:
type: string
description: Timestamp at which the cluster should be decommissioned. Only accepted for prepaid clusters.
format: date-time
GPUClustersSharedVolumeCreateRequest:
type: object
required:
- volume_name
- size_tib
- region
properties:
volume_name:
description: Customizable name of the volume to create.
type: string
size_tib:
description: Volume size in whole tebibytes (TiB).
type: integer
region:
type: string
description: Region name. Usable regions can be found from `client.clusters.list_regions()`
GPUClusterInfo_2:
type: object
properties:
cluster_id:
type: string
cluster_type:
enum:
- UNKNOWN_TYPE
- KUBERNETES
- SLURM
type: string
format: enum
region:
type: string
gpu_type:
enum:
- UNKNOWN_GPU_TYPE
- H100_SXM
- H200_SXM
- RTX_6000_PCI
type: string
format: enum
cluster_name:
type: string
duration_hours:
type: integer
format: uint32
driver_version:
enum:
- UNKNOWN_DRIVER
- CUDA_12_5_555
- CUDA_12_6_560
- CUDA_12_6_565
- CUDA_12_8_570
type: string
format: enum
volumes:
type: array
items:
$ref: '#/components/schemas/GPUClusterVolume_2'
status:
type: string
control_plane_nodes:
type: array
items:
$ref: '#/components/schemas/GPUClusterControlPlaneNode_2'
gpu_worker_nodes:
type: array
items:
$ref: '#/components/schemas/GPUClusterGPUWorkerNode_2'
kube_config:
type: string
num_gpus:
type: integer
format: int32
securitySchemes:
bearerAuth:
type: http
scheme: bearer
x-bearer-format: bearer
x-default: default