Meeting apps
Register Zoom and Webex server apps that host meetings for your accounts.
Guides: Meetings.
| Method | Path | Operation | Scope |
|---|---|---|---|
GET | /v1/meeting-apps | List meeting apps | admin |
POST | /v1/meeting-apps | Register a meeting app | admin |
POST | /v1/meeting-apps/{appId}/test | Test a meeting server app | admin |
DELETE | /v1/meeting-apps/{appId} | Delete a meeting app | admin |
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.
OK
application/json- response
items*array<>curl -X GET 'https://api.workwae.com/v1/meeting-apps'{ "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" } ]}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.
application/json- body
kind*unknownname*string1 <= length <= 100clientId*string1 <= length <= 200clientSecret*string1 <= length <= 1024OK
application/json- response
id*stringuuidkind*MeetingAppKind"zoom_oauth""zoom_s2s""webex_oauth""webex_service_app"service*MeetingService"zoom""webex"name*stringclientId*stringzoomAccountId*string|nullstatus*|nullstatusDetail*string|nullcheckedAt*|nullscopes*array<string>redirectUri*string|nullcreatedAt*stringdate-timecurl -X POST 'https://api.workwae.com/v1/meeting-apps' \ -H 'Content-Type: application/json' \ -d '{ "kind": "zoom_oauth", "name": "string", "clientId": "string", "clientSecret": "string"}'{ "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"}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.
appId*stringuuidapplication/json- body
user?stringemaillength <= 320OK
application/json- response
app*checks*array<>curl -X POST 'https://api.workwae.com/v1/meeting-apps/25e70e52-969f-478b-90b0-9ff86b0b87d4/test' \ -H 'Content-Type: application/json' \ -d '{}'{ "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" } ]}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.
appId*stringuuidOK
application/json- response
curl -X DELETE 'https://api.workwae.com/v1/meeting-apps/25e70e52-969f-478b-90b0-9ff86b0b87d4'null