Scaleway Load Balancer API

The main Load Balancer object. A Scaleway Load Balancer is a representation of a fully-managed, highly-available Instance configured to direct traffic across multiple servers. Use the Load Balancer endpoint to create, list, manage, update, and delete Load Balancers.

Business capability
IT Infrastructure Management BC-600.50

Operations 6

GET /lb/v1/zones/{zone}/lbs List Load Balancers #
POST /lb/v1/zones/{zone}/lbs Create a Load Balancer #
GET /lb/v1/zones/{zone}/lbs/{lb_id} Get a Load Balancer #
PUT /lb/v1/zones/{zone}/lbs/{lb_id} Update a Load Balancer #
DELETE /lb/v1/zones/{zone}/lbs/{lb_id} Delete a Load Balancer #
POST /lb/v1/zones/{zone}/lbs/{lb_id}/migrate Migrate a Load Balancer #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/scaleway-load-balancer-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

scaleway-load-balancer-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Load Balancer API
  description: Load Balancers are highly available and fully managed Instances that facilitate the distribution of incoming traffic across multiple servers.
  version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: Load Balancer
  description: The main Load Balancer object. A Scaleway Load Balancer is a representation of a fully-managed, highly-available Instance configured to direct traffic across multiple servers. Use the Load Balancer endpoint to create, list, manage, update, and delete Load Balancers.
