|
@@ -1,8 +1,7 @@
|
|
|
---
|
|
---
|
|
|
title: Inbounds
|
|
title: Inbounds
|
|
|
-description: >-
|
|
|
|
|
- Manage inbound configurations and their clients. All endpoints live under
|
|
|
|
|
- /panel/api/inbounds and require a logged-in session or Bearer token.
|
|
|
|
|
|
|
+description: Manage inbound configurations and their clients. All endpoints live
|
|
|
|
|
+ under /panel/api/inbounds and require a logged-in session or Bearer token.
|
|
|
Link-generating endpoints honour forwarded headers only when the request comes
|
|
Link-generating endpoints honour forwarded headers only when the request comes
|
|
|
from a configured trusted proxy.
|
|
from a configured trusted proxy.
|
|
|
full: true
|
|
full: true
|
|
@@ -11,25 +10,20 @@ _openapi:
|
|
|
- ./public/openapi.json
|
|
- ./public/openapi.json
|
|
|
toc:
|
|
toc:
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- List every inbound owned by the authenticated user, including each
|
|
|
|
|
|
|
+ title: List every inbound owned by the authenticated user, including each
|
|
|
inbound’s clientStats traffic counters. settings, streamSettings, and
|
|
inbound’s clientStats traffic counters. settings, streamSettings, and
|
|
|
sniffing are returned as nested JSON objects (no escaped strings);
|
|
sniffing are returned as nested JSON objects (no escaped strings);
|
|
|
legacy callers that send them back as JSON-encoded strings are still
|
|
legacy callers that send them back as JSON-encoded strings are still
|
|
|
accepted on write.
|
|
accepted on write.
|
|
|
- url: >-
|
|
|
|
|
- #list-every-inbound-owned-by-the-authenticated-user-including-each-inbounds-clientstats-traffic-counters-settings-streamsettings-and-sniffing-are-returned-as-nested-json-objects-no-escaped-strings-legacy-callers-that-send-them-back-as-json-encoded-strings-are-still-accepted-on-write
|
|
|
|
|
|
|
+ url: '#list-every-inbound-owned-by-the-authenticated-user-including-each-inbounds-clientstats-traffic-counters-settings-streamsettings-and-sniffing-are-returned-as-nested-json-objects-no-escaped-strings-legacy-callers-that-send-them-back-as-json-encoded-strings-are-still-accepted-on-write'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Same shape as /list but with settings.clients[] stripped down to {email,
|
|
|
|
|
|
|
+ title: Same shape as /list but with settings.clients[] stripped down to {email,
|
|
|
enable, comment} and ClientStats not enriched with UUID/SubId. Use this
|
|
enable, comment} and ClientStats not enriched with UUID/SubId. Use this
|
|
|
for list pages; fetch /get/:id when you need the full per-client payload
|
|
for list pages; fetch /get/:id when you need the full per-client payload
|
|
|
(uuid, password, flow, ...).
|
|
(uuid, password, flow, ...).
|
|
|
- url: >-
|
|
|
|
|
- #same-shape-as-list-but-with-settingsclients-stripped-down-to-email-enable-comment-and-clientstats-not-enriched-with-uuidsubid-use-this-for-list-pages-fetch-getid-when-you-need-the-full-per-client-payload-uuid-password-flow-
|
|
|
|
|
|
|
+ url: '#same-shape-as-list-but-with-settingsclients-stripped-down-to-email-enable-comment-and-clientstats-not-enriched-with-uuidsubid-use-this-for-list-pages-fetch-getid-when-you-need-the-full-per-client-payload-uuid-password-flow-'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Lightweight picker projection of the authenticated user’s inbounds.
|
|
|
|
|
|
|
+ title: Lightweight picker projection of the authenticated user’s inbounds.
|
|
|
Returns id, remark, tag, protocol, port, a server-computed
|
|
Returns id, remark, tag, protocol, port, a server-computed
|
|
|
tlsFlowCapable flag (true for VLESS on TCP with tls or reality, or on
|
|
tlsFlowCapable flag (true for VLESS on TCP with tls or reality, or on
|
|
|
XHTTP with VLESS encryption / vlessenc enabled), and ssMethod (the
|
|
XHTTP with VLESS encryption / vlessenc enabled), and ssMethod (the
|
|
@@ -38,110 +32,86 @@ _openapi:
|
|
|
dropdowns and attach pickers — it skips settings, streamSettings, and
|
|
dropdowns and attach pickers — it skips settings, streamSettings, and
|
|
|
clientStats so the payload stays small even on panels with thousands of
|
|
clientStats so the payload stays small even on panels with thousands of
|
|
|
clients.
|
|
clients.
|
|
|
- url: >-
|
|
|
|
|
- #lightweight-picker-projection-of-the-authenticated-users-inbounds-returns-id-remark-tag-protocol-port-a-server-computed-tlsflowcapable-flag-true-for-vless-on-tcp-with-tls-or-reality-or-on-xhttp-with-vless-encryption--vlessenc-enabled-and-ssmethod-the-shadowsocks-cipher-empty-for-non-shadowsocks-inbounds--used-by-the-client-ui-to-generate-a-valid-shadowsocks-2022-psk-use-this-for-dropdowns-and-attach-pickers--it-skips-settings-streamsettings-and-clientstats-so-the-payload-stays-small-even-on-panels-with-thousands-of-clients
|
|
|
|
|
|
|
+ url: '#lightweight-picker-projection-of-the-authenticated-users-inbounds-returns-id-remark-tag-protocol-port-a-server-computed-tlsflowcapable-flag-true-for-vless-on-tcp-with-tls-or-reality-or-on-xhttp-with-vless-encryption--vlessenc-enabled-and-ssmethod-the-shadowsocks-cipher-empty-for-non-shadowsocks-inbounds--used-by-the-client-ui-to-generate-a-valid-shadowsocks-2022-psk-use-this-for-dropdowns-and-attach-pickers--it-skips-settings-streamsettings-and-clientstats-so-the-payload-stays-small-even-on-panels-with-thousands-of-clients'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
title: Fetch a single inbound by numeric ID.
|
|
title: Fetch a single inbound by numeric ID.
|
|
|
url: '#fetch-a-single-inbound-by-numeric-id'
|
|
url: '#fetch-a-single-inbound-by-numeric-id'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Create a new inbound. Send the full inbound payload (protocol, port,
|
|
|
|
|
|
|
+ title: Create a new inbound. Send the full inbound payload (protocol, port,
|
|
|
settings, streamSettings, sniffing, remark, expiryTime, total, enable).
|
|
settings, streamSettings, sniffing, remark, expiryTime, total, enable).
|
|
|
settings, streamSettings, and sniffing may be sent as nested JSON
|
|
settings, streamSettings, and sniffing may be sent as nested JSON
|
|
|
objects (preferred) or as JSON-encoded strings (legacy).
|
|
objects (preferred) or as JSON-encoded strings (legacy).
|
|
|
- url: >-
|
|
|
|
|
- #create-a-new-inbound-send-the-full-inbound-payload-protocol-port-settings-streamsettings-sniffing-remark-expirytime-total-enable-settings-streamsettings-and-sniffing-may-be-sent-as-nested-json-objects-preferred-or-as-json-encoded-strings-legacy
|
|
|
|
|
|
|
+ url: '#create-a-new-inbound-send-the-full-inbound-payload-protocol-port-settings-streamsettings-sniffing-remark-expirytime-total-enable-settings-streamsettings-and-sniffing-may-be-sent-as-nested-json-objects-preferred-or-as-json-encoded-strings-legacy'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
title: Delete an inbound by ID. Also removes its associated client stats rows.
|
|
title: Delete an inbound by ID. Also removes its associated client stats rows.
|
|
|
url: '#delete-an-inbound-by-id-also-removes-its-associated-client-stats-rows'
|
|
url: '#delete-an-inbound-by-id-also-removes-its-associated-client-stats-rows'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Delete many inbounds in one call. Processes the list sequentially;
|
|
|
|
|
|
|
+ title: Delete many inbounds in one call. Processes the list sequentially;
|
|
|
failures are reported per id and the rest still proceed. Restarts xray
|
|
failures are reported per id and the rest still proceed. Restarts xray
|
|
|
at most once.
|
|
at most once.
|
|
|
- url: >-
|
|
|
|
|
- #delete-many-inbounds-in-one-call-processes-the-list-sequentially-failures-are-reported-per-id-and-the-rest-still-proceed-restarts-xray-at-most-once
|
|
|
|
|
|
|
+ url: '#delete-many-inbounds-in-one-call-processes-the-list-sequentially-failures-are-reported-per-id-and-the-rest-still-proceed-restarts-xray-at-most-once'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Replace an inbound’s configuration. Body shape mirrors /add. Heavy on
|
|
|
|
|
|
|
+ title: Replace an inbound’s configuration. Body shape mirrors /add. Heavy on
|
|
|
inbounds with thousands of clients — prefer /setEnable for enable-only
|
|
inbounds with thousands of clients — prefer /setEnable for enable-only
|
|
|
flips.
|
|
flips.
|
|
|
- url: >-
|
|
|
|
|
- #replace-an-inbounds-configuration-body-shape-mirrors-add-heavy-on-inbounds-with-thousands-of-clients--prefer-setenable-for-enable-only-flips
|
|
|
|
|
|
|
+ url: '#replace-an-inbounds-configuration-body-shape-mirrors-add-heavy-on-inbounds-with-thousands-of-clients--prefer-setenable-for-enable-only-flips'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Toggle only the enable flag without serialising the whole settings JSON.
|
|
|
|
|
|
|
+ title: Toggle only the enable flag without serialising the whole settings JSON.
|
|
|
Recommended for UI switches on large inbounds.
|
|
Recommended for UI switches on large inbounds.
|
|
|
- url: >-
|
|
|
|
|
- #toggle-only-the-enable-flag-without-serialising-the-whole-settings-json-recommended-for-ui-switches-on-large-inbounds
|
|
|
|
|
|
|
+ url: '#toggle-only-the-enable-flag-without-serialising-the-whole-settings-json-recommended-for-ui-switches-on-large-inbounds'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Zero out upload + download counters for a single inbound. Does not touch
|
|
|
|
|
|
|
+ title: Zero out upload + download counters for a single inbound. Does not touch
|
|
|
per-client counters.
|
|
per-client counters.
|
|
|
- url: >-
|
|
|
|
|
- #zero-out-upload--download-counters-for-a-single-inbound-does-not-touch-per-client-counters
|
|
|
|
|
|
|
+ url: '#zero-out-upload--download-counters-for-a-single-inbound-does-not-touch-per-client-counters'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Remove every client attached to a single inbound while keeping the
|
|
|
|
|
|
|
+ title: Remove every client attached to a single inbound while keeping the
|
|
|
inbound itself. Collects emails from settings.clients[] and feeds them
|
|
inbound itself. Collects emails from settings.clients[] and feeds them
|
|
|
into the optimized bulk-delete path (runtime user removal + traffic-row
|
|
into the optimized bulk-delete path (runtime user removal + traffic-row
|
|
|
cleanup + SyncInbound). Destructive and cannot be undone.
|
|
cleanup + SyncInbound). Destructive and cannot be undone.
|
|
|
- url: >-
|
|
|
|
|
- #remove-every-client-attached-to-a-single-inbound-while-keeping-the-inbound-itself-collects-emails-from-settingsclients-and-feeds-them-into-the-optimized-bulk-delete-path-runtime-user-removal--traffic-row-cleanup--syncinbound-destructive-and-cannot-be-undone
|
|
|
|
|
|
|
+ url: '#remove-every-client-attached-to-a-single-inbound-while-keeping-the-inbound-itself-collects-emails-from-settingsclients-and-feeds-them-into-the-optimized-bulk-delete-path-runtime-user-removal--traffic-row-cleanup--syncinbound-destructive-and-cannot-be-undone'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Reset upload + download counters on every inbound. Destructive —
|
|
|
|
|
|
|
+ title: Reset upload + download counters on every inbound. Destructive —
|
|
|
accounting history is lost.
|
|
accounting history is lost.
|
|
|
- url: >-
|
|
|
|
|
- #reset-upload--download-counters-on-every-inbound-destructive--accounting-history-is-lost
|
|
|
|
|
|
|
+ url: '#reset-upload--download-counters-on-every-inbound-destructive--accounting-history-is-lost'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Bulk-import an inbound from a JSON blob (e.g. one exported via the UI).
|
|
|
|
|
|
|
+ title: Bulk-import an inbound from a JSON blob (e.g. one exported via the UI).
|
|
|
The body uses form encoding with a single "data" field.
|
|
The body uses form encoding with a single "data" field.
|
|
|
- url: >-
|
|
|
|
|
- #bulk-import-an-inbound-from-a-json-blob-eg-one-exported-via-the-ui-the-body-uses-form-encoding-with-a-single-data-field
|
|
|
|
|
|
|
+ url: '#bulk-import-an-inbound-from-a-json-blob-eg-one-exported-via-the-ui-the-body-uses-form-encoding-with-a-single-data-field'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Receive a master panel's aggregated per-client usage, keyed by the
|
|
|
|
|
|
|
+ title: Receive a master panel's aggregated per-client usage, keyed by the
|
|
|
master's GUID. Stored in a side table used only for the UI display
|
|
master's GUID. Stored in a side table used only for the UI display
|
|
|
overlay and local quota enforcement — never folded into the local
|
|
overlay and local quota enforcement — never folded into the local
|
|
|
counters that masters poll, so delta accounting stays intact. Called
|
|
counters that masters poll, so delta accounting stays intact. Called
|
|
|
panel-to-panel by the node traffic sync job.
|
|
panel-to-panel by the node traffic sync job.
|
|
|
- url: >-
|
|
|
|
|
- #receive-a-master-panels-aggregated-per-client-usage-keyed-by-the-masters-guid-stored-in-a-side-table-used-only-for-the-ui-display-overlay-and-local-quota-enforcement--never-folded-into-the-local-counters-that-masters-poll-so-delta-accounting-stays-intact-called-panel-to-panel-by-the-node-traffic-sync-job
|
|
|
|
|
|
|
+ url: '#receive-a-master-panels-aggregated-per-client-usage-keyed-by-the-masters-guid-stored-in-a-side-table-used-only-for-the-ui-display-overlay-and-local-quota-enforcement--never-folded-into-the-local-counters-that-masters-poll-so-delta-accounting-stays-intact-called-panel-to-panel-by-the-node-traffic-sync-job'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- List the fallback rules attached to a master VLESS/Trojan TCP-TLS
|
|
|
|
|
|
|
+ title: List the fallback rules attached to a master VLESS/Trojan TCP-TLS
|
|
|
inbound. Each rule links one child inbound (the dest) to optional
|
|
inbound. Each rule links one child inbound (the dest) to optional
|
|
|
SNI/ALPN/path/dest/xver match criteria. When dest is empty the child
|
|
SNI/ALPN/path/dest/xver match criteria. When dest is empty the child
|
|
|
inbound's listen+port is used.
|
|
inbound's listen+port is used.
|
|
|
- url: >-
|
|
|
|
|
- #list-the-fallback-rules-attached-to-a-master-vlesstrojan-tcp-tls-inbound-each-rule-links-one-child-inbound-the-dest-to-optional-snialpnpathdestxver-match-criteria-when-dest-is-empty-the-child-inbounds-listenport-is-used
|
|
|
|
|
|
|
+ url: '#list-the-fallback-rules-attached-to-a-master-vlesstrojan-tcp-tls-inbound-each-rule-links-one-child-inbound-the-dest-to-optional-snialpnpathdestxver-match-criteria-when-dest-is-empty-the-child-inbounds-listenport-is-used'
|
|
|
- depth: 2
|
|
- depth: 2
|
|
|
- title: >-
|
|
|
|
|
- Replace the entire fallback list for a master inbound. Body is JSON.
|
|
|
|
|
|
|
+ title: Replace the entire fallback list for a master inbound. Body is JSON.
|
|
|
Triggers an Xray restart.
|
|
Triggers an Xray restart.
|
|
|
- url: >-
|
|
|
|
|
- #replace-the-entire-fallback-list-for-a-master-inbound-body-is-json-triggers-an-xray-restart
|
|
|
|
|
|
|
+ url: '#replace-the-entire-fallback-list-for-a-master-inbound-body-is-json-triggers-an-xray-restart'
|
|
|
|
|
+ - depth: 2
|
|
|
|
|
+ title: Set only the subscription sort order. Reads the stored inbound, so a
|
|
|
|
|
+ reorder cannot carry a stale client list over a concurrent edit.
|
|
|
|
|
+ url: '#set-only-the-subscription-sort-order-reads-the-stored-inbound-so-a-reorder-cannot-carry-a-stale-client-list-over-a-concurrent-edit'
|
|
|
structuredData:
|
|
structuredData:
|
|
|
headings:
|
|
headings:
|
|
|
- - content: >-
|
|
|
|
|
- List every inbound owned by the authenticated user, including each
|
|
|
|
|
|
|
+ - content: List every inbound owned by the authenticated user, including each
|
|
|
inbound’s clientStats traffic counters. settings, streamSettings, and
|
|
inbound’s clientStats traffic counters. settings, streamSettings, and
|
|
|
sniffing are returned as nested JSON objects (no escaped strings);
|
|
sniffing are returned as nested JSON objects (no escaped strings);
|
|
|
legacy callers that send them back as JSON-encoded strings are still
|
|
legacy callers that send them back as JSON-encoded strings are still
|
|
|
accepted on write.
|
|
accepted on write.
|
|
|
- id: >-
|
|
|
|
|
- list-every-inbound-owned-by-the-authenticated-user-including-each-inbounds-clientstats-traffic-counters-settings-streamsettings-and-sniffing-are-returned-as-nested-json-objects-no-escaped-strings-legacy-callers-that-send-them-back-as-json-encoded-strings-are-still-accepted-on-write
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Same shape as /list but with settings.clients[] stripped down to
|
|
|
|
|
|
|
+ id: list-every-inbound-owned-by-the-authenticated-user-including-each-inbounds-clientstats-traffic-counters-settings-streamsettings-and-sniffing-are-returned-as-nested-json-objects-no-escaped-strings-legacy-callers-that-send-them-back-as-json-encoded-strings-are-still-accepted-on-write
|
|
|
|
|
+ - content: Same shape as /list but with settings.clients[] stripped down to
|
|
|
{email, enable, comment} and ClientStats not enriched with UUID/SubId.
|
|
{email, enable, comment} and ClientStats not enriched with UUID/SubId.
|
|
|
Use this for list pages; fetch /get/:id when you need the full
|
|
Use this for list pages; fetch /get/:id when you need the full
|
|
|
per-client payload (uuid, password, flow, ...).
|
|
per-client payload (uuid, password, flow, ...).
|
|
|
- id: >-
|
|
|
|
|
- same-shape-as-list-but-with-settingsclients-stripped-down-to-email-enable-comment-and-clientstats-not-enriched-with-uuidsubid-use-this-for-list-pages-fetch-getid-when-you-need-the-full-per-client-payload-uuid-password-flow-
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Lightweight picker projection of the authenticated user’s inbounds.
|
|
|
|
|
|
|
+ id: same-shape-as-list-but-with-settingsclients-stripped-down-to-email-enable-comment-and-clientstats-not-enriched-with-uuidsubid-use-this-for-list-pages-fetch-getid-when-you-need-the-full-per-client-payload-uuid-password-flow-
|
|
|
|
|
+ - content: Lightweight picker projection of the authenticated user’s inbounds.
|
|
|
Returns id, remark, tag, protocol, port, a server-computed
|
|
Returns id, remark, tag, protocol, port, a server-computed
|
|
|
tlsFlowCapable flag (true for VLESS on TCP with tls or reality, or on
|
|
tlsFlowCapable flag (true for VLESS on TCP with tls or reality, or on
|
|
|
XHTTP with VLESS encryption / vlessenc enabled), and ssMethod (the
|
|
XHTTP with VLESS encryption / vlessenc enabled), and ssMethod (the
|
|
@@ -150,80 +120,58 @@ _openapi:
|
|
|
dropdowns and attach pickers — it skips settings, streamSettings, and
|
|
dropdowns and attach pickers — it skips settings, streamSettings, and
|
|
|
clientStats so the payload stays small even on panels with thousands
|
|
clientStats so the payload stays small even on panels with thousands
|
|
|
of clients.
|
|
of clients.
|
|
|
- id: >-
|
|
|
|
|
- lightweight-picker-projection-of-the-authenticated-users-inbounds-returns-id-remark-tag-protocol-port-a-server-computed-tlsflowcapable-flag-true-for-vless-on-tcp-with-tls-or-reality-or-on-xhttp-with-vless-encryption--vlessenc-enabled-and-ssmethod-the-shadowsocks-cipher-empty-for-non-shadowsocks-inbounds--used-by-the-client-ui-to-generate-a-valid-shadowsocks-2022-psk-use-this-for-dropdowns-and-attach-pickers--it-skips-settings-streamsettings-and-clientstats-so-the-payload-stays-small-even-on-panels-with-thousands-of-clients
|
|
|
|
|
|
|
+ id: lightweight-picker-projection-of-the-authenticated-users-inbounds-returns-id-remark-tag-protocol-port-a-server-computed-tlsflowcapable-flag-true-for-vless-on-tcp-with-tls-or-reality-or-on-xhttp-with-vless-encryption--vlessenc-enabled-and-ssmethod-the-shadowsocks-cipher-empty-for-non-shadowsocks-inbounds--used-by-the-client-ui-to-generate-a-valid-shadowsocks-2022-psk-use-this-for-dropdowns-and-attach-pickers--it-skips-settings-streamsettings-and-clientstats-so-the-payload-stays-small-even-on-panels-with-thousands-of-clients
|
|
|
- content: Fetch a single inbound by numeric ID.
|
|
- content: Fetch a single inbound by numeric ID.
|
|
|
id: fetch-a-single-inbound-by-numeric-id
|
|
id: fetch-a-single-inbound-by-numeric-id
|
|
|
- - content: >-
|
|
|
|
|
- Create a new inbound. Send the full inbound payload (protocol, port,
|
|
|
|
|
|
|
+ - content: Create a new inbound. Send the full inbound payload (protocol, port,
|
|
|
settings, streamSettings, sniffing, remark, expiryTime, total,
|
|
settings, streamSettings, sniffing, remark, expiryTime, total,
|
|
|
enable). settings, streamSettings, and sniffing may be sent as nested
|
|
enable). settings, streamSettings, and sniffing may be sent as nested
|
|
|
JSON objects (preferred) or as JSON-encoded strings (legacy).
|
|
JSON objects (preferred) or as JSON-encoded strings (legacy).
|
|
|
- id: >-
|
|
|
|
|
- create-a-new-inbound-send-the-full-inbound-payload-protocol-port-settings-streamsettings-sniffing-remark-expirytime-total-enable-settings-streamsettings-and-sniffing-may-be-sent-as-nested-json-objects-preferred-or-as-json-encoded-strings-legacy
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Delete an inbound by ID. Also removes its associated client stats
|
|
|
|
|
- rows.
|
|
|
|
|
|
|
+ id: create-a-new-inbound-send-the-full-inbound-payload-protocol-port-settings-streamsettings-sniffing-remark-expirytime-total-enable-settings-streamsettings-and-sniffing-may-be-sent-as-nested-json-objects-preferred-or-as-json-encoded-strings-legacy
|
|
|
|
|
+ - content: Delete an inbound by ID. Also removes its associated client stats rows.
|
|
|
id: delete-an-inbound-by-id-also-removes-its-associated-client-stats-rows
|
|
id: delete-an-inbound-by-id-also-removes-its-associated-client-stats-rows
|
|
|
- - content: >-
|
|
|
|
|
- Delete many inbounds in one call. Processes the list sequentially;
|
|
|
|
|
|
|
+ - content: Delete many inbounds in one call. Processes the list sequentially;
|
|
|
failures are reported per id and the rest still proceed. Restarts xray
|
|
failures are reported per id and the rest still proceed. Restarts xray
|
|
|
at most once.
|
|
at most once.
|
|
|
- id: >-
|
|
|
|
|
- delete-many-inbounds-in-one-call-processes-the-list-sequentially-failures-are-reported-per-id-and-the-rest-still-proceed-restarts-xray-at-most-once
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Replace an inbound’s configuration. Body shape mirrors /add. Heavy on
|
|
|
|
|
|
|
+ id: delete-many-inbounds-in-one-call-processes-the-list-sequentially-failures-are-reported-per-id-and-the-rest-still-proceed-restarts-xray-at-most-once
|
|
|
|
|
+ - content: Replace an inbound’s configuration. Body shape mirrors /add. Heavy on
|
|
|
inbounds with thousands of clients — prefer /setEnable for enable-only
|
|
inbounds with thousands of clients — prefer /setEnable for enable-only
|
|
|
flips.
|
|
flips.
|
|
|
- id: >-
|
|
|
|
|
- replace-an-inbounds-configuration-body-shape-mirrors-add-heavy-on-inbounds-with-thousands-of-clients--prefer-setenable-for-enable-only-flips
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Toggle only the enable flag without serialising the whole settings
|
|
|
|
|
|
|
+ id: replace-an-inbounds-configuration-body-shape-mirrors-add-heavy-on-inbounds-with-thousands-of-clients--prefer-setenable-for-enable-only-flips
|
|
|
|
|
+ - content: Toggle only the enable flag without serialising the whole settings
|
|
|
JSON. Recommended for UI switches on large inbounds.
|
|
JSON. Recommended for UI switches on large inbounds.
|
|
|
- id: >-
|
|
|
|
|
- toggle-only-the-enable-flag-without-serialising-the-whole-settings-json-recommended-for-ui-switches-on-large-inbounds
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Zero out upload + download counters for a single inbound. Does not
|
|
|
|
|
|
|
+ id: toggle-only-the-enable-flag-without-serialising-the-whole-settings-json-recommended-for-ui-switches-on-large-inbounds
|
|
|
|
|
+ - content: Zero out upload + download counters for a single inbound. Does not
|
|
|
touch per-client counters.
|
|
touch per-client counters.
|
|
|
- id: >-
|
|
|
|
|
- zero-out-upload--download-counters-for-a-single-inbound-does-not-touch-per-client-counters
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Remove every client attached to a single inbound while keeping the
|
|
|
|
|
|
|
+ id: zero-out-upload--download-counters-for-a-single-inbound-does-not-touch-per-client-counters
|
|
|
|
|
+ - content: Remove every client attached to a single inbound while keeping the
|
|
|
inbound itself. Collects emails from settings.clients[] and feeds them
|
|
inbound itself. Collects emails from settings.clients[] and feeds them
|
|
|
into the optimized bulk-delete path (runtime user removal +
|
|
into the optimized bulk-delete path (runtime user removal +
|
|
|
traffic-row cleanup + SyncInbound). Destructive and cannot be undone.
|
|
traffic-row cleanup + SyncInbound). Destructive and cannot be undone.
|
|
|
- id: >-
|
|
|
|
|
- remove-every-client-attached-to-a-single-inbound-while-keeping-the-inbound-itself-collects-emails-from-settingsclients-and-feeds-them-into-the-optimized-bulk-delete-path-runtime-user-removal--traffic-row-cleanup--syncinbound-destructive-and-cannot-be-undone
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Reset upload + download counters on every inbound. Destructive —
|
|
|
|
|
|
|
+ id: remove-every-client-attached-to-a-single-inbound-while-keeping-the-inbound-itself-collects-emails-from-settingsclients-and-feeds-them-into-the-optimized-bulk-delete-path-runtime-user-removal--traffic-row-cleanup--syncinbound-destructive-and-cannot-be-undone
|
|
|
|
|
+ - content: Reset upload + download counters on every inbound. Destructive —
|
|
|
accounting history is lost.
|
|
accounting history is lost.
|
|
|
- id: >-
|
|
|
|
|
- reset-upload--download-counters-on-every-inbound-destructive--accounting-history-is-lost
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Bulk-import an inbound from a JSON blob (e.g. one exported via the
|
|
|
|
|
- UI). The body uses form encoding with a single "data" field.
|
|
|
|
|
- id: >-
|
|
|
|
|
- bulk-import-an-inbound-from-a-json-blob-eg-one-exported-via-the-ui-the-body-uses-form-encoding-with-a-single-data-field
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Receive a master panel's aggregated per-client usage, keyed by the
|
|
|
|
|
|
|
+ id: reset-upload--download-counters-on-every-inbound-destructive--accounting-history-is-lost
|
|
|
|
|
+ - content: Bulk-import an inbound from a JSON blob (e.g. one exported via the UI).
|
|
|
|
|
+ The body uses form encoding with a single "data" field.
|
|
|
|
|
+ id: bulk-import-an-inbound-from-a-json-blob-eg-one-exported-via-the-ui-the-body-uses-form-encoding-with-a-single-data-field
|
|
|
|
|
+ - content: Receive a master panel's aggregated per-client usage, keyed by the
|
|
|
master's GUID. Stored in a side table used only for the UI display
|
|
master's GUID. Stored in a side table used only for the UI display
|
|
|
overlay and local quota enforcement — never folded into the local
|
|
overlay and local quota enforcement — never folded into the local
|
|
|
counters that masters poll, so delta accounting stays intact. Called
|
|
counters that masters poll, so delta accounting stays intact. Called
|
|
|
panel-to-panel by the node traffic sync job.
|
|
panel-to-panel by the node traffic sync job.
|
|
|
- id: >-
|
|
|
|
|
- receive-a-master-panels-aggregated-per-client-usage-keyed-by-the-masters-guid-stored-in-a-side-table-used-only-for-the-ui-display-overlay-and-local-quota-enforcement--never-folded-into-the-local-counters-that-masters-poll-so-delta-accounting-stays-intact-called-panel-to-panel-by-the-node-traffic-sync-job
|
|
|
|
|
- - content: >-
|
|
|
|
|
- List the fallback rules attached to a master VLESS/Trojan TCP-TLS
|
|
|
|
|
|
|
+ id: receive-a-master-panels-aggregated-per-client-usage-keyed-by-the-masters-guid-stored-in-a-side-table-used-only-for-the-ui-display-overlay-and-local-quota-enforcement--never-folded-into-the-local-counters-that-masters-poll-so-delta-accounting-stays-intact-called-panel-to-panel-by-the-node-traffic-sync-job
|
|
|
|
|
+ - content: List the fallback rules attached to a master VLESS/Trojan TCP-TLS
|
|
|
inbound. Each rule links one child inbound (the dest) to optional
|
|
inbound. Each rule links one child inbound (the dest) to optional
|
|
|
SNI/ALPN/path/dest/xver match criteria. When dest is empty the child
|
|
SNI/ALPN/path/dest/xver match criteria. When dest is empty the child
|
|
|
inbound's listen+port is used.
|
|
inbound's listen+port is used.
|
|
|
- id: >-
|
|
|
|
|
- list-the-fallback-rules-attached-to-a-master-vlesstrojan-tcp-tls-inbound-each-rule-links-one-child-inbound-the-dest-to-optional-snialpnpathdestxver-match-criteria-when-dest-is-empty-the-child-inbounds-listenport-is-used
|
|
|
|
|
- - content: >-
|
|
|
|
|
- Replace the entire fallback list for a master inbound. Body is JSON.
|
|
|
|
|
|
|
+ id: list-the-fallback-rules-attached-to-a-master-vlesstrojan-tcp-tls-inbound-each-rule-links-one-child-inbound-the-dest-to-optional-snialpnpathdestxver-match-criteria-when-dest-is-empty-the-child-inbounds-listenport-is-used
|
|
|
|
|
+ - content: Replace the entire fallback list for a master inbound. Body is JSON.
|
|
|
Triggers an Xray restart.
|
|
Triggers an Xray restart.
|
|
|
- id: >-
|
|
|
|
|
- replace-the-entire-fallback-list-for-a-master-inbound-body-is-json-triggers-an-xray-restart
|
|
|
|
|
|
|
+ id: replace-the-entire-fallback-list-for-a-master-inbound-body-is-json-triggers-an-xray-restart
|
|
|
|
|
+ - content: Set only the subscription sort order. Reads the stored inbound, so a
|
|
|
|
|
+ reorder cannot carry a stale client list over a concurrent edit.
|
|
|
|
|
+ id: set-only-the-subscription-sort-order-reads-the-stored-inbound-so-a-reorder-cannot-carry-a-stale-client-list-over-a-concurrent-edit
|
|
|
contents: []
|
|
contents: []
|
|
|
---
|
|
---
|
|
|
|
|
|
|
@@ -236,7 +184,7 @@ export default function Layout(props) {
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|
|
|
{props.children}
|
|
{props.children}
|
|
|
- <Comp document="./public/openapi.json" webhooks={[]} operations={[{"path":"/panel/api/inbounds/list","method":"get"},{"path":"/panel/api/inbounds/list/slim","method":"get"},{"path":"/panel/api/inbounds/options","method":"get"},{"path":"/panel/api/inbounds/get/{id}","method":"get"},{"path":"/panel/api/inbounds/add","method":"post"},{"path":"/panel/api/inbounds/del/{id}","method":"post"},{"path":"/panel/api/inbounds/bulkDel","method":"post"},{"path":"/panel/api/inbounds/update/{id}","method":"post"},{"path":"/panel/api/inbounds/setEnable/{id}","method":"post"},{"path":"/panel/api/inbounds/{id}/resetTraffic","method":"post"},{"path":"/panel/api/inbounds/{id}/delAllClients","method":"post"},{"path":"/panel/api/inbounds/resetAllTraffics","method":"post"},{"path":"/panel/api/inbounds/import","method":"post"},{"path":"/panel/api/inbounds/pushClientTraffics","method":"post"},{"path":"/panel/api/inbounds/{id}/fallbacks","method":"get"},{"path":"/panel/api/inbounds/{id}/fallbacks","method":"post"}]} showTitle />
|
|
|
|
|
|
|
+ <Comp document="./public/openapi.json" webhooks={[]} operations={[{"path":"/panel/api/inbounds/list","method":"get"},{"path":"/panel/api/inbounds/list/slim","method":"get"},{"path":"/panel/api/inbounds/options","method":"get"},{"path":"/panel/api/inbounds/get/{id}","method":"get"},{"path":"/panel/api/inbounds/add","method":"post"},{"path":"/panel/api/inbounds/del/{id}","method":"post"},{"path":"/panel/api/inbounds/bulkDel","method":"post"},{"path":"/panel/api/inbounds/update/{id}","method":"post"},{"path":"/panel/api/inbounds/setEnable/{id}","method":"post"},{"path":"/panel/api/inbounds/{id}/resetTraffic","method":"post"},{"path":"/panel/api/inbounds/{id}/delAllClients","method":"post"},{"path":"/panel/api/inbounds/resetAllTraffics","method":"post"},{"path":"/panel/api/inbounds/import","method":"post"},{"path":"/panel/api/inbounds/pushClientTraffics","method":"post"},{"path":"/panel/api/inbounds/{id}/fallbacks","method":"get"},{"path":"/panel/api/inbounds/{id}/fallbacks","method":"post"},{"path":"/panel/api/inbounds/{id}/subSortIndex","method":"post"}]} showTitle />
|
|
|
</>
|
|
</>
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|