diff --git a/api-reference-v2/account/list-registered-ssh-public-keys.mdx b/api-reference-v2/account/list-registered-ssh-public-keys.mdx index 8f31c233..22bf15a8 100644 --- a/api-reference-v2/account/list-registered-ssh-public-keys.mdx +++ b/api-reference-v2/account/list-registered-ssh-public-keys.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/account/ssh-keys description: "List the SSH public keys registered to your Runpod account and used to authenticate secure connections to newly created Pods." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/account/replace-registered-ssh-public-keys.mdx b/api-reference-v2/account/replace-registered-ssh-public-keys.mdx index 47e1d6f0..21ab8f11 100644 --- a/api-reference-v2/account/replace-registered-ssh-public-keys.mdx +++ b/api-reference-v2/account/replace-registered-ssh-public-keys.mdx @@ -1,4 +1,4 @@ --- openapi: put /v2/account/ssh-keys description: "Replace all SSH public keys registered to your Runpod account, remove omitted keys, and apply the new set to subsequently created Pods." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/billing/get-aggregated-billing-history.mdx b/api-reference-v2/billing/get-aggregated-billing-history.mdx index 9c1d126f..3057411d 100644 --- a/api-reference-v2/billing/get-aggregated-billing-history.mdx +++ b/api-reference-v2/billing/get-aggregated-billing-history.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/billing description: "Retrieve time-bucketed total Runpod spend across Pods, Serverless, storage, Public Endpoints, and Clusters for the authenticated account." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/billing/get-cluster-billing-history.mdx b/api-reference-v2/billing/get-cluster-billing-history.mdx index 3eba2cdd..80b4b511 100644 --- a/api-reference-v2/billing/get-cluster-billing-history.mdx +++ b/api-reference-v2/billing/get-cluster-billing-history.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/billing/clusters description: "Retrieve time-bucketed Runpod Cluster billing history, including GPU compute, disk, inter-node networking, and total costs." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/billing/get-network-volume-billing-history.mdx b/api-reference-v2/billing/get-network-volume-billing-history.mdx index 681e77cd..6ab4b8a9 100644 --- a/api-reference-v2/billing/get-network-volume-billing-history.mdx +++ b/api-reference-v2/billing/get-network-volume-billing-history.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/billing/network-volumes description: "Retrieve time-bucketed billing history for one or all Runpod network volumes, including storage tiers, totals, and query metadata." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/billing/get-pod-billing-history.mdx b/api-reference-v2/billing/get-pod-billing-history.mdx index d9bd7f29..0b5d46a4 100644 --- a/api-reference-v2/billing/get-pod-billing-history.mdx +++ b/api-reference-v2/billing/get-pod-billing-history.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/billing/pods description: "Retrieve time-bucketed billing details for one or all Runpod Pods, including GPU, CPU, disk, total costs, and query metadata." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/billing/get-public-endpoint-billing-history.mdx b/api-reference-v2/billing/get-public-endpoint-billing-history.mdx index c473fa7b..339c69d0 100644 --- a/api-reference-v2/billing/get-public-endpoint-billing-history.mdx +++ b/api-reference-v2/billing/get-public-endpoint-billing-history.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/billing/endpoints description: "Retrieve time-bucketed billing history for Runpod Public Endpoints, including endpoint totals and resolved query metadata." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/billing/get-serverless-billing-history.mdx b/api-reference-v2/billing/get-serverless-billing-history.mdx index 977901f9..a3877743 100644 --- a/api-reference-v2/billing/get-serverless-billing-history.mdx +++ b/api-reference-v2/billing/get-serverless-billing-history.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/billing/serverless description: "Retrieve time-bucketed billing history for one or all Runpod Serverless endpoints, including compute, disk, platform, and total costs." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/catalog/get-a-cpu-type.mdx b/api-reference-v2/catalog/get-a-cpu-type.mdx index ed598afa..cb37ed4b 100644 --- a/api-reference-v2/catalog/get-a-cpu-type.mdx +++ b/api-reference-v2/catalog/get-a-cpu-type.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/catalog/cpus/{id} description: "Retrieve one Runpod CPU type with pricing and optional availability details for a specified product and deployment context." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/catalog/get-a-gpu-type.mdx b/api-reference-v2/catalog/get-a-gpu-type.mdx index 1673ce5c..63e6e698 100644 --- a/api-reference-v2/catalog/get-a-gpu-type.mdx +++ b/api-reference-v2/catalog/get-a-gpu-type.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/catalog/gpus/{id} description: "Retrieve one Runpod GPU type with pricing and optional availability details for a specified product and deployment context." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/catalog/list-cpu-types.mdx b/api-reference-v2/catalog/list-cpu-types.mdx index 2deb87a1..cd7d889a 100644 --- a/api-reference-v2/catalog/list-cpu-types.mdx +++ b/api-reference-v2/catalog/list-cpu-types.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/catalog/cpus description: "List available Runpod CPU types with pricing and optional availability details for a specified product and deployment context." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/catalog/list-data-centers.mdx b/api-reference-v2/catalog/list-data-centers.mdx index a21e03dc..38754789 100644 --- a/api-reference-v2/catalog/list-data-centers.mdx +++ b/api-reference-v2/catalog/list-data-centers.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/catalog/datacenters description: "List Runpod data centers with region, compliance, storage, networking, and optional GPU or CPU availability details." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/catalog/list-gpu-types.mdx b/api-reference-v2/catalog/list-gpu-types.mdx index 3a122780..5d102c0e 100644 --- a/api-reference-v2/catalog/list-gpu-types.mdx +++ b/api-reference-v2/catalog/list-gpu-types.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/catalog/gpus description: "List available Runpod GPU types with pricing and optional availability filters by product, country, and deployment context." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/catalog/list-public-templates.mdx b/api-reference-v2/catalog/list-public-templates.mdx index 7dfb62ec..91658fa7 100644 --- a/api-reference-v2/catalog/list-public-templates.mdx +++ b/api-reference-v2/catalog/list-public-templates.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/catalog/templates description: "List Runpod public templates by official, verified, or community source and inspect reusable Pod and Serverless configurations." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/clusters/create-a-cluster.mdx b/api-reference-v2/clusters/create-a-cluster.mdx index 317e2a62..4784d8a1 100644 --- a/api-reference-v2/clusters/create-a-cluster.mdx +++ b/api-reference-v2/clusters/create-a-cluster.mdx @@ -1,4 +1,4 @@ --- openapi: post /v2/clusters description: "Create a multi-node Runpod Cluster with a consistent compute shape and container configuration across every member Pod." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/clusters/delete-a-cluster.mdx b/api-reference-v2/clusters/delete-a-cluster.mdx index 3b2ea825..b5ab7c14 100644 --- a/api-reference-v2/clusters/delete-a-cluster.mdx +++ b/api-reference-v2/clusters/delete-a-cluster.mdx @@ -1,4 +1,4 @@ --- openapi: delete /v2/clusters/{id} description: "Permanently delete a Runpod Cluster and terminate all of its member Pods, with the response confirming the deleted Cluster." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/clusters/list-a-clusters-pods.mdx b/api-reference-v2/clusters/list-a-clusters-pods.mdx index a5121681..fcbb88f8 100644 --- a/api-reference-v2/clusters/list-a-clusters-pods.mdx +++ b/api-reference-v2/clusters/list-a-clusters-pods.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/clusters/{id}/pods description: "List every Pod in a Runpod Cluster with each member's complete configuration and status, beyond the aggregate counts in the Cluster summary." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/clusters/list-clusters.mdx b/api-reference-v2/clusters/list-clusters.mdx index 3bee9226..4ae2f7d3 100644 --- a/api-reference-v2/clusters/list-clusters.mdx +++ b/api-reference-v2/clusters/list-clusters.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/clusters description: "List all Runpod Clusters owned by the authenticated user, including each Cluster's configuration, status, and aggregate Pod counts." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/network-volumes/create-a-network-volume.mdx b/api-reference-v2/network-volumes/create-a-network-volume.mdx index d607875e..f24aab90 100644 --- a/api-reference-v2/network-volumes/create-a-network-volume.mdx +++ b/api-reference-v2/network-volumes/create-a-network-volume.mdx @@ -1,4 +1,4 @@ --- openapi: post /v2/network-volumes description: "Create a persistent Runpod network volume with a name, size, data center, and storage tier for use by Pods and Serverless workers." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/network-volumes/delete-a-network-volume.mdx b/api-reference-v2/network-volumes/delete-a-network-volume.mdx index 2fd1908d..dff57058 100644 --- a/api-reference-v2/network-volumes/delete-a-network-volume.mdx +++ b/api-reference-v2/network-volumes/delete-a-network-volume.mdx @@ -1,4 +1,4 @@ --- openapi: delete /v2/network-volumes/{id} description: "Permanently delete a Runpod network volume, release its persistent storage, and confirm the removed volume in the response." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/network-volumes/get-a-network-volume.mdx b/api-reference-v2/network-volumes/get-a-network-volume.mdx index 7893997b..2da9d7f7 100644 --- a/api-reference-v2/network-volumes/get-a-network-volume.mdx +++ b/api-reference-v2/network-volumes/get-a-network-volume.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/network-volumes/{id} description: "Retrieve a Runpod network volume by ID with its name, size, data center, storage tier, and current resource details." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/network-volumes/list-network-volumes.mdx b/api-reference-v2/network-volumes/list-network-volumes.mdx index 8059cfe0..5f0dbe36 100644 --- a/api-reference-v2/network-volumes/list-network-volumes.mdx +++ b/api-reference-v2/network-volumes/list-network-volumes.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/network-volumes description: "List all network volumes owned by the authenticated Runpod user, including each volume's size, data center, and storage tier." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/openapi.json b/api-reference-v2/openapi.json index 00efd737..d9e0e43e 100644 --- a/api-reference-v2/openapi.json +++ b/api-reference-v2/openapi.json @@ -650,7 +650,7 @@ } } }, - "GpuConfig": { + "BaseGpuConfig": { "type": "object", "required": [ "id" @@ -674,11 +674,45 @@ } } }, + "GpuConfig": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseGpuConfig" + }, + { + "type": "object", + "required": [ + "vcpuCount", + "memory" + ], + "properties": { + "vcpuCount": { + "type": "number", + "format": "double", + "minimum": 1, + "description": "Total vCPU count allocated to the pod across all requested GPUs.", + "examples": [ + 2 + ] + }, + "memory": { + "type": "number", + "format": "double", + "minimum": 1, + "description": "Total system RAM in GB allocated to the pod across all requested GPUs.", + "examples": [ + 8 + ] + } + } + } + ] + }, "CreateGpuConfig": { "description": "GPU request for a pod create. Carries the CUDA host constraints, which\nlive here rather than at the body's top level so they are\nunrepresentable on a CPU pod.\n", "allOf": [ { - "$ref": "#/components/schemas/GpuConfig" + "$ref": "#/components/schemas/BaseGpuConfig" }, { "type": "object", @@ -704,6 +738,22 @@ "examples": [ "12.1" ] + }, + "minRamPerGpu": { + "type": "integer", + "minimum": 1, + "description": "Minimum host system RAM in GB per requested GPU. This is a placement filter, not a resource request. The actual total allocated system RAM may be higher and is returned in gpu.memory.", + "examples": [ + 8 + ] + }, + "minVcpuCountPerGpu": { + "type": "integer", + "minimum": 1, + "description": "Minimum host vCPU count per requested GPU. This is a placement filter, not a resource request. The actual total allocated vCPU count may be higher and is returned in gpu.vcpuCount.", + "examples": [ + 2 + ] } } } @@ -804,7 +854,7 @@ "run": { "type": "string", "format": "uri", - "description": "URL for asynchronously submitting a queued job.", + "description": "URL for asynchronously submitting a queued job.\nSee the [/run operation reference](https://docs.runpod.io/serverless/endpoints/operation-reference#/run) for request and response bodies.", "examples": [ "https://api.runpod.ai/v2/4m7x2k9q/run" ] @@ -812,7 +862,7 @@ "runSync": { "type": "string", "format": "uri", - "description": "URL for synchronously submitting a queued job. Accepts an optional `?wait=x` query parameter to control how long the request waits for job completion, defaulting to 90 seconds.", + "description": "URL for synchronously submitting a queued job. Accepts an optional `?wait=x` query parameter to control how long the request waits for job completion, defaulting to 90 seconds.\nSee the [/runsync operation reference](https://docs.runpod.io/serverless/endpoints/operation-reference#/runsync) for request and response bodies.", "examples": [ "https://api.runpod.ai/v2/4m7x2k9q/runsync" ] @@ -820,7 +870,7 @@ "status": { "type": "string", "format": "uri", - "description": "Check the current state, execution statistics, and results of a previously submitted job.", + "description": "Check the current state, execution statistics, and results of a previously submitted job.\nSee the [/status operation reference](https://docs.runpod.io/serverless/endpoints/operation-reference#/status) for request and response bodies.", "examples": [ "https://api.runpod.ai/v2/4m7x2k9q/status/{job_id}" ] @@ -828,7 +878,7 @@ "stream": { "type": "string", "format": "uri", - "description": "Receive incremental results as they become available from a job that generates output progressively.", + "description": "Receive incremental results as they become available from a job that generates output progressively.\nSee the [/stream operation reference](https://docs.runpod.io/serverless/endpoints/operation-reference#/stream) for request and response bodies.", "examples": [ "https://api.runpod.ai/v2/4m7x2k9q/stream/{job_id}" ] @@ -836,7 +886,7 @@ "cancel": { "type": "string", "format": "uri", - "description": "Stop an in-progress job or remove a queued job before it starts.", + "description": "Stop an in-progress job or remove a queued job before it starts.\nSee the [/cancel operation reference](https://docs.runpod.io/serverless/endpoints/operation-reference#/cancel) for request and response bodies.", "examples": [ "https://api.runpod.ai/v2/4m7x2k9q/cancel/{job_id}" ] @@ -844,7 +894,7 @@ "retry": { "type": "string", "format": "uri", - "description": "Requeue a failed or timed-out job without submitting a new request.", + "description": "Requeue a failed or timed-out job without submitting a new request.\nSee the [/retry operation reference](https://docs.runpod.io/serverless/endpoints/operation-reference#/retry) for request and response bodies.", "examples": [ "https://api.runpod.ai/v2/4m7x2k9q/retry/{job_id}" ] @@ -852,7 +902,7 @@ "purgeQueue": { "type": "string", "format": "uri", - "description": "Remove all pending jobs from the queue. Does not affect in-progress jobs.", + "description": "Remove all pending jobs from the queue. Does not affect in-progress jobs.\nSee the [/purge-queue operation reference](https://docs.runpod.io/serverless/endpoints/operation-reference#/purge-queue) for request and response bodies.", "examples": [ "https://api.runpod.ai/v2/4m7x2k9q/purge-queue" ] @@ -860,7 +910,7 @@ "health": { "type": "string", "format": "uri", - "description": "Overview of an endpoint's operational status.", + "description": "Overview of an endpoint's operational status.\nSee the [/health operation reference](https://docs.runpod.io/serverless/endpoints/operation-reference#/health) for request and response bodies.", "examples": [ "https://api.runpod.ai/v2/4m7x2k9q/health" ] @@ -878,7 +928,7 @@ "base": { "type": "string", "format": "uri", - "description": "Base URL for worker-defined HTTP and WebSocket paths.", + "description": "Base URL for worker-defined HTTP and WebSocket paths.\nSee [Load balancing endpoints](https://docs.runpod.io/serverless/load-balancing/overview).", "examples": [ "https://4m7x2k9q.api.runpod.ai" ] @@ -886,7 +936,7 @@ "health": { "type": "string", "format": "uri", - "description": "Health check endpoint the load balancer will periodically ping to decide if the worker is healthy enough to receive traffic. Configurable by setting the `HEALTH_CHECK_PATH` environment variable. Defaults to `/ping` if the variable is not set.", + "description": "Health check endpoint the load balancer will periodically ping to decide if the worker is healthy enough to receive traffic. Configurable by setting the `HEALTH_CHECK_PATH` environment variable. Defaults to `/ping` if the variable is not set.\nSee [Health checks](https://docs.runpod.io/serverless/load-balancing/overview#health-checks) for the response codes it interprets.", "examples": [ "https://4m7x2k9q.api.runpod.ai/ping" ] @@ -894,7 +944,7 @@ } }, "EndpointRequestUrls": { - "description": "Request URLs appropriate to the endpoint's top-level `type`.\nQueue-based endpoints provide job submission and management URLs;\nload-balancing endpoints provide `base` and `health` because their\nremaining paths are worker-defined.\n", + "description": "Request URLs appropriate to the endpoint's top-level `type`.\nQueue-based endpoints provide job submission and management URLs;\nload-balancing endpoints provide `base` and `health` because their\nremaining paths are worker-defined.\n\nRequest and response bodies for the queue-based URLs are documented in\nthe [serverless operation reference](https://docs.runpod.io/serverless/endpoints/operation-reference).\nLoad-balancing endpoints are documented in\n[Load balancing endpoints](https://docs.runpod.io/serverless/load-balancing/overview).", "oneOf": [ { "$ref": "#/components/schemas/QueueBasedRequestUrls" @@ -1501,6 +1551,142 @@ "MANUAL" ] }, + "BuildState": { + "type": "string", + "description": "GitHub build lifecycle state. `COMPLETED`, `FAILED`, `CANCELLED`, and\n`TEST_FAILED` are terminal; `PENDING`, `BUILDING`, `UPLOADING`, and\n`TESTING` are live.\n", + "x-enum-varnames": [ + "BuildStatePending", + "BuildStateBuilding", + "BuildStateUploading", + "BuildStateTesting", + "BuildStateCompleted", + "BuildStateFailed", + "BuildStateCancelled", + "BuildStateTestFailed" + ], + "enum": [ + "PENDING", + "BUILDING", + "UPLOADING", + "TESTING", + "COMPLETED", + "FAILED", + "CANCELLED", + "TEST_FAILED" + ] + }, + "Build": { + "type": "object", + "required": [ + "id", + "status" + ], + "properties": { + "id": { + "type": "string", + "examples": [ + "build_abc123" + ] + }, + "status": { + "$ref": "#/components/schemas/BuildState" + }, + "commitHash": { + "type": [ + "string", + "null" + ], + "description": "Short hash of the commit that triggered the build.", + "examples": [ + "abc1234" + ] + }, + "commitMessage": { + "type": [ + "string", + "null" + ], + "examples": [ + "bump model" + ] + }, + "branch": { + "type": [ + "string", + "null" + ], + "description": "Git branch the commit was pushed to.", + "examples": [ + "main" + ] + }, + "commitDate": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "When the triggering commit was authored.", + "examples": [ + "2026-06-01T12:00:00Z" + ] + }, + "imageName": { + "type": [ + "string", + "null" + ], + "description": "Fully qualified image the build produced (or will produce).", + "examples": [ + "registry.runpod.net/repo:abc1234" + ] + }, + "startedAt": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "When the build started. Null while the build is still pending.", + "examples": [ + "2026-06-01T12:00:05Z" + ] + }, + "completedAt": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "When the build reached a terminal state. Null while the build is live.", + "examples": [ + "2026-06-01T12:04:31Z" + ] + }, + "error": { + "type": [ + "string", + "null" + ], + "description": "Failure detail for `FAILED` / `TEST_FAILED` builds; null otherwise." + } + } + }, + "ListEndpointBuildsResponse": { + "type": "object", + "required": [ + "builds" + ], + "properties": { + "builds": { + "type": "array", + "description": "Build history, newest first. At most the 100 most recent builds\nare returned; any older build can still be fetched by id via\n`GET /v2/serverless/{id}/builds/{buildId}`.\n", + "items": { + "$ref": "#/components/schemas/Build" + } + } + } + }, "ReleaseDiffEntry": { "type": "object", "required": [ @@ -4956,7 +5142,9 @@ }, "gpu": { "id": "NVIDIA GeForce RTX 4090", - "count": 1 + "count": 1, + "vcpuCount": 16, + "memory": 64 }, "cloud": "SECURE", "dataCenterId": "US-KS-2", @@ -5060,7 +5248,9 @@ "image": "runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404", "gpu": { "id": "NVIDIA GeForce RTX 4090", - "count": 1 + "count": 1, + "minRamPerGpu": 32, + "minVcpuCountPerGpu": 8 }, "disk": 50 } @@ -5115,7 +5305,9 @@ }, "gpu": { "id": "NVIDIA GeForce RTX 4090", - "count": 1 + "count": 1, + "vcpuCount": 16, + "memory": 64 }, "cloud": "SECURE", "dataCenterId": "US-KS-2", @@ -5250,7 +5442,9 @@ }, "gpu": { "id": "NVIDIA GeForce RTX 4090", - "count": 1 + "count": 1, + "vcpuCount": 16, + "memory": 64 }, "cloud": "SECURE", "dataCenterId": "US-KS-2", @@ -5398,7 +5592,9 @@ }, "gpu": { "id": "NVIDIA GeForce RTX 4090", - "count": 1 + "count": 1, + "vcpuCount": 16, + "memory": 64 }, "cloud": "SECURE", "dataCenterId": "US-KS-2", @@ -5747,7 +5943,9 @@ }, "gpu": { "id": "NVIDIA GeForce RTX 4090", - "count": 1 + "count": 1, + "vcpuCount": 16, + "memory": 64 }, "cloud": "SECURE", "dataCenterId": "US-KS-2", @@ -7067,6 +7265,198 @@ } } }, + "/v2/serverless/{id}/builds": { + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Serverless endpoint identifier", + "example": "ep_abc123" + } + ], + "get": { + "operationId": "listEndpointBuilds", + "summary": "List serverless endpoint builds", + "description": "Returns the endpoint's GitHub build history, newest first (RunPod\nGitHub-build integration). At most the 100 most recent builds are\nreturned; any older build can still be fetched by id via\n`GET /v2/serverless/{id}/builds/{buildId}`. Stream a build's logs via\n`/v2/serverless/{id}/builds/{buildId}/logs`.\n", + "tags": [ + "Serverless" + ], + "responses": { + "200": { + "headers": { + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + } + }, + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListEndpointBuildsResponse" + }, + "examples": { + "builds": { + "summary": "Successful response", + "value": { + "builds": [ + { + "id": "build_abc123", + "status": "COMPLETED", + "commitHash": "abc1234", + "commitMessage": "bump model", + "branch": "main", + "commitDate": "2026-06-01T12:00:00Z", + "imageName": "registry.runpod.net/repo:abc1234", + "startedAt": "2026-06-01T12:00:05Z", + "completedAt": "2026-06-01T12:04:31Z", + "error": null + } + ] + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "403": { + "$ref": "#/components/responses/ForbiddenError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + }, + "429": { + "$ref": "#/components/responses/TooManyRequestsError" + }, + "default": { + "headers": { + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + } + }, + "description": "Error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, + "/v2/serverless/{id}/builds/{buildId}": { + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Serverless endpoint identifier", + "example": "ep_abc123" + }, + { + "name": "buildId", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "GitHub build identifier (from GET /v2/serverless/{id}/builds or a release's `buildId`)", + "example": "build_abc123" + } + ], + "get": { + "operationId": "getEndpointBuild", + "summary": "Get a serverless endpoint build", + "description": "Returns one of the endpoint's GitHub builds by id, regardless of age —\nunlike the list, which is capped to recent history.\n", + "tags": [ + "Serverless" + ], + "responses": { + "200": { + "headers": { + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + } + }, + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Build" + }, + "examples": { + "build": { + "summary": "Successful response", + "value": { + "id": "build_abc123", + "status": "COMPLETED", + "commitHash": "abc1234", + "commitMessage": "bump model", + "branch": "main", + "commitDate": "2026-06-01T12:00:00Z", + "imageName": "registry.runpod.net/repo:abc1234", + "startedAt": "2026-06-01T12:00:05Z", + "completedAt": "2026-06-01T12:04:31Z", + "error": null + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "403": { + "$ref": "#/components/responses/ForbiddenError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + }, + "429": { + "$ref": "#/components/responses/TooManyRequestsError" + }, + "default": { + "headers": { + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + } + }, + "description": "Error", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + } + } + } + } + }, "/v2/serverless/{id}/workers/{workerId}/logs": { "parameters": [ { @@ -8415,7 +8805,6 @@ "get": { "operationId": "listDelegations", "summary": "List all ECR delegations", - "description": "Returns every AWS ECR delegation owned by the authenticated user, including repository, image tag, AWS region, and registry URI details.", "tags": [ "Registries" ], @@ -8464,7 +8853,6 @@ "post": { "operationId": "createDelegation", "summary": "Register an ECR delegation", - "description": "Creates an AWS ECR delegation for the specified repository ARN so Runpod can access images from the delegated private repository.", "tags": [ "Registries" ], @@ -8536,7 +8924,6 @@ "delete": { "operationId": "revokeDelegation", "summary": "Revoke an ECR delegation", - "description": "Revokes an AWS ECR delegation by ID, removing Runpod access to images from the associated private repository and returning no response body.", "tags": [ "Registries" ], diff --git a/api-reference-v2/pods/create-a-pod.mdx b/api-reference-v2/pods/create-a-pod.mdx index d50c0dbd..9ae4c3de 100644 --- a/api-reference-v2/pods/create-a-pod.mdx +++ b/api-reference-v2/pods/create-a-pod.mdx @@ -1,4 +1,4 @@ --- openapi: post /v2/pods description: "Create a Runpod Pod with GPU or CPU compute, container or template settings, storage, networking, and deployment constraints." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/pods/get-a-pod.mdx b/api-reference-v2/pods/get-a-pod.mdx index 55e2fcee..5fc828d5 100644 --- a/api-reference-v2/pods/get-a-pod.mdx +++ b/api-reference-v2/pods/get-a-pod.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/pods/{id} description: "Retrieve a Runpod Pod by ID with its compute, container, storage, networking, lifecycle status, and connection details." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/pods/list-pods.mdx b/api-reference-v2/pods/list-pods.mdx index 18be9732..03c9636b 100644 --- a/api-reference-v2/pods/list-pods.mdx +++ b/api-reference-v2/pods/list-pods.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/pods description: "List Pods owned by the authenticated Runpod user, with an option to include member Pods that belong to Runpod Clusters." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/pods/terminate-a-pod.mdx b/api-reference-v2/pods/terminate-a-pod.mdx index ebaee75a..cdd4a9c7 100644 --- a/api-reference-v2/pods/terminate-a-pod.mdx +++ b/api-reference-v2/pods/terminate-a-pod.mdx @@ -1,4 +1,4 @@ --- openapi: delete /v2/pods/{id} description: "Permanently terminate a Runpod Pod, release its compute, and understand what happens to persistent mounts, network volumes, and Cluster members." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/pods/trigger-a-pod-state-transition.mdx b/api-reference-v2/pods/trigger-a-pod-state-transition.mdx index 335293f4..bf5f7b18 100644 --- a/api-reference-v2/pods/trigger-a-pod-state-transition.mdx +++ b/api-reference-v2/pods/trigger-a-pod-state-transition.mdx @@ -1,4 +1,4 @@ --- openapi: post /v2/pods/{id}/action description: "Start, stop, or restart a Runpod Pod by sending a supported state transition action and retrieving the Pod's updated lifecycle state." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/pods/update-a-pod.mdx b/api-reference-v2/pods/update-a-pod.mdx index 912dbd18..344c0f75 100644 --- a/api-reference-v2/pods/update-a-pod.mdx +++ b/api-reference-v2/pods/update-a-pod.mdx @@ -1,4 +1,4 @@ --- openapi: patch /v2/pods/{id} description: "Update selected settings on an existing Runpod Pod while preserving omitted fields, with guidance on mutable fields and restart behavior." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/registries/create-a-container-registry-credential.mdx b/api-reference-v2/registries/create-a-container-registry-credential.mdx index 3b60fbcd..9e7cc94c 100644 --- a/api-reference-v2/registries/create-a-container-registry-credential.mdx +++ b/api-reference-v2/registries/create-a-container-registry-credential.mdx @@ -1,4 +1,4 @@ --- openapi: post /v2/registries description: "Store credentials for a private container registry in Runpod for authenticated image pulls while keeping the saved secrets write-only." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/registries/delete-a-container-registry-credential.mdx b/api-reference-v2/registries/delete-a-container-registry-credential.mdx index b36226d6..236abadf 100644 --- a/api-reference-v2/registries/delete-a-container-registry-credential.mdx +++ b/api-reference-v2/registries/delete-a-container-registry-credential.mdx @@ -1,4 +1,4 @@ --- openapi: delete /v2/registries/{id} description: "Delete a Runpod container registry credential by ID and understand how active Pods and templates that reference it are handled." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/registries/get-a-container-registry-credential.mdx b/api-reference-v2/registries/get-a-container-registry-credential.mdx index 2820357e..e11d1124 100644 --- a/api-reference-v2/registries/get-a-container-registry-credential.mdx +++ b/api-reference-v2/registries/get-a-container-registry-credential.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/registries/{id} description: "Retrieve a Runpod container registry credential by ID while keeping stored usernames and passwords excluded from the response." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/registries/list-container-registries.mdx b/api-reference-v2/registries/list-container-registries.mdx index 7a8930a1..e9574566 100644 --- a/api-reference-v2/registries/list-container-registries.mdx +++ b/api-reference-v2/registries/list-container-registries.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/registries description: "List all container registry credentials owned by the authenticated Runpod user, with secret usernames and passwords excluded." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/serverless/create-a-serverless-endpoint.mdx b/api-reference-v2/serverless/create-a-serverless-endpoint.mdx index 18413251..b5827cd5 100644 --- a/api-reference-v2/serverless/create-a-serverless-endpoint.mdx +++ b/api-reference-v2/serverless/create-a-serverless-endpoint.mdx @@ -1,4 +1,4 @@ --- openapi: post /v2/serverless description: "Create a Runpod Serverless endpoint with GPU or CPU compute, container or template settings, worker limits, and scaling policies." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/serverless/delete-a-serverless-endpoint.mdx b/api-reference-v2/serverless/delete-a-serverless-endpoint.mdx index 2294d40e..d5e1ff0e 100644 --- a/api-reference-v2/serverless/delete-a-serverless-endpoint.mdx +++ b/api-reference-v2/serverless/delete-a-serverless-endpoint.mdx @@ -1,4 +1,4 @@ --- openapi: delete /v2/serverless/{id} description: "Permanently delete a Runpod Serverless endpoint, terminate its workers, cancel queued and active jobs, and remove its bound template." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/serverless/get-a-serverless-endpoint-build.mdx b/api-reference-v2/serverless/get-a-serverless-endpoint-build.mdx new file mode 100644 index 00000000..3c6d02e0 --- /dev/null +++ b/api-reference-v2/serverless/get-a-serverless-endpoint-build.mdx @@ -0,0 +1,4 @@ +--- +openapi: get /v2/serverless/{id}/builds/{buildId} +description: "Retrieve a single GitHub build for a Runpod Serverless endpoint by its build ID, returning that build regardless of how old it is." +--- \ No newline at end of file diff --git a/api-reference-v2/serverless/get-a-serverless-endpoint.mdx b/api-reference-v2/serverless/get-a-serverless-endpoint.mdx index 467a9948..dba0bd9e 100644 --- a/api-reference-v2/serverless/get-a-serverless-endpoint.mdx +++ b/api-reference-v2/serverless/get-a-serverless-endpoint.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/serverless/{id} description: "Retrieve a Runpod Serverless endpoint by ID with its compute, worker, scaling, container, storage, and current status settings." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/serverless/list-serverless-endpoint-builds.mdx b/api-reference-v2/serverless/list-serverless-endpoint-builds.mdx new file mode 100644 index 00000000..a712c067 --- /dev/null +++ b/api-reference-v2/serverless/list-serverless-endpoint-builds.mdx @@ -0,0 +1,4 @@ +--- +openapi: get /v2/serverless/{id}/builds +description: "List a Runpod Serverless endpoint's GitHub build history, newest first, capped to the 100 most recent builds, with older builds fetchable by ID." +--- \ No newline at end of file diff --git a/api-reference-v2/serverless/list-serverless-endpoint-releases.mdx b/api-reference-v2/serverless/list-serverless-endpoint-releases.mdx index 8303ab22..c3531537 100644 --- a/api-reference-v2/serverless/list-serverless-endpoint-releases.mdx +++ b/api-reference-v2/serverless/list-serverless-endpoint-releases.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/serverless/{id}/releases description: "List a Serverless endpoint's release history, configuration changes, build IDs, and current worker rollout status, newest release first." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/serverless/list-serverless-endpoint-workers.mdx b/api-reference-v2/serverless/list-serverless-endpoint-workers.mdx index 24235a9d..fa0255a8 100644 --- a/api-reference-v2/serverless/list-serverless-endpoint-workers.mdx +++ b/api-reference-v2/serverless/list-serverless-endpoint-workers.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/serverless/{id}/workers description: "List active workers for a Runpod Serverless endpoint with worker status, runtime details, and summary counts grouped by status." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/serverless/list-serverless-endpoints.mdx b/api-reference-v2/serverless/list-serverless-endpoints.mdx index 55a2da93..17ef2d3d 100644 --- a/api-reference-v2/serverless/list-serverless-endpoints.mdx +++ b/api-reference-v2/serverless/list-serverless-endpoints.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/serverless description: "List all Runpod Serverless endpoints owned by the authenticated user, including compute, worker, scaling, and deployment settings." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/serverless/update-a-serverless-endpoint.mdx b/api-reference-v2/serverless/update-a-serverless-endpoint.mdx index 3284e39e..2094594c 100644 --- a/api-reference-v2/serverless/update-a-serverless-endpoint.mdx +++ b/api-reference-v2/serverless/update-a-serverless-endpoint.mdx @@ -1,4 +1,4 @@ --- openapi: patch /v2/serverless/{id} description: "Update selected settings on a Runpod Serverless endpoint, including compute, workers, scaling, storage, and container configuration." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/templates/create-a-template.mdx b/api-reference-v2/templates/create-a-template.mdx index cdd1c925..cea9cd87 100644 --- a/api-reference-v2/templates/create-a-template.mdx +++ b/api-reference-v2/templates/create-a-template.mdx @@ -1,4 +1,4 @@ --- openapi: post /v2/templates description: "Create a reusable Runpod template for Pod and Serverless container settings, including images, storage, ports, environment, and mounts." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/templates/delete-a-template.mdx b/api-reference-v2/templates/delete-a-template.mdx index 6073a0cd..b64e98cb 100644 --- a/api-reference-v2/templates/delete-a-template.mdx +++ b/api-reference-v2/templates/delete-a-template.mdx @@ -1,4 +1,4 @@ --- openapi: delete /v2/templates/{id} description: "Permanently delete an owned Runpod template by ID and understand restrictions when Pods or Serverless endpoints still reference it." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/templates/get-a-template.mdx b/api-reference-v2/templates/get-a-template.mdx index 419ec714..0a42e0d6 100644 --- a/api-reference-v2/templates/get-a-template.mdx +++ b/api-reference-v2/templates/get-a-template.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/templates/{id} description: "Retrieve the complete configuration of an owned or public Runpod template by ID, including settings used to create Pods and endpoints." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/templates/list-templates.mdx b/api-reference-v2/templates/list-templates.mdx index 1d1d234b..4a8f9091 100644 --- a/api-reference-v2/templates/list-templates.mdx +++ b/api-reference-v2/templates/list-templates.mdx @@ -1,4 +1,4 @@ --- openapi: get /v2/templates description: "List all reusable Runpod templates owned by the authenticated user, including Pod and Serverless container configuration details." ---- +--- \ No newline at end of file diff --git a/api-reference-v2/templates/update-a-template.mdx b/api-reference-v2/templates/update-a-template.mdx index 0daa61ec..95758c7e 100644 --- a/api-reference-v2/templates/update-a-template.mdx +++ b/api-reference-v2/templates/update-a-template.mdx @@ -1,4 +1,4 @@ --- openapi: patch /v2/templates/{id} description: "Update selected fields on a Runpod template while preserving omitted settings, with ownership rules and behavior for existing resources." ---- +--- \ No newline at end of file diff --git a/docs.json b/docs.json index c499c4ad..f58cb3bb 100644 --- a/docs.json +++ b/docs.json @@ -258,7 +258,7 @@ "group": "Deployment guides", "pages": [ "instant-clusters/pytorch", - "instant-clusters/axolotl", + "instant-clusters/axolotl", "instant-clusters/slurm" ] } @@ -574,6 +574,8 @@ "api-reference-v2/serverless/update-a-serverless-endpoint", "api-reference-v2/serverless/list-serverless-endpoint-workers", "api-reference-v2/serverless/list-serverless-endpoint-releases", + "api-reference-v2/serverless/list-serverless-endpoint-builds", + "api-reference-v2/serverless/get-a-serverless-endpoint-build", "api-reference-v2/serverless/stream-serverless-worker-logs" ] },