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

> Add cell borders to a range.

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

Each side is set independently; a side you leave out keeps its current border.

## Call it

MCP tool call:

```json
{
  "name": "set_sheet_borders",
  "arguments": {
    "spreadsheet_id": "<spreadsheet_id>",
    "range_": "<range_>"
  }
}
```

Tool API (early access — contact us):

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

## Arguments

| Name | Type | Required | Description |
|---|---|---|---|
| `spreadsheet_id` | string | yes | the spreadsheet ID (from its URL or get_sheet_metadata). |
| `range_` | string | yes | A1 range with sheet name, e.g. 'Summary!A1:D5'. |
| `top` | object |  | {style, color} for the outer edges; omit a side to leave it unchanged. |
| `bottom` | object |  | {style, color} for the outer edges; omit a side to leave it unchanged. |
| `left` | object |  | {style, color} for the outer edges; omit a side to leave it unchanged. |
| `right` | object |  | {style, color} for the outer edges; omit a side to leave it unchanged. |
| `inner_horizontal` | object |  | the lines between rows / between columns, same shape. style: SOLID (default, 1 px), SOLID_MEDIUM (2 px), SOLID_THICK (3 px), DASHED, DOTTED, DOUBLE, or NONE (clears that side). color: RGB floats 0–1, default black. |
| `inner_vertical` | object |  | the lines between rows / between columns, same shape. style: SOLID (default, 1 px), SOLID_MEDIUM (2 px), SOLID_THICK (3 px), DASHED, DOTTED, DOUBLE, or NONE (clears that side). color: RGB floats 0–1, default black. |

## Result

- `data.sides` — the sides written (camelCase, e.g. innerHorizontal).

## Gotchas

- At least one side is required. 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

- set_sheet_borders("1ABC...", "Summary!A1:C3", top={"style": "SOLID_THICK", "color": [1.0, 0.0, 0.0]}, bottom={"style": "SOLID_THICK", "color": [1.0, 0.0, 0.0]}, left={"style": "SOLID_THICK", "color": [1.0, 0.0, 0.0]}, right={"style": "SOLID_THICK", "color": [1.0, 0.0, 0.0]}, )