---
title: "Rebalances a table (reassign instances and segments for a table)"
method: POST
path: "/tables/{tableName}/rebalance"
tags: ["Table"]
---

# Rebalances a table (reassign instances and segments for a table)

`POST /tables/{tableName}/rebalance`

Rebalances a table (reassign instances and segments for a table)

## Path parameters

- `tableName` string, required

## Query parameters

- `type` string, required
- `dryRun` boolean
- `preChecks` boolean
- `reassignInstances` boolean
- `includeConsuming` boolean
- `bootstrap` boolean
- `downtime` boolean
- `minAvailableReplicas` integer
- `lowDiskMode` boolean
- `bestEfforts` boolean
- `externalViewCheckIntervalInMs` integer
- `externalViewStabilizationTimeoutInMs` integer
- `heartbeatIntervalInMs` integer
- `heartbeatTimeoutInMs` integer
- `maxAttempts` integer
- `retryInitialDelayInMs` integer
- `updateTargetTier` boolean

## Response `200`

successful operation

- RebalanceResult
  - `jobId` string
  - `status` 'NO_OP' | 'DONE' | 'FAILED' | 'IN_PROGRESS' | 'ABORTED' | 'CANCELLED' | 'UNKNOWN_ERROR'
  - `description` string
  - `instanceAssignment` object
  - `tierInstanceAssignment` object
  - `segmentAssignment` object
  - `preChecksResult` object
  - `rebalanceSummaryResult` RebalanceSummaryResult
    - `serverInfo` ServerInfo
      - `numServersGettingNewSegments` integer
      - `numServers` RebalanceChangeInfo
        - `valueBeforeRebalance` integer
        - `expectedValueAfterRebalance` integer
      - `serversAdded` string[]
      - `serversRemoved` string[]
      - `serversUnchanged` string[]
      - `serversGettingNewSegments` string[]
      - `serverSegmentChangeInfo` object
    - `segmentInfo` SegmentInfo
      - `totalSegmentsToBeMoved` integer
      - `maxSegmentsAddedToASingleServer` integer
      - `estimatedAverageSegmentSizeInBytes` integer
      - `totalEstimatedDataToBeMovedInBytes` integer
      - `replicationFactor` RebalanceChangeInfo
        - `valueBeforeRebalance` integer
        - `expectedValueAfterRebalance` integer
      - `numSegmentsInSingleReplica` RebalanceChangeInfo
        - `valueBeforeRebalance` integer
        - `expectedValueAfterRebalance` integer
      - `numSegmentsAcrossAllReplicas` RebalanceChangeInfo
        - `valueBeforeRebalance` integer
        - `expectedValueAfterRebalance` integer

---

[API](https://skmtc.net/startree/apis/pinot-controller-api.md) · [All operations](https://skmtc.net/startree/apis/pinot-controller-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/startree/pinot-controller-api/versions/f1cc8a0ba2e0/schema)