paths:
  /lb/v1/zones/{zone}/lbs:
    get:
      tags:
      - Load Balancer
      operationId: ListLbs
      summary: List Load Balancers
      description: List all Load Balancers in the specified zone, for a Scaleway Organization or Scaleway Project. By default, the Load Balancers returned in the list are ordered by creation date in ascending order, though this can be modified via the `order_by` field.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
      - in: query
        name: name
        description: Load Balancer name to filter for.
        schema:
          type: string
      - in: query
        name: order_by
        description: Sort order of Load Balancers in the response.
        schema:
          type: string
          enum:
          - created_at_asc
          - created_at_desc
          - name_asc
          - name_desc
          default: created_at_asc
      - in: query
        name: page_size
        description: Number of Load Balancers to return.
        schema:
          type: integer
          format: uint32
      - in: query
        name: page
        description: Page number to return, from the paginated results.
        schema:
          type: integer
          format: int32
      - in: query
        name: organization_id
        description: Organization ID to filter for, only Load Balancers from this Organization will be returned.
        schema:
          type: string
      - in: query
        name: project_id
        description: Project ID to filter for, only Load Balancers from this Project will be returned.
        schema:
          type: string
      - in: query
        name: tags
        description: Filter by tag, only Load Balancers with one or more matching tags will be returned.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.lb.v1.ListLbsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    post:
      tags:
      - Load Balancer
      operationId: CreateLb
      summary: Create a Load Balancer
      description: Create a new Load Balancer. Note that the Load Balancer will be created without frontends or backends; these must be created separately via the dedicated endpoints.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.lb.v1.Lb'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                organization_id:
                  type: string
                  description: Scaleway Organization to create the Load Balancer in.
                  deprecated: true
                  nullable: true
                  x-one-of: ProjectIdentifier
                project_id:
                  type: string
                  description: Scaleway Project to create the Load Balancer in.
                  nullable: true
                  x-one-of: ProjectIdentifier
                name:
                  type: string
                  description: Name for the Load Balancer.
                description:
                  type: string
                  description: Description for the Load Balancer.
                ip_id:
                  type: string
                  description: ID of an existing flexible IP address to attach to the Load Balancer.
                  deprecated: true
                  nullable: true
                assign_flexible_ip:
                  type: boolean
                  description: Defines whether to automatically assign a flexible public IP to the Load Balancer. Default value is `true` (assign).
                  nullable: true
                assign_flexible_ipv6:
                  type: boolean
                  description: Defines whether to automatically assign a flexible public IPv6 to the Load Balancer. Default value is `false` (do not assign).
                  nullable: true
                ip_ids:
                  type: array
                  description: List of IP IDs to attach to the Load Balancer.
                  items:
                    type: string
                tags:
                  type: array
                  description: List of tags for the Load Balancer.
                  items:
                    type: string
                type:
                  type: string
                  description: Load Balancer commercial offer type. Use the Load Balancer types endpoint to retrieve a list of available offer types.
                ssl_compatibility_level:
                  type: string
                  description: Determines the minimal SSL version which needs to be supported on the client side, in an SSL/TLS offloading context. Intermediate is suitable for general-purpose servers with a variety of clients, recommended for almost all systems (>= TLS1.2). Modern is suitable for services with clients that support TLS 1.3 and do not need backward compatibility (= TLS1.3). Old is compatible with a small number of very old clients and should be used only as a last resort (>= TLS1.0).
                  enum:
                  - ssl_compatibility_level_unknown
                  - ssl_compatibility_level_intermediate
                  - ssl_compatibility_level_modern
                  - ssl_compatibility_level_old
                  default: ssl_compatibility_level_unknown
              required:
              - name
              x-properties-order:
              - organization_id
              - project_id
              - name
              - description
              - ip_id
              - assign_flexible_ip
              - assign_flexible_ipv6
              - ip_ids
              - tags
              - type
              - ssl_compatibility_level
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"description\": \"string\",\n    \"name\": \"string\",\n    \"type\": \"string\"\n  }' \\\n  \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  description=\"string\" \\\n  name=\"string\" \\\n  type=\"string\""
  /lb/v1/zones/{zone}/lbs/{lb_id}:
    get:
      tags:
      - Load Balancer
      operationId: GetLb
      summary: Get a Load Balancer
      description: Retrieve information about an existing Load Balancer, specified by its Load Balancer ID. Its full details, including name, status and IP address, are returned in the response object.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: lb_id
        description: Load Balancer ID.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.lb.v1.Lb'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    put:
      tags:
      - Load Balancer
      operationId: UpdateLb
      summary: Update a Load Balancer
      description: Update the parameters of an existing Load Balancer, specified by its Load Balancer ID. Note that the request type is PUT and not PATCH. You must set all parameters.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: lb_id
        description: Load Balancer ID.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.lb.v1.Lb'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Load Balancer name.
                description:
                  type: string
                  description: Load Balancer description.
                tags:
                  type: array
                  description: List of tags for the Load Balancer.
                  items:
                    type: string
                ssl_compatibility_level:
                  type: string
                  description: Determines the minimal SSL version which needs to be supported on the client side, in an SSL/TLS offloading context. Intermediate is suitable for general-purpose servers with a variety of clients, recommended for almost all systems (>= TLS1.2). Modern is suitable for services with clients that support TLS 1.3 and do not need backward compatibility (= TLS1.3). Old is compatible with a small number of very old clients and should be used only as a last resort (>= TLS1.0).
                  enum:
                  - ssl_compatibility_level_unknown
                  - ssl_compatibility_level_intermediate
                  - ssl_compatibility_level_modern
                  - ssl_compatibility_level_old
                  default: ssl_compatibility_level_unknown
              required:
              - name
              - description
              x-properties-order:
              - name
              - description
              - tags
              - ssl_compatibility_level
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"description\":\"string\",\"name\":\"string\"}' \\\n  \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}\""
      - lang: HTTPie
        source: "http PUT \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  description=\"string\" \\\n  name=\"string\""
    delete:
      tags:
      - Load Balancer
      operationId: DeleteLb
      summary: Delete a Load Balancer
      description: Delete an existing Load Balancer, specified by its Load Balancer ID. Deleting a Load Balancer is permanent, and cannot be undone. The Load Balancer's flexible IP address can either be deleted with the Load Balancer, or kept in your account for future use.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: lb_id
        description: ID of the Load Balancer to delete.
        required: true
        schema:
          type: string
      - in: query
        name: release_ip
        description: Defines whether the Load Balancer's flexible IP should be deleted. Set to true to release the flexible IP, or false to keep it available in your account for future Load Balancers.
        required: true
        schema:
          type: boolean
      responses:
        '204':
          description: ''
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}?release_ip=false\""
      - lang: HTTPie
        source: "http DELETE \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  release_ip==false"
  /lb/v1/zones/{zone}/lbs/{lb_id}/migrate:
    post:
      tags:
      - Load Balancer
      operationId: MigrateLb
      summary: Migrate a Load Balancer
      description: Migrate an existing Load Balancer from one commercial type to another. Allows you to scale your Load Balancer up or down in terms of bandwidth or multi-cloud provision.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: lb_id
        description: Load Balancer ID.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.lb.v1.Lb'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  description: Load Balancer type to migrate to (use the List all Load Balancer offer types endpoint to get a list of available offer types).
              required:
              - type
              x-properties-order:
              - type
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"type\":\"string\"}' \\\n  \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/migrate\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/lb/v1/zones/{zone}/lbs/{lb_id}/migrate\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  type=\"string\""
components:
  schemas:
    scaleway.lb.v1.Instance:
      type: object
      properties:
        id:
          type: string
          description: Underlying Instance ID.
        status:
          type: string
          description: Instance status.
          enum:
          - unknown
          - ready
          - pending
          - stopped
          - error
          - locked
          - migrating
          default: unknown
        ip_address:
          type: string
          description: Instance IP address.
        created_at:
          type: string
          description: Date on which the Instance was created. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        updated_at:
          type: string
          description: Date on which the Instance was last updated. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        region:
          type: string
          description: The region the Instance is in.
          deprecated: true
        zone:
          type: string
          description: The zone the Instance is in.
      x-properties-order:
      - id
      - status
      - ip_address
      - created_at
      - updated_at
      - region
      - zone
    scaleway.lb.v1.Ip:
      type: object
      properties:
        id:
          type: string
          description: IP address ID.
        ip_address:
          type: string
          description: IP address.
        organization_id:
          type: string
          description: Organization ID of the Scaleway Organization the IP address is in.
        project_id:
          type: string
          description: Project ID of the Scaleway Project the IP address is in.
        lb_id:
          type: string
          description: Load Balancer ID.
          nullable: true
        reverse:
          type: string
          description: Reverse DNS (domain name) of the IP address.
        tags:
          type: array
          description: IP tags.
          items:
            type: string
        region:
          type: string
          description: The region the IP address is in.
          deprecated: true
        zone:
          type: string
          description: The zone the IP address is in.
      x-properties-order:
      - id
      - ip_address
      - organization_id
      - project_id
      - lb_id
      - reverse
      - tags
      - region
      - zone
    scaleway.lb.v1.ListLbsResponse:
      type: object
      properties:
        lbs:
          type: array
          description: List of Load Balancer objects.
          items:
            $ref: '#/components/schemas/scaleway.lb.v1.Lb'
        total_count:
          type: integer
          description: The total number of Load Balancer objects.
          format: uint32
      x-properties-order:
      - lbs
      - total_count
    scaleway.lb.v1.Lb:
      type: object
      properties:
        id:
          type: string
          description: Underlying Instance ID.
        name:
          type: string
          description: Load Balancer name.
        description:
          type: string
          description: Load Balancer description.
        status:
          type: string
          description: Load Balancer status.
          enum:
          - unknown
          - ready
          - pending
          - stopped
          - error
          - locked
          - migrating
          - to_create
          - creating
          - to_delete
          - deleting
          default: unknown
        instances:
          type: array
          description: List of underlying Instances.
          items:
            $ref: '#/components/schemas/scaleway.lb.v1.Instance'
        organization_id:
          type: string
          description: Scaleway Organization ID.
        project_id:
          type: string
          description: Scaleway Project ID.
        ip:
          type: array
          description: List of IP addresses attached to the Load Balancer.
          items:
            $ref: '#/components/schemas/scaleway.lb.v1.Ip'
        tags:
          type: array
          description: Load Balancer tags.
          items:
            type: string
        frontend_count:
          type: integer
          description: Number of frontends the Load Balancer has.
          format: int32
        backend_count:
          type: integer
          description: Number of backends the Load Balancer has.
          format: int32
        type:
          type: string
          description: Load Balancer offer type.
        subscriber:
          type: object
          description: Subscriber information.
          properties:
            id:
              type: string
              description: Subscriber ID.
            name:
              type: string
              description: Subscriber name.
            email_config:
              type: object
              description: Email address of subscriber.
              properties:
                email:
                  type: string
                  description: Email address to send alerts to.
              nullable: true
              x-properties-order:
              - email
              x-one-of: config
            webhook_config:
              type: object
              description: Webhook URI of subscriber.
              properties:
                uri:
                  type: string
                  description: URI to receive POST requests.
              nullable: true
              x-properties-order:
              - uri
              x-one-of: config
          x-properties-order:
          - id
          - name
          - email_config
          - webhook_config
        ssl_compatibility_level:
          type: string
          description: Determines the minimal SSL version which needs to be supported on client side.
          enum:
          - ssl_compatibility_level_unknown
          - ssl_compatibility_level_intermediate
          - ssl_compatibility_level_modern
          - ssl_compatibility_level_old
          default: ssl_compatibility_level_unknown
        created_at:
          type: string
          description: Date on which the Load Balancer was created. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        updated_at:
          type: string
          description: Date on which the Load Balancer was last updated. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        private_network_count:
          type: integer
          description: Number of Private Networks attached to the Load Balancer.
          format: int32
        route_count:
          type: integer
          description: Number of routes configured on the Load Balancer.
          format: int32
        region:
          type: string
          description: The region the Load Balancer is in.
          deprecated: true
        zone:
          type: string
          description: The zone the Load Balancer is in.
      x-properties-order:
      - id
      - name
      - description
      - status
      - instances
      - organization_id
      - project_id
      - ip
      - tags
      - frontend_count
      - backend_count
      - type
      - subscriber
      - ssl_compatibility_level
      - created_at
      - updated_at
      - private_network_count
      - route_count
      - region
      - zone
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey