GET /v1/streams
List layer-four forwarding rules
Description (from the contract)
Tenant principals see only rules owned by their current user and tenant. Platform principals can list tenant rules after streams.read authorization. All supplied filters are combined with AND and apply to both items and total. Unknown or repeated query parameters are rejected. protocol, enabled, listen_port, upstream, display_id, owner_display_id, publication_state, group_id, package_product_id, cname_domain, cname_hostname, region_id, node_group_id, sync_state and admin_status reject empty values.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Request-ID | header | string | No | Caller-stable request identity; invalid or absent values are replaced by middleware. |
page | query | integer | No | — |
limit | query | integer | No | — |
search | query | string | No | — |
protocol | query | string: tcp / udp | No | Exact lowercase tcp or udp matching any primary or additional listener. When listen_port is supplied, both must match the same listener. Whitespace and other spellings are rejected. |
enabled | query | boolean | No | Exact lowercase true or false; whitespace, numbers and other spellings are rejected. |
listen_port | query | integer | No | Exact listening port, written as a canonical positive decimal integer. |
upstream | query | string | No | Case-insensitive literal substring of the upstream IP address or hostname. Surrounding whitespace is trimmed; SQL wildcard characters remain literal. Control characters and invalid UTF-8 are rejected. |
display_id | query | string | No | Exact display ID as a canonical positive decimal string, at most 9223372036854775807. Display IDs are tenant-scoped. |
owner_display_id | query | string | No | Exact stable user display number, written as a canonical positive decimal string at most 9223372036854775807. This is not a user UUID. Tenant principals remain restricted to their own scope and user; a different owner number returns an empty page. |
forward | query | string | No | Case-insensitive substring of the forward name or remark (the name form of display_id). |
owner | query | string | No | Platform only. Case-insensitive substring of the owner's username or display name (the name form of owner_display_id); tenant principals get 403. |
publication_state | query | string: unknown / pending / leased / retrying / reconciling / succeeded / failed / superseded | No | Exact publish_intent.state of the latest intent and its latest automatic publication observation. retry_wait is exposed as retrying; missing or unrecognized observations are unknown. This is not a business eligibility status or an independently inferred edge synchronization result. |
group_id | query | string(uuid) | No | Exact active stream group membership in the stream scope. This is a stream group, not a node line group. |
package_product_id | query | string(uuid) | No | Exact package product referenced by the stream subscription in the same tenant scope, not a subscription ID. |
cname_domain | query | string | No | Case-insensitive literal substring of the effective CNAME domain (the stream's own, else its package's). |
cname_hostname | query | string | No | Case-insensitive literal substring of the package CNAME hostname (按套餐 streams). |
region_id | query | string(uuid) | No | 区域. Exact line.region_id (the stream's own region, else its package's). Platform principals only; tenant principals get 403. |
node_group_id | query | string(uuid) | No | 线路分组. Exact line.node_group_id (the stream's own line group, else its package's primary group). Platform principals only; tenant principals get 403. |
sync_state | query | string: done / pending / failed | No | 同步状态. Exact sync_state, derived from the latest intent's automatic publication and its node deployment receipts. |
admin_status | query | string: normal / locked / traffic_exceeded / package_expired | No | 状态. Exact admin_status. |
Responses
| Status | Description |
|---|---|
200 | Stable page ordered newest first. Fields: |
400 | Stable invalid request or validation error. |
401 | Authentication is missing or invalid. |
403 | The authenticated principal lacks the required permission or owner scope. |
500 | Internal operation failure without publication or activation claims. |
What to do on failure
400Fix the parameters or body per the field list; do not retry unchanged.401Check the credential format and whether it expired or was rotated.403Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.500Outcome unknown: read back by ID or list first, then decide whether to retry with the original Idempotency-Key.