Throne API و thronectl

Throne را با Throne API و کلاینت خط فرمان آن، thronectl، از اسکریپت‌ها، کلیدهای میانبر و دستگاه‌های دیگر کنترل و مدیریت کنید.

Throne API (از نسخهٔ 1.4.0) به اسکریپت‌ها، ابزارهای کلید میانبر و دستگاه‌های دیگر اجازه می‌دهد Throne را کنترل کنند: نمایه‌ها را اجرا و متوقف کنند، حالت TUN و پروکسی سیستمی را روشن و خاموش کنند، نمایهٔ مسیریابی را تغییر دهند، تست اجرا کنند و نمایه‌ها و آمار ترافیک را بخوانند. این API می‌تواند Throne را مدیریت هم بکند: نمایه‌ها را وارد کند، اشتراک اضافه و به‌روز کند، گروه‌ها و نمایه‌ها را حذف کند، تنظیمات را تغییر دهد، پشتیبان بگیرد و بازیابی کند، و Throne را دوباره راه‌اندازی کند یا از آن خارج شود.

thronectl کلاینت خط فرمان این API است. این صفحه توضیح می‌دهد چگونه API را در Throne دسکتاپ روشن کنید، چگونه thronectl را نصب و متصل کنید و هر فرمان چه کاری انجام می‌دهد.

Throne بدون رابط گرافیکی، که بدون پنجره روی سرور یا در کانتینر اجرا می‌شود، API را از نخستین اجرا روشن دارد و آن را با thronectl مدیریت می‌کنید. مدیریت با thronectl نشان می‌دهد چگونه به آن متصل شوید و آن را راه‌اندازی کنید.

Throne برای Android، Throne API ندارد.

روشن کردن API در Throne

API به‌طور پیش‌فرض خاموش است.

  1. تنظیمات (Settings) ← Integration Settings را باز کنید، سپس زبانهٔ Throne API را.
  2. Enable the Throne API را تیک بزنید. Throne یک کلید جدید در فیلد می‌گذارد.
  3. روی تایید (OK) کلیک کنید. Status عبارت Listening on 127.0.0.1:9095 را نشان می‌دهد.

این زبانه این کنترل‌ها را دارد:

کنترل کاری که انجام می‌دهد
Enable the Throne API API را روشن می‌کند.
Listen on This computer only (پیش‌فرض) روی 127.0.0.1 گوش می‌دهد، بنابراین فقط برنامه‌های همین رایانه می‌توانند متصل شوند. Local network روی همهٔ نشانی‌های رایانه گوش می‌دهد، بنابراین دستگاه‌های دیگر هم می‌توانند متصل شوند.
Port پورت TCP، به‌طور پیش‌فرض 9095.
Allowed addresses فقط با Local network: نشانی‌ها و محدوده‌های IP که اجازهٔ اتصال دارند، مانند 192.168.1.0/24, 10.0.0.5، جداشده با ویرگول یا فاصله. اگر خالی باشد، همهٔ نشانی‌ها می‌توانند متصل شوند. برنامه‌های همین رایانه همیشه می‌توانند از راه 127.0.0.1 متصل شوند.
اجازهٔ مدیریت از شبکهٔ محلی (Allow management from the local network) فقط با Local network: دستگاه‌های دیگر هم می‌توانند درخواست‌های مدیریتی، مانند وارد کردن، تغییر تنظیمات و پشتیبان‌گیری، بفرستند. برنامه‌های همین رایانه همیشه می‌توانند آن‌ها را بفرستند.
Key کلید مخفی‌ای که کلاینت‌ها به آن نیاز دارند، به طول 43 نویسه. Show آن را نشان می‌دهد، Copy آن را کپی می‌کند و Regenerate کلید جدیدی می‌سازد.
Copy for scripts دو تنظیمی را که thronectl می‌خواند، یعنی THRONE_ADDR و THRONE_KEY، کپی می‌کند. با Local network، نشانی همان نشانی رایانه در شبکهٔ شماست.
Status اینکه Throne گوش می‌دهد، برای مثال Listening on port 9095 (local network)، یا اینکه چرا گوش نمی‌دهد، برای مثال Port 9095 is in use.
  • تغییرات وقتی اعمال می‌شوند که روی تایید کلیک کنید. کلید، پورت یا نشانی جدید، اتصال‌های باز را می‌بندد. اسکریپت‌هایی که از کلید قدیمی استفاده می‌کنند از کار می‌افتند؛ بنابراین Throne پیش از اینکه Regenerate کلید ذخیره‌شده را جایگزین کند، می‌پرسد.
  • با Local network، پنجره هشدار می‌دهد که دستگاه‌های شبکهٔ شما با این کلید می‌توانند Throne را کنترل کنند. ممکن است فایروال شما بپرسد که آیا به Throne اجازه دهد یا نه.
  • Throne هر درخواستی را که چیزی را تغییر می‌دهد، همراه با نشانی کلاینت در گزارش می‌نویسد، برای مثال [API] PUT /v1/connection from 127.0.0.1. خط‌هایی که با [API] شروع می‌شوند، اتصال‌های ردشده را هم نشان می‌دهند.
  • اگر کیل‌سوییچ روشن باشد و API روی شبکهٔ محلی گوش دهد، کیل‌سوییچ اجازه می‌دهد پاسخ‌های API خارج شوند، بنابراین کلاینت‌ها همچنان می‌توانند متصل شوند.

