# Add Guests — Luma

> Add guests to a Luma event with status Going. Guests receive the default ticket type unless Ticket JSON or Tickets JSON is provided. Use List Events first if you need to find the event ID, and List Ticket Types if assigning custom tickets…

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

## Description

Add guests to a Luma event with status `Going`. Guests receive the default ticket type unless Ticket JSON or Tickets JSON is provided. Use **List Events** first if you need to find the event ID, and **List Ticket Types** if assigning custom tickets. [See the documentation](https://docs.luma.com/reference/post_v1-event-add-guests)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `eventId` | `string` | Yes | The Luma event ID. Event IDs usually start with evt-. Options are loaded from the connected account. |
| `guestsJson` | `string` | Yes | A JSON array of guests. Example: [{"email":"jane@example.com","name":"Jane Doe"}]. |
| `ticketJson` | `string` | No | Optional JSON object assigning one ticket type to each guest. Cannot be used with Tickets JSON. Example: {"ticket_type_id":"tt-123"}. |
| `ticketsJson` | `string` | No | Optional JSON array assigning multiple tickets to each guest. Cannot be used with Ticket JSON. Example: [{"ticket_type_id":"tt-123"}]. |

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

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: "luma-add-guests",
  arguments: {
    eventId: "Event ID",
    guestsJson: "Guests",
  },
})
```

**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: "luma-add-guests",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    luma: { authProvisionId: "apn_xxxxxxx" },
    eventId: "Event ID",
    guestsJson: "Guests",
  },
})

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": "luma-add-guests",
    "configured_props": {
      "luma": { "authProvisionId": "apn_xxxxxxx" },
      "eventId": "Event ID",
      "guestsJson": "Guests"
    }
  }'
```

---

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