> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Livestorm Integration for AI Agents & Workflows

> Video engagement platform for webinars and virtual events

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img className="block dark:hidden" src="https://mintcdn.com/modulexaillc/df8MOr-hXotYLTh5/logos/livestorm-light.svg?fit=max&auto=format&n=df8MOr-hXotYLTh5&q=85&s=3610b454ef18b1b61de37a23eaaa9012" alt="Livestorm logo" width="72" height="72" data-path="logos/livestorm-light.svg" />

<img className="hidden dark:block" src="https://mintcdn.com/modulexaillc/df8MOr-hXotYLTh5/logos/livestorm-dark.svg?fit=max&auto=format&n=df8MOr-hXotYLTh5&q=85&s=caf5cfdfcd1bdee1c3ad1a39d054c425" alt="Livestorm logo" width="72" height="72" data-path="logos/livestorm-dark.svg" />

## Overview

Add **Livestorm** to any ModuleX agent or workflow. Video engagement platform for webinars and virtual events via the Livestorm REST API (`api.livestorm.co/v1`).

<Info>
  **Categories**: Scheduling & Events · Marketing · Webinars & Events · **Auth**: API Token · **Actions**: 7
</Info>

## Authentication

### API Token

Authenticate with a Livestorm private API token (Account Settings -> Integrations -> Public API; account owner/admin, API access must be enabled)

<Steps>
  <Step title="Step 1">
    Sign in to Livestorm as the workspace owner or an admin
  </Step>

  <Step title="Step 2">
    Open Account Settings -> Integrations and scroll to the 'Public API' card
  </Step>

  <Step title="Step 3">
    Generate an API token and copy it (shown only once)
  </Step>

  <Step title="Step 4">
    Paste the token into ModuleX (if the Public API card is missing, contact [support@livestorm.co](mailto:support@livestorm.co) to enable API access)
  </Step>
</Steps>

#### Required Credentials

| Field               | Description                                                                            | Required | Format |
| ------------------- | -------------------------------------------------------------------------------------- | -------- | ------ |
| Livestorm API Token | Livestorm private API token, sent as a plain Authorization header (no 'Bearer' prefix) | Yes      | `-`    |

## Available Actions

<AccordionGroup>
  <Accordion title="create_event — Create a new event">
    ### Parameters

    <ResponseField name="owner_id" type="string" required>
      The ID of the user who owns the event
    </ResponseField>

    <ResponseField name="title" type="string" required>
      The title of the event
    </ResponseField>

    <ResponseField name="slug" type="string">
      The slug of the event
    </ResponseField>

    <ResponseField name="status" type="string">
      The status of the event: draft, published
    </ResponseField>

    <ResponseField name="description" type="string">
      The HTML description of the event
    </ResponseField>

    <ResponseField name="recording_enabled" type="boolean">
      Whether the event is recorded
    </ResponseField>

    <ResponseField name="chat_enabled" type="boolean">
      Whether the chat is enabled
    </ResponseField>

    <ResponseField name="everyone_can_speak" type="boolean">
      Whether everyone can speak
    </ResponseField>

    <ResponseField name="detailed_registration_page_enabled" type="boolean">
      Whether the detailed registration page is enabled
    </ResponseField>

    <ResponseField name="light_registration_page_enabled" type="boolean">
      Whether the light registration page is enabled
    </ResponseField>

    <ResponseField name="recording_public" type="boolean">
      Whether the recording is public
    </ResponseField>

    <ResponseField name="show_in_company_page" type="boolean">
      Whether the event is shown in the company page
    </ResponseField>

    <ResponseField name="polls_enabled" type="boolean">
      Whether the polls are enabled
    </ResponseField>

    <ResponseField name="questions_enabled" type="boolean">
      Whether the questions are enabled
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateEventOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_event — Retrieve a single event">
    ### Parameters

    <ResponseField name="event_id" type="string" required>
      The ID of the event
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetEventOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_attendees_from_event — List all the people linked to all the sessions of an event">
    ### Parameters

    <ResponseField name="event_id" type="string" required>
      The ID of the event
    </ResponseField>

    <ResponseField name="role_filter" type="string">
      Filter by role: participant, team\_member
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Data",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListAttendeesFromEventOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_events — List the events of your workspace">
    ### Parameters

    <ResponseField name="title_filter" type="string">
      Filter events by title
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Data",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListEventsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_sessions — List all your event sessions">
    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Data",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListSessionsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="register_someone_for_session — Register a new participant for a session">
    ### Parameters

    <ResponseField name="session_id" type="string" required>
      The ID of the session
    </ResponseField>

    <ResponseField name="referrer" type="string">
      The referrer of the person registering
    </ResponseField>

    <ResponseField name="utm_source" type="string">
      The UTM source
    </ResponseField>

    <ResponseField name="utm_medium" type="string">
      The UTM medium
    </ResponseField>

    <ResponseField name="utm_campaign" type="string">
      The UTM campaign
    </ResponseField>

    <ResponseField name="utm_term" type="string">
      The UTM term
    </ResponseField>

    <ResponseField name="utm_content" type="string">
      The UTM content
    </ResponseField>

    <ResponseField name="fields" type="object">
      Registration fields as key-value pairs where key is the field ID and value is the field value
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "RegisterSomeoneForSessionOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_event — Update an event with its full list of attributes">
    ### Parameters

    <ResponseField name="event_id" type="string" required>
      The ID of the event
    </ResponseField>

    <ResponseField name="owner_id" type="string" required>
      The ID of the user who owns the event
    </ResponseField>

    <ResponseField name="title" type="string" required>
      The title of the event
    </ResponseField>

    <ResponseField name="slug" type="string" required>
      The slug of the event
    </ResponseField>

    <ResponseField name="status" type="string" required>
      The status of the event: draft, published
    </ResponseField>

    <ResponseField name="description" type="string" required>
      The HTML description of the event
    </ResponseField>

    <ResponseField name="recording_enabled" type="boolean" required>
      Whether the event is recorded
    </ResponseField>

    <ResponseField name="chat_enabled" type="boolean" required>
      Whether the chat is enabled
    </ResponseField>

    <ResponseField name="everyone_can_speak" type="boolean" required>
      Whether everyone can speak
    </ResponseField>

    <ResponseField name="detailed_registration_page_enabled" type="boolean" required>
      Whether the detailed registration page is enabled
    </ResponseField>

    <ResponseField name="light_registration_page_enabled" type="boolean" required>
      Whether the light registration page is enabled
    </ResponseField>

    <ResponseField name="recording_public" type="boolean" required>
      Whether the recording is public
    </ResponseField>

    <ResponseField name="show_in_company_page" type="boolean" required>
      Whether the event is shown in the company page
    </ResponseField>

    <ResponseField name="polls_enabled" type="boolean" required>
      Whether the polls are enabled
    </ResponseField>

    <ResponseField name="questions_enabled" type="boolean" required>
      Whether the questions are enabled
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateEventOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* No publicly documented rate limits for the Livestorm API.
* Pagination is applied automatically for list endpoints (page-based).
* Error model: non-2xx responses and timeouts are caught and returned as `success=False` + `error` rather than raising.

## Related integrations

<CardGroup cols={3}>
  <Card title="Luma" href="/integrations/tools/luma" />

  <Card title="Ahrefs" href="/integrations/tools/ahrefs" />

  <Card title="Amplitude" href="/integrations/tools/amplitude" />
</CardGroup>

## Links

* [Livestorm](https://livestorm.co)
