---
title: "Create Pod"
method: POST
path: "/api/v1/pods/"
tags: ["Pods"]
---

# Create Pod

`POST /api/v1/pods/`

## Request body

- BodyCreatePodApiV1PodsPost
  - `pod` PodRequestConfig, required
    - `name` string
    - `cloudId` string, required
    - `gpuType` 'CPU_NODE' | 'A10_24GB' | 'A100_80GB' | 'A100_40GB' | 'A30_24GB' | 'A40_48GB' | 'B200_180GB' | 'B300_262GB' | 'GB200' | 'GB300' | 'RTX3070_8GB' | 'RTX3070_8GB' | 'RTX3080_10GB' | 'RTX3080Ti_12GB' | 'RTX3090_24GB' | 'RTX3090Ti_24GB' | 'RTX4070Ti_12GB' | 'RTX4080_16GB' | 'RTX4080Ti_16GB' | 'RTX4090_24GB' | 'RTX5090_32GB' | 'H100_80GB' | 'H200_96GB' | 'GH200_96GB' | 'H200_141GB' | 'GH200_480GB' | 'GH200_624GB' | 'L4_24GB' | 'L40_48GB' | 'L40S_48GB' | 'RTX4000_8GB' | 'RTX5000_16GB' | 'RTX6000_24GB' | 'RTX8000_48GB' | 'RTX2000Ada_16GB' | 'RTX4000Ada_20GB' | 'RTX5000Ada_32GB' | 'RTX6000Ada_48GB' | 'A2000_6GB' | 'A4000_16GB' | 'A4500_20GB' | 'A5000_24GB' | 'A6000_48GB' | 'V100_16GB' | 'V100_32GB' | 'P100_16GB' | 'T4_16GB' | 'P4_8GB' | 'P40_24GB' | 'RTX_PRO_6000B_96GB', required
    - `socket` 'PCIe' | 'SXM2' | 'SXM3' | 'SXM4' | 'SXM5' | 'SXM6', required
    - `gpuCount` integer, required
    - `diskSize` integer, nullable
    - `vcpus` integer, nullable
    - `memory` integer, nullable
    - `maxPrice` number, nullable
    - `image` 'ubuntu_22_cuda_12' | 'ubuntu_26' | 'cuda_12_1_pytorch_2_2' | 'cuda_11_8_pytorch_2_1' | 'cuda_12_1_pytorch_2_3' | 'cuda_12_1_pytorch_2_4' | 'cuda_12_4_pytorch_2_4' | 'cuda_12_4_pytorch_2_5' | 'cuda_12_4_pytorch_2_6' | 'cuda_12_6_pytorch_2_7' | 'stable_diffusion' | 'axolotl' | 'bittensor' | 'hivemind' | 'petals_llama' | 'vllm_llama_8b' | 'vllm_llama_70b' | 'vllm_llama_405b' | 'custom_template' | 'flux' | 'prime_rl'
    - `customTemplateId` string, nullable
    - `dataCenterId` string, nullable
    - `country` string, nullable
    - `security` 'secure_cloud' | 'community_cloud'
    - `envVars` EnvVar[], nullable
      - `key` string, required — Environment variable key
      - `value` string, required — Environment variable value
    - `jupyterPassword` string, nullable
    - `sshKeyId` string, nullable
    - `autoRestart` boolean, nullable
    - `prepaidForHr` number, nullable — Number of hours to prepay for (used for reserved instances)
  - `provider` ProviderConfig, required
    - `type` 'runpod' | 'fluidstack' | 'lambdalabs' | 'hyperstack' | 'oblivus' | 'cudocompute' | 'scaleway' | 'tensordock' | 'datacrunch' | 'latitude' | 'crusoecloud' | 'massedcompute' | 'akash' | 'primeintellect' | 'primecompute' | 'dc_impala' | 'dc_kudu' | 'dc_roan' | 'nebius' | 'dc_eland' | 'dc_wildebeest' | 'vultr' | 'dc_gnu' | 'denvr', required
  - `disks` string[], nullable
  - `team` TeamConfig
    - `teamId` string, required
  - `team_member_ids` string[], nullable
  - `shared_with_team` boolean

## Response `200`

Successful Response

