---
title: "Create Pod"
method: POST
path: "/v2/pods"
tags: ["API v2", "Pods v2"]
---

# Create Pod

`POST /v2/pods`

Create a new pod

## Request body

- PodV2CreateRequest — Pod Create Request v2
  - `regions` string[] — Acceptable region codes
  - `name` string, required — Pod name
  - `image` string, required — Docker image name
  - `containerRegistryAuthId` integer — Container registry auth ID
  - `imageRegistry` string — Image registry URL
  - `imagePublicType` 'PUBLIC' | 'PRIVATE' — Image type: PUBLIC or PRIVATE
  - `resourceType` 'GPU' | 'CPU' — Resource type: GPU or CPU
  - `gpuType` string, required — GPU type
  - `gpuCount` integer, required — GPU count (must be power of 2)
  - `isSpot` boolean — Create on Spot resource when true
  - `maxPrice` number — Spot instance max hourly price cap for the whole machine; only valid when isSpot=true
  - `shmInGb` integer — Shared memory size in GB
  - `minSingleCardRamInGb` integer — Minimum single card RAM in GB
  - `minSingleCardVramInGb` integer — Minimum single card VRAM in GB
  - `minSingleCardVcpu` integer — Minimum single card vCPU count
  - `containerVolumeInGb` integer — Container volume size in GB
  - `initializationCommand` string — Initialization command
  - `environmentVars` KeyValuePairDTO[] — Environment variables
    - `key` string, required — key
    - `value` string, required — value
  - `expose` OpenapiPodExposePortRequest[] — Ports to expose
    - `port` integer, required — port
    - `protocol` 'HTTP' | 'TCP' — protocol
  - `volumes` PodV2VolumeRequest[] — Existing volumes to mount
    - `id` string, required — Volume ID returned by /v2/volumes, string to avoid JavaScript int64 precision loss
    - `mountPath` string, required — Mount path inside the container
  - `callbackUrl` string — Pod lifecycle webhook callback URL. When creating a Pod, you can provide a `callbackUrl` in the request body. The platform will send HTTP POST notifications to this URL whenever the Pod transitions into a key lifecycle state (RUNNING, TERMINATED, FAILED, or DEGRADED).

## Response `200`

OK

## Other responses

- `400` — Bad Request
- `500` — Internal Server Error
- `10000` — Pod created successfully
- `10001` — Invalid request parameters

---

[API](https://skmtc.net/yottalabs/apis/docs-yottalabs-ai.md) · [All operations](https://skmtc.net/yottalabs/apis/docs-yottalabs-ai/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/yottalabs/docs-yottalabs-ai/revisions/998cc08df103/schema)
