# Google Sheets — Pipedream Connect

> Use Google Sheets to create and edit online spreadsheets. Get insights together with secure sharing in real-time and from any device.

- API slug: `google_sheets` (use in MCP headers and tool keys)
- Auth: OAuth (Pipedream-managed)
- Categories: Productivity
- Website: https://www.google.com/sheets/about/
- Managed OAuth scopes: `email` · `profile` · `https://www.googleapis.com/auth/drive`
- This page (HTML): https://pipedream.com/apps/google-sheets
- Tools: 42 actions · 8 triggers

## Connect via MCP (recommended)

- Endpoint: `https://remote.mcp.pipedream.net/v3`
- Headers: `Authorization: Bearer <token>` · `x-pd-project-id` · `x-pd-environment` · `x-pd-external-user-id` · `x-pd-app-slug: google_sheets`

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "google_sheets",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// e.g. run Add Single Row:
const result = await mcp.callTool({
  name: "google_sheets-add-single-row",
  arguments: {
    drive: "Drive",
    sheetId: "Spreadsheet ID",
  },
})
```

Docs: [MCP guide](https://pipedream.com/docs/connect/mcp/developers.md)

## API proxy

For a Google Sheets endpoint with no pre-built tool, the proxy forwards your request with the connected user's credentials attached.

```bash
# The path segment is the target URL, URL-safe base64 encoded:
# https://sheets.googleapis.com/

curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9zaGVldHMuZ29vZ2xlYXBpcy5jb20v?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
  -H "Authorization: Bearer {access_token}" \
  -H "x-pd-environment: production"
```

Docs: [API proxy guide](https://pipedream.com/docs/connect/api-proxy.md)

## SDK

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "google_sheets-add-single-row",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_sheets: { authProvisionId: "apn_xxxxxxx" },
    drive: "Drive",
    sheetId: "Spreadsheet ID",
  },
})
```