نصب thronectl

thronectl یک برنامهٔ تک‌فایلی برای Linux، Windows، macOS و FreeBSD است. این برنامه بخشی از بسته‌های Throne نیست؛ ایمیج Docker مربوط به Throne بدون رابط گرافیکی آن را دارد.

  • آن را از انتشارهای Throne-api دانلود کنید، از حالت فشرده خارج کنید و thronectl (در Windows، thronectl.exe) را در پوشه‌ای قرار دهید که در PATH شماست.

  • یا، اگر Go نصب است:

    go install github.com/throneproj/Throne-api/cmd/thronectl@latest
    

thronectl version نسخهٔ آن را چاپ می‌کند.

اتصال thronectl به Throne

thronectl نشانی Throne و کلید را از متغیرهای محیطی می‌خواند:

متغیر چه چیزی را نگه می‌دارد
THRONE_ADDR نشانی و پورت، برای مثال 127.0.0.1:9095. پیش‌فرض: 127.0.0.1:9095.
THRONE_KEY خود کلید.
THRONE_KEY_FILE مسیر فایلی که کلید را نگه می‌دارد.

thronectl هرگز کلید را به‌عنوان آرگومان خط فرمان نمی‌پذیرد، بنابراین کلید در تاریخچهٔ پوستهٔ (shell) شما ثبت نمی‌شود. آن را در فایلی نگه دارید که فقط خودتان بتوانید بخوانید و THRONE_KEY_FILE را روی آن تنظیم کنید:

  1. در Throne، روی Copy for scripts کلیک کنید.

  2. خط THRONE_KEY=… را بدون THRONE_KEY=، یعنی فقط خود کلید را، در یک فایل ذخیره کنید، برای مثال ~/.config/throne/api-key. در Linux و macOS، chmod 600 را روی فایل اجرا کنید.

  3. متغیرها را تنظیم کنید، برای مثال در ~/.bashrc:

    export THRONE_ADDR=127.0.0.1:9095
    export THRONE_KEY_FILE=~/.config/throne/api-key
    

    در PowerShell، برای مثال در $PROFILE:

    $env:THRONE_ADDR = "127.0.0.1:9095"
    $env:THRONE_KEY_FILE = "$HOME\throne-api-key.txt"
    
  4. اتصال را آزمایش کنید:

    thronectl status
    

