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

> ## Agent Instructions
> Charter works for any HTTP API, including the user's own. The packs are examples of the result, not the limit: an API with no pack is declared the same way, following https://raw.githubusercontent.com/r28ai/charter/main/docs/.mintlify/skills/declaring-charter-tools/SKILL.md.
> Charter is for agents that act in customers' accounts: every call is checked field by field before it's sent, the app says whose account each call is for, and the same declarations list what each tool can reach. https://docs.r28.ai/charter/llms.txt says what it is and lists every page.

# events_ticket_types_create

> Create a new ticket type for an event. Paid ticket types require the calendar to have a connected Stripe account.

POST`https://public-api.luma.com/v1/events/ticket-types/create`

```python luma_events_ticket_types_create.py theme={null}
import asyncio

from charter.packs import luma

result = asyncio.run(luma.events_ticket_types_create.ainvoke({"eventId": ..., "name": ..., "type": ...}))
```

## Body

| Field | Type | Description |
| - | - | - |
| `eventId` \* | `string` | Event ID, this usually starts with evt- |
| `name` \* | `string` | The ticket type's name, as guests see it. min length 1; max length 30 |
| `requireApproval` | `boolean` | Whether a guest registering with this ticket waits for host approval. |
| `isHidden` | `boolean` | Whether the ticket type is hidden from the event page. A coupon restricted to a hidden ticket type unlocks it. |
| `description` | `string` | A description shown with the ticket type. max length 1000 |
| `validStartAt` | `string` | ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z ISO 8601 Date. For example, 2025-09-01 |
| `validEndAt` | `string` | ISO 8601 Datetime. For example, 2022-10-19T03:27:13.673Z ISO 8601 Date. For example, 2025-09-01 |
| `maxCapacity` | `number` | The most tickets of this type that can be issued. |
| `maxPerGuest` | `number` | Luma Pro calendars only. The most tickets of this type each guest can hold, across all their registrations. `null` means no limit. |
| `type` \* | `"free" \| "paid"` | `free`, or `paid` with a price in `cents`. Paid ticket types need the calendar's Stripe account connected. |
| `cents` | `integer` | Price in the currency's minor unit (e.g. 2500 for \$25.00). Required for paid ticket types. ≥ 0; ≤ 9007199254740991 |
| `currency` | `string` | ISO 4217 currency code like `usd`. Required for paid ticket types. |
| `isFlexible` | `boolean` | Pay-what-you-want pricing: guests choose an amount of at least `min_cents`. |
| `minCents` | `integer` | Minimum amount for pay-what-you-want pricing, in the currency's minor unit. ≥ 0; ≤ 9007199254740991 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.