Getting Started
Quickstart
Get NoxAeApi running on your Minecraft server and make your first request in a few minutes.
Install the plugin
NoxAeApi is a standard server plugin. Download the latest NoxAeApi.jar, place it in your server's plugins/ directory, and restart to generate the default configuration.
# 1. Download NoxAeApi.jar
# 2. Drop it into your server's plugins/ folder
server/
└── plugins/
└── NoxAeApi.jar
# 3. Restart the server to generate the config
Configure License & API Keys
Open plugins/NoxAeApi/config.yml. You MUST obtain an NxGate license key from your dashboard and insert it into license-key under keys. Additionally, configure your API keys with optional read-only scopes or endpoint allowlists.
# plugins/NoxAeApi/config.yml
# ── NxGate License ───────────────────────────────────────────────────────────
# Obtain your license key from the NxGate dashboard. The plugin requires a valid key to run.
license-key: 'REPLACE_WITH_YOUR_NXGATE_LICENSE_KEY'
# ── API Server Configuration ────────────────────────────────────────────────
server:
port: 8080
# Optional: Multi-key authentication system
# Supports read-only scopes and endpoint-specific allowlists.
keys:
primary-admin:
key: "REPLACE_WITH_A_LONG_RANDOM_STRING"
read-only: false
dashboard-viewer:
key: "ANOTHER_RANDOM_STRING_HERE"
read-only: true
allowed-endpoints:
- "/v1/players"
- "/v1/server/health"
# ── Rate Limiting & Security ────────────────────────────────────────────────
security:
# Limit requests per minute (per IP or key)
rate-limit:
enabled: true
requests-per-minute: 120
# Restrict API access to specific IPs (e.g., your web dashboard server)
ip-whitelist:
enabled: false
allowed:
- "203.0.113.10"
- "192.168.1.100"
# Log sensitive actions to a file (e.g. kicking players, exec console)
audit-log:
enabled: true
# ── Realtime & Hooks ────────────────────────────────────────────────────────
# Broadcast game events to external services
webhooks:
enabled: false
urls:
- "https://your-dashboard.com/api/webhooks/noxae"
events:
- "player_join"
- "player_quit"
# Send alerts to Discord channels
discord:
enabled: false
webhook-url: "https://discord.com/api/webhooks/..."
notify-on:
- "unauthorized-access"
- "exec-command"
- "op-change"
# Enable WebSocket real-time event streaming (/v1/ws/events)
websocket:
events:
enabled: true
# ── Network Aggregator (Proxy Mode) ─────────────────────────────────────────
# Enable this ONLY on Velocity/BungeeCord to aggregate backend node data.
network:
enabled: false
timeout: 3000
servers:
- name: "survival"
url: "http://10.0.0.1:8080"
key: "survival-secret-key"
- name: "creative"
url: "http://10.0.0.2:8080"
key: "creative-secret-key"Advanced Configuration Features
- NxGate License Key: Mandatory for the plugin to start. Obtain this from the NxGate Dashboard.
- Multi-Key System: Support for multiple API keys with fine-grained access (read-only scopes or specific endpoints like
allowed-endpoints). - Rate Limiting & Security: Enforce
requests-per-minuteper IP/key, restrict access viaip-whitelist, and enableaudit-logfor sensitive actions. - Webhooks & Discord: Push real-time game events to HTTP webhooks or send critical alerts (e.g., unauthorized access) to a Discord channel.
- Network Aggregator: Enable proxy mode on BungeeCord or Velocity to aggregate backend nodes and query the entire network via
/v1/network/*.
Keep your key secret
Your first request
With the server running, confirm connectivity with the health check. Every endpoint is versioned under /v1.
curl https://mc.example.com/v1/ping \
-H "key: YOUR_API_KEY"A healthy server responds with:
"pong!"Now try reading live server info:
curl https://mc.example.com/v1/server \
-H "key: YOUR_API_KEY"Frequently Asked Questions
Find solutions to common network issues, connection refused errors, firewall rules, and permission setup.
This error indicates your client could not establish a TCP handshake with the specified IP and port.
Troubleshooting steps:
- Server logs: Check console logs for
[NoxAeApi] HTTP server listening on port 8080. - Host Binding: Set
server.host: "0.0.0.0"inplugins/NoxAeApi/config.yml. - Java Runtime: Ensure Java 17 or Java 21+ (
java -version).
# Test connectivity locally from the server console
curl -I http://127.0.0.1:8080/v1/pingNext steps
You're connected. From here you can explore the rest of the API.