> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Luma: Post V1 Events Guests Update Status

> Update a guest’s status. Includes SDK V2 and CLI requests, input constraints, response fields, and Deepline credit cost.

Update a guest’s status.

<Info>
  Tool ID: `luma_post_v1_events_guests_update_status`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'luma_post_v1_events_guests_update_status',
  {
    "event_id": "event_123",
    "guest_id": "guest_123",
    "status": "approved"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute luma_post_v1_events_guests_update_status --input '{
  "event_id": "event_123",
  "guest_id": "guest_123",
  "status": "approved"
}' --json
```

## Example response

The static output schema is not detailed enough to generate a reliable example. Use `deepline tools get luma_post_v1_events_guests_update_status --json` for the complete live contract.

## Input reference

Update a guest’s status. Set `status` to `approved` ("Going"), `declined`, `pending_approval`, or `waitlist`. Use `should_refund` to refund a paid guest when moving them out of an approved state. Use `message` to include a personal note in the email we send the guest. To send a soft invite that guests can accept, use `/v1/events/guests/send-invites` instead.

| Name                    | Type                                                           | Required | Default | Details                                                                                                                                                                             |
| ----------------------- | -------------------------------------------------------------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `payload.event_id`      | `string`                                                       | Yes      | —       | Event ID, this usually starts with evt-                                                                                                                                             |
| `payload.guest_id`      | `string`                                                       | Yes      | —       | Guest identifier — the guest ID (gst-), a ticket key, a guest key (g-), or the user's email.                                                                                        |
| `payload.status`        | `"approved" \| "declined" \| "pending_approval" \| "waitlist"` | Yes      | —       | Allowed: `approved`, `declined`, `pending_approval`, `waitlist`.                                                                                                                    |
| `payload.should_refund` | `boolean`                                                      | No       | —       | If you are moving a guest who has paid to `declined`, `waitlist`, or `pending_approval`, should we refund their payment? Defaults to false.                                         |
| `payload.send_email`    | `boolean`                                                      | No       | —       | Optional. Whether Luma should email the guest about the status change. Defaults to true. Set to false if your integration sends its own notifications.                              |
| `payload.message`       | `string`                                                       | No       | —       | Optional. Personal message included in the email we send the guest about the status change. Max of 200 characters. Can't be combined with `send_email: false`. Maximum length: 200. |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Update a guest’s status. Set `status` to `approved` (\"Going\"), `declined`, `pending_approval`, or `waitlist`. Use `should_refund` to refund a paid guest when moving them out of an approved state. Use `message` to include a personal note in the email we send the guest. To send a soft invite that guests can accept, use `/v1/events/guests/send-invites` instead.",
    "properties": {
      "event_id": {
        "type": "string",
        "description": "Event ID, this usually starts with evt-"
      },
      "guest_id": {
        "type": "string",
        "description": "Guest identifier — the guest ID (gst-), a ticket key, a guest key (g-), or the user's email."
      },
      "status": {
        "type": "string",
        "enum": [
          "approved",
          "declined",
          "pending_approval",
          "waitlist"
        ]
      },
      "should_refund": {
        "type": "boolean",
        "description": "If you are moving a guest who has paid to `declined`, `waitlist`, or `pending_approval`, should we refund their payment? Defaults to false."
      },
      "send_email": {
        "type": [
          "boolean",
          "null"
        ],
        "description": "Optional. Whether Luma should email the guest about the status change. Defaults to true. Set to false if your integration sends its own notifications."
      },
      "message": {
        "type": [
          "string",
          "null"
        ],
        "description": "Optional. Personal message included in the email we send the guest about the status change. Max of 200 characters. Can't be combined with `send_email: false`.",
        "maxLength": 200
      }
    },
    "required": [
      "event_id",
      "guest_id",
      "status"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name          | Type     | Required | Default | Details                                        |
| ------------- | -------- | -------- | ------- | ---------------------------------------------- |
| `result.data` | `object` | Yes      | —       | Empty response                                 |
| `result.meta` | `object` | No       | —       | Additional response metadata (status, paging). |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Empty response",
        "properties": {},
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Luma provider guide](/docs/providers/luma/guide)
* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)
