KosmoKrator

productivity

Whereby Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Whereby KosmoKrator integration.

Lua Namespace

Agents call this integration through app.integrations.whereby.*. Use lua_read_doc("integrations.whereby") inside KosmoKrator to discover the same reference at runtime.

Call Lua from the Headless CLI

Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic Whereby workflow without starting an interactive agent session.

Inline Lua call
kosmo integrations:lua --eval 'dump(app.integrations.whereby.list_rooms({limit = 1, cursor = "example_cursor"}))' --json
Read Lua docs headlessly
kosmo integrations:lua --eval 'print(docs.read("whereby"))' --json
kosmo integrations:lua --eval 'print(docs.read("whereby.list_rooms"))' --json

Workflow file

Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.

workflow.lua
local whereby = app.integrations.whereby
local result = whereby.list_rooms({limit = 1, cursor = "example_cursor"})

dump(result)
Run the workflow
kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json
Namespace note. integrations:lua exposes app.integrations.whereby, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.whereby.default.* or app.integrations.whereby.work.* when you configured named credential accounts.

MCP-only Lua

If the script only needs configured MCP servers and does not need Whereby, use the narrower mcp:lua command.

MCP Lua command
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Whereby — Lua API Reference

list_rooms

List Whereby rooms with optional pagination.

Parameters

NameTypeRequiredDescription
limitintegernoMaximum number of rooms to return.
cursorstringnoPagination cursor for fetching the next page of results.

Examples

List all rooms

local result = app.integrations.whereby.list_rooms({})
for _, room in ipairs(result.data) do
    print(room.roomName, room.meetingUrl)
end

Paginated listing

local result = app.integrations.whereby.list_rooms({ limit = 10, cursor = "next_page_cursor" })
print(result.meta.nextCursor)

get_room

Get detailed information about a specific Whereby room.

Parameters

NameTypeRequiredDescription
room_namestringyesThe unique name or identifier of the Whereby room.

Examples

local result = app.integrations.whereby.get_room({ room_name = "my-meeting-room" })
print(result.roomName, result.meetingUrl)

create_room

Create a new Whereby video meeting room.

Parameters

NameTypeRequiredDescription
room_modestringnoRoom mode, e.g. “normal” or “group”.
room_name_prefixstringnoOptional prefix for the generated room name.
start_datestringnoISO 8601 start date/time for the room.
end_datestringnoISO 8601 end date/time for the room.
fieldsarraynoAdditional room configuration fields.

Examples

Create a simple room

local result = app.integrations.whereby.create_room({})
print(result.roomName, result.meetingUrl)

Create a scheduled room

local result = app.integrations.whereby.create_room({
    room_mode = "group",
    start_date = "2025-01-15T10:00:00Z",
    end_date = "2025-01-15T11:00:00Z",
})
print(result.roomName, result.meetingUrl)

delete_room

Delete a Whereby room by its name. This action is permanent and cannot be undone.

Parameters

NameTypeRequiredDescription
room_namestringyesThe unique name or identifier of the Whereby room to delete.

Examples

local result = app.integrations.whereby.delete_room({ room_name = "my-meeting-room" })
print("Room deleted")

list_meetings

List past Whereby meetings with optional filters.

Parameters

NameTypeRequiredDescription
limitintegernoMaximum number of meetings to return.
cursorstringnoPagination cursor for fetching the next page.
from_datestringnoISO 8601 start date to filter meetings from.
to_datestringnoISO 8601 end date to filter meetings to.
room_namestringnoFilter meetings by room name.

Examples

List recent meetings

local result = app.integrations.whereby.list_meetings({ limit = 20 })
for _, meeting in ipairs(result.data) do
    print(meeting.id, meeting.roomName, meeting.startDate)
end

Filter by date range

