Apache OpenMeetings REST API
The OpenMeetings REST API provides endpoints for managing rooms, users, recordings, calendars, and file uploads, with SOAP API support for legacy integrations and plugin APIs for LMS integration (Moodle, Sakai).
The OpenMeetings REST API provides endpoints for managing rooms, users, recordings, calendars, and file uploads, with SOAP API support for legacy integrations and plugin APIs for LMS integration (Moodle, Sakai).
{
"openapi": "3.0.1",
"paths": {
"/calendar/{id}": {
"delete": {
"tags": [
"CalendarService"
],
"description": "Delete a calendar event\n\n If the given sid is from an Administrator or Web-Service USER, the USER\n can delete any appointment.\n If the sid is assigned to a regular USER, he can only delete appointments\n where he is also the owner/creator of the appointment",
"operationId": "delete",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "the id to delete",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "ServiceResult with result type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResultWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Delete",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/calendar/room/{roomid}": {
"get": {
"tags": [
"CalendarService"
],
"description": "Load a calendar event by its room id",
"operationId": "getByRoom",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "roomid",
"in": "path",
"description": "id of appointment special room",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "calendar event by its room id",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppointmentDTOWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings GetByRoom",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/calendar/title/{title}": {
"get": {
"tags": [
"CalendarService"
],
"description": "Search a calendar event for the current SID",
"operationId": "getByTitle",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "title",
"in": "path",
"description": "the search string",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "calendar event list",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppointmentDTOListWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings GetByTitle",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/calendar/next": {
"get": {
"tags": [
"CalendarService"
],
"description": "Get the next Calendar event for the current USER of the SID",
"operationId": "next",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "next Calendar event",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppointmentDTOWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Next",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/calendar/next/{userid}": {
"get": {
"tags": [
"CalendarService"
],
"description": "Get the next Calendar event for userId",
"operationId": "nextForUser",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "userid",
"in": "path",
"description": "the userId the calendar events should be loaded",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "next Calendar event",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppointmentDTOWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings NextForUser",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/calendar/{start}/{end}": {
"get": {
"tags": [
"CalendarService"
],
"description": "Load appointments by a start / end range for the current SID",
"operationId": "range",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "start",
"in": "path",
"description": "start time",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "end",
"in": "path",
"description": "end time",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "list of appointments in range",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppointmentDTOListWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Range",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/calendar/{userid}/{start}/{end}": {
"get": {
"tags": [
"CalendarService"
],
"description": "Load appointments by a start / end range for the userId",
"operationId": "rangeForUser",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "userid",
"in": "path",
"description": "the userId the calendar events should be loaded",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "start",
"in": "path",
"description": "start time",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "end",
"in": "path",
"description": "end time",
"required": true,
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "list of appointments in range",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppointmentDTOListWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings RangeForUser",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/calendar": {
"post": {
"tags": [
"CalendarService"
],
"description": "Create an appointment",
"operationId": "save",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"*/*": {
"schema": {
"required": [
"appointment"
],
"type": "object",
"properties": {
"appointment": {
"$ref": "#/components/schemas/AppointmentDTO"
}
}
}
}
}
},
"responses": {
"200": {
"description": "appointment saved",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppointmentDTOWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Save",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/error/{key}/{lang}": {
"get": {
"tags": [
"ErrorService"
],
"description": "Loads an Error-Object. If a Method returns a negative Result, its an\n Error-id, it needs a languageId to specify in which language you want to\n display/read the error-message. English has the Language-ID one, for\n different one see the list of languages",
"operationId": "get",
"parameters": [
{
"name": "key",
"in": "path",
"description": "the error key for ex. `error.unknown`",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "lang",
"in": "path",
"description": "The id of the language",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "error with the code given",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResultWrapper"
}
}
}
},
"500": {
"description": "Server error"
}
},
"summary": "Apache OpenMeetings Get",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/error/report": {
"post": {
"tags": [
"ErrorService"
],
"description": "Logs an error to the log file for reporting",
"operationId": "report",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "message",
"in": "query",
"description": "The message to log",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success"
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Report",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/file": {
"post": {
"tags": [
"FileService"
],
"description": "to add a folder to the private drive, set parentId = 0 and isOwner to 1/true and\n externalUserId/externalUserType to a valid USER",
"operationId": "add",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "the The file attributes to be added",
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/FileItemDTO"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Object created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FileItemDTOWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Add",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/file/{id}": {
"delete": {
"tags": [
"FileService"
],
"description": "deletes files or folders based on it id",
"operationId": "delete_1",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "the id of the file or folder",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "ServiceResult with result type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResultWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Delete_1",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/file/{externaltype}/{externalid}": {
"delete": {
"tags": [
"FileService"
],
"description": "deletes a file by its external Id and type",
"operationId": "deleteExternal",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "externaltype",
"in": "path",
"description": "the externalType",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "externalid",
"in": "path",
"description": "the id of the file or folder",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "ServiceResult with result type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResultWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings DeleteExternal",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/file/{externaltype}": {
"get": {
"tags": [
"FileService"
],
"description": "Get all files by external type",
"operationId": "getAllExternal",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "externaltype",
"in": "path",
"description": "External type for file listing",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "the list of files for given external type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FileItemDTOListWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings GetAllExternal",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/file/room/{id}": {
"get": {
"tags": [
"FileService"
],
"description": "Get a File Explorer Object by a given ROOM",
"operationId": "getRoom",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "ROOM Id",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "File Explorer Object by a given ROOM",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FileExplorerObjectWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings GetRoom",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/file/room/{id}/{parent}": {
"get": {
"tags": [
"FileService"
],
"description": "Get list of FileItemDTO by parent",
"operationId": "getRoomByParent",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "the parent folder id",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "parent",
"in": "path",
"description": "the room id",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "list of file explorer items",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FileItemDTOListWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings GetRoomByParent",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/file/move/{roomid}/{id}/{parentid}": {
"post": {
"tags": [
"FileService"
],
"description": "move a file or folder",
"operationId": "move",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "current file or folder id to be moved",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "roomid",
"in": "path",
"description": "room this file need to be moved",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "parentid",
"in": "path",
"description": "new parent folder id",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "resulting file object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FileItemDTOWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Move",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/file/rename/{id}/{name}": {
"post": {
"tags": [
"FileService"
],
"description": "update a file or folder name",
"operationId": "rename",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "file or folder id",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "name",
"in": "path",
"description": "new file or folder name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "resulting file object",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FileItemDTOWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Rename",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/group": {
"get": {
"tags": [
"GroupService"
],
"description": "Get the list of all groups",
"operationId": "get_1",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "list of users",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GroupDTOListWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Get_1",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
},
"post": {
"tags": [
"GroupService"
],
"description": "add a new group",
"operationId": "add_1",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "query",
"description": "The name of the group",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "ServiceResult with result type, and id of the group added",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResultWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings Add_1",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/group/{id}/rooms/add/{roomid}": {
"post": {
"tags": [
"GroupService"
],
"description": "Adds a room to an group",
"operationId": "addRoom",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "Id of group that the room is being paired with",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "roomid",
"in": "path",
"description": "Id of room to be added",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "ServiceResult with result type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResultWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings AddRoom",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
}
},
"/group/{id}/users/{userid}": {
"post": {
"tags": [
"GroupService"
],
"description": "Add USER to a certain group",
"operationId": "addUser",
"parameters": [
{
"name": "sid",
"in": "query",
"description": "The SID of the User. This SID must be marked as Loggedin",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"description": "the USER id",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "userid",
"in": "path",
"description": "the group id",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "ServiceResult with result type, and id of the USER added, or error id in case of the error as text",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResultWrapper"
}
}
}
},
"500": {
"description": "Error in case of invalid credentials or server error"
}
},
"summary": "Apache OpenMeetings AddUser",
"x-microcks-operation": {
"delay": 0,
"dispatcher": "FALLBACK"
}
},
"delete": {
"tags": [
"GroupService"
],
"description": "Remov
# --- truncated at 32 KB (116 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/apache-openmeetings/refs/heads/main/openapi/apache-openmeetings-rest-api.json