{"openapi":"3.1.0","info":{"title":"NoxAeApi","version":"1.0.0","description":"A comprehensive REST API for Minecraft servers. Manage players, economy, permissions, worlds, plugins, chat, and multi-server networks over HTTP."},"servers":[{"url":"http://your-server:8080","description":"Your Minecraft server host"}],"tags":[{"name":"Server","description":"Server info, administration, whitelist, ops, scoreboard, and console."},{"name":"Player","description":"Manage online and offline players: bans, kicks, gamemode, teleport, and stats."},{"name":"Chat","description":"Broadcast messages and whisper to individual players."},{"name":"Economy","description":"Player balances and transactions via a Vault-compatible economy plugin."},{"name":"LuckPerms","description":"Groups and permission nodes for players and groups."},{"name":"Skills","description":"Read player skill levels from supported RPG plugins."},{"name":"NoxAuth","description":"Authentication info and password checks. Uses player name, not UUID."},{"name":"PlaceholderAPI","description":"Resolve PlaceholderAPI placeholders in a string."},{"name":"Plugins","description":"List, install, enable, and disable plugins."},{"name":"Worlds","description":"Inspect worlds, control time and weather, save, and download."},{"name":"Network","description":"Aggregate status and control across a multi-server network."}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"key"}}},"security":[{"ApiKey":[]}],"paths":{"/v1/server":{"get":{"operationId":"get-server","summary":"Server info","description":"Returns server metadata: name, motd, version, TPS, health, bans, whitelist, and player counts.","tags":["Server"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/server/restart":{"post":{"operationId":"post-server-restart","summary":"Restart the server","description":"Restarts the Minecraft server process. All players are disconnected.","tags":["Server"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Restart initiated"},"500":{"description":"Failed to restart"}}}},"/v1/server/ban-ip":{"post":{"operationId":"post-server-ban-ip","summary":"Ban an IP address","description":"Adds an IP address to the server ban list.","tags":["Server"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ip":{"type":"string","description":"IP address to ban."},"reason":{"type":"string","description":"Reason shown to the banned client."}},"required":["ip"]}}}},"responses":{"200":{"description":"IP banned"},"400":{"description":"Invalid IP address"}}}},"/v1/server/exec":{"post":{"operationId":"post-server-exec","summary":"Run a console command","description":"Executes an arbitrary console command. High-privilege — never call with untrusted input.","tags":["Server"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"string","description":"Console command to run (without leading slash)."},"time":{"type":"integer","description":"Milliseconds to wait for command output."}},"required":["command"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/server/logs":{"get":{"operationId":"get-server-logs","summary":"Recent log lines","description":"Returns the last N lines of the server log.","tags":["Server"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"lines","in":"query","required":false,"description":"Number of lines (default 100, max 1000).","schema":{"type":"integer"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/server/whitelist":{"get":{"operationId":"get-server-whitelist","summary":"List whitelist","description":"Returns all whitelisted players.","tags":["Server"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}},"post":{"operationId":"post-server-whitelist","summary":"Add to whitelist","description":"Adds a player to the whitelist.","tags":["Server"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string","description":"Player UUID."},"name":{"type":"string","description":"Player name."}},"required":["uuid"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}},"delete":{"operationId":"delete-server-whitelist","summary":"Remove from whitelist","description":"Removes a player from the whitelist by uuid or name.","tags":["Server"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"query","required":false,"description":"Player UUID (uuid or name required).","schema":{"type":"string"}},{"name":"name","in":"query","required":false,"description":"Player name (uuid or name required).","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/ping":{"get":{"operationId":"get-ping","summary":"Health check","description":"Simple liveness check. Returns \"pong!\".","tags":["Server"],"responses":{"200":{"description":"Server is reachable"}}}},"/v1/scoreboard":{"get":{"operationId":"get-scoreboard","summary":"Scoreboard","description":"Returns all scoreboard objectives and entries.","tags":["Server"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/players":{"get":{"operationId":"get-players","summary":"Online players","description":"Returns all currently online players.","tags":["Player"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/players/all":{"get":{"operationId":"get-players-all","summary":"All players","description":"Returns every player that has ever joined. Paginated.","tags":["Player"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number.","schema":{"type":"integer"}},{"name":"limit","in":"query","required":false,"description":"Items per page (max 500, default 100 when paginated).","schema":{"type":"integer"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/players/{uuid}":{"get":{"operationId":"get-player","summary":"Get one player","description":"Returns a single online player by UUID.","tags":["Player"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID (dashed).","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"Player not online"},"500":{"description":"Internal server error"}}}},"/v1/players/{uuid}/ban":{"post":{"operationId":"post-player-ban","summary":"Ban a player","description":"Bans a player by UUID.","tags":["Player"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","description":"Ban reason."},"expiry":{"type":"string","description":"Expiry timestamp (omit for permanent)."}},"required":[]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"Player not found"},"500":{"description":"Internal server error"}}}},"/v1/players/{uuid}/kick":{"post":{"operationId":"post-player-kick","summary":"Kick a player","description":"Kicks an online player.","tags":["Player"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","description":"Kick reason."}},"required":[]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"Player not online"},"500":{"description":"Internal server error"}}}},"/v1/players/{uuid}/gamemode":{"put":{"operationId":"put-player-gamemode","summary":"Change gamemode","description":"Changes a player gamemode.","tags":["Player"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"gamemode":{"type":"string","description":"CREATIVE | SURVIVAL | ADVENTURE | SPECTATOR."}},"required":["gamemode"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"Player not online"},"500":{"description":"Internal server error"}}}},"/v1/players/{uuid}/teleport":{"post":{"operationId":"post-player-teleport","summary":"Teleport a player","description":"Teleports a player to coordinates in a world.","tags":["Player"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"x":{"type":"number","description":"X coordinate."},"y":{"type":"number","description":"Y coordinate."},"z":{"type":"number","description":"Z coordinate."},"world":{"type":"string","description":"Target world name."}},"required":["x","y","z","world"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"Player not online"},"500":{"description":"Internal server error"}}}},"/v1/players/{uuid}/stats":{"get":{"operationId":"get-player-stats","summary":"Player statistics","description":"Returns player statistics (works for online and offline players).","tags":["Player"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"Player not found"},"500":{"description":"Internal server error"}}}},"/v1/chat/broadcast":{"post":{"operationId":"post-chat-broadcast","summary":"Broadcast a message","description":"Sends a message to all online players.","tags":["Chat"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message to broadcast."}},"required":["message"]}}}},"responses":{"200":{"description":"Message sent"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/chat/tell":{"post":{"operationId":"post-chat-tell","summary":"Whisper to a player","description":"Sends a private message to a single player.","tags":["Chat"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message text."},"playerUuid":{"type":"string","description":"Target player UUID."}},"required":["message","playerUuid"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"Player not online"},"500":{"description":"Internal server error"}}}},"/v1/economy/balance/{uuid}":{"get":{"operationId":"get-economy-balance","summary":"Get balance","description":"Returns the balance for a player.","tags":["Economy"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"Economy plugin not loaded"}}}},"/v1/economy/pay":{"post":{"operationId":"post-economy-pay","summary":"Deposit funds","description":"Deposits an amount into a player balance.","tags":["Economy"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string","description":"Player UUID."},"amount":{"type":"number","description":"Amount to deposit."}},"required":["uuid","amount"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"Economy plugin not loaded"}}}},"/v1/economy/debit":{"post":{"operationId":"post-economy-debit","summary":"Withdraw funds","description":"Withdraws an amount from a player balance.","tags":["Economy"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string","description":"Player UUID."},"amount":{"type":"number","description":"Amount to withdraw."}},"required":["uuid","amount"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"409":{"description":"Insufficient funds"},"500":{"description":"Internal server error"},"503":{"description":"Economy plugin not loaded"}}}},"/v1/economy/top":{"get":{"operationId":"get-economy-top","summary":"Balance leaderboard","description":"Returns the top balance leaderboard.","tags":["Economy"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Max entries (default 10, max 100).","schema":{"type":"integer"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"Economy plugin not loaded"}}}},"/v1/luckperms/groups":{"get":{"operationId":"get-lp-groups","summary":"List groups","description":"Returns all LuckPerms groups.","tags":["LuckPerms"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"LuckPerms not loaded"}}},"post":{"operationId":"post-lp-groups","summary":"Create group","description":"Creates a new group.","tags":["LuckPerms"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Group name."}},"required":["name"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"409":{"description":"Group already exists"},"500":{"description":"Internal server error"},"503":{"description":"LuckPerms not loaded"}}}},"/v1/luckperms/player/{uuid}/permissions":{"get":{"operationId":"get-lp-player-perms","summary":"Player permissions","description":"Returns a player permission nodes.","tags":["LuckPerms"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"LuckPerms not loaded"}}}},"/v1/luckperms/player/{uuid}/check-permission":{"post":{"operationId":"post-lp-check-permission","summary":"Check permission","description":"Checks a resolved permission including inheritance and wildcards.","tags":["LuckPerms"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"permission":{"type":"string","description":"Permission node to check."}},"required":["permission"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"LuckPerms not loaded"}}}},"/v1/skills/mcmmo/player/{uuid}":{"get":{"operationId":"get-skills-mcmmo","summary":"mcMMO levels","description":"Returns mcMMO skill levels (online players only).","tags":["Skills"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"mcMMO not loaded"}}}},"/v1/skills/auraskills/player/{uuid}":{"get":{"operationId":"get-skills-auraskills","summary":"AuraSkills levels","description":"Returns AuraSkills skill levels (works offline).","tags":["Skills"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"AuraSkills not loaded"}}}},"/v1/noxauth/player/{name}":{"get":{"operationId":"get-noxauth-player","summary":"Auth info","description":"Returns registration, authentication, last login, and country info.","tags":["NoxAuth"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"name","in":"path","required":true,"description":"Player name.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"NoxAuth not loaded"}}}},"/v1/noxauth/player/{name}/check-password":{"post":{"operationId":"post-noxauth-check-password","summary":"Check password","description":"Checks a password against the stored hash.","tags":["NoxAuth"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"name","in":"path","required":true,"description":"Player name.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string","description":"Password to verify."}},"required":["password"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"NoxAuth not loaded"}}}},"/v1/placeholders/replace":{"post":{"operationId":"post-placeholders-replace","summary":"Resolve placeholders","description":"Resolves PlaceholderAPI placeholders in a message for a player.","tags":["PlaceholderAPI"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"String containing placeholders."},"uuid":{"type":"string","description":"Player UUID context."}},"required":["message","uuid"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"},"503":{"description":"PlaceholderAPI not loaded"}}}},"/v1/plugins":{"get":{"operationId":"get-plugins","summary":"List plugins","description":"Returns all installed plugins.","tags":["Plugins"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}},"post":{"operationId":"post-plugins-install","summary":"Install a plugin","description":"Downloads and installs a plugin from a URL.","tags":["Plugins"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"URL-encoded plugin download URL."}},"required":["downloadUrl"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"409":{"description":"Plugin already installed"},"500":{"description":"Internal server error"}}}},"/v1/plugins/{name}/enable":{"post":{"operationId":"post-plugins-enable","summary":"Enable a plugin","description":"Enables an installed plugin.","tags":["Plugins"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"name","in":"path","required":true,"description":"Plugin name.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"Plugin not found"},"500":{"description":"Internal server error"}}}},"/v1/plugins/{name}/disable":{"post":{"operationId":"post-plugins-disable","summary":"Disable a plugin","description":"Disables an installed plugin.","tags":["Plugins"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"name","in":"path","required":true,"description":"Plugin name.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"Plugin not found"},"500":{"description":"Internal server error"}}}},"/v1/worlds":{"get":{"operationId":"get-worlds","summary":"List worlds","description":"Returns all loaded worlds.","tags":["Worlds"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/worlds/{uuid}/time":{"post":{"operationId":"post-worlds-time","summary":"Set time","description":"Sets the in-game time for a world.","tags":["Worlds"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"World UUID.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"time":{"type":"integer","description":"Ticks (0–24000)."}},"required":["time"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"World not found"},"500":{"description":"Internal server error"}}}},"/v1/worlds/{uuid}/weather":{"post":{"operationId":"post-worlds-weather","summary":"Set weather","description":"Sets the weather for a world.","tags":["Worlds"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"World UUID.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"weather":{"type":"string","description":"CLEAR | RAIN | THUNDER."}},"required":["weather"]}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"World not found"},"500":{"description":"Internal server error"}}}},"/v1/worlds/save":{"post":{"operationId":"post-worlds-save","summary":"Save all worlds","description":"Saves all loaded worlds to disk.","tags":["Worlds"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Worlds saved"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/worlds/download":{"get":{"operationId":"get-worlds-download","summary":"Download all worlds","description":"Downloads a ZIP archive of all worlds. Returns application/zip.","tags":["Worlds"],"x-admin":true,"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"ZIP archive"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/network/status":{"get":{"operationId":"get-network-status","summary":"Network status","description":"Returns the status of all servers in the network.","tags":["Network"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/network/health":{"get":{"operationId":"get-network-health","summary":"Network health","description":"Returns aggregate TPS and memory across the network.","tags":["Network"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/network/players":{"get":{"operationId":"get-network-players","summary":"Network players","description":"Returns aggregate online players across the network.","tags":["Network"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}},"/v1/network/players/{uuid}":{"get":{"operationId":"get-network-find-player","summary":"Find a player","description":"Finds which network server a player is on.","tags":["Network"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}},{"name":"uuid","in":"path","required":true,"description":"Player UUID.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success"},"400":{"description":"Bad request — malformed or missing parameters"},"404":{"description":"Player not online anywhere"},"500":{"description":"Internal server error"}}}},"/v1/network/broadcast":{"post":{"operationId":"post-network-broadcast","summary":"Network broadcast","description":"Broadcasts a message to all servers in the network.","tags":["Network"],"parameters":[{"name":"key","in":"header","required":false,"description":"API key. Optional depending on operator config; recommended in production.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message to broadcast."}},"required":["message"]}}}},"responses":{"200":{"description":"Message sent"},"400":{"description":"Bad request — malformed or missing parameters"},"500":{"description":"Internal server error"}}}}}}