v1

latestOpenAPI 3.1.02026-07-2676123203.9 KB
Pods

Trigger a pod state transition

Triggers a state transition on a pod. Send a JSON body with a single action field, e.g. { "action": "stop" }.

Valid actions:

  • start — boot a stopped pod (EXITED or ERROR) back toward RUNNING.
  • stop — stop a running or provisioning pod, releasing GPU/CPU compute while keeping its disk. The pod moves to EXITED.
  • restart — restart a RUNNING pod's container in place.
  • terminate — permanently delete the pod and release its resources (equivalent to deletePod).

Which actions are valid depends on the pod's current status, and the currently permitted set is published in the pod's actions field: RUNNING allows stop/restart/terminate; EXITED and ERROR allow start/terminate; PROVISIONING and STARTING allow stop/terminate.

start, stop, and restart return 200 with the updated pod. terminate returns 204 with no body. Requesting an action that is not valid for the pod's current status returns 409.

post/v2/pods/{id}/action

Request body

action'start' | 'stop' | 'restart' | 'terminate' required

State transition to trigger on a pod.

Response

Action applied — returns updated pod

adjustedCostPerHrnumber

The effective cost in Runpod credits per hour of running a Pod, adjusted by active Savings Plans.

aiApiIdstring

Synonym for endpointId (legacy name).

consumerUserIdstring

A unique string identifying the Runpod user who rents a Pod.

containerDiskInGbinteger

The amount of disk space, in gigabytes (GB), to allocate on the container disk for a Pod. The data on the container disk is wiped when the Pod restarts. To persist data across Pod restarts, set volumeInGb to configure the Pod network volume.

containerRegistryAuthIdstring

If a Pod is created with a container registry auth, the unique string identifying that container registry auth.

costPerHrnumber

The cost in Runpod credits per hour of running a Pod. Note that the actual cost may be lower if Savings Plans are applied.

cpuFlavorIdstring

If the Pod is a CPU Pod, the unique string identifying the CPU flavor the Pod is running on.

desiredStatus'RUNNING' | 'EXITED' | 'TERMINATED'

The current expected status of a Pod.

dockerEntrypointstring[]

If specified, overrides the ENTRYPOINT for the Docker image run on the created Pod. If [], uses the ENTRYPOINT defined in the image.

dockerStartCmdstring[]

If specified, overrides the start CMD for the Docker image run on the created Pod. If [], uses the start CMD defined in the image.

endpointIdstring

If the Pod is a Serverless worker, a unique string identifying the associated endpoint.

envobject
idstring

A unique string identifying a Pod.

imagestring

The image tag for the container run on a Pod.

interruptibleboolean

Describes how a Pod is rented. An interruptible Pod can be rented at a lower cost but can be stopped at any time to free up resources for another Pod. A reserved Pod is rented at a higher cost but runs until it exits or is manually stopped.

lastStartedAtstring

The UTC timestamp when a Pod was last started.

lastStatusChangestring

A string describing the last lifecycle event on a Pod.

lockedboolean

Set to true to lock a Pod. Locking a Pod disables stopping or resetting the Pod.

machineIdstring

A unique string identifying the host machine a Pod is running on.

memoryInGbnumber

The amount of RAM, in gigabytes (GB), attached to a Pod.

namestring

A user-defined name for the created Pod. The name does not need to be unique.

portMappingsobject nullable

A mapping of internal ports to public ports on a Pod. For example, { "22": 10341 } means that port 22 on the Pod is mapped to port 10341 and is publicly accessible at [public ip]:10341. If the Pod is still initializing, this mapping is not yet determined and will be empty.

portsstring[]

A list of ports exposed on a Pod. Each port is formatted as [port number]/[protocol]. Protocol can be either http or tcp.

publicIpstring ipv4 nullable

The public IP address of a Pod. If the Pod is still initializing, this IP is not yet determined and will be empty.

slsVersioninteger

If the Pod is a Serverless worker, the version of the associated endpoint (see Endpoint Version).

templateIdstring

If a Pod is created with a template, the unique string identifying that template.

vcpuCountnumber

The number of virtual CPUs attached to a Pod.

volumeEncryptedboolean

Set to true if the local network volume of a Pod is encrypted. Can only be set when creating a Pod.

volumeInGbinteger

The amount of disk space, in gigabytes (GB), to allocate on the Pod volume for a Pod. The data on the Pod volume is persisted across Pod restarts. To persist data so that future Pods can access it, create a network volume and set networkVolumeId to attach it to the Pod.

volumeMountPathstring

If either a Pod volume or a network volume is attached to a Pod, the absolute path where the network volume is mounted in the filesystem.

Example response

{
  "adjustedCostPerHr": 0.69,
  "consumerUserId": "user_2PyTJrLzeuwfZilRZ7JhCQDuSqo",
  "containerDiskInGb": 50,
  "containerRegistryAuthId": "clzdaifot0001l90809257ynb",
  "cpuFlavorId": "cpu3c",
  "env": {
    "ENV_VAR": "value"
  },
  "gpu": {
    "count": 1
  },
  "id": "xedezhzb9la3ye",
  "image": "runpod/pytorch:2.1.0-py3.10-cuda11.8.0-devel-ubuntu22.04",
  "lastStartedAt": "2024-07-12T19:14:40.144Z",
  "lastStatusChange": "Rented by User: Fri Jul 12 2024 15:14:40 GMT-0400 (Eastern Daylight Time)",
  "machine": {
    "gpuType": {
      "count": 1
    }
  },
  "machineId": "s194cr8pls2z",
  "memoryInGb": 62,
  "networkVolume": {
    "id": "agv6w2qcg7",
    "name": "my network volume",
    "size": 50,
    "dataCenterId": "EU-RO-1"
  },
  "portMappings": {
    "22": 10341
  },
  "ports": [
    "8888/http",
    "22/tcp"
  ],
  "publicIp": "100.65.0.119",
  "savingsPlans": [
    {
      "costPerHr": 0.21,
      "endTime": "2024-07-12T19:14:40.144Z",
      "gpuTypeId": "NVIDIA GeForce RTX 4090",
      "id": "clkrb4qci0000mb09c7sualzo",
      "podId": "xedezhzb9la3ye",
      "startTime": "2024-05-12T19:14:40.144Z"
    }
  ],
  "vcpuCount": 24,
  "volumeInGb": 20,
  "volumeMountPath": "/workspace"
}