UpCloud

Load Balancer Frontends

Frontends define the public-facing entry points for your load balancer. Configure listening ports, TLS termination, and routing rules to direct traffic to backends.


GET/1.3/load-balancer/{lb_uuid}/frontends

List frontends

Returns a list of frontends for a load balancer.

Request

GET
/1.3/load-balancer/{lb_uuid}/frontends
curl -X GET https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends \
  -u your_username:your_password

GET/1.3/load-balancer/{lb_uuid}/frontends/{name}

Get frontend details

Returns details of a specific frontend.

Request

GET
/1.3/load-balancer/{lb_uuid}/frontends/{name}
curl -X GET https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend \
  -u your_username:your_password

POST/1.3/load-balancer/{lb_uuid}/frontends

Create frontend

Creates a new frontend for a load balancer.

Attributes

  • Name
    name
    Type
    string
    Description

    Frontend name (1-255 chars). Required.

  • Name
    mode
    Type
    string
    Description

    Protocol mode: "http" or "tcp". Required.

  • Name
    port
    Type
    integer
    Description

    Listening port (1-65535). Required.

  • Name
    default_backend
    Type
    string
    Description

    Name of the default backend. Required.

  • Name
    rules
    Type
    array
    Description

    Routing rules.

  • Name
    tls_configs
    Type
    array
    Description

    TLS configurations for HTTPS.

  • Name
    properties
    Type
    object
    Description

    Frontend properties (timeouts, proxy protocol).

  • Name
    networks
    Type
    array
    Description

    Network bindings.

Request

POST
/1.3/load-balancer/{lb_uuid}/frontends
curl -X POST https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "name": "https-frontend",
    "mode": "http",
    "port": 443,
    "default_backend": "web-backend",
    "tls_configs": [
      {
        "name": "default-tls",
        "certificate_bundle_uuid": "abc123-def456"
      }
    ],
    "properties": {
      "timeout_client": 30
    }
  }'

PATCH/1.3/load-balancer/{lb_uuid}/frontends/{name}

Modify frontend

Modifies an existing frontend configuration.

Request

PATCH
/1.3/load-balancer/{lb_uuid}/frontends/{name}
curl -X PATCH https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "default_backend": "new-backend",
    "properties": {
      "timeout_client": 60
    }
  }'

DELETE/1.3/load-balancer/{lb_uuid}/frontends/{name}

Delete frontend

Deletes a frontend from the load balancer.

Request

DELETE
/1.3/load-balancer/{lb_uuid}/frontends/{name}
curl -X DELETE https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend \
  -u your_username:your_password

POST/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/rules

Create rule

Creates a routing rule for a frontend. Rules match incoming requests and perform actions like redirects or backend selection.

Attributes

  • Name
    name
    Type
    string
    Description

    Rule name. Required.

  • Name
    priority
    Type
    integer
    Description

    Rule priority (0-1000). Lower values are evaluated first. Required.

  • Name
    matchers
    Type
    array
    Description

    Conditions that must match for the rule to apply. Required.

  • Name
    actions
    Type
    array
    Description

    Actions to perform when matchers succeed. Required.

Request

POST
/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/rules
curl -X POST https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/rules \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "name": "api-routing",
    "priority": 100,
    "matchers": [
      {
        "type": "path",
        "match_path": {
          "method": "starts",
          "value": "/api/"
        }
      }
    ],
    "actions": [
      {
        "type": "use_backend",
        "action_use_backend": {
          "backend": "api-backend"
        }
      }
    ]
  }'

GET/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/rules

List rules

Returns all routing rules for a frontend.

Request

GET
/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/rules
curl -X GET https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/rules \
  -u your_username:your_password

PATCH/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/rules/{rule_name}

Modify rule

Modifies an existing routing rule.

Request

PATCH
/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/rules/{rule_name}
curl -X PATCH https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/rules/api-routing \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "priority": 50
  }'

DELETE/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/rules/{rule_name}

Delete rule

Deletes a routing rule.

Request

DELETE
/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/rules/{rule_name}
curl -X DELETE https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/rules/api-routing \
  -u your_username:your_password

GET/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/tls-configs

List TLS configs

Returns a list of TLS configurations for a frontend.

Request

GET
/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/tls-configs
curl -X GET https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/tls-configs \
  -u your_username:your_password

GET/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/tls-configs/{name}

Get TLS config details

Returns details of a specific TLS configuration.

Request

GET
/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/tls-configs/{name}
curl -X GET https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/tls-configs/default-tls \
  -u your_username:your_password

POST/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/tls-configs

Create TLS config

Creates a TLS configuration for HTTPS termination on a frontend.

Attributes

  • Name
    name
    Type
    string
    Description

    TLS config name. Required.

  • Name
    certificate_bundle_uuid
    Type
    string
    Description

    UUID of the certificate bundle. Required.

Request

POST
/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/tls-configs
curl -X POST https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/tls-configs \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "name": "example-com-tls",
    "certificate_bundle_uuid": "abc123-def456-789012"
  }'

PATCH/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/tls-configs/{name}

Modify TLS config

Modifies an existing TLS configuration.

Attributes

  • Name
    name
    Type
    string
    Description

    Updated TLS config name.

  • Name
    certificate_bundle_uuid
    Type
    string
    Description

    Updated certificate bundle UUID.

Request

PATCH
/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/tls-configs/{name}
curl -X PATCH https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/tls-configs/default-tls \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "certificate_bundle_uuid": "new-bundle-uuid-123456"
  }'

DELETE/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/tls-configs/{name}

Delete TLS config

Deletes a TLS configuration from a frontend.

Request

DELETE
/1.3/load-balancer/{lb_uuid}/frontends/{frontend_name}/tls-configs/{name}
curl -X DELETE https://api.upcloud.com/1.3/load-balancer/0a1b2c3d-4e5f-6789-abcd-ef0123456789/frontends/https-frontend/tls-configs/example-com-tls \
  -u your_username:your_password