این پرچم‌ها (flags) پیش یا پس از فرمان کار می‌کنند:

پرچم کاری که انجام می‌دهد
--addr host:port نشانی Throne. پیش‌فرض: THRONE_ADDR، وگرنه 127.0.0.1:9095.
--key-file file کلید را از این فایل می‌خواند. بر THRONE_KEY و THRONE_KEY_FILE اولویت دارد.
--json پاسخ Throne را به‌جای جدول، به‌صورت JSON چاپ می‌کند.
--timeout 30s پس از این مدت دست از انتظار می‌کشد، به‌طور پیش‌فرض 30s. با 0، تا هر وقت Throne لازم داشته باشد منتظر می‌ماند.

برای Throne بدون رابط گرافیکی، Throne --print-connection خطوط export را برای هر دو متغیر چاپ می‌کند. اتصال thronectl به Throne را ببینید.

فرمان‌ها

thronectl help <command> یک فرمان را توضیح می‌دهد. thronectl در فهرست‌هایش شناسهٔ نمایه‌ها، گروه‌ها، نمایه‌های مسیریابی و تست‌ها را نشان می‌دهد؛ فرمان‌ها همین شناسه‌ها را می‌گیرند.

فرمان کاری که انجام می‌دهد
status وضعیت، نمایهٔ در حال اجرا، حالت‌ها، نمایهٔ مسیریابی، نسخهٔ Throne و، اگر برنامهٔ دیگری TUN را در اختیار داشته باشد، نام آن را نشان می‌دهد.
groups گروه‌ها را با شناسه‌هایشان فهرست می‌کند.
profiles [--group N] [--name REGEX] [--ids 1,2] نمایه‌ها را با آخرین نتایج تستشان فهرست می‌کند.
connect <id> یک نمایه را اجرا می‌کند. اگر نمایه از قبل در حال اجرا باشد، --restart آن را دوباره اجرا می‌کند.
connect last نمایهٔ در حال اجرا را اجرا می‌کند، وگرنه آخرین نمایه را، وگرنه نمایهٔ به‌خاطرسپرده‌شده را.
connect best [--group N] [--name REGEX] [--max-age 1h] نمایه‌ای را که کمترین تأخیر را دارد اجرا می‌کند. ابتدا نمایه‌هایی را تست می‌کند که نتیجه‌ای جدیدتر از --max-age ندارند. گروه پیش‌فرض همان گروهی است که Throne نشان می‌دهد.
disconnect نمایهٔ در حال اجرا را متوقف می‌کند.
toggle وقتی چیزی اجرا نمی‌شود، connect last؛ وگرنه disconnect.
tun on، tun off، tun toggle حالت TUN را روشن یا خاموش می‌کند.
proxy on، proxy off، proxy toggle پروکسی سیستمی را روشن یا خاموش می‌کند.
routes نمایه‌های مسیریابی را فهرست می‌کند.
route <id> یک نمایهٔ مسیریابی را فعال می‌کند و نمایهٔ در حال اجرا را دوباره اجرا می‌کند.
test latency، test ip، test speed یک تست URL، تست IP یا تست سرعت اجرا می‌کند و نتایج را نشان می‌دهد. --group N (با --name REGEX اختیاری) یا شناسهٔ نمایه‌ها را اضافه کنید.
jobs، job <id>، cancel <id> تست‌های اخیر را فهرست می‌کند، یک تست را نشان می‌دهد، یک تست را متوقف می‌کند.
clear نتایج تست را پاک می‌کند. --group N (با --name REGEX اختیاری) یا شناسهٔ نمایه‌ها را اضافه کنید.
live نرخ فعلی ترافیک را نشان می‌دهد.
traffic [--by profile] [--by app] [--since 24h] مجموع ترافیک را بر اساس نمایه (پیش‌فرض) یا بر اساس برنامه نشان می‌دهد. --since روز را هم می‌پذیرد، مانند 7d.
import [--group N] FILE لینک‌های اشتراک‌گذاری، محتوای یک اشتراک، یا یک پیکربندی Clash، sing-box، Xray، WireGuard یا OpenVPN را از فایلی تا حجم 900 KiB وارد می‌کند. - ورودی استاندارد را می‌خواند؛ --url URL باعث می‌شود Throne یک URL را یک بار دانلود کند. گروه پیش‌فرض همان گروهی است که Throne نشان می‌دهد.
sub add <url> [--name NAME] یک گروه اشتراک اضافه می‌کند، که نامش به‌طور پیش‌فرض از میزبان (host) URL گرفته می‌شود، و آن را به‌روز می‌کند. --no-auto-update آن را از به‌روزرسانی‌های خودکار کنار می‌گذارد؛ با --no-update، اشتراک همین حالا دانلود نمی‌شود.
sub update <id>…، sub update --all گروه‌های اشتراک را به‌روز می‌کند، یا همهٔ گروه‌هایی را که آرشیو نشده‌اند.
group add <name>، group rm <id> یک گروه اضافه می‌کند؛ یک گروه را همراه با نمایه‌هایش حذف می‌کند.
profile rm <id>…، profile rm --group N [--name REGEX] نمایه‌ها را حذف می‌کند.
settings [get] [KEY…] تنظیماتی را که API مدیریت می‌کند نشان می‌دهد. تنظیمات را ببینید.
settings set KEY=VALUE… تنظیمات را تغییر می‌دهد. true، false و اعداد به همان شکل فرستاده می‌شوند و هر چیز دیگری به‌صورت متن.
backup create [-o FILE] [--parts LIST] یک آرشیو .thrbackup می‌نویسد، به‌طور پیش‌فرض throne-backup-<time>.thrbackup.
backup restore FILE [--parts LIST] [--yes] محتوای آرشیو را نشان می‌دهد، می‌پرسد، آن را بازیابی می‌کند و Throne را دوباره راه‌اندازی می‌کند. بخش‌های پیش‌فرض: profiles,routes,otp,ip_lists.
rulesets update مجموعه‌قوانین راه‌دور نمایهٔ در حال اجرا را دوباره دانلود می‌کند.
geo، geo update [geoip] [geosite] [--only-missing] فایل‌های geo مربوط به Xray را نشان می‌دهد؛ آن‌ها را دوباره دانلود می‌کند.
restart Throne را دوباره راه‌اندازی می‌کند.
shutdown [--yes] پس از پرسیدن، از Throne خارج می‌شود.
keygen [-o FILE] یک کلید جدید می‌سازد: آن را چاپ می‌کند، یا در فایل جدیدی می‌نویسد که فقط خودتان بتوانید بخوانید. به Throne متصل نمی‌شود.
call <METHOD> <PATH> [key=value…] [--body JSON] هر درخواستی از مشخصات API را می‌فرستد و پاسخ را چاپ می‌کند.
completion bash، zsh، fish یا powershell یک اسکریپت تکمیل خودکار در پوسته چاپ می‌کند.
version نسخهٔ thronectl را چاپ می‌کند.

