# Create Donation — Streamlabs

> Create a donation for the authenticated user. See the documentation

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

## Description

Create a donation for the authenticated user. [See the documentation](https://dev.streamlabs.com/reference/donations-1)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `name` | `string` | Yes | The name of the donor. Has to be between 2-25 length and should only contain utf8 characters |
| `identifier` | `string` | Yes | An identifier for this donor, which is used to group donations with the same donor. For example, if you create more than one donation with the same identifier, they will be grouped together as if they came from the same donor. Typically this is best suited as an email address, or a unique hash. |
| `amount` | `string` | Yes | The amount of this donation |
| `currency` | `string` | Yes | The 3 letter currency code for this donation. Must be one of the supported currency codes |
| `message` | `string` | No | The message from the donor. Must be < 255 characters |
| `createdAt` | `string` | No | A timestamp that identifies when this donation was made. If left blank, it will default to now. Enter in ISO-8601 format (e.g., 2018-02-18T02:30:00-07:00 or 2018-02-18T08:00:00Z, where Z stands for UTC) |
| `skipAlert` | `string` | No | Set to yes if you need to skip the alert. Default is no |

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

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: "streamlabs-create-donation",
  arguments: {
    name: "Name",
    identifier: "Identifier",
  },
})
```

**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: "streamlabs-create-donation",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    streamlabs: { authProvisionId: "apn_xxxxxxx" },
    name: "Name",
    identifier: "Identifier",
  },
})

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": "streamlabs-create-donation",
    "configured_props": {
      "streamlabs": { "authProvisionId": "apn_xxxxxxx" },
      "name": "Name",
      "identifier": "Identifier"
    }
  }'
```

---

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