local result = app.integrations.whereby.list_meetings({
    from_date = "2025-01-01T00:00:00Z",
    to_date = "2025-01-31T23:59:59Z",
})
print(#result.data .. " meetings found")

get_meeting

Get detailed information about a specific past meeting.

Parameters

NameTypeRequiredDescription
meeting_idstringyesThe unique identifier of the meeting.

Examples

local result = app.integrations.whereby.get_meeting({ meeting_id = "abc123" })
print(result.roomName, result.duration)
for _, participant in ipairs(result.participants or {}) do
    print(participant.name, participant.joinedAt)
end

get_current_user

Get the profile of the currently authenticated Whereby user.

Parameters

None.

Examples

local result = app.integrations.whereby.get_current_user({})
print(result.name, result.email)

Multi-Account Usage

If you have multiple Whereby accounts configured, use account-specific namespaces:

-- Default account
app.integrations.whereby.list_rooms({})

-- Explicit default
app.integrations.whereby.default.list_rooms({})

-- Named accounts
app.integrations.whereby.work.list_rooms({})

All functions are identical across accounts — only the credentials differ.

Raw agent markdown
# Whereby — Lua API Reference

## list_rooms

List Whereby rooms with optional pagination.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Maximum number of rooms to return. |
| `cursor` | string | no | Pagination cursor for fetching the next page of results. |

### Examples

#### List all rooms

```lua
local result = app.integrations.whereby.list_rooms({})
for _, room in ipairs(result.data) do
    print(room.roomName, room.meetingUrl)
end
```

#### Paginated listing

```lua
local result = app.integrations.whereby.list_rooms({ limit = 10, cursor = "next_page_cursor" })
print(result.meta.nextCursor)
```

---

## get_room

Get detailed information about a specific Whereby room.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `room_name` | string | yes | The unique name or identifier of the Whereby room. |

### Examples

```lua
local result = app.integrations.whereby.get_room({ room_name = "my-meeting-room" })
print(result.roomName, result.meetingUrl)
```

---

## create_room

Create a new Whereby video meeting room.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `room_mode` | string | no | Room mode, e.g. "normal" or "group". |
| `room_name_prefix` | string | no | Optional prefix for the generated room name. |
| `start_date` | string | no | ISO 8601 start date/time for the room. |
| `end_date` | string | no | ISO 8601 end date/time for the room. |
| `fields` | array | no | Additional room configuration fields. |

### Examples

#### Create a simple room

```lua
local result = app.integrations.whereby.create_room({})
print(result.roomName, result.meetingUrl)
```

#### Create a scheduled room

```lua
local result = app.integrations.whereby.create_room({
    room_mode = "group",
    start_date = "2025-01-15T10:00:00Z",
    end_date = "2025-01-15T11:00:00Z",
})
print(result.roomName, result.meetingUrl)
```

---

## delete_room

Delete a Whereby room by its name. This action is permanent and cannot be undone.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `room_name` | string | yes | The unique name or identifier of the Whereby room to delete. |

### Examples

```lua
local result = app.integrations.whereby.delete_room({ room_name = "my-meeting-room" })
print("Room deleted")
```

---

## list_meetings

List past Whereby meetings with optional filters.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | integer | no | Maximum number of meetings to return. |
| `cursor` | string | no | Pagination cursor for fetching the next page. |
| `from_date` | string | no | ISO 8601 start date to filter meetings from. |
| `to_date` | string | no | ISO 8601 end date to filter meetings to. |
| `room_name` | string | no | Filter meetings by room name. |

### Examples

#### List recent meetings

```lua
local result = app.integrations.whereby.list_meetings({ limit = 20 })
for _, meeting in ipairs(result.data) do
    print(meeting.id, meeting.roomName, meeting.startDate)
end
```

#### Filter by date range

```lua
local result = app.integrations.whereby.list_meetings({
    from_date = "2025-01-01T00:00:00Z",
    to_date = "2025-01-31T23:59:59Z",
})
print(#result.data .. " meetings found")
```

---

## get_meeting

Get detailed information about a specific past meeting.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `meeting_id` | string | yes | The unique identifier of the meeting. |

### Examples

```lua
local result = app.integrations.whereby.get_meeting({ meeting_id = "abc123" })
print(result.roomName, result.duration)
for _, participant in ipairs(result.participants or {}) do
    print(participant.name, participant.joinedAt)
end
```

---

## get_current_user

Get the profile of the currently authenticated Whereby user.

### Parameters

None.

### Examples

```lua
local result = app.integrations.whereby.get_current_user({})
print(result.name, result.email)
```

---

## Multi-Account Usage

If you have multiple Whereby accounts configured, use account-specific namespaces:

```lua
-- Default account
app.integrations.whereby.list_rooms({})

-- Explicit default
app.integrations.whereby.default.list_rooms({})

-- Named accounts
app.integrations.whereby.work.list_rooms({})
```

All functions are identical across accounts — only the credentials differ.
Metadata-derived Lua example
local result = app.integrations.whereby.list_rooms({limit = 1, cursor = "example_cursor"})
print(result)

Functions

list_rooms Read

List Whereby rooms with optional pagination and filtering.

Lua path
app.integrations.whereby.list_rooms
Full name
whereby.whereby_list_rooms
ParameterTypeRequiredDescription
limit integer no Maximum number of rooms to return.
cursor string no Pagination cursor for fetching the next page of results.
get_room Read

Get detailed information about a specific Whereby room, including meeting URL, configuration, and host details.

Lua path
app.integrations.whereby.get_room
Full name
whereby.whereby_get_room
ParameterTypeRequiredDescription
room_name string yes The unique name or identifier of the Whereby room.
create_room Write

Create a new Whereby video meeting room with optional configuration such as room mode, time limits, and participant settings.

Lua path
app.integrations.whereby.create_room
Full name
whereby.whereby_create_room
ParameterTypeRequiredDescription
room_mode string no Room mode, e.g. "normal" or "group".
room_name_prefix string no Optional prefix for the generated room name.
start_date string no ISO 8601 start date/time for the room.
end_date string no ISO 8601 end date/time for the room.
fields array no Additional room configuration fields such as lockRoomOnJoin, recording, etc.
delete_room Write

Delete a Whereby room by its name. This action is permanent and cannot be undone.

Lua path
app.integrations.whereby.delete_room
Full name
whereby.whereby_delete_room
ParameterTypeRequiredDescription
room_name string yes The unique name or identifier of the Whereby room to delete.
list_meetings Read

List past Whereby meetings with optional pagination and date filtering.

Lua path
app.integrations.whereby.list_meetings
Full name
whereby.whereby_list_meetings
ParameterTypeRequiredDescription
limit integer no Maximum number of meetings to return.
cursor string no Pagination cursor for fetching the next page of results.
from_date string no ISO 8601 start date to filter meetings from.
to_date string no ISO 8601 end date to filter meetings to.
room_name string no Filter meetings by room name.
get_meeting Read

Get detailed information about a specific past Whereby meeting, including participants, duration, and recording status.

Lua path
app.integrations.whereby.get_meeting
Full name
whereby.whereby_get_meeting
ParameterTypeRequiredDescription
meeting_id string yes The unique identifier of the meeting.
get_current_user Read

Get the profile information of the currently authenticated Whereby user, including account details and plan information.

Lua path
app.integrations.whereby.get_current_user
Full name
whereby.whereby_get_current_user
ParameterTypeRequiredDescription
No parameters.