- APIPodConfig
  - `id` string — Unique identifier for the pod, generated as a UUID.
  - `userId` string, required — ID of the user associated with this pod, if applicable.
  - `teamId` string, nullable — ID of the team owning this pod, if applicable.
  - `walletId` string, nullable — ID of the wallet associated with this pod for billing or resource tracking.
  - `name` string, required — Name of the pod.
  - `type` 'HOSTED' | 'EXTERNAL'
  - `providerType` 'runpod' | 'fluidstack' | 'lambdalabs' | 'hyperstack' | 'oblivus' | 'cudocompute' | 'scaleway' | 'tensordock' | 'datacrunch' | 'latitude' | 'crusoecloud' | 'massedcompute' | 'akash' | 'primeintellect' | 'primecompute' | 'dc_impala' | 'dc_kudu' | 'dc_roan' | 'nebius' | 'dc_eland' | 'dc_wildebeest' | 'vultr' | 'dc_gnu' | 'denvr', required
  - `status` 'PROVISIONING' | 'PENDING' | 'ACTIVE' | 'STOPPED' | 'ERROR' | 'DELETING' | 'UNKNOWN' | 'TERMINATED'
  - `installationStatus` 'PENDING' | 'ACTIVE' | 'FINISHED' | 'ERROR' | 'TERMINATED'
  - `installationFailure` string, nullable — Details about any installation failures that occurred, if applicable.
  - `installationProgress` integer, nullable — Percentage of the installation process completed.
  - `createdAt` string, date-time — Timestamp when the pod was created.
  - `updatedAt` string, date-time — Timestamp when the pod was last updated.
  - `terminatedAt` string, date-time, nullable — Timestamp when the pod was terminated.
  - `gpuName` 'CPU_NODE' | 'A10_24GB' | 'A100_80GB' | 'A100_40GB' | 'A30_24GB' | 'A40_48GB' | 'B200_180GB' | 'B300_262GB' | 'GB200' | 'GB300' | 'RTX3070_8GB' | 'RTX3070_8GB' | 'RTX3080_10GB' | 'RTX3080Ti_12GB' | 'RTX3090_24GB' | 'RTX3090Ti_24GB' | 'RTX4070Ti_12GB' | 'RTX4080_16GB' | 'RTX4080Ti_16GB' | 'RTX4090_24GB' | 'RTX5090_32GB' | 'H100_80GB' | 'H200_96GB' | 'GH200_96GB' | 'H200_141GB' | 'GH200_480GB' | 'GH200_624GB' | 'L4_24GB' | 'L40_48GB' | 'L40S_48GB' | 'RTX4000_8GB' | 'RTX5000_16GB' | 'RTX6000_24GB' | 'RTX8000_48GB' | 'RTX2000Ada_16GB' | 'RTX4000Ada_20GB' | 'RTX5000Ada_32GB' | 'RTX6000Ada_48GB' | 'A2000_6GB' | 'A4000_16GB' | 'A4500_20GB' | 'A5000_24GB' | 'A6000_48GB' | 'V100_16GB' | 'V100_32GB' | 'P100_16GB' | 'T4_16GB' | 'P4_8GB' | 'P40_24GB' | 'RTX_PRO_6000B_96GB', required
  - `gpuCount` integer, required — Number of GPUs allocated to the node.
  - `socket` 'PCIe' | 'SXM2' | 'SXM3' | 'SXM4' | 'SXM5' | 'SXM6', required
  - `priceHr` number, required — Hourly price for running the pod.
  - `stoppedPriceHr` number, nullable — Hourly price when the pod is stopped. If empty then `priceHr` is used.
  - `provisioningPriceHr` number, nullable — Hourly price during the provisioning process. If empty then `priceHr` is used.
  - `environmentType` 'ubuntu_22_cuda_12' | 'ubuntu_26' | 'cuda_12_1_pytorch_2_2' | 'cuda_11_8_pytorch_2_1' | 'cuda_12_1_pytorch_2_3' | 'cuda_12_1_pytorch_2_4' | 'cuda_12_4_pytorch_2_4' | 'cuda_12_4_pytorch_2_5' | 'cuda_12_4_pytorch_2_6' | 'cuda_12_6_pytorch_2_7' | 'stable_diffusion' | 'axolotl' | 'bittensor' | 'hivemind' | 'petals_llama' | 'vllm_llama_8b' | 'vllm_llama_70b' | 'vllm_llama_405b' | 'custom_template' | 'flux' | 'prime_rl'
  - `customTemplateId` string, nullable — ID of the custom template applied to the pod, if applicable.
  - `clusterId` string, nullable — ID of the cluster to which the pod belongs.
  - `primePortMapping` PortMapping[], nullable — Port mapping.
    - `internal` string, required
    - `external` string, required
    - `protocol` 'TCP' | 'UDP', required
    - `usedBy` 'SSH' | 'JUPYTER_NOTEBOOK' | 'WEB_SERVER'
    - `description` string, nullable
  - `sshConnection` union — SSH connection/connections details.
    - string
    - string[]
  - `ip` union — IP address/addresses of the instance.
    - string
    - string[]
  - `resources` InstanceResources
    - `memory` integer, nullable — RAM available (in GB)
    - `disk` integer, nullable — Total disk space (in GB)
    - `shared_disk` integer, nullable — Total external shared disk space (in GB)
    - `vcpus` integer, nullable — vCPUs available
  - `attachedResources` AttachedResources[], nullable — Instance attached resources.
    - `resourceType` 'DISK', required
    - `id` union, required — Unique identifier for the resource.
      - string
      - integer
    - `status` 'UNATTACHED' | 'ATTACHED' | 'MOUNTED'
    - `isDetachable` boolean — Whether the resource is detachable.
    - `mountPath` string — Path to the mount point.
    - `resourcePath` string, nullable — Path to the resource.
    - `size` union — Size of the resource.
      - string
      - integer
    - `isShared` boolean, nullable — Whether the resource is shared.
  - `isSpot` boolean, nullable — Whether the instance is spot.
  - `autoRestart` boolean, nullable — Automatically restart the instance.

## Other responses

- `401` — Authorization failed
- `422` — Invalid request data

---

[API](https://skmtc.net/primeintellect/apis/pi-api.md) · [All operations](https://skmtc.net/primeintellect/apis/pi-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/primeintellect/pi-api/revisions/3d3868828a78/schema)
