Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions accounts-billing/billing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ When your balance drops near your configured threshold, Runpod charges your defa

### Minimum balance requirements

To deploy a new Pod, your account must have at least one hour's worth of credits for your selected configuration. If your balance is insufficient, you can deposit additional funds, select a lower-cost GPU, or use a Spot instance.
To deploy a new Pod, your account must have at least one hour's worth of credits for your selected configuration. If your balance is insufficient, you can deposit additional funds or select a lower-cost GPU.

## Payment methods

Expand All @@ -72,7 +72,7 @@ Each Runpod product has its own pricing structure. See the detailed pricing page

<CardGroup cols={2}>
<Card title="Pods pricing" icon="server" href="/pods/pricing">
On-demand, savings plans, and spot instance pricing for GPU Pods.
On-demand and savings plan pricing for GPU Pods.
</Card>
<Card title="Serverless pricing" icon="bolt" href="/serverless/pricing">
Pay-per-second pricing for flex and active workers.
Expand Down
4 changes: 1 addition & 3 deletions pods/choose-a-pod.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,7 @@ For data-intensive workloads, ensure sufficient volume disk or network volume ca

1. **Right-size your resources**: Start with the minimum viable configuration, then scale up based on actual usage. Development and testing often need less power than production.

2. **Use spot instances**: For fault-tolerant workloads like batch processing or training with checkpoints, spot instances offer significant savings.

3. **Consider savings plans**: For extended usage, Runpod's [savings plans](/pods/pricing#savings-plans) reduce costs for committed usage.
2. **Consider savings plans**: For extended usage, Runpod's [savings plans](/pods/pricing#savings-plans) reduce costs for committed usage.

## Secure Cloud vs Community Cloud

Expand Down
23 changes: 7 additions & 16 deletions pods/pricing.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Pricing"
sidebarTitle: "Pricing"
description: "Explore pricing options for Pods, including on-demand, savings plans, and spot instances."
description: "Explore pricing options for Pods, including on-demand and savings plans."
mode: "wide"
---

Expand All @@ -17,16 +17,15 @@ Pods are billed by the second for compute and storage, with no fees for data ing

## Pricing options

| | On-demand | Savings plan | Spot |
|---|-----------|--------------|------|
| **Pricing** | Standard hourly rate | Discounted (prepaid) | Lowest available |
| **Commitment** | None | 3 or 6 months upfront | None |
| **Interruptible?** | No | No | Yes (5-second warning) |
| **Best for** | Development, testing, variable workloads | Long-running production workloads | Fault-tolerant batch processing |
| | On-demand | Savings plan |
|---|-----------|--------------|
| **Pricing** | Standard hourly rate | Discounted (prepaid) |
| **Commitment** | None | 3 or 6 months upfront |
| **Best for** | Development, testing, variable workloads | Long-running production workloads |

### On-demand

Pay-as-you-go pricing for non-interruptible instances. Resources are dedicated to your Pod and cannot be displaced by other users.
Pay-as-you-go pricing. Resources are dedicated to your Pod and cannot be displaced by other users.

<Warning>
You must have at least one hour's worth of credits for your selected configuration to deploy an on-demand instance.
Expand All @@ -40,14 +39,6 @@ Commit to a 3-month or 6-month term upfront for significant discounts on compute
Savings plans only cover GPU compute costs—[storage costs](/pods/storage/types) are billed at standard rates. Maintain a credit balance for storage, or your Pods will stop when funds run out. Plans are non-refundable and have fixed expiration dates.
</Warning>

### Spot instances

Access spare compute capacity at the lowest prices. Spot instances are interruptible—they can be terminated with only a **5-second warning** (SIGTERM, then SIGKILL) if capacity is needed elsewhere.

<Warning>
Save your work frequently to volume disk or cloud storage. Your volume disk is retained even if your Spot instance is interrupted.
</Warning>

## Storage pricing

