Wizarr Management Skill
Interact with your local Wizarr instance to automate media server user invitations (Jellyfin, Plex, Emby, etc.). All requests require the X-API-Key header and target $WIZARR_BASE_URL (default: http://10.0.0.100:5690/api). For full endpoint details, the agent can reference the interactive docs at http://10.0.0.100:5690/api/docs/.
1. Get System Status
Check Wizarr health and statistics.
curl -H "X-API-Key: $WIZARR_API_KEY" "$WIZARR_BASE_URL/status"
2. Create Invitation (Primary Use Case)
Create a new invitation link. Parameters (JSON body):
server_ids: Array of server IDs (e.g., [1])expires_in_days: Expiration (e.g., 7) or null for no expiryunlimited: true/false for unlimited usesduration: Hours of access after use (e.g., "720" for 30 days)- Other optional fields: specific libraries, alias, etc. (see Swagger)
Example:
curl -X POST "$WIZARR_BASE_URL/invitations" \\
-H "X-API-Key: $WIZARR_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{ "server_ids": [1], "expires_in_days": 7, "unlimited": false, "duration": "720" }'
Response includes invitation.url — share this link with users.
3. List All Invitations
curl -H "X-API-Key: $WIZARR_API_KEY" "$WIZARR_BASE_URL/invitations"
4. Get Specific Invitation
Replace {id} with invitation ID.
curl -H "X-API-Key: $WIZARR_API_KEY" "$WIZARR_BASE_URL/invitations/{id}"
5. Delete Invitation
curl -X DELETE -H "X-API-Key: $WIZARR_API_KEY" "$WIZARR_BASE_URL/invitations/{id}"
6. List Servers
View configured media servers.
curl -H "X-API-Key: $WIZARR_API_KEY" "$WIZARR_BASE_URL/servers"
7. List Libraries
View available libraries (for restricted invites).
curl -H "X-API-Key: $WIZARR_API_KEY" "$WIZARR_BASE_URL/libraries"
8. User Management (If Supported)
- List users:
curl -H "X-API-Key: $WIZARR_API_KEY" "$WIZARR_BASE_URL/users" - Other operations (delete/update) follow standard REST patterns — consult Swagger.
9. API Key Management (Advanced/Caution)
Endpoints under /api-keys for listing/creating/deleting keys. Use sparingly.
Example list:
curl -H "X-API-Key: $WIZARR_API_KEY" "$WIZARR_BASE_URL/api-keys"
Advanced: Node.js Script Wrapper (Optional)
Place in scripts/create-invitation.mjs:
import fetch from 'node-fetch';
const args = process.argv.slice(2);
const body = JSON.parse(args[0] || '{}');
const response = await fetch(`${process.env.WIZARR_BASE_URL}/invitations`, {
method: 'POST',
headers: {
'X-API-Key': process.env.WIZARR_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify(body)
});
console.log(await response.json());
Run with:
node scripts/create-invitation.mjs '{"server_ids":[1],"expires_in_days":7,"unlimited":false}'
Agent Guidance
- When a user asks to "create an invite", ask for details (server, duration, expiry), then construct and execute the POST request.
- Always parse JSON responses and report the invitation URL.
- For unknown endpoints, suggest consulting the Swagger UI.
- Handle errors (e.g., 401 unauthorized → check API key).
This skill covers ~90% of common Wizarr automation needs. Extend with more scripts as required.