Create ticket
/manage/events/:eventId/ticketsCreate a ticket type. Requires the ticketsWrite permission. Paid tickets require price and paymentType, and the event must have Stripe Connect configured.
| Auth | Login required |
|---|
Path parameters
eventIdstringrequiredEvent ID or slug.
Request body
pricenumberPrice; 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.
paymentTypestringOne 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.
namestringrequiredTicket name; required on create. Up to 100 characters (surrounding whitespace is trimmed).
descriptionstringDescription; up to 500 characters.
languagesobjectLocalized name / description.
salesLimitnumberSales limit; an integer of 0 or more. null means unlimited.
statusstringOne of DRAFT / PUBLISHED / PRIVATE.
confirmUserBasicInfobooleanWhether to confirm basic profile info at purchase.
requiresApprovalbooleanWhether registration requires approval.
transferablebooleanWhether the ticket can be transferred.
invitationEnabledbooleanWhether invitations are enabled. It can only be set to true when the event's enabledReferralTree feature is on; sending true otherwise returns 400.
invitationTargetTicketIdstringTicket ID issued through invitations; must belong to the same event. Required when invitationEnabled is true.
invitationMaxGenerations / invitationLimitnumberInvitation generation depth must be 1 or 2; the per-person invitation limit must be an integer of 1 or more.
invitationDiscountEnabled / invitationDiscountPercent / invitationDiscountAmountboolean | numberInvitation 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>objectLanguage code (ja, en, …)
<lang>.titlestringTitle shown in that language.
<lang>.descriptionstringDescription 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).
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"}'
{"id": "t1a2b3c4-...","name": "一般チケット","description": "...","price": 5000,"paymentType": "PREPAID_STRIPE","salesLimit": 200,"status": "PUBLISHED","confirmUserBasicInfo": true,"requiresApproval": false,"transferable": true,"invitationEnabled": false,"order": 0}