خوب است بدانید:

  • --name یک عبارت باقاعده (regular expression) است که به بزرگی و کوچکی حروف حساس نیست و می‌تواند با هر بخشی از نام منطبق شود. آن را در پوسته داخل نقل‌قول بگذارید، برای مثال --name 'DE|NL'.
  • --parts فهرستی جداشده با ویرگول از profiles، routes، settings، otp، ip_lists و icons را می‌پذیرد.
  • فرمان‌هایی که یک نمایه را اجرا یا متوقف می‌کنند، تا --timeout منتظر نتیجه می‌مانند. اگر Throne بیشتر طول بکشد، thronectl وضعیت فعلی، مانند connecting، را نشان می‌دهد و Throne کار را خودش تمام می‌کند. وارد کردن، به‌روزرسانی، حذف و دانلود هم به همین شکل منتظر می‌مانند. با --no-wait، فرمان بی‌درنگ برمی‌گردد.
  • تست‌ها و دانلود فایل‌های geo ممکن است چند دقیقه طول بکشند، پس به آن‌ها --timeout طولانی‌تری بدهید، برای مثال --timeout 15m. تستی که بیشتر طول بکشد، در Throne به کار خود ادامه می‌دهد؛ آن را با thronectl job <id> دنبال کنید.
  • Throne در هر لحظه فقط یک تست اجرا می‌کند، چه آن را از پنجره شروع کنید چه از راه API.
  • thronectl در صورت موفقیت با 0 خارج می‌شود؛ با 1 برای خطایی از Throne (که به‌صورت error: <code>: <message> چاپ می‌شود)، به‌روزرسانی ناموفق اشتراک، مجموعه‌قوانین یا فایل‌های geo، یا پرسشی که به آن پاسخ منفی داده شود؛ با 2 برای فرمان یا پرچم نادرست؛ و با 3 وقتی نمی‌تواند متصل شود، کلید رد می‌شود یا فایلی خوانده نمی‌شود.

