> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gcore.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Replace load balancer pool members

> Replaces the full set of pool members with the provided list (declarative,
desired-state semantics): members present in the payload are created or updated,
members currently on the pool but absent from the payload are deleted.
If a member is unchanged (same address + port), it is kept as is without
recreation and downtime. If no changes are detected, no task is created and
an empty task list is returned.

For updating a single existing member without affecting the rest of the pool,
use `PATCH /v1/loadbalancers/{project_id}/{region_id}/pools/{pool_id}/members/{member_id}` instead.



## OpenAPI

````yaml /api-reference/services_docs_mintlify_enriched/cloud_api.yaml put /cloud/v1/loadbalancers/{project_id}/{region_id}/pools/{pool_id}/members
openapi: 3.1.0
info:
  title: Gcore OpenAPI – Cloud API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: 23526a255bc8
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: Bare Metal
  - name: Container as a Service
  - name: Cost Reports
  - name: DDoS Protection
  - name: Everywhere Inference
  - name: Everywhere Inference Apps
  - name: File Shares
  - name: Floating IPs
  - name: Function as a Service
  - name: GPU Bare Metal
  - name: GPU Virtual
  - name: IP Ranges
  - name: Images
  - name: Instances
  - name: Load Balancers
  - name: Logging
  - name: Managed Kubernetes
  - name: Managed PostgreSQL
  - name: Networks
  - name: Placement Groups
  - name: Ports
  - name: Projects
  - name: Quotas
  - name: Regions
  - name: Registry
  - name: Reservations
  - name: Reserved IPs
  - name: Routers
  - name: SSH Keys
  - name: Secrets
  - name: Security Groups
  - name: Snapshot Schedules
  - name: Snapshots
  - name: Tasks
  - name: User Actions
  - name: User Role Assignments
  - name: Volumes
paths:
  /cloud/v1/loadbalancers/{project_id}/{region_id}/pools/{pool_id}/members:
    put:
      tags:
        - Load Balancers
      summary: Replace load balancer pool members
      description: >-
        Replaces the full set of pool members with the provided list
        (declarative,

        desired-state semantics): members present in the payload are created or
        updated,

        members currently on the pool but absent from the payload are deleted.

        If a member is unchanged (same address + port), it is kept as is without

        recreation and downtime. If no changes are detected, no task is created
        and

        an empty task list is returned.


        For updating a single existing member without affecting the rest of the
        pool,

        use `PATCH
        /v1/loadbalancers/{project_id}/{region_id}/pools/{pool_id}/members/{member_id}`
        instead.
      operationId: LoadBalancerPoolMembersViewSet.put
      parameters:
        - in: path
          name: project_id
          required: true
          description: Project ID
          schema:
            description: Project ID
            example: 1
            examples:
              - 1
            title: Project Id
            type: integer
        - in: path
          name: region_id
          required: true
          description: Region ID
          schema:
            description: Region ID
            example: 1
            examples:
              - 1
            exclusiveMinimum: 0
            title: Region Id
            type: integer
        - in: path
          name: pool_id
          required: true
          description: Pool ID
          schema:
            description: Pool ID
            example: 00000000-0000-4000-8000-000000000000
            examples:
              - 00000000-0000-4000-8000-000000000000
            format: uuid4
            title: Pool Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutLbPoolMembersSerializer'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskIDsSerializer'
components:
  schemas:
    PutLbPoolMembersSerializer:
      description: >-
        New sequence of load balancer pool members. If members are the same (by
        address + port), they will be kept as is without recreation and
        downtime.
      example:
        - address: 192.168.1.101
          instance_id: a7e7e8d6-0bf7-4ac9-8170-831b47ee2ba9
          protocol_port: 8000
          weight: 2
      examples:
        - - address: 192.168.1.101
            instance_id: a7e7e8d6-0bf7-4ac9-8170-831b47ee2ba9
            protocol_port: 8000
            weight: 2
      items:
        $ref: '#/components/schemas/CreateLbPoolMemberSerializer'
      title: PutLbPoolMembersSerializer
      type: array
    TaskIDsSerializer:
      properties:
        tasks:
          description: >-
            List of task IDs representing asynchronous operations. Use these IDs
            to monitor operation progress:
              - `GET /v1/tasks/{task_id}` - Check individual task status and details
              Poll task status until completion (`FINISHED`/`ERROR`) before proceeding with dependent operations.
          example:
            - d478ae29-dedc-4869-82f0-96104425f565
          examples:
            - - d478ae29-dedc-4869-82f0-96104425f565
          items:
            type: string
          title: Tasks
          type: array
      required:
        - tasks
      title: TaskIDsSerializer
      type: object
    CreateLbPoolMemberSerializer:
      properties:
        address:
          description: Member IP address
          example: 192.168.40.33
          examples:
            - 192.168.40.33
          format: ipvanyaddress
          title: Address
          type: string
        admin_state_up:
          default: true
          description: >-
            Administrative state of the resource. When set to true, the resource
            is enabled and operational. When set to false, the resource is
            disabled and will not process traffic. Defaults to true.
          example: true
          examples:
            - true
          title: Admin State Up
          type: boolean
        backup:
          default: false
          description: >-
            Set to true if the member is a backup member, to which traffic will
            be sent exclusively when all non-backup members will be unreachable.
            It allows to realize ACTIVE-BACKUP load balancing without thinking
            about VRRP and VIP configuration. Default is false.
          example: true
          examples:
            - true
            - false
          title: Backup
          type: boolean
        instance_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          default: null
          description: Either `subnet_id` or `instance_id` should be provided
          examples:
            - a7e7e8d6-0bf7-4ac9-8170-831b47ee2ba9
          title: Instance Id
        monitor_address:
          anyOf:
            - format: ipvanyaddress
              type: string
            - type: 'null'
          default: null
          description: >-
            An alternate IP address used for health monitoring of a backend
            member. Default is null which monitors the member address.
          title: Monitor Address
        monitor_port:
          anyOf:
            - maximum: 65535
              minimum: 1
              type: integer
            - type: 'null'
          default: null
          description: >-
            An alternate protocol port used for health monitoring of a backend
            member. Default is null which monitors the member `protocol_port`.
          title: Monitor Port
        protocol_port:
          description: Member IP port
          example: 80
          examples:
            - 80
          maximum: 65535
          minimum: 1
          title: Protocol Port
          type: integer
        subnet_id:
          anyOf:
            - format: uuid4
              type: string
            - type: 'null'
          default: null
          description: >-
            `subnet_id` in which `address` is present. Either `subnet_id` or
            `instance_id` should be provided
          examples:
            - 32283b0b-b560-4690-810c-f672cbb2e28d
          title: Subnet Id
        weight:
          description: >-
            Member weight. Valid values are 0 < `weight` <= 256, defaults to 1.
            Controls traffic distribution based on the pool's load balancing
            algorithm:
              - `ROUND_ROBIN`: Distributes connections to each member in turn according to weights. Higher weight = more turns in the cycle. Example: weights 3 vs 1 = ~75% vs ~25% of requests.
              - `LEAST_CONNECTIONS`: Sends new connections to the member with fewest active connections, performing round-robin within groups of the same normalized load. Higher weight = allowed to hold more simultaneous connections before being considered 'more loaded'. Example: weights 2 vs 1 means 20 vs 10 active connections is treated as balanced.
              - `SOURCE_IP`: Routes clients consistently to the same member by hashing client source IP; hash result is modulo total weight of running members. Higher weight = more hash buckets, so more client IPs map to that member. Example: weights 2 vs 1 = roughly two-thirds of distinct client IPs map to the higher-weight member.
          example: 1
          examples:
            - 1
          exclusiveMinimum: 0
          maximum: 256
          title: Weight
          type: integer
      required:
        - protocol_port
        - address
      title: CreateLbPoolMemberSerializer
      type: object
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234_abcdef`
      type: apiKey
      in: header
      name: Authorization

````