# Add Multiple Rows — Google Sheets

> 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…

- Key: `google_sheets-add-multiple-rows`
- Type: Action (Write)
- Version: 0.3.1
- App: Google Sheets (`google_sheets`) — https://pipedream.com/apps/google-sheets.md
- This page (HTML): https://pipedream.com/apps/google-sheets/actions/add-multiple-rows
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/google_sheets/actions/add-multiple-rows/add-multiple-rows.mjs

## Description

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 order. Rows are appended after the last row with data. To add a single row, or to insert at a specific position, use **Add Single Row** instead. [See the documentation](https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `drive` | `string` | No | Select a specific drive to search. Defaults to All Drives (My Drive and all Shared Drives you have access to) when no selection is made. To limit to your personal drive or a Shared Drive, select it from this list. Options are loaded from the connected account. |
| `sheetId` | `string` | Yes | Select a spreadsheet or provide a spreadsheet ID Options are loaded from the connected account. |
| `worksheetId` | `integer` | Yes | Select a worksheet or provide a worksheet ID Options are loaded from the connected account. |
| `rows` | `string` | Yes | Provide an array of arrays |
| `resetRowFormat` | `boolean` | No | Reset the formatting of the rows that were added (line style to none, background to white, foreground color to black, font size to 10, no bold, no italic, no strikethrough, horizontalAlignment to left). This is useful if you want to add rows to a formatted table in Google Sheets. |

## Run it

**MCP**

```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()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "google_sheets-add-multiple-rows",
  arguments: {
    drive: "Drive",
    sheetId: "Spreadsheet ID",
  },
})
```

**TypeScript**

```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-multiple-rows",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_sheets: { authProvisionId: "apn_xxxxxxx" },
    drive: "Drive",
    sheetId: "Spreadsheet ID",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "google_sheets-add-multiple-rows",
    "configured_props": {
      "google_sheets": { "authProvisionId": "apn_xxxxxxx" },
      "drive": "Drive",
      "sheetId": "Spreadsheet ID"
    }
  }'
```

---

- App: https://pipedream.com/apps/google-sheets.md · All apps: https://pipedream.com/apps