تنظیمات

thronectl settings تنظیماتی را که API می‌تواند تغییر دهد نشان می‌دهد و thronectl settings set آن‌ها را تغییر می‌دهد، برای مثال thronectl settings set log_level=debug kill_switch=true. Throne ابتدا همهٔ مقدارها را بررسی می‌کند و اگر یکی نادرست باشد، هیچ چیز را تغییر نمی‌دهد.

بخش تنظیمات
شروع remember_enable
گزارش‌ها log_level، xray_log_level
ورودی Mixed inbound_enabled، inbound_address، inbound_port
تست‌ها test_url، test_concurrency، test_timeout_ms
به‌روزرسانی‌های خودکار sub_auto_update، sub_respect_server_interval، route_auto_update (بر حسب دقیقه، 0 یعنی خاموش)
کیل‌سوییچ kill_switch
TUN tun_strict_route، tun_auto_redirect (Linux)، tun_mtu، tun_ipv6، tun_ipv4_cidr، tun_ipv6_cidr
پورت‌ها و APIها dns_in_port، clash_api_port، clash_listen_addr، singbox_api_port
DNS و زمان remote_dns، direct_dns، ntp_enabled، ntp_server، ntp_interval

بیشتر تغییرات گزارش‌ها، ورودی، پورت‌ها، DNS و NTP وقتی اعمال می‌شوند که نمایهٔ در حال اجرا دوباره اجرا شود. تنظیمات TUN فقط وقتی به این راه‌اندازی دوباره نیاز دارند که نمایه در حالت TUN اجرا شود؛ در غیر این صورت دفعهٔ بعد که حالت TUN شروع شود اعمال می‌شوند. تا وقتی راه‌اندازی دوباره لازم است، thronectl status این را می‌گوید؛ thronectl connect last --restart آن‌ها را اعمال می‌کند. جدول تنظیمات در مشخصات API مقدارهای مجاز را دارد.

درخواست‌های مدیریتی

