Files
Huntarr.io/docs/system/api.html
Admin9705 5f5275ff50 Complete documentation site rewrite with modern Huntarr theme
- Rewrote CSS with glassmorphism dark theme matching the app
- Rewrote JS with mobile sidebar, collapsible nav, copy buttons, scroll-to-top
- Created 30 HTML pages covering all features: Getting Started, Apps (7), Movie Hunt (4), NZB Hunt, Requestarr, Settings (6), System (3), Help (3)
- Removed 13 obsolete files (eros, whisparr-v2/v3, old root pages, stale markdown)
- New responsive layout with mobile hamburger drawer
- Updated README with new structure map
2026-02-10 13:35:23 -05:00

247 lines
11 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>API Reference - Huntarr Docs</title>
<link rel="icon" type="image/png" href="../images/huntarr-logo.png">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link rel="stylesheet" href="../css/main.css">
</head>
<body>
<!-- Mobile Topbar -->
<div class="docs-mobile-topbar">
<button class="mob-hamburger" aria-label="Open navigation"><span></span><span></span><span></span></button>
<img src="../images/huntarr-logo.png" alt="Huntarr" class="mob-logo">
<span class="mob-title">Documentation</span>
</div>
<!-- Sidebar Backdrop (mobile) -->
<div class="docs-sidebar-backdrop"></div>
<div class="docs-layout">
<!-- ===== SIDEBAR ===== -->
<nav class="docs-sidebar" aria-label="Documentation navigation">
<a href="../index.html" class="sidebar-brand">
<img src="../images/huntarr-logo.png" alt="Huntarr">
<span>Huntarr</span>
</a>
<div class="sidebar-scroll">
<!-- Getting Started -->
<div class="nav-group">
<div class="nav-group-title">Getting Started</div>
<div class="nav-group-items">
<a href="../index.html"><i class="fas fa-home"></i> Welcome</a>
<a href="../getting-started/installation.html"><i class="fas fa-download"></i> Installation</a>
<a href="../getting-started/setup-wizard.html"><i class="fas fa-magic"></i> Setup Wizard</a>
<a href="../getting-started/first-steps.html"><i class="fas fa-rocket"></i> First Steps</a>
</div>
</div>
<!-- Apps -->
<div class="nav-group">
<div class="nav-group-title">Apps</div>
<div class="nav-group-items">
<a href="../apps/index.html"><i class="fas fa-th-large"></i> Overview</a>
<a href="../apps/sonarr.html"><i class="fas fa-tv"></i> Sonarr</a>
<a href="../apps/radarr.html"><i class="fas fa-film"></i> Radarr</a>
<a href="../apps/lidarr.html"><i class="fas fa-music"></i> Lidarr</a>
<a href="../apps/readarr.html"><i class="fas fa-book"></i> Readarr</a>
<a href="../apps/whisparr.html"><i class="fas fa-mask"></i> Whisparr</a>
<a href="../apps/prowlarr.html"><i class="fas fa-search"></i> Prowlarr</a>
<a href="../apps/swaparr.html"><i class="fas fa-exchange-alt"></i> Swaparr</a>
</div>
</div>
<!-- Movie Hunt -->
<div class="nav-group">
<div class="nav-group-title">Movie Hunt</div>
<div class="nav-group-items">
<a href="../movie-hunt/index.html"><i class="fas fa-clapperboard"></i> Overview <span class="nav-badge nav-badge-beta">Beta</span></a>
<a href="../movie-hunt/media-collection.html"><i class="fas fa-photo-film"></i> Media Collection</a>
<a href="../movie-hunt/indexers-clients.html"><i class="fas fa-server"></i> Indexers &amp; Clients</a>
<a href="../movie-hunt/profiles.html"><i class="fas fa-sliders"></i> Profiles</a>
</div>
</div>
<!-- NZB Hunt -->
<div class="nav-group">
<div class="nav-group-title">NZB Hunt</div>
<div class="nav-group-items">
<a href="../nzb-hunt/index.html"><i class="fas fa-newspaper"></i> Overview <span class="nav-badge nav-badge-beta">Beta</span></a>
</div>
</div>
<!-- Requestarr -->
<div class="nav-group">
<div class="nav-group-title">Requests</div>
<div class="nav-group-items">
<a href="../requestarr/index.html"><i class="fas fa-hand-paper"></i> Requestarr</a>
</div>
</div>
<!-- Settings -->
<div class="nav-group">
<div class="nav-group-title">Settings</div>
<div class="nav-group-items">
<a href="../settings/index.html"><i class="fas fa-cog"></i> Main Settings</a>
<a href="../settings/scheduling.html"><i class="fas fa-clock"></i> Scheduling</a>
<a href="../settings/notifications.html"><i class="fas fa-bell"></i> Notifications</a>
<a href="../settings/backup-restore.html"><i class="fas fa-database"></i> Backup &amp; Restore</a>
<a href="../settings/log-settings.html"><i class="fas fa-file-alt"></i> Log Settings</a>
<a href="../settings/user-account.html"><i class="fas fa-user-shield"></i> User Account</a>
</div>
</div>
<!-- System -->
<div class="nav-group">
<div class="nav-group-title">System</div>
<div class="nav-group-items">
<a href="hunt-manager.html"><i class="fas fa-tasks"></i> Hunt Manager</a>
<a href="logs.html"><i class="fas fa-scroll"></i> Logs</a>
<a href="api.html" class="active"><i class="fas fa-code"></i> API Reference</a>
</div>
</div>
<!-- Help -->
<div class="nav-group">
<div class="nav-group-title">Help</div>
<div class="nav-group-items">
<a href="../help/faq.html"><i class="fas fa-question-circle"></i> FAQ</a>
<a href="../help/community.html"><i class="fas fa-users"></i> Community</a>
<a href="../help/donate.html"><i class="fas fa-heart"></i> Donate</a>
</div>
</div>
</div><!-- /sidebar-scroll -->
<div class="sidebar-footer">
<a href="https://discord.com/invite/PGJJjR5Cww" target="_blank" class="sf-discord" title="Discord"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/huntarr/" target="_blank" class="sf-reddit" title="Reddit"><i class="fab fa-reddit-alien"></i></a>
<a href="https://github.com/plexguide/Huntarr.io" target="_blank" class="sf-github" title="GitHub"><i class="fab fa-github"></i></a>
<a href="../help/donate.html" class="sf-heart" title="Donate"><i class="fas fa-heart"></i></a>
</div>
</nav>
<!-- ===== MAIN ===== -->
<main class="docs-main">
<div class="docs-content">
<h1>API Reference</h1>
<p class="page-subtitle">Huntarr's REST API for automation and integration.</p>
<h2>Overview</h2>
<ul>
<li>Huntarr exposes a REST API for programmatic access</li>
<li>All endpoints require authentication (session cookie or API key)</li>
<li>Responses are in JSON format</li>
</ul>
<h2>Authentication</h2>
<p>All API requests must include authentication:</p>
<ul>
<li><strong>Session Cookie</strong>: Automatically set after login via the web UI</li>
<li><strong>API Key</strong>: Pass as a query parameter <code>?apikey=YOUR_KEY</code> or header <code>X-Api-Key</code></li>
</ul>
<h2>Core Endpoints</h2>
<h3>Stats</h3>
<pre><code>GET /api/stats</code></pre>
<p>Returns dashboard statistics for all connected apps.</p>
<h3>Settings</h3>
<pre><code>GET /api/settings/general
POST /api/settings/general</code></pre>
<p>Get or update general settings.</p>
<h3>App Instances</h3>
<pre><code>GET /api/instances/{app_type}
POST /api/instances/{app_type}
DELETE /api/instances/{app_type}/{instance_id}</code></pre>
<p>Manage app instances. <code>app_type</code> can be: sonarr, radarr, lidarr, readarr, whisparr, prowlarr, swaparr.</p>
<h3>Schedules</h3>
<pre><code>GET /api/schedules
POST /api/schedules
PUT /api/schedules/{id}
DELETE /api/schedules/{id}</code></pre>
<p>Manage hunt schedules.</p>
<h3>Notifications</h3>
<pre><code>GET /api/notifications/connections
POST /api/notifications/connections
PUT /api/notifications/connections/{id}
DELETE /api/notifications/connections/{id}
POST /api/notifications/test</code></pre>
<p>Manage notification connections and send test notifications.</p>
<h3>Logs</h3>
<pre><code>GET /api/logs?app_type=sonarr&amp;level=ERROR&amp;limit=100
GET /api/logs/stats
POST /api/logs/cleanup
POST /api/logs/all/clear</code></pre>
<p>View logs, get statistics, and manage log data.</p>
<h3>Backup</h3>
<pre><code>GET /api/backup/list
POST /api/backup/create
POST /api/backup/restore
POST /api/backup/upload
DELETE /api/backup/{filename}</code></pre>
<p>Manage backups.</p>
<h2>Movie Hunt API</h2>
<pre><code>GET /api/movie-hunt/movies
GET /api/movie-hunt/movies/{id}
POST /api/movie-hunt/movies
DELETE /api/movie-hunt/movies/{id}
POST /api/movie-hunt/search
GET /api/movie-hunt/history?tmdb_id={id}</code></pre>
<p>Manage Movie Hunt library and trigger searches.</p>
<h2>Response Format</h2>
<p>All responses follow this structure:</p>
<pre><code>{
"success": true,
"data": { ... },
"message": "Operation completed"
}</code></pre>
<p>Error responses:</p>
<pre><code>{
"success": false,
"error": "Description of what went wrong"
}</code></pre>
<h2>Rate Limiting</h2>
<p>The API does not enforce rate limits internally, but be mindful of:</p>
<ul>
<li>*arr app API rate limits when triggering searches</li>
<li>Indexer rate limits when searches are processed</li>
<li>Database performance with very frequent requests</li>
</ul>
<div class="alert alert-warning">
<strong>Polling Frequency</strong>
<p>The API is intended for automation and integration. Avoid polling endpoints more frequently than every 5 seconds.</p>
</div>
</div><!-- /docs-content -->
<footer class="docs-footer">
<p>Huntarr is open source. <a href="https://github.com/plexguide/Huntarr.io" target="_blank">GitHub</a> · <a href="https://discord.com/invite/PGJJjR5Cww" target="_blank">Discord</a> · <a href="https://www.reddit.com/r/huntarr/" target="_blank">Reddit</a></p>
</footer>
</main>
</div><!-- /docs-layout -->
<button class="back-to-top" aria-label="Back to top"><i class="fas fa-arrow-up"></i></button>
<script src="../js/main.js"></script>
</body>
</html>