Meeting apps

Register Zoom and Webex server apps that host meetings for your accounts.

Guides: Meetings.

MethodPathOperationScope
GET/v1/meeting-appsList meeting appsadmin
POST/v1/meeting-appsRegister a meeting appadmin
POST/v1/meeting-apps/{appId}/testTest a meeting server appadmin
DELETE/v1/meeting-apps/{appId}Delete a meeting appadmin

List meeting apps

GET
/v1/meeting-apps

Runs in your browser against api.workwae.com with the key you enter. Use a read-only key, limited to a test account if you can.

Required scope: admin.

Response Body

OK

application/json
  1. response
items*array<>
Example Request
curl -X GET 'https://api.workwae.com/v1/meeting-apps'
Example Response
{  "items": [    {      "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b",      "kind": "zoom_oauth",      "service": "zoom",      "name": "string",      "clientId": "string",      "zoomAccountId": "string",      "status": "unverified",      "statusDetail": "string",      "checkedAt": "2026-05-04T09:30:00.000Z",      "scopes": [        "string"      ],      "redirectUri": "https://app.example.com/mail/connected",      "createdAt": "2026-05-04T09:30:00.000Z"    }  ]}

Register a meeting app

POST
/v1/meeting-apps

Runs against the live API with the key you enter: this change really happens. Use a key limited to a test account.

A sign-in app (zoom_oauth, webex_oauth) is named by meeting connect sessions in place of the platform's; register redirectUri at the service. A server app (zoom_s2s, webex_service_app) starts unverified; test it.

Required scope: admin.

Request Body

application/json
  1. body
kind*unknown
name*string
Length1 <= length <= 100
clientId*string
Length1 <= length <= 200
clientSecret*string
Length1 <= length <= 1024

Response Body

OK

application/json
  1. response
id*string
Formatuuid
kind*MeetingAppKind
Value in"zoom_oauth""zoom_s2s""webex_oauth""webex_service_app"
service*MeetingService
Value in"zoom""webex"
name*string
clientId*string
zoomAccountId*string|null
status*|null
statusDetail*string|null
checkedAt*|null
scopes*array<string>
redirectUri*string|null
createdAt*string
Formatdate-time
Example Request
curl -X POST 'https://api.workwae.com/v1/meeting-apps' \  -H 'Content-Type: application/json' \  -d '{  "kind": "zoom_oauth",  "name": "string",  "clientId": "string",  "clientSecret": "string"}'
Example Response
{  "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b",  "kind": "zoom_oauth",  "service": "zoom",  "name": "string",  "clientId": "string",  "zoomAccountId": "string",  "status": "unverified",  "statusDetail": "string",  "checkedAt": "2026-05-04T09:30:00.000Z",  "scopes": [    "string"  ],  "redirectUri": "https://app.example.com/mail/connected",  "createdAt": "2026-05-04T09:30:00.000Z"}
POST
/v1/meeting-apps/{appId}/test

Runs against the live API with the key you enter: this change really happens. Use a key limited to a test account.

Requests a token the way meetings will and, with user, looks that address up as a host; the app becomes active or failing.

Required scope: admin.

Path Parameters

appId*string
Formatuuid

Request Body

application/json
  1. body
user?string
Formatemail
Lengthlength <= 320

Response Body

OK

application/json
  1. response
app*
checks*array<>
Example Request
curl -X POST 'https://api.workwae.com/v1/meeting-apps/25e70e52-969f-478b-90b0-9ff86b0b87d4/test' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "app": {    "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b",    "kind": "zoom_oauth",    "service": "zoom",    "name": "string",    "clientId": "string",    "zoomAccountId": "string",    "status": "unverified",    "statusDetail": "string",    "checkedAt": "2026-05-04T09:30:00.000Z",    "scopes": [      "string"    ],    "redirectUri": "https://app.example.com/mail/connected",    "createdAt": "2026-05-04T09:30:00.000Z"  },  "checks": [    {      "name": "string",      "isOk": true,      "detail": "string"    }  ]}

Delete a meeting app

DELETE
/v1/meeting-apps/{appId}

Runs against the live API with the key you enter: this change really happens. Use a key limited to a test account.

Meetings already created stay at the service. Allowed without the meetings module, so a tenant can remove an app it no longer uses.

Required scope: admin.

Path Parameters

appId*string
Formatuuid

Response Body

OK

application/json
  1. response
Example Request
curl -X DELETE 'https://api.workwae.com/v1/meeting-apps/25e70e52-969f-478b-90b0-9ff86b0b87d4'
Example Response
null