Files
admin.derez.ai/api_doc.html
T
2026-06-08 16:59:32 -03:00

793 lines
42 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DEREZ.AI / API Reference</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg: #000810;
--bg-card: #010f20;
--bg-inner: #000d1a;
--bg-hover: #001a30;
--bg-input: #000813;
--border: #0a3060;
--accent: #00f5ff;
--accent-dim: #002535;
--danger: #ff3b3b;
--success: #00ff88;
--warning: #ffaa00;
--text: #c8f0ff;
--text-muted: #2e6a80;
}
html, body {
background: var(--bg);
color: var(--text);
font-family: "Courier New", Courier, monospace;
min-height: 100vh;
font-size: 14px;
}
/* ── HEADER ── */
#top-header {
position: fixed; top: 0; left: 0; right: 0; height: 54px;
background: var(--bg-card);
border-bottom: 1px solid var(--border);
display: flex; align-items: center; justify-content: space-between;
padding: 0 28px; z-index: 1000;
box-shadow: 0 2px 24px rgba(0,0,0,0.7);
}
#header-left { display: flex; align-items: center; gap: 10px; }
#header-brand { color: var(--accent); font-weight: bold; font-size: 16px; letter-spacing: 0.1em; }
#header-sep { color: var(--text-muted); font-size: 16px; }
#header-sub { color: var(--text-muted); font-size: 13px; letter-spacing: 0.05em; }
#header-badge {
background: var(--accent-dim); color: var(--accent);
border: 1px solid rgba(0,245,255,0.25); border-radius: 12px;
padding: 4px 14px; font-size: 11px; font-weight: bold; letter-spacing: 0.07em;
}
/* ── SEARCH ── */
#search-wrap {
position: sticky; top: 54px; z-index: 900;
background: var(--bg-card); border-bottom: 1px solid var(--border);
padding: 14px 28px;
}
#search-inner { display: flex; align-items: center; gap: 14px; }
#search-box-wrap { position: relative; flex: 1; }
#search-icon {
position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
color: var(--text-muted); pointer-events: none;
}
#search-input {
width: 100%; background: var(--bg-input); border: 1px solid var(--border);
border-radius: 6px; color: var(--text);
font-family: "Courier New", Courier, monospace; font-size: 13px;
padding: 10px 14px 10px 40px; outline: none;
transition: border-color 0.15s, box-shadow 0.15s;
}
#search-input::placeholder { color: var(--text-muted); }
#search-input:focus {
border-color: var(--accent);
box-shadow: 0 0 0 2px rgba(0,245,255,0.15);
}
#search-counter {
color: var(--text-muted); font-size: 12px;
white-space: nowrap; min-width: 130px; text-align: right;
}
#search-counter .cnt { color: var(--accent); font-weight: bold; }
/* ── MAIN ── */
#main { padding: 32px 28px 80px; margin-top: 54px; }
/* ── SECTION ── */
.section { margin-bottom: 40px; }
.section-header { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; }
.section-path { color: var(--accent); font-size: 16px; font-weight: bold; letter-spacing: 0.04em; }
.section-count {
background: var(--bg-inner); color: var(--text-muted);
border: 1px solid var(--border); border-radius: 10px;
padding: 2px 10px; font-size: 10px; letter-spacing: 0.05em;
}
.section-card {
background: var(--bg-card); border: 1px solid var(--border);
border-left: 3px solid var(--accent); border-radius: 6px; overflow: hidden;
}
/* ── TABLE ── */
table { width: 100%; border-collapse: collapse; }
thead tr { background: var(--bg-inner); border-bottom: 1px solid var(--border); }
thead th {
padding: 9px 14px; text-align: left; color: var(--text-muted);
font-size: 10px; font-weight: bold; letter-spacing: 0.1em;
text-transform: uppercase; white-space: nowrap;
}
tbody tr { border-bottom: 1px solid var(--border); transition: background 0.1s; }
tbody tr:last-child { border-bottom: none; }
tbody tr:hover { background: var(--bg-hover); }
tbody td { padding: 11px 14px; vertical-align: middle; font-size: 12px; line-height: 1.5; }
/* ── PATH CELL ── */
.cell-path { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.path-text { color: var(--text); font-weight: bold; }
.copy-btn {
display: inline-flex; align-items: center; justify-content: center;
background: none; border: none; cursor: pointer; color: var(--text-muted);
padding: 3px; border-radius: 3px;
opacity: 0; transition: color 0.15s, opacity 0.15s; flex-shrink: 0;
}
tbody tr:hover .copy-btn { opacity: 1; }
.copy-btn:hover { color: var(--accent); }
.copy-btn.copied { color: var(--success) !important; opacity: 1 !important; }
/* ── METHOD BADGE ── */
.method {
display: inline-block; padding: 3px 10px; border-radius: 4px;
font-size: 10px; font-weight: bold; letter-spacing: 0.08em;
white-space: nowrap; font-family: "Courier New", Courier, monospace;
}
.method-GET { background:#002535; color:#00f5ff; border:1px solid rgba(0,245,255,0.25); }
.method-POST { background:#00251a; color:#00ff88; border:1px solid rgba(0,255,136,0.25); }
.method-PUT { background:#251a00; color:#ffaa00; border:1px solid rgba(255,170,0,0.25); }
.method-DELETE { background:#250000; color:#ff3b3b; border:1px solid rgba(255,59,59,0.25); }
/* ── CELLS ── */
.cell-query { font-size: 11px; color: var(--text); max-width: 280px; word-break: break-word; }
.old-url {
font-size: 10px; color: var(--text-muted);
font-family: "Courier New", Courier, monospace;
word-break: break-all; user-select: all; cursor: text;
max-width: 380px; line-height: 1.6;
}
/* ── HIGHLIGHT ── */
mark {
background: #251a00; color: #ffaa00;
border-radius: 2px; padding: 0 2px;
font-family: inherit; font-size: inherit;
}
/* ── NO RESULTS ── */
#no-results {
display: none; text-align: center; color: var(--text-muted);
font-size: 13px; padding: 60px 0; letter-spacing: 0.05em;
}
/* ── FOOTER ── */
#footer {
text-align: center; color: var(--text-muted); font-size: 11px;
padding: 28px 0 8px; border-top: 1px solid var(--border);
margin-top: 12px; letter-spacing: 0.04em;
}
#footer a { color: var(--accent); text-decoration: none; }
#footer a:hover { text-decoration: underline; }
</style>
</head>
<body>
<!-- ═══ HEADER ═══ -->
<header id="top-header">
<div id="header-left">
<span id="header-brand">DEREZ.AI</span>
<span id="header-sep">/</span>
<span id="header-sub">API Reference</span>
</div>
<div id="header-badge">— endpoints</div>
</header>
<!-- ═══ SEARCH ═══ -->
<div id="search-wrap">
<div id="search-inner">
<div id="search-box-wrap">
<svg id="search-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/>
</svg>
<input id="search-input" type="text" placeholder="Search paths, methods, payloads, UUIDs…" autocomplete="off" spellcheck="false">
</div>
<div id="search-counter"><span class="cnt" id="cnt-vis"></span> / <span class="cnt" id="cnt-tot"></span> endpoints</div>
</div>
</div>
<!-- ═══ MAIN ═══ -->
<main id="main">
<!-- /agent/list -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/agent/list</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/agent/list</span><button class="copy-btn" data-path="/agent/list" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-GET">GET</span></td>
<td><span class="cell-query">?email=</span></td>
<td>List all agents for a user</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/73b31740-d2c7-46d7-ab71-7a3fef5f77ff</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /agent/info -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/agent/info</span>
<span class="section-count">2 endpoints</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/agent/info</span><button class="copy-btn" data-path="/agent/info" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-GET">GET</span></td>
<td><span class="cell-query">?uuid=</span></td>
<td>Get agent server details</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/e01d06a3-14c3-4e4e-830f-7d4be9a5f529</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/agent/info</span><button class="copy-btn" data-path="/agent/info" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{uuid, key, value}</span></td>
<td>Set agent metadata — name/title (key:"comment"), wizard flag (key:"WIZZARD")</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/e01d06a3-14c3-4e4e-830f-7d4be9a5f529</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /agent/key -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/agent/key</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/agent/key</span><button class="copy-btn" data-path="/agent/key" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-GET">GET</span></td>
<td><span class="cell-query">?uuid=</span></td>
<td>Get API key info for an agent</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/1f1a6a11-727b-4965-a59a-fde77806d27f</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /agent/password -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/agent/password</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/agent/password</span><button class="copy-btn" data-path="/agent/password" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{uuid, email, password}</span></td>
<td>Update instance root password</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/51098cf4-ecfd-4db4-8977-db04f01ce2b1</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /agent/service/restart -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/agent/service/restart</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/agent/service/restart</span><button class="copy-btn" data-path="/agent/service/restart" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{uuid, email, action:"restart"}</span></td>
<td>Restart agent server</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/dac205df-66e0-4728-90e5-d784cde167af</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /agent/service/backup -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/agent/service/backup</span>
<span class="section-count">3 endpoints</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/agent/service/backup</span><button class="copy-btn" data-path="/agent/service/backup" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-GET">GET</span></td>
<td><span class="cell-query">?uuid=</span></td>
<td>List backups for agent</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/30eaa32f-378a-4963-9d80-533229d25766</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/agent/service/backup</span><button class="copy-btn" data-path="/agent/service/backup" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{uuid}</span></td>
<td>Create a new backup</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/30eaa32f-378a-4963-9d80-533229d25766</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/agent/service/backup</span><button class="copy-btn" data-path="/agent/service/backup" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-PUT">PUT</span></td>
<td><span class="cell-query">{uuid, email, action:"restore", archive_name}</span></td>
<td>Restore a backup</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/30eaa32f-378a-4963-9d80-533229d25766</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /account/login -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/account/login</span>
<span class="section-count">2 endpoints</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/account/login</span><button class="copy-btn" data-path="/account/login" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{email, password}</span></td>
<td>Sign in — returns {sessionid}</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/e256310a-6627-45ba-a221-599751943fe6</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/account/login</span><button class="copy-btn" data-path="/account/login" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-DELETE">DELETE</span></td>
<td><span class="cell-query">{sessionid} + X-Session-Id header</span></td>
<td>Sign out</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/e256310a-6627-45ba-a221-599751943fe6</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /account/password/init_change -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/account/password/init_change</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/account/password/init_change</span><button class="copy-btn" data-path="/account/password/init_change" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{email}</span></td>
<td>Request password reset email</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/c2ce0eba-eb26-405d-8a90-8d982ec30698</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /account/password/change -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/account/password/change</span>
<span class="section-count">2 endpoints</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/account/password/change</span><button class="copy-btn" data-path="/account/password/change" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{email, password}</span></td>
<td>Change password while logged in</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/4644f196-a31c-4d1a-b76e-03e9afe39302</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/account/password/change</span><button class="copy-btn" data-path="/account/password/change" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-PUT">PUT</span></td>
<td><span class="cell-query">{token, password, email}</span></td>
<td>Confirm password reset from email link</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/c2ce0eba-eb26-405d-8a90-8d982ec30698</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /account/contract -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/account/contract</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/account/contract</span><button class="copy-btn" data-path="/account/contract" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-GET">GET</span></td>
<td><span class="cell-query">?uuid=</span></td>
<td>Get contract / subscription details</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/18591766-147e-4bcb-b9ac-b0f9a92e74bf</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /admin/dns -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/admin/dns</span>
<span class="section-count">3 endpoints</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/dns</span><button class="copy-btn" data-path="/admin/dns" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-GET">GET</span></td>
<td><span class="cell-query"></span></td>
<td>List DNS records</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/4ad0c89f-ab8c-45ee-bad1-9321ce94dd64</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/dns</span><button class="copy-btn" data-path="/admin/dns" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{action:"create", name, type, content, ttl, is_disabled}</span></td>
<td>Create DNS record</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/4ad0c89f-ab8c-45ee-bad1-9321ce94dd64</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/dns</span><button class="copy-btn" data-path="/admin/dns" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-DELETE">DELETE</span></td>
<td><span class="cell-query">{name, type}</span></td>
<td>Delete DNS record</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/4ad0c89f-ab8c-45ee-bad1-9321ce94dd64</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /admin/instance -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/admin/instance</span>
<span class="section-count">3 endpoints</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/instance</span><button class="copy-btn" data-path="/admin/instance" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-GET">GET</span></td>
<td><span class="cell-query"></span></td>
<td>List all instances</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/bb369f27-244c-4f8a-869b-f787050619a2</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/instance</span><button class="copy-btn" data-path="/admin/instance" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-PUT">PUT</span></td>
<td><span class="cell-query">{uuid, ssh_port, ram, cpu}</span></td>
<td>Edit instance metadata</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/bb369f27-244c-4f8a-869b-f787050619a2</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/instance</span><button class="copy-btn" data-path="/admin/instance" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-DELETE">DELETE</span></td>
<td><span class="cell-query">{uuid}</span></td>
<td>Delete instance</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/bb369f27-244c-4f8a-869b-f787050619a2</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /admin/key -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/admin/key</span>
<span class="section-count">2 endpoints</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/key</span><button class="copy-btn" data-path="/admin/key" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-GET">GET</span></td>
<td><span class="cell-query"></span></td>
<td>List all API keys (admin)</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/a001374f-d8c0-4430-9b47-9f1e9ab134c3</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/key</span><button class="copy-btn" data-path="/admin/key" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-DELETE">DELETE</span></td>
<td><span class="cell-query">{name}</span></td>
<td>Delete API key</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/a001374f-d8c0-4430-9b47-9f1e9ab134c3</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /admin/backup-repo -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/admin/backup-repo</span>
<span class="section-count">2 endpoints</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/backup-repo</span><button class="copy-btn" data-path="/admin/backup-repo" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-GET">GET</span></td>
<td><span class="cell-query"></span></td>
<td>List backup repositories</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/69c0c632-df3b-457f-affe-b725f217f9a2</span></td>
</tr>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/backup-repo</span><button class="copy-btn" data-path="/admin/backup-repo" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-DELETE">DELETE</span></td>
<td><span class="cell-query">{id}</span></td>
<td>Delete backup repository</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/69c0c632-df3b-457f-affe-b725f217f9a2</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /admin/server -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/admin/server</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/admin/server</span><button class="copy-btn" data-path="/admin/server" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-GET">GET</span></td>
<td><span class="cell-query"></span></td>
<td>Server health and monitoring data</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/78c0c2b8-e497-4d44-8f26-fec34217513c</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /etc/signup -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/etc/signup</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/etc/signup</span><button class="copy-btn" data-path="/etc/signup" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{email, password, agent, location}</span></td>
<td>Create account and hire agent — returns {checkout_url}</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/4de196b7-2ad2-4f9a-9b4d-dc8d3b30865b</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /etc/coupon -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/etc/coupon</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/etc/coupon</span><button class="copy-btn" data-path="/etc/coupon" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{code}</span></td>
<td>Validate and apply coupon code</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/fd6375cb-6d73-4482-bfa3-ef8365f43a67</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /etc/chat -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/etc/chat</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/etc/chat</span><button class="copy-btn" data-path="/etc/chat" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{message, sessionId, email}</span></td>
<td>Support chat message</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/a58d00c4-f0c9-40cd-bb50-4f45f0442ef0</span></td>
</tr>
</tbody>
</table></div>
</div>
<!-- /etc/referral -->
<div class="section" data-section>
<div class="section-header">
<span class="section-path">/etc/referral</span>
<span class="section-count">1 endpoint</span>
</div>
<div class="section-card"><table>
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
<tbody>
<tr data-row>
<td><div class="cell-path"><span class="path-text">/etc/referral</span><button class="copy-btn" data-path="/etc/referral" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
<td><span class="method method-POST">POST</span></td>
<td><span class="cell-query">{referrer, friend_name, friend_email, uuid}</span></td>
<td>Send referral invite</td>
<td><span class="old-url">https://n8n.derez.ai/webhook/5bb4169d-284a-4006-8952-fcc325da2d22</span></td>
</tr>
</tbody>
</table></div>
</div>
<div id="no-results">No endpoints match your search.</div>
<footer id="footer">
Base URL &nbsp;&nbsp;
<a href="https://n8n.derez.ai/webhook/">https://n8n.derez.ai/webhook/&lt;ID&gt;/&lt;function&gt;</a>
</footer>
</main>
<script>
(function () {
'use strict';
const allRows = Array.from(document.querySelectorAll('tr[data-row]'));
const sections = Array.from(document.querySelectorAll('[data-section]'));
const total = allRows.length;
// Cache original cell HTML for highlight restore
const originals = allRows.map(function (row) {
return Array.from(row.querySelectorAll('td')).map(function (td) { return td.innerHTML; });
});
// Init counters
document.getElementById('header-badge').textContent = total + ' endpoints';
document.getElementById('cnt-tot').textContent = total;
document.getElementById('cnt-vis').textContent = total;
// Copy-path buttons
document.addEventListener('click', function (e) {
var btn = e.target.closest('.copy-btn');
if (!btn) return;
var path = btn.getAttribute('data-path');
var svgOrig = btn.innerHTML;
var svgCheck = '<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>';
function flash() {
btn.classList.add('copied');
btn.innerHTML = svgCheck;
setTimeout(function () { btn.classList.remove('copied'); btn.innerHTML = svgOrig; }, 1400);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(path).then(flash).catch(flash);
} else {
var ta = document.createElement('textarea');
ta.value = path; ta.style.cssText = 'position:fixed;opacity:0';
document.body.appendChild(ta); ta.select();
try { document.execCommand('copy'); } catch (x) {}
document.body.removeChild(ta);
flash();
}
});
// Search
var input = document.getElementById('search-input');
var cntVis = document.getElementById('cnt-vis');
var noRes = document.getElementById('no-results');
function escRe(s) { return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); }
function rowText(row) {
return Array.from(row.querySelectorAll('td')).map(function (td) { return td.textContent; }).join(' ');
}
function restore(row, idx) {
var cells = row.querySelectorAll('td');
originals[idx].forEach(function (html, i) { if (cells[i]) cells[i].innerHTML = html; });
}
function hlNodes(node, re) {
if (node.nodeType === 3) {
var v = node.nodeValue;
re.lastIndex = 0;
if (!re.test(v)) return;
re.lastIndex = 0;
var wrap = document.createElement('span');
wrap.innerHTML = v.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;')
.replace(re, function (m) {
return '<mark>' + m.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;') + '</mark>';
});
re.lastIndex = 0;
node.parentNode.replaceChild(wrap, node);
return;
}
if (/^(SCRIPT|STYLE|BUTTON|SVG|svg)$/.test(node.nodeName)) return;
Array.from(node.childNodes).forEach(function (c) { hlNodes(c, re); });
}
function applyHL(row, re) {
var idx = allRows.indexOf(row);
var cells = row.querySelectorAll('td');
originals[idx].forEach(function (html, i) {
if (!cells[i]) return;
var div = document.createElement('div');
div.innerHTML = html;
hlNodes(div, re);
re.lastIndex = 0;
cells[i].innerHTML = div.innerHTML;
});
}
input.addEventListener('input', function () {
var q = this.value.trim();
if (!q) {
allRows.forEach(function (row, i) { restore(row, i); row.style.display = ''; });
sections.forEach(function (s) { s.style.display = ''; });
cntVis.textContent = total;
noRes.style.display = 'none';
return;
}
var re = new RegExp(escRe(q), 'gi');
var vis = 0;
allRows.forEach(function (row, i) {
re.lastIndex = 0;
if (re.test(rowText(row))) {
row.style.display = '';
re.lastIndex = 0;
applyHL(row, re);
vis++;
} else {
restore(row, i);
row.style.display = 'none';
}
});
sections.forEach(function (sec) {
var any = Array.from(sec.querySelectorAll('tr[data-row]')).some(function (r) {
return r.style.display !== 'none';
});
sec.style.display = any ? '' : 'none';
});
cntVis.textContent = vis;
noRes.style.display = vis === 0 ? 'block' : 'none';
});
}());
</script>
</body>
</html>