Files
alchemist/docs/dist/reference/api/index.html

93 lines
45 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en" dir="ltr" data-has-toc data-has-sidebar class="astro-bguv2lll"> <head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>API Reference | Alchemist Docs</title><link rel="canonical"/><link rel="shortcut icon" href="/alchemist-docs/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v4.16.19"/><meta name="generator" content="Starlight v0.15.4"/><meta property="og:title" content="API Reference"/><meta property="og:type" content="article"/><meta property="og:url"/><meta property="og:locale" content="en"/><meta property="og:description" content="Detailed reference for the Alchemist REST API."/><meta property="og:site_name" content="Alchemist Docs"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="API Reference"/><meta name="twitter:description" content="Detailed reference for the Alchemist REST API."/><meta name="description" content="Detailed reference for the Alchemist REST API."/><script>
window.StarlightThemeProvider = (() => {
const storedTheme =
typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
const theme =
storedTheme ||
(window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark');
document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark';
return {
updatePickers(theme = storedTheme || 'auto') {
document.querySelectorAll('starlight-theme-select').forEach((picker) => {
const select = picker.querySelector('select');
if (select) select.value = theme;
/** @type {HTMLTemplateElement | null} */
const tmpl = document.querySelector(`#theme-icons`);
const newIcon = tmpl && tmpl.content.querySelector('.' + theme);
if (newIcon) {
const oldIcon = picker.querySelector('svg.label-icon');
if (oldIcon) {
oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes);
}
}
});
},
};
})();
</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg> <svg aria-hidden="true" class="dark astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg> <svg aria-hidden="true" class="auto astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> </template><link rel="stylesheet" href="/alchemist-docs/_astro/index.BIxt-62t.css">
<style>svg:where(.astro-c6vsoqas){color:var(--sl-icon-color);font-size:var(--sl-icon-size, 1em);width:1em;height:1em}
</style><script type="module" src="/alchemist-docs/_astro/hoisted.CL2tWdHW.js"></script>
<script type="module" src="/alchemist-docs/_astro/page.7qqag-5g.js"></script></head> <body class="astro-bguv2lll"> <a href="#_top" class="astro-7q3lir66">Skip to content</a> <div class="page sl-flex astro-vrdttmbt"> <header class="header astro-vrdttmbt"><div class="header sl-flex astro-kmkmnagf"> <div class="sl-flex astro-kmkmnagf"> <a href="/alchemist-docs/" class="site-title sl-flex astro-m46x6ez3"> <span class="astro-m46x6ez3"> Alchemist Docs </span> </a> </div> <div class="sl-flex astro-kmkmnagf"> <site-search data-translations="{&#34;placeholder&#34;:&#34;Search&#34;}" class="astro-v37mnknz"> <button data-open-modal disabled class="astro-v37mnknz"> <svg aria-label="Search" class="astro-v37mnknz astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg> <span class="sl-hidden md:sl-block astro-v37mnknz" aria-hidden="true">Search</span> <svg aria-label="(Press / to Search)" class="sl-hidden md:sl-block astro-v37mnknz astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 2H7a5 5 0 0 0-5 5v10a5 5 0 0 0 5 5h10a5 5 0 0 0 5-5V7a5 5 0 0 0-5-5Zm3 15a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v10Z"/><path d="M15.293 6.707a1 1 0 1 1 1.414 1.414l-8.485 8.486a1 1 0 0 1-1.414-1.415l8.485-8.485Z"/></svg> </button> <dialog style="padding:0" aria-label="Search" class="astro-v37mnknz"> <div class="dialog-frame sl-flex astro-v37mnknz"> <button data-close-modal class="sl-flex md:sl-hidden astro-v37mnknz"> Cancel </button> <div class="search-container astro-v37mnknz"> <div id="starlight__search" class="astro-v37mnknz"></div> </div> </div> </dialog> </site-search> </div> <div class="sl-hidden md:sl-flex right-group astro-kmkmnagf"> <div class="sl-flex social-icons astro-kmkmnagf"> <a href="https://github.com/alchemist-project/alchemist" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">GitHub</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg> </a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-4yphtoen"> <span class="sr-only astro-4yphtoen">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" class="astro-4yphtoen"> <option value="dark" class="astro-4yphtoen">Dark</option><option value="light" class="astro-4yphtoen">Light</option><option value="auto" selected class="astro-4yphtoen">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script>
StarlightThemeProvider.updatePickers();
</script> </div> </div> </header> <nav class="sidebar astro-vrdttmbt" aria-label="Main"> <starlight-menu-button class="astro-jif73yzw"> <button aria-expanded="false" aria-label="Menu" aria-controls="starlight__sidebar" class="sl-flex md:sl-hidden astro-jif73yzw"> <svg aria-hidden="true" class="astro-jif73yzw astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg> </button> </starlight-menu-button> <div id="starlight__sidebar" class="sidebar-pane astro-vrdttmbt"> <div class="sidebar-content sl-flex astro-vrdttmbt"> <ul class="top-level astro-3ii7xxms"> <li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Getting Started</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/alchemist-docs/getting-started/installation/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Installation</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/getting-started/first-run/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">First Run</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/getting-started/quick-start/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Quick Start</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Guides</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/docker/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Docker</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/hardware/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Hardware Support</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/gpu-passthrough/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">GPU Passthrough</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/web-interface/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Web Interface</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/library-setup/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Library Setup</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/profiles/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Profiles</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/stream-rules/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Streaming Rules</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/scheduling/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Scheduling</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/notifications/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Notifications</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/guides/library-doctor/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Library Doctor</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Reference</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/configuration/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Configuration</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/api/" aria-current="page" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">API Reference</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/database/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Database Schema</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/architecture/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Architecture</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/codecs/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Codecs</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/hardware-support/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Hardware Vendors</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/faq/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">FAQ</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/troubleshooting/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Troubleshooting</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/reference/changelog/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Changelog</span> </a> </li> </ul> </details> </li><li class="astro-3ii7xxms"> <details open class="astro-3ii7xxms"> <summary class="astro-3ii7xxms"> <div class="group-label astro-3ii7xxms"> <span class="large astro-3ii7xxms">Contributing</span> </div> <svg aria-hidden="true" class="caret astro-3ii7xxms astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-3ii7xxms"> <li class="astro-3ii7xxms"> <a href="/alchemist-docs/contributing/overview/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Overview</span> </a> </li><li class="astro-3ii7xxms"> <a href="/alchemist-docs/contributing/development/" class="astro-3ii7xxms"> <span class="astro-3ii7xxms">Development</span> </a> </li> </ul> </details> </li> </ul> <div class="md:sl-hidden"> <div class="mobile-preferences sl-flex astro-wu23bvmt"> <div class="sl-flex social-icons astro-wu23bvmt"> <a href="https://github.com/alchemist-project/alchemist" rel="me" class="sl-flex astro-wy4te6ga"><span class="sr-only astro-wy4te6ga">GitHub</span><svg aria-hidden="true" class="astro-wy4te6ga astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg> </a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-4yphtoen"> <span class="sr-only astro-4yphtoen">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" class="astro-4yphtoen"> <option value="dark" class="astro-4yphtoen">Dark</option><option value="light" class="astro-4yphtoen">Light</option><option value="auto" selected class="astro-4yphtoen">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-4yphtoen astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script>
StarlightThemeProvider.updatePickers();
</script> </div> </div> </div> </div> </nav> <div class="main-frame astro-vrdttmbt"> <div class="lg:sl-flex astro-67yu43on"> <aside class="right-sidebar-container astro-67yu43on"> <div class="right-sidebar astro-67yu43on"> <div class="lg:sl-hidden astro-pb3aqygn"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-doynk5tl"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-doynk5tl"><details id="starlight__mobile-toc" class="astro-doynk5tl"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-doynk5tl"><div class="toggle sl-flex astro-doynk5tl">On this page<svg aria-hidden="true" class="caret astro-doynk5tl astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </div><span class="display-current astro-doynk5tl"></span></summary><div class="dropdown astro-doynk5tl"><ul class="isMobile astro-g2bywc46" style="--depth: 0;"> <li class="astro-g2bywc46" style="--depth: 0;"> <a href="#_top" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Overview</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#authentication" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Authentication</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#jobs" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Jobs</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#statistics" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Statistics</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#engine-control" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Engine Control</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#settings" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Settings</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#server-sent-events" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Server-Sent Events</span> </a> </li> </ul> </div></details></nav></mobile-starlight-toc></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-pb3aqygn"><div class="sl-container astro-pb3aqygn"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-g2bywc46" style="--depth: 0;"> <li class="astro-g2bywc46" style="--depth: 0;"> <a href="#_top" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Overview</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#authentication" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Authentication</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#jobs" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Jobs</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#statistics" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Statistics</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#engine-control" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Engine Control</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#settings" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Settings</span> </a> </li><li class="astro-g2bywc46" style="--depth: 0;"> <a href="#server-sent-events" class="astro-g2bywc46" style="--depth: 0;"> <span class="astro-g2bywc46" style="--depth: 0;">Server-Sent Events</span> </a> </li> </ul> </nav></starlight-toc></div></div> </div> </aside> <div class="main-pane astro-67yu43on"> <main data-pagefind-body lang="en" dir="ltr" class="astro-bguv2lll"> <div class="content-panel astro-7nkwcw3z"> <div class="sl-container astro-7nkwcw3z"> <h1 id="_top" class="astro-j6tvhyss">API Reference</h1> </div> </div> <div class="content-panel astro-7nkwcw3z"> <div class="sl-container astro-7nkwcw3z"> <div class="sl-markdown-content"> <p>All API endpoints require authentication via Bearer token, except for:</p>
<ul>
<li><code dir="auto">/api/setup/*</code> - Setup wizard endpoints</li>
<li><code dir="auto">/api/auth/login</code> - Login endpoint</li>
<li><code dir="auto">/api/health</code> - Health check (returns status, version, uptime)</li>
<li><code dir="auto">/api/ready</code> - Readiness check (returns database status)</li>
</ul>
<p>Most browser clients use the session cookie returned by <code dir="auto">/api/auth/login</code>.
Bearer auth is still accepted by the backend, but the web UI authenticates with the session cookie automatically.</p>
<h2 id="authentication">Authentication</h2>
<p>To use the API, you first need to log in to get a token.</p>
<div class="expressive-code"><link rel="stylesheet" href="/alchemist-docs/_astro/ec.usa2f.css"/><script type="module" src="/alchemist-docs/_astro/ec.sgewm.js"></script><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Login</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/auth/login</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">Content-Type:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">application/json</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">{</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;username&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#984E4D">admin</span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;password&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#984E4D">secret</span><span style="--0:#D9F5DD;--1:#111111">&quot;</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">}</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Response: 200 OK + Set-Cookie: alchemist_session=...</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="POST /api/auth/loginContent-Type: application/json{ &#34;username&#34;: &#34;admin&#34;, &#34;password&#34;: &#34;secret&#34;}"><div></div></button></div></figure></div>
<h2 id="jobs">Jobs</h2>
<p>Endpoints for managing transcoding jobs.</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Get all jobs (canonical endpoint)</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Legacy alias</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs/table</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Get job stats</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/stats</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Cancel job</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs/:id/cancel</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Restart job</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs/:id/restart</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Restart all failed</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs/restart-failed</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Clear completed</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/jobs/clear-completed</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="GET /api/jobsGET /api/jobs/tableGET /api/statsPOST /api/jobs/:id/cancelPOST /api/jobs/:id/restartPOST /api/jobs/restart-failedPOST /api/jobs/clear-completed"><div></div></button></div></figure></div>
<h2 id="statistics">Statistics</h2>
<p>Endpoints for retrieving performance and space savings data.</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Aggregated stats (totals)</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/stats/aggregated</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Response: {total_input_bytes, total_output_bytes, total_savings_bytes,</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># total_time_seconds, total_jobs, avg_vmaf}</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Daily stats (last 30 days)</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/stats/daily</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Response: [{date, jobs_completed, bytes_saved, total_input_bytes,</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># total_output_bytes}, ...]</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Detailed per-job stats</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/stats/detailed</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Response: [{job_id, input_path, input_size_bytes, output_size_bytes,</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># compression_ratio, encode_time_seconds, encode_speed,</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># avg_bitrate_kbps, vmaf_score, created_at}, ...]</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="GET /api/stats/aggregatedGET /api/stats/dailyGET /api/stats/detailed"><div></div></button></div></figure></div>
<h2 id="engine-control">Engine Control</h2>
<p>Endpoints for controlling the background processing engine.</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Pause processing</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/pause</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Resume processing</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/resume</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Drain processing (finish active jobs, stop starting new ones)</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/drain</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Cancel drain and resume normal scheduling</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/stop-drain</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Get engine status</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/status</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Inspect engine mode and computed concurrency limits</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/mode</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Set engine mode and optional overrides</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/engine/mode</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">Content-Type:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">application/json</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">{</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;mode&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#984E4D">balanced</span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;concurrent_jobs_override&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">2</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;threads_override&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">}</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="POST /api/engine/pausePOST /api/engine/resumePOST /api/engine/drainPOST /api/engine/stop-drainGET /api/engine/statusGET /api/engine/modePOST /api/engine/modeContent-Type: application/json{ &#34;mode&#34;: &#34;balanced&#34;, &#34;concurrent_jobs_override&#34;: 2, &#34;threads_override&#34;: 0}"><div></div></button></div></figure></div>
<p><code dir="auto">/api/engine/status</code> now returns richer runtime state including:</p>
<ul>
<li><code dir="auto">status</code>: <code dir="auto">running</code>, <code dir="auto">paused</code>, or <code dir="auto">draining</code></li>
<li><code dir="auto">manual_paused</code></li>
<li><code dir="auto">scheduler_paused</code></li>
<li><code dir="auto">draining</code></li>
<li><code dir="auto">mode</code></li>
<li><code dir="auto">concurrent_limit</code></li>
<li><code dir="auto">is_manual_override</code></li>
</ul>
<h2 id="settings">Settings</h2>
<p>Endpoints for managing application configuration.</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Get transcode settings</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/settings/transcode</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Update transcode settings</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/settings/transcode</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">Content-Type:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">application/json</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">{</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;concurrent_jobs&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">2</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;size_reduction_threshold&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0.3</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;min_bpp_threshold&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0.1</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;min_file_size_mb&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">50</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;output_codec&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#984E4D">av1</span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;allow_fallback&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--1:#3B61B0"><span style="--0:#82AAFF">true</span><span style="--0:#ECC48D">,</span></span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;quality_profile&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#984E4D">balanced</span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;threads&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;hdr_mode&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#984E4D">preserve</span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;tonemap_algorithm&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#984E4D">hable</span><span style="--0:#D9F5DD;--1:#111111">&quot;</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;tonemap_peak&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">100</span><span style="--0:#ECC48D;--1:#3B61B0">,</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#82AAFF;--1:#3B61B0">&quot;tonemap_desat&quot;</span><span style="--0:#C5E478;--1:#3B61B0">:</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#F78C6C;--1:#AA0982">0.2</span></div><div class="ec-line"><span style="--0:#D6DEEB;--1:#403F53">}</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="GET /api/settings/transcodePOST /api/settings/transcodeContent-Type: application/json{ &#34;concurrent_jobs&#34;: 2, &#34;size_reduction_threshold&#34;: 0.3, &#34;min_bpp_threshold&#34;: 0.1, &#34;min_file_size_mb&#34;: 50, &#34;output_codec&#34;: &#34;av1&#34;, &#34;allow_fallback&#34;: true, &#34;quality_profile&#34;: &#34;balanced&#34;, &#34;threads&#34;: 0, &#34;hdr_mode&#34;: &#34;preserve&#34;, &#34;tonemap_algorithm&#34;: &#34;hable&#34;, &#34;tonemap_peak&#34;: 100, &#34;tonemap_desat&#34;: 0.2}"><div></div></button></div></figure></div>
<p>Additional operational endpoints worth knowing:</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Runtime hardware details</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/system/hardware</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Hardware probe log</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/system/hardware/probe-log</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Library health overview</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/library/health</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Start a library health scan</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">POST</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/library/health/scan</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># List detected health issues</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/library/health/issues</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="GET /api/system/hardwareGET /api/system/hardware/probe-logGET /api/library/healthPOST /api/library/health/scanGET /api/library/health/issues"><div></div></button></div></figure></div>
<h2 id="server-sent-events">Server-Sent Events</h2>
<p>Real-time updates are provided via a Server-Sent Events (SSE) stream.</p>
<div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre tabindex="0" dir="ltr"><code><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Real-time event stream</span></div><div class="ec-line"><span style="--0:#82AAFF;--1:#3B61B0">GET</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/api/events?token=&lt;auth_token&gt;</span></div><div class="ec-line">
</div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># Event types:</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># - JobStateChanged: {job_id, status}</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># - Progress: {job_id, percentage, time}</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># - Decision: {job_id, action, reason}</span></div><div class="ec-line"><span style="--0:#919F9F;--1:#5F636F"># - Log: {job_id, message}</span></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="GET /api/events?token=<auth_token>"><div></div></button></div></figure></div> </div> <footer class="astro-3yyafb3n"> <div class="meta sl-flex astro-3yyafb3n"> </div> <div class="pagination-links astro-u2l5gyhi" dir="ltr"> <a href="/alchemist-docs/reference/configuration/" rel="prev" class="astro-u2l5gyhi"> <svg aria-hidden="true" class="astro-u2l5gyhi astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg> <span class="astro-u2l5gyhi"> Previous <br class="astro-u2l5gyhi"> <span class="link-title astro-u2l5gyhi">Configuration</span> </span> </a> <a href="/alchemist-docs/reference/database/" rel="next" class="astro-u2l5gyhi"> <svg aria-hidden="true" class="astro-u2l5gyhi astro-c6vsoqas" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg> <span class="astro-u2l5gyhi"> Next <br class="astro-u2l5gyhi"> <span class="link-title astro-u2l5gyhi">Database Schema</span> </span> </a> </div> </footer> </div> </div> </main> </div> </div> </div> </div> </body></html>