Create ticket

POST/manage/events/:eventId/tickets

Create a ticket type. Requires the ticketsWrite permission. Paid tickets require price and paymentType, and the event must have Stripe Connect configured.

AuthLogin required

Path parameters

eventIdstringrequired

Event ID or slug.

Request body

pricenumber

Price; an integer of 0 or more (required on create). For ONSITE_PAYMENT / PREPAID_STRIPE it must be 1 or more. It cannot be changed once sales have started.

paymentTypestring

One of FREE / ONSITE_PAYMENT / PREPAID_STRIPE (required on create). PREPAID_STRIPE requires Stripe payments to be enabled for the event. It cannot be changed once sales have started.

namestringrequired

Ticket name; required on create. Up to 100 characters (surrounding whitespace is trimmed).

descriptionstring

Description; up to 500 characters.

languagesobject

Localized name / description.

salesLimitnumber

Sales limit; an integer of 0 or more. null means unlimited.

statusstring

One of DRAFT / PUBLISHED / PRIVATE.

confirmUserBasicInfoboolean

Whether to confirm basic profile info at purchase.

requiresApprovalboolean

Whether registration requires approval.

transferableboolean

Whether the ticket can be transferred.

invitationEnabledboolean

Whether invitations are enabled. It can only be set to true when the event's enabledReferralTree feature is on; sending true otherwise returns 400.

invitationTargetTicketIdstring

Ticket ID issued through invitations; must belong to the same event. Required when invitationEnabled is true.

invitationMaxGenerations / invitationLimitnumber

Invitation generation depth must be 1 or 2; the per-person invitation limit must be an integer of 1 or more.

invitationDiscountEnabled / invitationDiscountPercent / invitationDiscountAmountboolean | number

Invitation discount settings. When enabled, either percent (0–100) or amount (0 or more) is required. Discounts apply only when the target ticket is paid.

Object structures

languages

Keyed by language code; each entry overrides the title / description shown for that language. Languages you omit fall back to the default fields.

<lang>object

Language code (ja, en, …)

<lang>.titlestring

Title shown in that language.

<lang>.descriptionstring

Description shown in that language.

{
  "ja": { "title": "オープニング基調講演", "description": "..." },
  "en": { "title": "Opening Keynote", "description": "..." }
}

Notes

Invitation (referral) settings can only be specified when the event's enabledReferralTree feature is enabled. Because enabledReferralTree can only be turned on through the platform administration (admin) API, sending invitationEnabled: true for an event without it returns 400 (VALIDATION_ERROR).

Request
curl https://api.4s.link/manage/events/EVENT_ID/tickets \
-X POST \
-H "Authorization: Bearer 4s_at_..." \
-H "Content-Type: application/json" \
-d '{
"name": "一般チケット",
"price": 5000,
"paymentType": "PREPAID_STRIPE",
"salesLimit": 200,
"status": "PUBLISHED"
}'
Example response
{
"id": "t1a2b3c4-...",
"name": "一般チケット",
"description": "...",
"price": 5000,
"paymentType": "PREPAID_STRIPE",
"salesLimit": 200,
"status": "PUBLISHED",
"confirmUserBasicInfo": true,
"requiresApproval": false,
"transferable": true,
"invitationEnabled": false,
"order": 0
}