> ## 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 Memberships Members Add

> Add a user to a membership tier. Includes SDK V2 guidance, input constraints, response fields, and Deepline credit cost.

Add a user to a membership tier.

<Info>
  Tool ID: `luma_post_v1_memberships_members_add`
</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_memberships_members_add',
  {
    "email": "jane.doe@example.com",
    "membership_tier_id": "membership_tier_123"
  },
);

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

### CLI

```bash theme={null}
deepline tools execute luma_post_v1_memberships_members_add --input '{
  "email": "jane.doe@example.com",
  "membership_tier_id": "membership_tier_123"
}' --json
```

## Example response

The SDK exposes this shape at `result.toolResponse.raw`. Values below are representative.

```json theme={null}
{
  "data": {
    "membership_id": "membership_123",
    "status": "approved"
  }
}
```

Use `deepline tools get luma_post_v1_memberships_members_add --json` for the latest machine-readable contract.

## Input reference

Add a user to a membership tier. For paid tiers, set skip\_payment to true if you are handling payment externally.

| Name                           | Type      | Required | Default | Details                                                                                                                                 |
| ------------------------------ | --------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `payload.email`                | `string`  | Yes      | —       | Format: `email`. Pattern: `^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]&#123;2,&#125;$`. |
| `payload.membership_tier_id`   | `string`  | Yes      | —       | —                                                                                                                                       |
| `payload.registration_answers` | `array`   | No       | —       | —                                                                                                                                       |
| `payload.skip_payment`         | `boolean` | No       | —       | Set to true for paid tiers when handling payment externally. Required for paid tiers.                                                   |

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

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Add a user to a membership tier. For paid tiers, set skip_payment to true if you are handling payment externally.",
    "properties": {
      "email": {
        "type": "string",
        "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
        "format": "email"
      },
      "membership_tier_id": {
        "type": "string"
      },
      "registration_answers": {
        "type": "array",
        "items": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "question_id": {
                  "type": "string"
                },
                "value": {
                  "type": "boolean"
                },
                "question_type": {
                  "type": "string",
                  "const": "agree-check"
                }
              },
              "required": [
                "label",
                "question_id",
                "value",
                "question_type"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "question_id": {
                  "type": "string"
                },
                "value": {
                  "type": "object",
                  "properties": {
                    "company": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "job_title": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "question_type": {
                  "type": "string",
                  "const": "company"
                }
              },
              "required": [
                "label",
                "question_id",
                "value",
                "question_type"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "question_id": {
                  "type": "string"
                },
                "value": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "question_type": {
                  "type": "string",
                  "const": "phone-number"
                }
              },
              "required": [
                "label",
                "question_id",
                "value",
                "question_type"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "question_id": {
                  "type": "string"
                },
                "value": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "question_type": {
                  "type": "string",
                  "const": "select"
                },
                "multiple": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "const": false
                }
              },
              "required": [
                "label",
                "question_id",
                "value",
                "question_type"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "question_id": {
                  "type": "string"
                },
                "value": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "string"
                  }
                },
                "question_type": {
                  "type": "string",
                  "const": "select"
                },
                "multiple": {
                  "type": "boolean",
                  "const": true
                }
              },
              "required": [
                "label",
                "question_id",
                "value",
                "question_type",
                "multiple"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "question_id": {
                  "type": "string"
                },
                "value": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "boolean",
                      "const": true
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "question_type": {
                  "type": "string",
                  "const": "terms"
                }
              },
              "required": [
                "label",
                "question_id",
                "value",
                "question_type"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "question_id": {
                  "type": "string"
                },
                "value": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "question_type": {
                  "type": "string",
                  "enum": [
                    "github",
                    "instagram",
                    "linkedin",
                    "telegram",
                    "text",
                    "twitter",
                    "youtube"
                  ]
                },
                "multiline": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                }
              },
              "required": [
                "label",
                "question_id",
                "value",
                "question_type"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "question_id": {
                  "type": "string"
                },
                "value": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "question_type": {
                  "type": "string",
                  "const": "url"
                }
              },
              "required": [
                "label",
                "question_id",
                "value",
                "question_type"
              ],
              "additionalProperties": false
            }
          ]
        }
      },
      "skip_payment": {
        "type": "boolean",
        "description": "Set to true for paid tiers when handling payment externally. Required for paid tiers."
      }
    },
    "required": [
      "email",
      "membership_tier_id"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name                        | Type                                                                  | Required | Default | Details                                                                 |
| --------------------------- | --------------------------------------------------------------------- | -------- | ------- | ----------------------------------------------------------------------- |
| `result.data`               | `object`                                                              | Yes      | —       | Provider response payload.                                              |
| `result.data.membership_id` | `string`                                                              | Yes      | —       | —                                                                       |
| `result.data.status`        | `"approved" \| "pending" \| "approved-pending-payment" \| "declined"` | Yes      | —       | Allowed: `approved`, `pending`, `approved-pending-payment`, `declined`. |
| `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": "Provider response payload.",
        "properties": {
          "membership_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "approved",
              "pending",
              "approved-pending-payment",
              "declined"
            ]
          }
        },
        "required": [
          "membership_id",
          "status"
        ],
        "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)