این فرمان‌ها درخواست مدیریتی می‌فرستند: import، sub add، group add، group rm، profile rm، settings set، backup، restart و shutdown. فرمان‌های دیگر، از جمله sub update، rulesets update و geo update، درخواست‌های کنترلی هستند. کلید برای هر دو نوع یکسان است.

  • Throne فقط از رایانهٔ خودش، یعنی از 127.0.0.1 یا ::1، به درخواست‌های مدیریتی پاسخ می‌دهد.
  • از دستگاه دیگر، این درخواست‌ها با forbidden شکست می‌خورند، مگر اینکه اجازهٔ مدیریت از شبکهٔ محلی روشن باشد. Throne بدون رابط گرافیکی به‌جای آن به --api-admin-lan نیاز دارد.
  • آرشیوهای پشتیبان، گذرواژه‌ها و کلیدهای نمایه‌های شما و رمزهای OTP شما را به‌صورت متن ساده نگه می‌دارند. thronectl آن‌ها را طوری می‌سازد که فقط خودتان بتوانید بخوانید. آن‌ها را همین‌طور نگه دارید و وقتی دیگر لازمشان ندارید، حذفشان کنید.
  • backup restore آرشیوی را که نمایه‌هایش روی رایانه برنامه اجرا می‌کنند یا فایل می‌خوانند، مانند نمایه‌های هستهٔ اضافی (Extra Core)، رد می‌کند (invalid_archive). چنین آرشیوی را در پنجرهٔ Throne بازیابی کنید.
  • backup restore و shutdown پیش از انجام کار می‌پرسند. در اسکریپتی که ترمینال ندارد، --yes را اضافه کنید.

بازیابی settings تنظیماتی را که به این رایانه تعلق دارند نگه می‌دارد: Throne API، ورودی و پورت‌ها، TUN، کیل‌سوییچ، آخرین نمایه را به خاطر بسپار (Remember last profile)، NTP، گزارش‌گیری، پروکسی سیستمی و مسیرهای فایل.

نمونه‌ها

فرمان‌های روزمره:

thronectl status
thronectl profiles --group 3 --name 'DE|NL'
thronectl connect 12
thronectl tun on
thronectl route 2
thronectl --timeout 2m test latency --group 3
thronectl traffic --by app --since 7d
thronectl sub add 'https://sub.example.com/abc' --name Provider
thronectl --timeout 2m sub update --all
thronectl backup create -o throne.thrbackup

اتصال به بهترین نمایه

نمایه‌ای را اجرا کنید که در گروهی که Throne نشان می‌دهد کمترین تأخیر را دارد. نتایج قدیمی‌تر از ده دقیقه دوباره تست می‌شوند:

thronectl connect best --max-age 10m

اتصال به سریع‌ترین نمایه

روی نمایه‌های گروه 3 که نامشان DE یا NL دارد تست سرعت اجرا کنید، سپس سریع‌ترین را اجرا کنید. این کار به jq نیاز دارد:

best=$(thronectl --json --timeout 15m test speed --group 3 --name 'DE|NL' |
  jq -r '[.results[] | select(.download_bps > 0)] | max_by(.download_bps) | .id // empty')
[ -n "$best" ] && thronectl connect "$best"

یک کلید برای اتصال و قطع اتصال

برای اینکه با یک کلید از Stream Deck، یک صفحه‌کلید ماکرو (macro pad) یا یک ابزار کلید میانبر متصل شوید و اتصال را قطع کنید، کلید را طوری تنظیم کنید که این فرمان را اجرا کند:

thronectl toggle

برنامه‌هایی که با یک کلید فرمان اجرا می‌کنند، اغلب تنظیمات پوستهٔ شما را نمی‌خوانند. THRONE_KEY_FILE (و در صورت نیاز THRONE_ADDR) را به‌عنوان متغیر محیطی حساب کاربری خود تنظیم کنید، یا --key-file را به فرمان اضافه کنید. Throne دسکتاپ هم برای Start/Stop Profile و Toggle Tun Mode کلیدهای میانبر سراسری دارد.

PowerShell

نمونهٔ تست سرعت در PowerShell:

$job = thronectl --json --timeout 15m test speed --group 3 --name 'DE|NL' | ConvertFrom-Json
$best = $job.results | Where-Object download_bps -gt 0 | Sort-Object download_bps -Descending | Select-Object -First 1
if ($best) { thronectl connect $best.id }

تکمیل خودکار در پوسته

