{
  "openapi": "3.1.0",
  "info": {
    "title": "Incognito VPS API",
    "version": "1.0.0",
    "summary": "Rent offshore servers with no identity verification, paid in cryptocurrency.",
    "description": "A complete purchase path with no human step: create a token, settle a crypto invoice, deploy a server.\n\nThere is no email confirmation, no card form and no captcha, because there is no identity layer at all.\nPrices, plans and locations are live at GET /api/v1/catalog. Markdown documentation for any page is available\nby appending .md to its URL, and the full corpus is at /llms-full.txt.",
    "contact": {
      "name": "Incognito VPS operations",
      "email": "ops@incognitovps.com",
      "url": "https://incognitovps.com/contact"
    },
    "license": {
      "name": "Proprietary",
      "url": "https://incognitovps.com/legal/terms"
    }
  },
  "servers": [
    {
      "url": "https://incognitovps.com/api/v1",
      "description": "Production"
    }
  ],
  "security": [
    {},
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Catalog",
      "description": "Plans, locations and prices. No authentication."
    },
    {
      "name": "Account",
      "description": "Token creation and account state."
    },
    {
      "name": "Orders",
      "description": "Deployment and provisioning."
    },
    {
      "name": "Balance",
      "description": "Cryptocurrency top-ups."
    }
  ],
  "paths": {
    "/catalog": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "getCatalog",
        "summary": "Plans, locations and live prices",
        "security": [
          {}
        ],
        "responses": {
          "200": {
            "description": "Full catalogue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Catalog"
                }
              }
            }
          }
        }
      }
    },
    "/quote": {
      "post": {
        "tags": [
          "Catalog"
        ],
        "operationId": "quote",
        "summary": "Price a configuration without committing to it",
        "security": [
          {}
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Quote",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Quote"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          }
        }
      }
    },
    "/account": {
      "post": {
        "tags": [
          "Account"
        ],
        "operationId": "createAccount",
        "summary": "Create an access token",
        "description": "The entire signup flow. Returns the token exactly once; it is stored only as a hash and cannot be recovered.",
        "security": [
          {}
        ],
        "responses": {
          "201": {
            "description": "Token created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewAccount"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        }
      },
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "getAccount",
        "summary": "Balance and servers",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Account state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        }
      }
    },
    "/topup": {
      "post": {
        "tags": [
          "Balance"
        ],
        "operationId": "createTopup",
        "summary": "Create a cryptocurrency invoice to credit balance",
        "description": "One on-chain payment covers many deployments, and each subsequent deploy is instant because there is no confirmation to wait for.",
        "security": [
          {
            "bearerAuth": []
          },
          {}
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TopupRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Invoice created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Topup"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "503": {
            "description": "Payment gateway not configured"
          }
        }
      }
    },
    "/orders": {
      "post": {
        "tags": [
          "Orders"
        ],
        "operationId": "createOrder",
        "summary": "Deploy a server",
        "description": "With sufficient balance the server is provisioned synchronously and credentials are returned. Otherwise a crypto invoice is created and `pay_url` is returned; poll GET /orders/{id} until status is `active`.",
        "security": [
          {
            "bearerAuth": []
          },
          {}
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Order created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "description": "Insufficient balance"
          }
        }
      }
    },
    "/orders/{order_id}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "operationId": "getOrder",
        "summary": "Order and provisioning status",
        "description": "Also reconciles against the payment gateway, so a missed webhook cannot leave an order stuck. Safe to poll every few seconds.",
        "security": [
          {}
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Order state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                }
              }
            }
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Access token in the format IVPS-XXXX-XXXX-XXXX-XXXX, created by POST /account."
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Invalid request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Invalid or missing access token",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "RateLimited": {
        "description": "Rate limit exceeded",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "status": {
                "type": "integer"
              }
            }
          }
        }
      },
      "Catalog": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string"
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "plans": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "addons": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "os_images": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "accepted_coins": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "QuoteRequest": {
        "type": "object",
        "required": [
          "plan",
          "region"
        ],
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "hv-1",
              "hv-2",
              "hv-4",
              "hv-8",
              "hv-16",
              "hv-32",
              "ds-0",
              "ds-1",
              "ds-2",
              "ds-3",
              "ds-4",
              "ds-5",
              "gx-4090",
              "gx-5090",
              "gx-a100",
              "gx-h100",
              "gx-h100x4",
              "wr-2",
              "wr-4",
              "wr-8",
              "wr-16",
              "sx-4",
              "sx-8",
              "sx-16",
              "sx-32"
            ]
          },
          "region": {
            "type": "string",
            "enum": [
              "iceland",
              "switzerland",
              "netherlands",
              "romania",
              "bulgaria",
              "moldova",
              "panama",
              "russia",
              "france",
              "united-kingdom",
              "germany",
              "united-states",
              "canada",
              "singapore",
              "japan",
              "australia"
            ]
          },
          "months": {
            "type": "integer",
            "minimum": 1,
            "maximum": 24,
            "default": 1
          },
          "addons": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ipv4",
                "ipv6",
                "backup",
                "ddos-plus",
                "luks",
                "iso",
                "ipmi",
                "cpu-pin"
              ]
            }
          }
        }
      },
      "Quote": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "months": {
            "type": "integer"
          },
          "monthly_usd": {
            "type": "number"
          },
          "total_usd": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          }
        }
      },
      "NewAccount": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "examples": [
              "IVPS-7K2M-9QX4-1BVN-5RTZ"
            ]
          },
          "account_id": {
            "type": "string"
          },
          "balance_usd": {
            "type": "number"
          },
          "warning": {
            "type": "string"
          }
        }
      },
      "Account": {
        "type": "object",
        "properties": {
          "account_id": {
            "type": "string"
          },
          "balance_usd": {
            "type": "number"
          },
          "servers": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "pending_orders": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "TopupRequest": {
        "type": "object",
        "required": [
          "amount_usd"
        ],
        "properties": {
          "amount_usd": {
            "type": "number",
            "minimum": 10,
            "maximum": 5000
          },
          "coin": {
            "type": "string"
          },
          "token": {
            "type": "string",
            "description": "Alternative to the Authorization header."
          }
        }
      },
      "Topup": {
        "type": "object",
        "properties": {
          "topup_id": {
            "type": "string"
          },
          "amount_usd": {
            "type": "number"
          },
          "pay_url": {
            "type": "string",
            "format": "uri"
          },
          "status": {
            "type": "string"
          },
          "token": {
            "type": "string",
            "description": "Present only when this call created the account."
          }
        }
      },
      "OrderRequest": {
        "type": "object",
        "required": [
          "plan",
          "region"
        ],
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "hv-1",
              "hv-2",
              "hv-4",
              "hv-8",
              "hv-16",
              "hv-32",
              "ds-0",
              "ds-1",
              "ds-2",
              "ds-3",
              "ds-4",
              "ds-5",
              "gx-4090",
              "gx-5090",
              "gx-a100",
              "gx-h100",
              "gx-h100x4",
              "wr-2",
              "wr-4",
              "wr-8",
              "wr-16",
              "sx-4",
              "sx-8",
              "sx-16",
              "sx-32"
            ]
          },
          "region": {
            "type": "string",
            "enum": [
              "iceland",
              "switzerland",
              "netherlands",
              "romania",
              "bulgaria",
              "moldova",
              "panama",
              "russia",
              "france",
              "united-kingdom",
              "germany",
              "united-states",
              "canada",
              "singapore",
              "japan",
              "australia"
            ]
          },
          "months": {
            "type": "integer",
            "minimum": 1,
            "maximum": 24,
            "default": 1
          },
          "os": {
            "type": "string",
            "enum": [
              "debian",
              "ubuntu",
              "almalinux",
              "rocky",
              "fedora",
              "arch",
              "alpine",
              "nixos",
              "gentoo",
              "devuan",
              "qubes",
              "freebsd",
              "openbsd",
              "windows",
              "windows-desktop"
            ]
          },
          "hostname": {
            "type": "string",
            "maxLength": 63
          },
          "addons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "luks": {
            "type": "boolean"
          },
          "coin": {
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        }
      },
      "Order": {
        "type": "object",
        "properties": {
          "order_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "confirming",
              "paid",
              "provisioning",
              "active",
              "expired",
              "failed"
            ]
          },
          "total_usd": {
            "type": "number"
          },
          "pay_url": {
            "type": "string",
            "format": "uri"
          },
          "server_id": {
            "type": "string"
          },
          "ipv4": {
            "type": "string"
          },
          "ipv6": {
            "type": "string"
          },
          "root_password": {
            "type": "string"
          },
          "renews_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
  },
  "externalDocs": {
    "description": "Agent guide",
    "url": "https://incognitovps.com/agents"
  }
}