Pods
List pods
Returns pods owned by the authenticated user. Cluster member
pods are excluded by default; set includeClusterPods=true to include
them (each carries a non-null cluster membership block).
GET
/
v2
/
pods
List pods
curl --request GET \
--url https://api.runpod.io/v2/pods \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.runpod.io/v2/pods"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.runpod.io/v2/pods', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.runpod.io/v2/pods",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.runpod.io/v2/pods"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.runpod.io/v2/pods")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.runpod.io/v2/pods")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"pods": [
{
"id": "7h9k2m4n6p",
"name": "pytorch-training",
"image": "runpod/pytorch:2.8.0-py3.11-cuda12.8.1",
"args": "",
"disk": 50,
"ports": [
"8888/http",
"22/tcp"
],
"env": {
"MODEL_NAME": "llama-3"
},
"registry": null,
"status": "RUNNING",
"actions": [
"stop",
"restart",
"terminate"
],
"mounts": {
"persistent": {
"size": 20,
"path": "/workspace"
}
},
"gpu": {
"id": "NVIDIA GeForce RTX 4090",
"count": 1
},
"cloud": "SECURE",
"dataCenterId": "US-KS-2",
"ssh": {
"proxy": {
"host": "ssh.runpod.io",
"port": 22,
"username": "7h9k2m4n6p-64411eb2",
"command": "ssh 7h9k2m4n6p-64411eb2@ssh.runpod.io"
},
"direct": {
"host": "195.26.233.3",
"port": 34446,
"username": "root",
"command": "ssh root@195.26.233.3 -p 34446"
}
},
"template": "9x4m2p7v",
"cost": 0.44,
"locked": false,
"globalNetworking": {
"enabled": false
},
"runtime": {
"uptime": 3600,
"ports": [
{
"private": 22,
"public": 34446,
"type": "tcp",
"ip": "195.26.233.3"
}
]
},
"createdAt": "2026-06-01T12:00:00Z",
"startedAt": "2026-06-01T12:02:00Z"
}
]
}{
"title": "Unauthorized",
"status": 401,
"detail": "missing bearer token"
}{
"title": "Forbidden",
"status": 403,
"detail": "access denied"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "rate limit exceeded for the minute window"
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"errors": [
"<string>"
]
}Authorizations
Runpod API key authentication. Generate an API key in the Runpod console and send it in the Authorization header as Bearer <api_key>. Keys are scoped to the permissions granted when created; requests may return 403 when a valid key lacks access to the requested resource or action.
Query Parameters
Include cluster member pods in the result. Defaults to false.
Response
OK
Show child attributes
Show child attributes
Last modified on August 14, 2026
Was this page helpful?
⌘I
List pods
curl --request GET \
--url https://api.runpod.io/v2/pods \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.runpod.io/v2/pods"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.runpod.io/v2/pods', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.runpod.io/v2/pods",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.runpod.io/v2/pods"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.runpod.io/v2/pods")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.runpod.io/v2/pods")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"pods": [
{
"id": "7h9k2m4n6p",
"name": "pytorch-training",
"image": "runpod/pytorch:2.8.0-py3.11-cuda12.8.1",
"args": "",
"disk": 50,
"ports": [
"8888/http",
"22/tcp"
],
"env": {
"MODEL_NAME": "llama-3"
},
"registry": null,
"status": "RUNNING",
"actions": [
"stop",
"restart",
"terminate"
],
"mounts": {
"persistent": {
"size": 20,
"path": "/workspace"
}
},
"gpu": {
"id": "NVIDIA GeForce RTX 4090",
"count": 1
},
"cloud": "SECURE",
"dataCenterId": "US-KS-2",
"ssh": {
"proxy": {
"host": "ssh.runpod.io",
"port": 22,
"username": "7h9k2m4n6p-64411eb2",
"command": "ssh 7h9k2m4n6p-64411eb2@ssh.runpod.io"
},
"direct": {
"host": "195.26.233.3",
"port": 34446,
"username": "root",
"command": "ssh root@195.26.233.3 -p 34446"
}
},
"template": "9x4m2p7v",
"cost": 0.44,
"locked": false,
"globalNetworking": {
"enabled": false
},
"runtime": {
"uptime": 3600,
"ports": [
{
"private": 22,
"public": 34446,
"type": "tcp",
"ip": "195.26.233.3"
}
]
},
"createdAt": "2026-06-01T12:00:00Z",
"startedAt": "2026-06-01T12:02:00Z"
}
]
}{
"title": "Unauthorized",
"status": 401,
"detail": "missing bearer token"
}{
"title": "Forbidden",
"status": 403,
"detail": "access denied"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "rate limit exceeded for the minute window"
}{
"title": "<string>",
"status": 123,
"detail": "<string>",
"errors": [
"<string>"
]
}