thronectl completion <shell> اسکریپتی چاپ می‌کند که فرمان‌ها، پرچم‌ها، نام تنظیمات، بخش‌های پشتیبان و دیگر مقدارهای ثابت را در bash، zsh، fish و PowerShell کامل می‌کند. وقتی Throne در کمتر از یک ثانیه پاسخ دهد، شناسهٔ نمایه‌ها، گروه‌ها، نمایه‌های مسیریابی و تست‌ها را هم همراه با نامشان کامل می‌کند.

# bash: in ~/.bashrc (on macOS, ~/.bash_profile)
eval "$(thronectl completion bash)"
# zsh: in ~/.zshrc
autoload -Uz compinit && compinit
source <(thronectl completion zsh)
# fish
thronectl completion fish > ~/.config/fish/completions/thronectl.fish
# In $PROFILE
thronectl completion powershell | Out-String | Invoke-Expression

این اسکریپت‌ها از خود thronectl می‌پرسند چه چیزی را کامل کنند، بنابراین وقتی thronectl را به‌روز می‌کنید، درست باقی می‌مانند.

امنیت

  • هر کس کلید را داشته باشد، اتصال، حالت‌ها و مسیریابی Throne را کنترل می‌کند و می‌تواند نام، نشانی، نتایج تست و ترافیک نمایه‌های شما را بخواند. از همین رایانه، یا از شبکهٔ محلی وقتی اجازهٔ مدیریت از شبکهٔ محلی روشن است، کلید اجازهٔ وارد کردن، حذف، تغییر تنظیمات و پشتیبان‌گیری را هم می‌دهد، و پشتیبان‌ها اطلاعات ورود شما را به‌صورت متن ساده دارند.
  • کلید را در خط فرمان‌ها و اسکریپت‌هایی که دیگران می‌توانند بخوانند قرار ندهید. از فایل کلیدی استفاده کنید که فقط خودتان بتوانید بخوانید، یا از THRONE_KEY که از یک مدیر گذرواژه یا یک انبار اسرار (secret store) می‌آید.
  • همهٔ پیام‌های میان thronectl و Throne با کلید رمزگذاری و احراز هویت می‌شوند، در شبکهٔ محلی هم. محرمانگی پیشرو (forward secrecy) وجود ندارد: هر کس کلید را به دست آورد، می‌تواند ترافیکی را که پیش‌تر ضبط شده است بخواند.
  • اگر کلید فاش شد، روی Regenerate کلیک کنید و کلید جدید را به اسکریپت‌هایتان بدهید. برای Throne بدون رابط گرافیکی، محافظت در برابر قطع دسترسی و بازیابی را ببینید.
  • Listen on را روی This computer only نگه دارید، مگر اینکه API را روی شبکه لازم داشته باشید. روی شبکه، دستگاه‌هایی را که اجازهٔ اتصال دارند در Allowed addresses فهرست کنید.
  • پس از 5 تلاش ناموفق برای اتصال در یک دقیقه از یک نشانی، Throne آن نشانی را به مدت 60 ثانیه رد می‌کند. تا پایان این مدت، کلاینت‌های دیگری هم که پشت همان نشانی هستند، برای مثال پشت همان روتر، نمی‌توانند متصل شوند. Throne هرگز 127.0.0.1 را رد نمی‌کند، و نه نشانی‌ای را که در 10 دقیقهٔ گذشته کلاینتی با موفقیت از آن وارد شده است.
  • پاسخ‌ها هرگز اطلاعات ورود نمایه‌های شما یا URL اشتراک‌هایتان را ندارند. پشتیبان‌ها استثنا هستند.

کتابخانهٔ Go

مخزن Throne-api یک کتابخانهٔ Go هم دارد، یعنی github.com/throneproj/Throne-api، که برای هر درخواست یک متد دارد. مشخصات API هم با پروتکل ارتباطی (wire protocol) در همین مخزن است، تا بتوانید به زبان دیگری کلاینت بنویسید.