| Storage type | Running Pod | Stopped Pod | Notes |
Expand Down
2 changes: 1 addition & 1 deletion references/billing-information.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Every Pod has an hourly cost based on [GPU type](/references/gpu-types). Your Ru
Runpod pre-emptively stops all your Pods when your account balance is projected to cover less than 10 minutes of remaining runtime. This ensures your account retains a small balance to help preserve your data volumes. If your balance is completely drained, all Pods are subject to deletion. Setting up [automatic payments](https://www.console.runpod.io/user/billing) is recommended to avoid service interruptions.
</Important>

You must have at least one hour's worth of runtime in your balance to rent a Pod at your given spec. If your balance is insufficient, consider renting the Pod on Spot, depositing additional funds, or lowering your GPU spec requirements.
You must have at least one hour's worth of runtime in your balance to rent a Pod at your given spec. If your balance is insufficient, consider depositing additional funds or lowering your GPU spec requirements.

## Storage billing

Expand Down
126 changes: 5 additions & 121 deletions sdks/graphql/manage-pods.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,16 @@ For the complete schema, see the [GraphQL Spec](https://graphql-spec.runpod.io/)

| Operation | Mutation/Query |
|-----------|---------------|
| Create on-demand Pod | `podFindAndDeployOnDemand` |
| Create spot Pod | `podRentInterruptable` |
| Create Pod | `podFindAndDeployOnDemand` |
| Start Pod | `podResume` |
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

User Greg Wester requested removal of all spot pod and interruptible pod references from documentation via Slack. Removed podRentInterruptable, podBidResume, spot pod creation/start sections, and minimumBidPrice fields from GraphQL examples.

Source: https://Team.slack.com/archives/C06G367N3FC/p1778098635453069

| Start spot Pod | `podBidResume` |
| Stop Pod | `podStop` |
| List all Pods | `myself { pods { ... } }` |
| Get Pod by ID | `pod(input: {podId: "..."})` |
| List GPU types | `gpuTypes` |

## Create a Pod

### On-demand Pod

On-demand Pods provide guaranteed compute at a fixed price.
Pods provide guaranteed compute at a fixed price.

<Tabs>
<Tab title="cURL">
Expand Down Expand Up @@ -87,72 +83,6 @@ mutation {
</Tab>
</Tabs>

### Spot Pod

Spot Pods offer lower prices but can be interrupted when demand is high.

<Tabs>
<Tab title="cURL">
```bash
curl --request POST \
--header 'content-type: application/json' \
--url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "mutation { podRentInterruptable( input: { bidPerGpu: 0.2, cloudType: SECURE, gpuCount: 1, volumeInGb: 40, containerDiskInGb: 40, minVcpuCount: 2, minMemoryInGb: 15, gpuTypeId: \"NVIDIA RTX A6000\", name: \"Runpod Pytorch\", imageName: \"runpod/pytorch\", dockerArgs: \"\", ports: \"8888/http\", volumeMountPath: \"/workspace\", env: [{ key: \"JUPYTER_PASSWORD\", value: \"your-password\" }] } ) { id imageName env machineId machine { podHostId } } }"}'
```
</Tab>

<Tab title="GraphQL">
```graphql
mutation {
podRentInterruptable(
input: {
bidPerGpu: 0.2
cloudType: SECURE
gpuCount: 1
volumeInGb: 40
containerDiskInGb: 40
minVcpuCount: 2
minMemoryInGb: 15
gpuTypeId: "NVIDIA RTX A6000"
name: "Runpod Pytorch"
imageName: "runpod/pytorch"
dockerArgs: ""
ports: "8888/http"
volumeMountPath: "/workspace"
env: [{ key: "JUPYTER_PASSWORD", value: "your-password" }]
}
) {
id
imageName
env
machineId
machine {
podHostId
}
}
}
```
</Tab>

<Tab title="Output">
```json
{
"data": {
"podRentInterruptable": {
"id": "fkjbybgpwuvmhk",
"imageName": "runpod/pytorch",
"env": ["JUPYTER_PASSWORD=your-password"],
"machineId": "hpvdausak8xb",
"machine": {
"podHostId": "fkjbybgpwuvmhk-64410065"
}
}
}
}
```
</Tab>
</Tabs>

### Filter by CUDA version

Use `allowedCudaVersions` to restrict Pods to machines with specific CUDA versions.
Expand Down Expand Up @@ -195,9 +125,7 @@ mutation {

## Start a Pod

Resume a stopped Pod. Use `podResume` for on-demand Pods or `podBidResume` for spot Pods.

### On-demand Pod
Resume a stopped Pod using the `podResume` mutation.

<Tabs>
<Tab title="cURL">
Expand Down Expand Up @@ -251,45 +179,6 @@ mutation {
}
```

### Spot Pod

<Tabs>
<Tab title="cURL">
```bash
curl --request POST \
--header 'content-type: application/json' \
--url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "mutation { podBidResume( input: { podId: \"YOUR_POD_ID\", bidPerGpu: 0.2, gpuCount: 1 } ) { id desiredStatus imageName } }"}'
```
</Tab>

<Tab title="GraphQL">
```graphql
mutation {
podBidResume(input: { podId: "YOUR_POD_ID", bidPerGpu: 0.2, gpuCount: 1 }) {
id
desiredStatus
imageName
}
}
```
</Tab>

<Tab title="Output">
```json
{
"data": {
"podBidResume": {
"id": "YOUR_POD_ID",
"desiredStatus": "RUNNING",
"imageName": "runpod/tensorflow"
}
}
}
```
</Tab>
</Tabs>

## Stop a Pod

Stopping a Pod releases the GPU while preserving your volume data.
Expand Down Expand Up @@ -560,7 +449,7 @@ Query a specific GPU type to see pricing and availability.
curl --request POST \
--header 'content-type: application/json' \
--url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "query { gpuTypes(input: {id: \"NVIDIA GeForce RTX 3090\"}) { id displayName memoryInGb secureCloud communityCloud lowestPrice(input: {gpuCount: 1}) { minimumBidPrice uninterruptablePrice } } }"}'
--data '{"query": "query { gpuTypes(input: {id: \"NVIDIA GeForce RTX 3090\"}) { id displayName memoryInGb secureCloud communityCloud lowestPrice(input: {gpuCount: 1}) { uninterruptablePrice } } }"}'
```
</Tab>

Expand All @@ -574,7 +463,6 @@ query {
secureCloud
communityCloud
lowestPrice(input: { gpuCount: 1 }) {
minimumBidPrice
uninterruptablePrice
}
}
Expand All @@ -594,7 +482,6 @@ query {
"secureCloud": false,
"communityCloud": true,
"lowestPrice": {
"minimumBidPrice": 0.163,
"uninterruptablePrice": 0.3
}
}
Expand All @@ -615,7 +502,7 @@ Use the `stockStatus` field to check availability before creating a Pod. Values
curl --request POST \
--header 'content-type: application/json' \
--url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "query { gpuTypes(input: { id: \"NVIDIA RTX A4000\" }) { id displayName lowestPrice(input: { gpuCount: 1, secureCloud: true }) { stockStatus minimumBidPrice uninterruptablePrice availableGpuCounts } } }"}'
--data '{"query": "query { gpuTypes(input: { id: \"NVIDIA RTX A4000\" }) { id displayName lowestPrice(input: { gpuCount: 1, secureCloud: true }) { stockStatus uninterruptablePrice availableGpuCounts } } }"}'
```
</Tab>

Expand All @@ -627,7 +514,6 @@ query {
displayName
lowestPrice(input: { gpuCount: 1, secureCloud: true }) {
stockStatus
minimumBidPrice
uninterruptablePrice
availableGpuCounts
}
Expand All @@ -646,7 +532,6 @@ query {
"displayName": "RTX A4000",
"lowestPrice": {
"stockStatus": "High",
"minimumBidPrice": 0.2,
"uninterruptablePrice": 0.35,
"availableGpuCounts": [1, 2, 4]
}
Expand All @@ -667,7 +552,6 @@ query {
"displayName": "RTX A4000",
"lowestPrice": {
"stockStatus": "Low",
"minimumBidPrice": 0.16,
"uninterruptablePrice": 0.24,
"availableGpuCounts": [1, 2, 3, 4, 5, 6, 7]
}
Expand Down
Loading