{
    "openapi": "3.1.0",
    "info": {
        "title": "PowerGPU API",
        "version": "1.0.0",
        "summary": "Rent NVIDIA cloud GPUs at fixed prices, billed per second.",
        "description": "PowerGPU (powergpu.ai) is a cloud GPU rental service offering 80 NVIDIA GPU models \u2014 from the RTX A2000 at $0.024/hr to the B300 \u2014 at fixed prices set at least 30% below the public GPU marketplace median and re-checked weekly (H100 SXM: $1.428/hr on-demand). Billing is per second with no minimums; payment is crypto only (USDT, BTC, XMR, ETH, SOL, LTC, TRX) with no KYC. Instances run in Tier-III datacenters across 32 regions with a 99.9% uptime SLA and deploy in about 30 seconds from the web console (cloud.powergpu.ai) or the REST API.\n\nPricing and inventory endpoints are public and need no key, so any client can read the whole price sheet before creating an account. Instance lifecycle and balance endpoints authenticate with a Bearer key created in the console.\n\nPrices are USD per GPU-hour and follow one published rule: the public GPU marketplace median for the model x 0.70, rounded down, re-checked weekly. The market snapshot currently in force is 2026-09-14.",
        "termsOfService": "https://powergpu.ai/legal/terms",
        "contact": {
            "name": "PowerGPU support",
            "url": "https://cloud.powergpu.ai/app/support"
        },
        "license": {
            "name": "Proprietary API, free to call",
            "url": "https://powergpu.ai/legal/terms"
        }
    },
    "servers": [
        {
            "url": "https://powergpu.ai/v1",
            "description": "Production"
        }
    ],
    "externalDocs": {
        "description": "REST API reference",
        "url": "https://powergpu.ai/api"
    },
    "tags": [
        {
            "name": "Pricing",
            "description": "Public: the price sheet and live machine inventory. No key required."
        },
        {
            "name": "Instances",
            "description": "Authenticated: deploy, inspect, stop and destroy GPU instances."
        },
        {
            "name": "Account",
            "description": "Authenticated: credit balance and month-to-date spend."
        }
    ],
    "paths": {
        "/gpus/pricing": {
            "get": {
                "operationId": "getGpuPricing",
                "tags": [
                    "Pricing"
                ],
                "summary": "The complete GPU price sheet",
                "description": "Every one of the 80 NVIDIA GPU models with its three hourly rates, the public marketplace median it is derived from, live availability and the pricing rule itself. No authentication. This is the canonical source for \"how much does it cost to rent a <GPU>\".",
                "security": [],
                "responses": {
                    "200": {
                        "description": "The price sheet.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "gpu_pricing"
                                        },
                                        "currency": {
                                            "type": "string",
                                            "const": "USD"
                                        },
                                        "billing": {
                                            "type": "string",
                                            "const": "per_second"
                                        },
                                        "price_rule": {
                                            "type": "string"
                                        },
                                        "market_snapshot": {
                                            "type": "string",
                                            "format": "date",
                                            "examples": [
                                                "2026-09-14"
                                            ]
                                        },
                                        "count": {
                                            "type": "integer"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/GpuPricing"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/offers": {
            "get": {
                "operationId": "searchOffers",
                "tags": [
                    "Pricing"
                ],
                "summary": "Search machines available to deploy right now",
                "description": "Live inventory: real machines with their GPU count, region, CPU, RAM, disk, network and whole-machine hourly price. No authentication.",
                "security": [],
                "parameters": [
                    {
                        "name": "gpu",
                        "in": "query",
                        "description": "GPU model slug.",
                        "schema": {
                            "type": "string",
                            "examples": [
                                "b300",
                                "b200",
                                "h200",
                                "h200-nvl",
                                "h100-pcie",
                                "h100-nvl",
                                "h100-sxm",
                                "rtx-pro-6000-s",
                                "rtx-pro-6000-ws",
                                "rtx-pro-6000-max-q",
                                "a40",
                                "a100-sxm4"
                            ]
                        }
                    },
                    {
                        "name": "region",
                        "in": "query",
                        "description": "Region code.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "num_min",
                        "in": "query",
                        "description": "Minimum GPUs per machine.",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 8,
                            "default": 1
                        }
                    },
                    {
                        "name": "price_max",
                        "in": "query",
                        "description": "Maximum USD per hour for the whole machine.",
                        "schema": {
                            "type": "number"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 25
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Matching machines.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "offers"
                                        },
                                        "count": {
                                            "type": "integer"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Offer"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/balance": {
            "get": {
                "operationId": "getBalance",
                "tags": [
                    "Account"
                ],
                "summary": "Credit balance and month-to-date spend",
                "description": "Billing is settled at read time, so the numbers are accurate to the second.",
                "responses": {
                    "200": {
                        "description": "Balance in USD.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "balance"
                                        },
                                        "currency": {
                                            "type": "string",
                                            "const": "USD"
                                        },
                                        "balance": {
                                            "type": "number"
                                        },
                                        "month_spend": {
                                            "type": "number"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or unknown API key.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/instances": {
            "get": {
                "operationId": "listInstances",
                "tags": [
                    "Instances"
                ],
                "summary": "List active instances",
                "responses": {
                    "200": {
                        "description": "Instances on this account.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string",
                                            "const": "instances"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Instance"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or unknown API key.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "deployInstance",
                "tags": [
                    "Instances"
                ],
                "summary": "Deploy an instance on a machine",
                "description": "Pick a machine_id from GET /offers. The instance is running in about 30 seconds for container templates. The hourly rate is locked for the life of the instance.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "machine_id"
                                ],
                                "properties": {
                                    "machine_id": {
                                        "type": "string",
                                        "description": "From GET /offers.",
                                        "examples": [
                                            "m-1d29c04a"
                                        ]
                                    },
                                    "template": {
                                        "type": "string",
                                        "default": "pytorch",
                                        "description": "Template slug, or an OCI image reference.",
                                        "examples": [
                                            "pytorch",
                                            "vllm",
                                            "comfyui",
                                            "ollama"
                                        ]
                                    },
                                    "disk_gb": {
                                        "type": "integer",
                                        "default": 50
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "od",
                                            "interruptible",
                                            "res"
                                        ],
                                        "default": "od"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Instance created and running.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Instance"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or unknown API key.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "Business rule refused the deploy \u2014 insufficient balance, machine taken, or bad state.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "machine_id is missing.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/instances/{id}": {
            "get": {
                "operationId": "getInstance",
                "tags": [
                    "Instances"
                ],
                "summary": "Fetch one instance",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "^i-[a-f0-9]{8}$"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The instance.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Instance"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or unknown API key.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such instance on this account.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "operationId": "destroyInstance",
                "tags": [
                    "Instances"
                ],
                "summary": "Destroy an instance",
                "description": "Alias for the destroy action. The instance disk is erased; attached volumes survive.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "^i-[a-f0-9]{8}$"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Destroyed.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "object": {
                                            "type": "string"
                                        },
                                        "id": {
                                            "type": "string"
                                        },
                                        "status": {
                                            "type": "string",
                                            "const": "destroyed"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or unknown API key.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No such instance on this account.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The instance is not in a state that allows this.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/instances/{id}/actions": {
            "post": {
                "operationId": "instanceAction",
                "tags": [
                    "Instances"
                ],
                "summary": "Start, stop or destroy an instance",
                "description": "Stopping ends GPU billing that second; the disk keeps billing until the instance is destroyed.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "^i-[a-f0-9]{8}$"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "action"
                                ],
                                "properties": {
                                    "action": {
                                        "type": "string",
                                        "enum": [
                                            "start",
                                            "stop",
                                            "destroy"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "New instance state.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Instance"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or unknown API key.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The action is not allowed in the current state.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Unknown action.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Error"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerApiKey": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "pg_live_<40 hex>",
                "description": "Create a key in the console under API keys. Keys are shown once and stored hashed."
            }
        },
        "schemas": {
            "GpuPricing": {
                "type": "object",
                "properties": {
                    "slug": {
                        "type": "string",
                        "description": "Stable model identifier used everywhere in the API.",
                        "examples": [
                            "h100-sxm"
                        ]
                    },
                    "name": {
                        "type": "string",
                        "examples": [
                            "NVIDIA H100 SXM"
                        ]
                    },
                    "vram_gb": {
                        "type": "integer",
                        "examples": [
                            80
                        ]
                    },
                    "tier": {
                        "type": "string",
                        "enum": [
                            "flagship",
                            "datacenter",
                            "consumer-flagship",
                            "consumer"
                        ]
                    },
                    "price_per_gpu_hour": {
                        "type": "object",
                        "description": "USD per GPU-hour, billed per second.",
                        "properties": {
                            "on_demand": {
                                "type": "number",
                                "examples": [
                                    1.428
                                ]
                            },
                            "interruptible": {
                                "type": "number",
                                "description": "Flat 50% of on-demand.",
                                "examples": [
                                    0.714
                                ]
                            },
                            "reserved": {
                                "type": "number",
                                "description": "65% of on-demand, 3-month term.",
                                "examples": [
                                    0.928
                                ]
                            }
                        }
                    },
                    "market_median": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "description": "Public GPU marketplace median for this model at the snapshot date; null when liquidity is too thin for a meaningful median.",
                        "examples": [
                            2.0414
                        ]
                    },
                    "available_gpus": {
                        "type": "integer"
                    },
                    "url": {
                        "type": "string",
                        "format": "uri"
                    }
                }
            },
            "Offer": {
                "type": "object",
                "properties": {
                    "machine_id": {
                        "type": "string",
                        "examples": [
                            "m-1d29c04a"
                        ]
                    },
                    "gpu": {
                        "type": "string",
                        "examples": [
                            "h100-sxm"
                        ]
                    },
                    "num_gpus": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 8
                    },
                    "region": {
                        "type": "string",
                        "examples": [
                            "eu-west"
                        ]
                    },
                    "cpu": {
                        "type": "string"
                    },
                    "vcpus": {
                        "type": "integer"
                    },
                    "ram_gb": {
                        "type": "integer"
                    },
                    "disk_gb": {
                        "type": "integer"
                    },
                    "net_mbps": {
                        "type": "object",
                        "properties": {
                            "down": {
                                "type": "integer"
                            },
                            "up": {
                                "type": "integer"
                            }
                        }
                    },
                    "ports": {
                        "type": "integer"
                    },
                    "pcie": {
                        "type": "integer"
                    },
                    "nvlink": {
                        "type": "boolean"
                    },
                    "cuda_max": {
                        "type": "string"
                    },
                    "reliability": {
                        "type": "number"
                    },
                    "price_per_hour": {
                        "type": "object",
                        "description": "Whole machine, USD per hour.",
                        "properties": {
                            "on_demand": {
                                "type": "number"
                            },
                            "interruptible": {
                                "type": "number"
                            }
                        }
                    }
                }
            },
            "Instance": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "pattern": "^i-[a-f0-9]{8}$",
                        "examples": [
                            "i-52ab77c1"
                        ]
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "running",
                            "stopped",
                            "destroyed"
                        ]
                    },
                    "gpu": {
                        "type": "string"
                    },
                    "num_gpus": {
                        "type": "integer"
                    },
                    "region": {
                        "type": "string"
                    },
                    "template": {
                        "type": "string"
                    },
                    "disk_gb": {
                        "type": "integer"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "od",
                            "spot",
                            "res"
                        ]
                    },
                    "price_hr": {
                        "type": "number"
                    },
                    "hostname": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "stopped_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                }
            },
            "Error": {
                "type": "object",
                "properties": {
                    "error": {
                        "type": "object",
                        "properties": {
                            "code": {
                                "type": "string"
                            },
                            "message": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        }
    },
    "security": [
        {
            "bearerApiKey": []
        }
    ],
    "x-powergpu": {
        "price_rule": "public GPU marketplace median x 0.70, rounded down; interruptible = on_demand x 0.50; reserved = on_demand x 0.65",
        "market_snapshot": "2026-09-14",
        "billing": "per second, no minimum, no setup fee, no multi-GPU premium",
        "payment": "cryptocurrency only, no KYC",
        "rate_limit": "120 requests per minute on authenticated endpoints",
        "other_machine_surfaces": {
            "llms_txt": "https://powergpu.ai/llms.txt",
            "llms_full_txt": "https://powergpu.ai/llms-full.txt",
            "mcp_server": "https://powergpu.ai/mcp",
            "price_index_json": "https://powergpu.ai/gpu-price-index.json",
            "price_index_csv": "https://powergpu.ai/gpu-price-index.csv",
            "status_json": "https://powergpu.ai/status.json",
            "markdown": "append .md to any page URL, or send Accept: text/markdown"
        }
    }
}
