| name | unraid |
| version | 1.0.1 |
| description | 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. |
Unraid API Skill
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.
Quick Start
Set your Unraid server credentials:
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:
./scripts/unraid-query.sh -q "{ online }"
Or run example scripts:
./scripts/dashboard.sh
./examples/disk-health.sh
./examples/read-logs.sh syslog 20
Core Concepts
GraphQL API Structure
Unraid 7.2+ uses GraphQL (not REST). Key differences:
- Single endpoint:
/graphql for all queries
- Request exactly what you need: Specify fields in query
- Strongly typed: Use introspection to discover fields
- No container logs: Docker container output logs not accessible
Two Resources for Stats
info - Static hardware specs (CPU model, cores, OS version)
metrics - Real-time usage (CPU %, memory %, current load)
Always use metrics for monitoring, info for specifications.
Common Tasks
System Monitoring
Check if server is online:
./scripts/unraid-query.sh -q "{ online }"
Get CPU and memory usage:
./scripts/unraid-query.sh -q "{ metrics { cpu { percentTotal } memory { used total percentTotal } } }"
Complete dashboard:
./scripts/dashboard.sh
Disk Management
Check disk health and temperatures:
./examples/disk-health.sh
Get array status:
./scripts/unraid-query.sh -q "{ array { state parityCheckStatus { status progress errors } } }"
List all physical disks (including cache/USB):
./scripts/unraid-query.sh -q "{ disks { name } }"
Storage Shares
List network shares:
./scripts/unraid-query.sh -q "{ shares { name comment } }"
Logs
List available logs:
./scripts/unraid-query.sh -q "{ logFiles { name size modifiedAt } }"
Read log content:
./examples/read-logs.sh syslog 20
Containers & VMs
List Docker containers:
./scripts/unraid-query.sh -q "{ docker { containers { names image state status } } }"
List VMs:
./scripts/unraid-query.sh -q "{ vms { name state cpus memory } } }"
Note: Container output logs are NOT accessible via API. Use docker logs via SSH.
Notifications
Get notification counts:
./scripts/unraid-query.sh -q "{ notifications { overview { unread { info warning alert total } } } }"
Helper Script Usage
The scripts/unraid-query.sh helper supports:
./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
-f pretty
-f raw
Additional Resources
Reference Files
For detailed documentation, consult:
references/endpoints.md - Complete list of all 27 API endpoints
references/troubleshooting.md - Common errors and solutions
references/api-reference.md - Detailed field documentation
Helper Scripts
scripts/unraid-query.sh - Main GraphQL query tool
scripts/dashboard.sh - Automated multi-server inventory reporter
Quick Command Reference
./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 } } }"