{
  "openapi": "3.1.0",
  "info": {
    "title": "Pixly Public API",
    "version": "1.0.0",
    "description": "Compare Minecraft server prices and check software and Bedrock compatibility. Signed-in users can also create, start, stop, configure and back up their own Minecraft servers."
  },
  "x-mcp": {
    "instructions": "These tools compare Pixly's Minecraft server prices and manage the signed-in user's servers. When the user has not said where the players are, ask before choosing a createServer region; never infer it from where the request comes from. Before a permanent change (deleteServer, resetServer, restoreBackup, deleteBackup), the user must name the exact server or backup; otherwise list them and ask which one, and change only that one. Ids are handles for tool calls, not for the user: name servers by their name and backups by their time and reason, and leave out ids and storage details. For the balance or spending use getBalance, getMonthSpending and listBills. The tools cannot add funds, buy anything or change plans. When the user asks to add funds, call getBalance, show the balance and pass on its addFunds text with a link to its dashboardUrl; do not link to a billing, top-up or checkout page, suggest an amount to add or describe payment steps. For anything the tools cannot do, link the user to the page where they can do it: the server's webUrl from listServers, or https://pixly.gg/dashboard/ for the account."
  },
  "servers": [
    {
      "url": "/"
    }
  ],
  "security": [],
  "paths": {
    "/api/pricing/catalog": {
      "$ref": "/api/pricing/openapi.json#/paths/~1catalog"
    },
    "/api/loader-support/versions": {
      "$ref": "/api/loader-support/openapi.json#/paths/~1versions"
    },
    "/api/bedrock-support/range": {
      "$ref": "/api/bedrock-support/openapi.json#/paths/~1range"
    },
    "/api/wallet/balance": {
      "$ref": "/api/wallet/openapi.json#/paths/~1balance"
    },
    "/api/bills/current": {
      "$ref": "/api/bills/openapi.json#/paths/~1current"
    },
    "/api/bills": {
      "$ref": "/api/bills/openapi.json#/paths/~1"
    },
    "/api/servers": {
      "$ref": "/api/servers/openapi.json#/paths/~1"
    },
    "/api/servers/{serverId}": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D"
    },
    "/api/servers/{serverId}/start": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1start"
    },
    "/api/servers/{serverId}/stop": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1stop"
    },
    "/api/servers/{serverId}/restart": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1restart"
    },
    "/api/servers/{serverId}/restart-to-apply": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1restart-to-apply"
    },
    "/api/servers/{serverId}/keep-awake": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1keep-awake"
    },
    "/api/servers/{serverId}/custom-domain/verify": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1custom-domain~1verify"
    },
    "/api/servers/{serverId}/reset": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1reset"
    },
    "/api/servers/{serverId}/join-attempts/{playerName}": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1join-attempts~1%7BplayerName%7D"
    },
    "/api/servers/{serverId}/console/logs": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1console~1logs"
    },
    "/api/servers/{serverId}/metrics": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1metrics"
    },
    "/api/servers/{serverId}/usage": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1usage"
    },
    "/api/servers/{serverId}/backups": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1backups"
    },
    "/api/servers/{serverId}/backups/{backupId}/restore": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1backups~1%7BbackupId%7D~1restore"
    },
    "/api/servers/{serverId}/backups/{backupId}": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1backups~1%7BbackupId%7D"
    },
    "/api/servers/{serverId}/backups/{backupId}/export": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1backups~1%7BbackupId%7D~1export"
    },
    "/api/servers/{serverId}/backups/{backupId}/download-url": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1backups~1%7BbackupId%7D~1download-url"
    },
    "/api/servers/{serverId}/uploads": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1uploads"
    },
    "/api/servers/{serverId}/uploads/{jobId}/refresh-parts": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1uploads~1%7BjobId%7D~1refresh-parts"
    },
    "/api/servers/{serverId}/uploads/{jobId}/complete": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1uploads~1%7BjobId%7D~1complete"
    },
    "/api/servers/{serverId}/uploads/{jobId}": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1uploads~1%7BjobId%7D"
    },
    "/api/servers/{serverId}/assets/uploads": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1assets~1uploads"
    },
    "/api/servers/{serverId}/assets/uploads/inspect": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1assets~1uploads~1inspect"
    },
    "/api/servers/{serverId}/assets/uploads/complete-batch": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1assets~1uploads~1complete-batch"
    },
    "/api/servers/{serverId}/assets/uploads/abort-batch": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1assets~1uploads~1abort-batch"
    },
    "/api/servers/{serverId}/assets/{fileName}": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1assets~1%7BfileName%7D"
    },
    "/api/servers/{serverId}/modpack/uploads": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1modpack~1uploads"
    },
    "/api/servers/{serverId}/modpack/uploads/complete": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1modpack~1uploads~1complete"
    },
    "/api/servers/{serverId}/modpack/uploads/inspect": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1modpack~1uploads~1inspect"
    },
    "/api/servers/{serverId}/modpack/uploads/abort": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1modpack~1uploads~1abort"
    },
    "/api/servers/{serverId}/modpack": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1modpack"
    },
    "/api/servers/{serverId}/resource-pack": {
      "$ref": "/api/servers/openapi.json#/paths/~1%7BserverId%7D~1resource-pack"
    }
  }
}
