{"app_version":"3.2.0","auth":{"generate":"POST /api/v1/key/generate (requires login)","header":"X-Api-Key (recommended)","method":"API Key","note":"API keys are shown only once when generated. Store securely!","query_param":"apikey (less secure - may appear in logs)"},"endpoints":{"history":{"GET /api/v1/history":"Get download history (params: limit, offset)"},"queue":{"DELETE /api/v1/queue/<task_id>":"Cancel/remove download","GET /api/v1/queue":"Get current download queue","POST /api/v1/queue/add":"Add item to queue (body: server_id, item_id, path?)","POST /api/v1/queue/clear":"Clear pending queue","POST /api/v1/queue/pause":"Pause all downloads","POST /api/v1/queue/resume":"Resume downloads"},"servers":{"GET /api/v1/servers":"List configured servers","GET /api/v1/servers/<id>/browse":"Browse server library (params: parent_id, limit)","GET /api/v1/servers/<id>/search":"Search server (params: q, limit)"},"stats":{"GET /api/v1/stats":"Get download and transcode statistics"},"status":{"GET /api/v1/status":"Get queue status, speeds, disk space"}},"integrations":{"home_assistant":"Poll /api/v1/status for sensor data","nzb360":"Use Custom Downloader with base URL and API key in header","organizr":"Add as custom tab with /api/v1/status widget"},"name":"JellyLooter API","security":{"best_practices":["Use X-Api-Key header instead of query param","Regenerate key if compromised","Use HTTPS in production","Restrict network access if possible"],"encryption":"API keys are encrypted at rest","rate_limiting":"Brute force protection - 10 failed attempts triggers 5 minute lockout"},"version":"v1"}
