Create event
Create a new event associated with the company linked to the API key.
Authorization
x-kommunity-api-key<token>API key for authentication.
In: header
Request Body
application/jsonRequirednameRequiredstringName of the event
descriptionRequiredstringDetailed description of the event in HTML format. Supported tags include: <p>, <br>, <strong>, <em>, <s>, <code>, <a>, <h1>, <h2>, <ul>, <ol>, <li>, <blockquote>. Links must use https:// or http:// protocols.
categoryRequiredstringPrimary category the event belongs to
subcategoryRequiredstringSubcategory for more specific event classification
attendeeLimitintegerMaximum number of attendees allowed (null means no limit)
1Maximum: 1000countrystringCountry where the event takes place (required for in-person events)
streetstringStreet address (required for in-person events)
citystringCity (required for in-person events)
statestringState or province (required for in-person events)
zipCodestringPostal/ZIP code (required for in-person events)
eventImgstringURL to the event image. Must be a URL from Kommunity's CDN (cdn.kommunity.app). See Image Upload Process for details.
startTimeRequiredstringEvent start time in ISO 8601 format, must be in UTC
"2025-05-15T22:00:00.000Z"endTimeRequiredstringEvent end time in ISO 8601 format, must be in UTC and after startTime
"2025-05-15T22:00:00.000Z"timezoneRequiredstringTimezone identifier for the event (e.g., 'America/New_York')
hostNamestringName of the event host (Company name will be used if not provided)
isHostedOnlinebooleanWhether the event is hosted online
falseemailstringEmail of the event host (Company email will be used if not provided)
phonestringPhone number of the event host (Company phone will be used if not provided)
ticketsarray<object>List of tickets available for the event (empty array means the event is free)
joinUrlstringURL for joining online events
"uri"questionsarray<object>Custom questions for attendees to answer when registering (maximum 3 questions)
3crossPostobjectCross-posting configuration to other event platforms. Cross-posting must be specified at event creation as it cannot be configured after the event is created. Should be null if event has tickets.
Response Body
Event created successfully
TypeScript Definitions
Use the response body type in TypeScript.
successbooleanIndicates if the event creation was successful
dataobjectBad request - Invalid event data
TypeScript Definitions
Use the response body type in TypeScript.
successbooleanIndicates that the request failed
falseerrorstringError message describing what went wrong
detailsstringDetailed information about the error (when available)
Unauthorized - Invalid or missing API key, or insufficient permissions
TypeScript Definitions
Use the response body type in TypeScript.
successbooleanIndicates that the request failed
falseerrorstringError message describing what went wrong
detailsstringDetailed information about the error (when available)
Server error
TypeScript Definitions
Use the response body type in TypeScript.
successbooleanIndicates that the request failed
falseerrorstringError message describing what went wrong
detailsstringDetailed information about the error (when available)
curl -X POST "/api/v1/events" \
-H "x-kommunity-api-key: <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"description": "string",
"category": "string",
"subcategory": "string",
"attendeeLimit": 1,
"country": "string",
"street": "string",
"city": "string",
"state": "string",
"zipCode": "string",
"eventImg": "string",
"startTime": "string",
"endTime": "string",
"timezone": "string",
"hostName": "string",
"isHostedOnline": false,
"email": "string",
"phone": "string",
"tickets": [
{
"name": "string",
"price": 0
}
],
"joinUrl": "http://example.com",
"questions": [
{
"question": "string",
"required": false
}
],
"crossPost": {
"luma": false,
"eventbrite": false,
"meetup": false
}
}'const body = JSON.stringify({
"name": "string",
"description": "string",
"category": "string",
"subcategory": "string",
"attendeeLimit": 1,
"country": "string",
"street": "string",
"city": "string",
"state": "string",
"zipCode": "string",
"eventImg": "string",
"startTime": "string",
"endTime": "string",
"timezone": "string",
"hostName": "string",
"isHostedOnline": false,
"email": "string",
"phone": "string",
"tickets": [
{
"name": "string",
"price": 0
}
],
"joinUrl": "http://example.com",
"questions": [
{
"question": "string",
"required": false
}
],
"crossPost": {
"luma": false,
"eventbrite": false,
"meetup": false
}
})
fetch("/api/v1/events", {
headers: {
"x-kommunity-api-key": "<token>"
},
body
})package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "/api/v1/events"
body := strings.NewReader(`{
"name": "string",
"description": "string",
"category": "string",
"subcategory": "string",
"attendeeLimit": 1,
"country": "string",
"street": "string",
"city": "string",
"state": "string",
"zipCode": "string",
"eventImg": "string",
"startTime": "string",
"endTime": "string",
"timezone": "string",
"hostName": "string",
"isHostedOnline": false,
"email": "string",
"phone": "string",
"tickets": [
{
"name": "string",
"price": 0
}
],
"joinUrl": "http://example.com",
"questions": [
{
"question": "string",
"required": false
}
],
"crossPost": {
"luma": false,
"eventbrite": false,
"meetup": false
}
}`)
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("x-kommunity-api-key", "<token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}import requests
url = "/api/v1/events"
body = {
"name": "string",
"description": "string",
"category": "string",
"subcategory": "string",
"attendeeLimit": 1,
"country": "string",
"street": "string",
"city": "string",
"state": "string",
"zipCode": "string",
"eventImg": "string",
"startTime": "string",
"endTime": "string",
"timezone": "string",
"hostName": "string",
"isHostedOnline": false,
"email": "string",
"phone": "string",
"tickets": [
{
"name": "string",
"price": 0
}
],
"joinUrl": "http://example.com",
"questions": [
{
"question": "string",
"required": false
}
],
"crossPost": {
"luma": false,
"eventbrite": false,
"meetup": false
}
}
response = requests.request("POST", url, json = body, headers = {
"x-kommunity-api-key": "<token>",
"Content-Type": "application/json"
})
print(response.text){
"success": true,
"data": {
"id": "string",
"name": "string",
"slug": "string",
"url": "http://example.com",
"description": "string",
"isHostedOnline": false,
"category": "string",
"subcategory": "string",
"attendeeLimit": 1,
"country": "string",
"street": "string",
"city": "string",
"state": "string",
"zipCode": "string",
"eventImg": "string",
"email": "string",
"phone": "string",
"startTime": "2019-08-24T14:15:22Z",
"endTime": "2019-08-24T14:15:22Z",
"timezone": "string",
"tickets": [
{
"name": "string",
"price": 0
}
],
"joinUrl": "http://example.com",
"questions": [
{
"question": "string",
"required": false
}
],
"crossPostingData": {
"luma": {
"id": "string",
"url": "http://example.com",
"error": "string"
},
"eventbrite": {
"id": "string",
"url": "http://example.com",
"error": "string"
},
"meetup": {
"id": "string",
"url": "http://example.com",
"error": "string"
}
}
}
}{
"success": false,
"error": "string",
"details": "string"
}{
"success": false,
"error": "string",
"details": "string"
}{
"success": false,
"error": "string",
"details": "string"
}