# Create Rows — SheetDB

> Create rows in a Google Sheet using the SheetDB API. See the documentation

- Key: `sheetdb-create-rows`
- Type: Action (Write)
- Version: 0.0.2
- App: SheetDB (`sheetdb`) — https://pipedream.com/apps/sheetdb.md
- This page (HTML): https://pipedream.com/apps/sheetdb/actions/create-rows
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/sheetdb/actions/create-rows/create-rows.mjs

## Description

Create rows in a Google Sheet using the SheetDB API. [See the documentation](https://docs.sheetdb.io/sheetdb-api/create)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `data` | `string[]` | Yes | An array of strings representing the rows to create in a Google Sheet as JSON objects. The keys inside the object should be the column names, and the values will be filled in the spreadsheet. The rows will be added at the end of the sheet. Eg. [ { "column1": "My Content" } ] |

## 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": "sheetdb",
      },
    },
  },
)

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: "sheetdb-create-rows",
  arguments: {
    data: ["Row Data"],
  },
})
```

**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: "sheetdb-create-rows",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    sheetdb: { authProvisionId: "apn_xxxxxxx" },
    data: ["Row Data"],
  },
})

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": "sheetdb-create-rows",
    "configured_props": {
      "sheetdb": { "authProvisionId": "apn_xxxxxxx" },
      "data": ["Row Data"]
    }
  }'
```

---

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