Networking

Preview — pending review

This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.

List load balancers

GET
/scopes/{scopeId}/network/load-balancers

Returns the load balancers (Octavia-style L4/L7 LBs) visible in the active tenant/subscription/project scope, exactly as rendered by the Load balancers page. Each row carries the full read model: VIP and VIP subnet, optional attached floating IP, flavor, provisioning state, operating health, plus the embedded listeners and backend pools (with members and health monitors) used by the list cells and the detail drill-down. This single endpoint also serves the search/filter/sort/paginate behavior (canonical action network.load_balancer.search_filter_sort): q matches name or VIP, filter mirrors the UI status chips (online → operating=ONLINE, degraded → operating=DEGRADED, provisioning → provisioning != ACTIVE), sort accepts name or createdAt with order asc|desc, and page/pageSize paginate the result. Validation: scopeId must resolve to a scope the caller can read, otherwise 403; unknown filter, sort, or order values, or non-positive page/pageSize, map to 422 VALIDATION_FAILED. Async & state: Synchronous read; no state change. Live provisioning/operating transitions arrive via resource.updated SSE frames (kind "network.load_balancer") that the UI merges into this cached collection. Errors: 401 when unauthenticated; 403 when the caller lacks reader access to the scope; 422 for malformed query parameters; 500 on backend failure. Idempotency/Concurrency: Safe, cacheable; no idempotency key required.

Authorization

bearerToken
headerAuthorizationBearer <token>

An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.

Path Parameters

scopeId*string

Opaque ownership+authorization scope resolving to tenant + subscription + project.

Query Parameters

region?string

Restrict the result set to a single region.

Match^[a-z][a-z0-9-]{1,39}$
q?string

Free-text search.

sort?string

Field to sort by (entity-specific; defaults to the entity's natural order).

order?string

Sort direction.

Default"asc"
Value in"asc""desc"
page?integer

1-based page number.

Range1 <= value
Default1
pageSize?integer

Items per page (max 200).

Range1 <= value <= 200
Default50
filter?string

UI status chip filter — online (operating=ONLINE), degraded (operating=DEGRADED), provisioning (provisioning != ACTIVE).

Value in"online""degraded""provisioning"

Response Body

Paginated collection of load balancers in the active scope.

application/json
  1. response
data*array<>
meta*

Pagination envelope metadata. List responses are always { data, meta } — never a naked array.

curl -X GET "https://example.com/scopes/string/network/load-balancers"
{  "data": [    {      "origin": "portal",      "id": "string",      "name": "string",      "description": "string",      "vip": "string",      "vipSubnet": "string",      "floatingIp": "string",      "provisioning": "ACTIVE",      "operating": "ONLINE",      "statusReasonCode": "string",      "flavor": "string",      "listeners": [        {          "id": "string",          "name": "string",          "protocol": "HTTP",          "port": 0,          "defaultPool": "string",          "connectionLimit": 0,          "tlsCertificate": "string",          "operating": "ONLINE"        }      ],      "pools": [        {          "id": "string",          "name": "string",          "protocol": "HTTP",          "algorithm": "ROUND_ROBIN",          "sessionPersistence": "string",          "cookieName": "string",          "operating": "ONLINE",          "members": [            {              "id": "string",              "name": "string",              "address": "string",              "port": 0,              "weight": 0,              "operating": "ONLINE",              "backupMember": true            }          ],          "monitor": {            "id": "string",            "type": "HTTP",            "delay": 0,            "timeout": 0,            "maxRetries": 0,            "httpMethod": "string",            "urlPath": "string",            "expectedCodes": "string",            "operating": "ONLINE"          }        }      ],      "createdAt": "2019-08-24T14:15:22Z"    }  ],  "meta": {    "page": 1,    "pageSize": 1,    "total": 0,    "hasNext": true  }}