logo
Events

List events

Retrieve a paginated list of events for the company associated with the API key.

GET
/events

Authorization

x-kommunity-api-key<token>

API key for authentication.

In: header

Query Parameters

limitinteger

Number of events to return per page

Default: 10Minimum: 1
offsetinteger

Number of events to skip for pagination

Default: 0Minimum: 0

Response Body

Successfully retrieved events

successRequiredboolean

Indicates if the API call was successful

dataRequiredobject
export interface Response {
  /**
   * Indicates if the API call was successful
   */
  success: boolean;
  data: {
    /**
     * List of events matching the query
     */
    events: Event[];
    /**
     * Pagination information
     */
    pagination: {
      /**
       * Total number of events available
       */
      total: number;
      /**
       * Number of events per page
       */
      limit: number;
      /**
       * Number of events skipped
       */
      offset: number;
      /**
       * Whether there are more events available
       */
      hasMore: boolean;
    };
  };
}
export interface Event {
  /**
   * Name of the event
   */
  name: string;
  /**
   * Detailed description of the event in HTML format
   */
  description: string;
  /**
   * Primary category the event belongs to
   */
  category: string;
  /**
   * Subcategory for more specific event classification
   */
  subcategory: string;
  /**
   * Maximum number of attendees allowed (null means no limit)
   */
  attendeeLimit?: number | null;
  /**
   * Country where the event takes place (required for in-person events)
   */
  country?: string | null;
  /**
   * Street address (required for in-person events)
   */
  street?: string | null;
  /**
   * City (required for in-person events)
   */
  city?: string | null;
  /**
   * State or province (required for in-person events)
   */
  state?: string | null;
  /**
   * Postal/ZIP code (required for in-person events)
   */
  zipCode?: string | null;
  /**
   * URL to the event image. Must be a URL from Kommunity's CDN (cdn.kommunity.app). See [Image Upload Process](/docs/image-upload) for details.
   */
  eventImg?: string | null;
  /**
   * Event start time in ISO 8601 format, must be in UTC
   */
  startTime: string;
  /**
   * Event end time in ISO 8601 format, must be in UTC and after startTime
   */
  endTime: string;
  /**
   * Timezone identifier for the event (e.g., 'America/New_York')
   */
  timezone: string;
  /**
   * List of tickets available for the event (empty array means the event is free)
   */
  tickets?: {
    /**
     * Unique identifier for the ticket (optional, will be auto-generated if not provided)
     */
    id?: string;
    /**
     * Name of the ticket type
     */
    name: string;
    /**
     * Price of the ticket in the default currency
     */
    price: number;
  }[];
  /**
   * URL for joining online events (required for online events)
   */
  joinUrl?: string | null;
  /**
   * Custom questions for attendees to answer when registering (maximum 3 questions)
   *
   * @maxItems 3
   */
  questions?:
    | []
    | [
        {
          /**
           * The question text
           */
          question: string;
          /**
           * Whether answering this question is required
           */
          required?: boolean;
        }
      ]
    | [
        {
          /**
           * The question text
           */
          question: string;
          /**
           * Whether answering this question is required
           */
          required?: boolean;
        },
        {
          /**
           * The question text
           */
          question: string;
          /**
           * Whether answering this question is required
           */
          required?: boolean;
        }
      ]
    | [
        {
          /**
           * The question text
           */
          question: string;
          /**
           * Whether answering this question is required
           */
          required?: boolean;
        },
        {
          /**
           * The question text
           */
          question: string;
          /**
           * Whether answering this question is required
           */
          required?: boolean;
        },
        {
          /**
           * The question text
           */
          question: string;
          /**
           * Whether answering this question is required
           */
          required?: boolean;
        }
      ];
  /**
   * Cross-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.
   */
  crossPost?: {
    /**
     * Whether to cross-post to Luma
     */
    luma?: boolean;
    /**
     * Whether to cross-post to Eventbrite
     */
    eventbrite?: boolean;
    /**
     * Whether to cross-post to Meetup
     */
    meetup?: boolean;
  };
}
 
curl -X GET "/api/v1/events?limit=10&offset=0" \
  -H "x-kommunity-api-key: <token>"
{
  "success": true,
  "data": {
    "events": [
      {
        "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",
        "tickets": [
          {
            "id": "string",
            "name": "string",
            "price": 0
          }
        ],
        "joinUrl": "http://example.com",
        "questions": [
          {
            "question": "string",
            "required": false
          },
          {
            "question": "string",
            "required": false
          },
          {
            "question": "string",
            "required": false
          }
        ],
        "crossPost": {
          "luma": false,
          "eventbrite": false,
          "meetup": false
        }
      }
    ],
    "pagination": {
      "total": 0,
      "limit": 0,
      "offset": 0,
      "hasMore": true
    }
  }
}