# Givebutter — Pipedream Connect

> #1 rated, world's first free fundraising platform powering $150M+ in donations annually for thousands of good causes. 💛

- API slug: `givebutter` (use in MCP headers and tool keys)
- Auth: API key (Pipedream-managed)
- Categories: Business Management
- Website: https://givebutter.com/
- This page (HTML): https://pipedream.com/apps/givebutter
- Tools: 5 actions · 0 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: givebutter`

```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": "givebutter",
      },
    },
  },
)

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

const { tools } = await mcp.listTools()

// e.g. run Create Contact:
const result = await mcp.callTool({
  name: "givebutter-create-contact",
  arguments: {
    firstName: "First Name",
    lastName: "Last Name",
  },
})
```

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

## API proxy

For a Givebutter 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://api.givebutter.com/v1/contacts

curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZ2l2ZWJ1dHRlci5jb20vdjEvY29udGFjdHM?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: "givebutter-create-contact",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    givebutter: { authProvisionId: "apn_xxxxxxx" },
    firstName: "First Name",
    lastName: "Last Name",
  },
})
```

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

## Actions (5)

### `givebutter-create-contact` — Create Contact (Write)

Create a new contact/donor in Givebutter, returning the created contact with its assigned id. For an individual contact, provide firstName and lastName; the email value is submitted as the API primary_email field. See the documentation

Full schema: https://pipedream.com/apps/givebutter/actions/create-contact.md

### `givebutter-get-transaction` — Get Transaction (Read-only)

Retrieve a single transaction from Givebutter by its transaction ID. Returns the transaction object (includes id, amount, fee, captured, refunded, and line_items). See the documentation

Full schema: https://pipedream.com/apps/givebutter/actions/get-transaction.md

### `givebutter-list-campaigns` — List Campaigns (Read-only)

List campaigns from the authenticated Givebutter account. Returns a paginated array of campaign objects (each includes at minimum id, code, and title). Use this to discover campaign IDs before referencing a campaign in other tools. See the documentation

Full schema: https://pipedream.com/apps/givebutter/actions/list-campaigns.md

### `givebutter-list-contacts` — List Contacts (Read-only)

List contacts/donors from the authenticated Givebutter account. Returns a paginated array of contact objects (each includes at minimum id, primary_email, first_name, and last_name). Note that the API returns only individual contacts unless Type is set to company. Use this to discover contact IDs…

Full schema: https://pipedream.com/apps/givebutter/actions/list-contacts.md

### `givebutter-update-contact` — Update Contact (Write)

Update an existing Givebutter contact, returning the updated contact object. Set only the fields you want to change. Use List Contacts first to find the contact ID. Note that Givebutter validates this as a full update — individual contacts require first_name and last_name, and company contacts…

Full schema: https://pipedream.com/apps/givebutter/actions/update-contact.md

---

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