Events (Admin)

Create event (Admin)

POST/manage/events

Create an event in DRAFT state. The creator is automatically registered as ADMIN staff. No additional permission is required beyond being signed in. Organizers (EventOrganizer) are specified via `organizers`.

AuthLogin required

Request body

titlestringrequired

Event title (required); no length limit.

descriptionstringoptional

Description in Markdown; no length limit.

languagesLanguagesoptional

Localized title / description.

eventTypestringrequired

One of ONSITE / ONLINE / HYBRID.

timezonestringoptional

IANA timezone (e.g. Asia/Tokyo).

schedulesEventSchedule[]optional

Array of per-day schedules; each has date (YYYY-MM-DD) plus startTime / endTime (HH:mm), with an optional doorTime. Times are interpreted in the event's timezone.

locationLocation | Location[]optional

Venue location.

onlineUrl / onlineDescriptionstringoptional

Online URL (must be a valid URL) and description (up to 200 characters).

enabledTickets / enabledSideEventsbooleanoptional

Feature toggles for ticket sales and side events. These are the only feature toggles an event manager can change.

slugstringoptional

3–200 characters; lowercase alphanumerics, hyphens and underscores only (^[a-z0-9-_]+$). Must be unique.

thumbnailUrl / mainImageUrlstringoptional

Image URLs; must be valid URLs. Use a URL returned by the upload endpoints.

customStyleCustomStyleoptional

Custom style.

customNavigationCustomNavigationoptional

Custom navigation.

organizerContactContact[]optional

Organizer contact.

tagsstring[]optional

Array of tag names.

organizersEventOrganizer[]optional

Organizers (EventOrganizer); specify communityId or userId.

Notes

enabledMeetings, enabledChat, enabledReferralTree (invitations) and enabledConferenceMode can only be turned on through the platform administration (admin) API. Values for them sent to this endpoint are ignored, and they are always false on create. The only feature toggles an event manager can change are enabledTickets and enabledSideEvents. Read the current values from GET /manage/events/:eventId.

Response

Returns Event.

Request
curl https://api.4s.link/manage/events \
-X POST \
-H "Authorization: Bearer 4s_at_..." \
-H "Content-Type: application/json" \
-d '{
"title": "4S Tech Conference 2026",
"eventType": "HYBRID",
"timezone": "Asia/Tokyo",
"schedules": [
{ "date": "2026-09-01", "startTime": "10:00", "endTime": "18:00" }
]
}'
Example response
{
"id": "e1f2a3b4-...",
"slug": "tech-conf-2026",
"title": "4S Tech Conference 2026",
"description": "...",
"state": "DRAFT",
"eventType": "HYBRID",
"timezone": "Asia/Tokyo",
"schedules": [
{ "date": "2026-09-01", "doorTime": "09:30", "startTime": "10:00", "endTime": "18:00" }
],
"location": { "displayText": "Tokyo, Japan" },
"thumbnailUrl": "https://.../thumb.png",
"organizers": [
{ "id": "eo1a2b3-...", "communityId": "c1a2b3c4-...", "userId": null }
],
"tags": []
}