Docs: [Managed auth guide](https://pipedream.com/docs/connect/managed-auth/quickstart.md) · [Tools guide](https://pipedream.com/docs/connect/components.md)

## Actions (42)

### `google_sheets-add-single-row` — Add Single Row (Write)

Add a single row to a Google Sheet. By default the row is appended to the end. To INSERT the row at a specific position instead — pushing the rows at and below that position DOWN without overwriting them — set Row Index (e.g. Row Index 2 inserts directly below a header row). Use this tool (not…

Full schema: https://pipedream.com/apps/google-sheets/actions/add-single-row.md

### `google_sheets-add-multiple-rows` — Add Multiple Rows (Write)

Append multiple rows to a Google Sheet in one call. Provide rows as a JSON array of arrays — each inner array is one row, with cell values in column order (e.g. [["Alice","alice@ingen.test","Engineering"],["Bob","bob@ingen.test","Paleontology"]]). Use Get Spreadsheet Info first to see the column…

Full schema: https://pipedream.com/apps/google-sheets/actions/add-multiple-rows.md

### `google_sheets-get-values-in-range` — Get Values in Range (Read-only)

Get all values or values from a range of cells using A1 notation. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/get-values-in-range.md

### `google_sheets-add-conditional-format-rule` — Add Conditional Format Rule (Write)

Create conditional formatting with color scales or custom formulas. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/add-conditional-format-rule.md

### `google_sheets-add-conditional-formatting` — Add Conditional Formatting (Write)

Add a conditional formatting rule to a range in Google Sheets, so cells style themselves based on their contents — highlight values over a threshold, flag blanks, color-code by text, or apply a red-to-green color scale. Use this when the user wants formatting driven by the data ('highlight anything…

Full schema: https://pipedream.com/apps/google-sheets/actions/add-conditional-formatting.md

### `google_sheets-add-protected-range` — Add Protected Range (Write)

Add edit protection to cell range with permissions. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/add-protected-range.md

### `google_sheets-add-rows` — Add Rows (Write)

Append one or more rows to a Google Sheets worksheet. Pass rows as a JSON array. Preferred format: array of objects with column header keys (e.g., [{"Name": "Alice", "Email": "alice@example.com"}]). Use Get Spreadsheet Info first to discover the exact column header names — keys must match headers…

Full schema: https://pipedream.com/apps/google-sheets/actions/add-rows.md

### `google_sheets-add-worksheet` — Add Worksheet (Write)

Add a new worksheet (tab) to an existing spreadsheet. Optionally set column headers. Use Get Spreadsheet Info to see existing worksheets before creating.

Full schema: https://pipedream.com/apps/google-sheets/actions/add-worksheet.md

### `google_sheets-clear-cell` — Clear Cell (Write)

Delete the content of a specific cell in a spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/clear-cell.md

### `google_sheets-clear-rows` — Clear Rows (Write)

Delete the content of a row or rows in a spreadsheet. Deleted rows will appear as blank rows. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/clear-rows.md

### `google_sheets-copy-worksheet` — Copy Worksheet (Write)

Copy an existing worksheet to another Google Sheets file. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/copy-worksheet.md

### `google_sheets-add-column` — Create Column (Write)

Create a new column in a spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/add-column.md

### `google_sheets-create-spreadsheet` — Create Spreadsheet (Write)

Create a blank spreadsheet or duplicate an existing spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/create-spreadsheet.md

### `google_sheets-create-worksheet` — Create Worksheet (Write)

Create a blank worksheet with a title. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/create-worksheet.md

### `google_sheets-delete-conditional-format-rule` — Delete Conditional Format Rule (Write)

Remove conditional formatting rule by index. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/delete-conditional-format-rule.md

### `google_sheets-delete-rows` — Delete Rows (Write)

Deletes the specified rows from a spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/delete-rows.md

### `google_sheets-delete-worksheet` — Delete Worksheet (Write)

Delete a specific worksheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/delete-worksheet.md

### `google_sheets-find-row` — Find Row (Read-only)

Find one or more rows by a column and value. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/find-row.md

### `google_sheets-find-rows` — Find Rows (Read-only)

Search for rows matching a value in a specific column. Use Get Spreadsheet Info to discover column header names. Returns matching rows as objects with row numbers (useful for subsequent Update Rows calls). For simple reads without filtering, use Read Rows instead.

Full schema: https://pipedream.com/apps/google-sheets/actions/find-rows.md

### `google_sheets-format-cells` — Format Cells (Write)

Apply formatting to a range of cells in a Google Sheets worksheet: bold/italic/underline, font size and family, text and background color, alignment, text wrapping, number formats (currency, percent, date), borders, and cell merging. Use this whenever a user asks to style, highlight, bold, color…

Full schema: https://pipedream.com/apps/google-sheets/actions/format-cells.md

### `google_sheets-format-worksheet` — Format Worksheet (Write)

Change worksheet-level layout in Google Sheets: freeze header rows or columns, auto-resize columns to fit their contents, set explicit column widths or row heights, hide gridlines, color the sheet tab, or rename the worksheet. Use this when a user asks to freeze/lock a header row, make columns wide…

Full schema: https://pipedream.com/apps/google-sheets/actions/format-worksheet.md

### `google_sheets-get-cell` — Get Cell (Read-only)

Fetch the contents of a specific cell in a spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/get-cell.md

### `google_sheets-get-cell-formatting` — Get Cell Formatting (Read-only)

Read the current formatting of a range of cells in Google Sheets — bold, italic, font size and family, text and background colors (as hex), alignment, wrapping, number formats and borders — plus worksheet-level layout (frozen rows/columns, merged ranges, hidden gridlines). Use this to answer…

Full schema: https://pipedream.com/apps/google-sheets/actions/get-cell-formatting.md

### `google_sheets-get-current-user` — Get Current User (Read-only)

Retrieve Google Sheets account metadata for the authenticated user by calling Drive's about.get, returning the user profile (display name, email, permission ID) and storage quota information. Helpful when you need to verify which Google account is active, tailor sheet operations to available…

Full schema: https://pipedream.com/apps/google-sheets/actions/get-current-user.md

### `google_sheets-get-spreadsheet-by-id` — Get Spreadsheet by ID (Read-only)

Returns the spreadsheet at the given ID. See the documentation for more information

Full schema: https://pipedream.com/apps/google-sheets/actions/get-spreadsheet-by-id.md

### `google_sheets-get-spreadsheet-info` — Get Spreadsheet Info (Read-only)

Get the structure of a Google Spreadsheet — worksheet names, column headers (first row of each sheet), and row counts. Call this first before reading or writing data, so you know the worksheet names and column headers. The column headers are used as keys when writing data with Add Rows or Update…

Full schema: https://pipedream.com/apps/google-sheets/actions/get-spreadsheet-info.md

### `google_sheets-insert-anchored-note` — Insert an Anchored Note (Write)

Insert a note on a spreadsheet cell. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/insert-anchored-note.md

### `google_sheets-insert-comment` — Insert Comment (Write)

Insert a comment into a spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/insert-comment.md

### `google_sheets-insert-dimension` — Insert Dimension (Write)

Insert a dimension into a spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/insert-dimension.md

### `google_sheets-list-spreadsheets` — List Spreadsheets (Read-only)

List Google Spreadsheets accessible to the authenticated user. Optionally search by name with query. Returns an array of { spreadsheetId, name, url } whose IDs can be used with all other tools. Returns up to limit results (default 20); when more may exist the summary says so — raise limit to fetch…

Full schema: https://pipedream.com/apps/google-sheets/actions/list-spreadsheets.md

### `google_sheets-list-worksheets` — List Worksheets (Read-only)

Get a list of all worksheets in a spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/list-worksheets.md

### `google_sheets-merge-cells` — Merge Cells (Write)

Merge a range of cells into a single cell. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/merge-cells.md

### `google_sheets-move-dimension` — Move Dimension (Write)

Move a dimension in a spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/move-dimension.md

### `google_sheets-new-spreadsheet` — New Spreadsheet (Write)

Create a new Google Spreadsheet with an optional worksheet name and column headers. Returns the spreadsheet ID and URL. Use the spreadsheet ID with other tools to read/write data.

Full schema: https://pipedream.com/apps/google-sheets/actions/new-spreadsheet.md

### `google_sheets-read-rows` — Read Rows (Read-only)

Read rows from a Google Sheets worksheet. Returns data as objects (keys = column headers from row 1) by default, or as raw arrays. Use Get Spreadsheet Info first to discover worksheet names. Optionally specify a range in A1 notation (e.g., A2:D10) to read a subset. For searching rows by value, use…

Full schema: https://pipedream.com/apps/google-sheets/actions/read-rows.md

### `google_sheets-set-data-validation` — Set Data Validation (Write)

Add data validation rules to cells (dropdowns, checkboxes, date/number validation). See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/set-data-validation.md

### `google_sheets-update-cell` — Update Cell (Write)

Update a cell in a spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/update-cell.md

### `google_sheets-update-conditional-format-rule` — Update Conditional Format Rule (Write)

Modify existing conditional formatting rule. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/update-conditional-format-rule.md

### `google_sheets-update-formatting` — Update Formatting (Write)

Update the formatting of a cell in a spreadsheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/update-formatting.md

### `google_sheets-update-multiple-rows` — Update Multiple Rows (Write)

Overwrite a contiguous block of cells in a Google Sheet, defined by an A1 range. Provide range WITHOUT the worksheet name — just the cells, e.g. A2:C3 (the tool prepends the worksheet automatically; passing Sheet1!A2:C3 will fail). Provide rows as a JSON array of arrays matching the range, each…

Full schema: https://pipedream.com/apps/google-sheets/actions/update-multiple-rows.md

### `google_sheets-update-row` — Update Row (Write)

Overwrite cells in an existing row of a Google Sheet. Provide row (the 1-based row number — use Find Rows or Read Rows to get it from a row's _rowNumber) and myColumnData, a positional array of values starting at column A (e.g. ["Alice","alice@ingen.test","Engineering"]). Values are written…

Full schema: https://pipedream.com/apps/google-sheets/actions/update-row.md

### `google_sheets-upsert-row` — Upsert Row (Write)

Upsert a row of data in a Google Sheet. See the documentation

Full schema: https://pipedream.com/apps/google-sheets/actions/upsert-row.md

## Triggers (8)

### `google_sheets-new-comment-polling` — New Comment (Polling)

Emit new event each time a comment is added to a spreadsheet.

Full schema: https://pipedream.com/apps/google-sheets/triggers/new-comment-polling.md

### `google_sheets-new-comment` — New Comment (Instant) (Polling)

Emit new event each time a comment is added to a spreadsheet.

Full schema: https://pipedream.com/apps/google-sheets/triggers/new-comment.md

### `google_sheets-new-row-added-polling` — New Row Added (Polling)

Emit new event each time a row or rows are added to the bottom of a spreadsheet.

Full schema: https://pipedream.com/apps/google-sheets/triggers/new-row-added-polling.md

### `google_sheets-new-row-added` — New Row Added (Instant) (Polling)

Emit new event each time a row or rows are added to the bottom of a spreadsheet.

Full schema: https://pipedream.com/apps/google-sheets/triggers/new-row-added.md

### `google_sheets-new-updates-polling` — New Updates (Polling)

Emit new event each time a row or cell is updated in a spreadsheet.

Full schema: https://pipedream.com/apps/google-sheets/triggers/new-updates-polling.md

### `google_sheets-new-updates` — New Updates (Instant) (Polling)

Emit new event each time a row or cell is updated in a spreadsheet.

Full schema: https://pipedream.com/apps/google-sheets/triggers/new-updates.md

### `google_sheets-new-worksheet` — New Worksheet (Instant) (Polling)

Emit new event each time a new worksheet is created in a spreadsheet.

Full schema: https://pipedream.com/apps/google-sheets/triggers/new-worksheet.md

### `google_sheets-new-worksheet-polling` — New Worksheet (Polling) (Polling)

Emit new event each time a new worksheet is created in a spreadsheet.

Full schema: https://pipedream.com/apps/google-sheets/triggers/new-worksheet-polling.md

---

- All apps: https://pipedream.com/apps — index: https://pipedream.com/llms.txt
- Pipedream docs for agents: https://pipedream.com/docs/llms.txt
