# sort_sheet_range (https://sellersheetai.com/docs/mcp-api/tools/sort_sheet_range)

> Sort a range by specified columns.

Access: **DESTRUCTIVE** · toolset google_workspace · family null

## Call it

MCP tool call:

```json
{
  "name": "sort_sheet_range",
  "arguments": {
    "spreadsheet_id": "<spreadsheet_id>",
    "range_": "<range_>",
    "sort_specs": []
  }
}
```

Tool API (early access — contact us):

```bash
curl -X POST https://api.sellersheetai.com/api/v1/tools/sort_sheet_range \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"spreadsheet_id":"<spreadsheet_id>","range_":"<range_>","sort_specs":[]}'
```

## Arguments

| Name | Type | Required | Description |
|---|---|---|---|
| `spreadsheet_id` | string | yes | the spreadsheet ID (from its URL or get_sheet_metadata). |
| `range_` | string | yes | A1 notation range (e.g. 'Sheet1!A2:D100'). |
| `sort_specs` | object[] | yes | [{dimensionIndex, sortOrder}]. dimensionIndex is a 0-based column index (A=0, B=1, …); sortOrder is ASCENDING or DESCENDING. Every row of range_ moves, so start range_ below the header row (e.g. 'Sheet1!A2:D100'). |

## Result

- Success confirmation.

## Gotchas

- Every range here must name its tab; an open end is allowed ('Tab!C7:C' runs to the bottom, 'Tab!A:D' is whole columns); a range without a tab ('A1:D10') is refused.

## Example

- sort_sheet_range("1ABC...", "Sheet1!A2:D100", [{'dimensionIndex': 0, 'sortOrder': 'ASCENDING'}])