Query and monitor Unraid servers via the GraphQL API. Use when the user asks to 'check Unraid', 'monitor Unraid', 'Unraid API', 'get Unraid status', 'check disk temperatures', 'read Unraid logs', 'list Unraid shares', 'Unraid array status', 'Unraid containers', 'Unraid VMs', or mentions Unraid system monitoring, disk health, parity checks, or server status.
Query and monitor Unraid servers using the GraphQL API. Access all 27 read-only endpoints for system monitoring, disk health, logs, containers, VMs, and more.
Set your Unraid server credentials:
```bash
export UNRAID_URL="https://your-unraid-server/graphql"
export UNRAID_API_KEY="your-api-key"
```
**Get API Key:** Settings → Management Access → API Keys → Create (select "Viewer" role)
Use the helper script for any query:
```bash
./scripts/unraid-query.sh -q "{ online }"
```
Or run example scripts:
```bash
./scripts/dashboard.sh # Complete multi-server dashboard
./examples/disk-health.sh # Disk temperatures & health
./examples/read-logs.sh syslog 20 # Read system logs
```
Unraid 7.2+ uses GraphQL (not REST). Key differences:
Always use `metrics` for monitoring, `info` for specifications.
**Check if server is online:**
```bash
./scripts/unraid-query.sh -q "{ online }"
```
**Get CPU and memory usage:**
```bash
./scripts/unraid-query.sh -q "{ metrics { cpu { percentTotal } memory { used total percentTotal } } }"
```
**Complete dashboard:**
```bash
./scripts/dashboard.sh
```
**Check disk health and temperatures:**
```bash
./examples/disk-health.sh
```
**Get array status:**
```bash
./scripts/unraid-query.sh -q "{ array { state parityCheckStatus { status progress errors } } }"
```
**List all physical disks (including cache/USB):**
```bash
./scripts/unraid-query.sh -q "{ disks { name } }"
```
**List network shares:**
```bash
./scripts/unraid-query.sh -q "{ shares { name comment } }"
```
**List available logs:**
```bash
./scripts/unraid-query.sh -q "{ logFiles { name size modifiedAt } }"
```
**Read log content:**
```bash
./examples/read-logs.sh syslog 20
```
**List Docker containers:**
```bash
./scripts/unraid-query.sh -q "{ docker { containers { names image state status } } }"
```
**List VMs:**
```bash
./scripts/unraid-query.sh -q "{ vms { name state cpus memory } } }"
```
**Note:** Container output logs are NOT accessible via API. Use `docker logs` via SSH.
**Get notification counts:**
```bash
./scripts/unraid-query.sh -q "{ notifications { overview { unread { info warning alert total } } } }"
```
The `scripts/unraid-query.sh` helper supports:
```bash
./scripts/unraid-query.sh -u URL -k API_KEY -q "QUERY"
export UNRAID_URL="https://unraid.local/graphql"
export UNRAID_API_KEY="your-key"
./scripts/unraid-query.sh -q "{ online }"
-f json # Raw JSON (default)
-f pretty # Pretty-printed JSON
-f raw # Just the data (no wrapper)
```
For detailed documentation, consult:
```bash
./scripts/unraid-query.sh -q "{ online metrics { cpu { percentTotal } } }"
./examples/disk-health.sh
./scripts/unraid-query.sh -q "{ array { state } }"
./examples/read-logs.sh syslog 20
./scripts/dashboard.sh
./scripts/unraid-query.sh -q "{ shares { name } }"
./scripts/unraid-query.sh -q "{ docker { containers { names state } } }"
```
Leave a review
No reviews yet. Be the first to review this skill!