OAuth apps

Register your own Google and Microsoft OAuth apps for the connect flow.

Guides: Your own OAuth apps.

MethodPathOperationScope
GET/v1/oauth-appsList tenant OAuth appsadmin
POST/v1/oauth-appsRegister a tenant OAuth appadmin
PATCH/v1/oauth-apps/{appId}Change a tenant OAuth app: name, client secret, authority or Gmail pushadmin
DELETE/v1/oauth-apps/{appId}Delete a tenant OAuth appadmin

List tenant OAuth apps

GET
/v1/oauth-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/oauth-apps'
Example Response
{  "items": [    {      "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b",      "provider": "google",      "name": "string",      "clientId": "string",      "cloud": "global",      "authority": "string",      "gmailPush": {        "topic": "string",        "serviceAccount": "string"      },      "gmailPushEndpoint": "https://app.example.com/",      "createdAt": "2026-05-04T09:30:00.000Z"    }  ]}
POST
/v1/oauth-apps

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

Required scope: admin.

Request Body

application/json
  1. body
provider*OAuthProvider
Value in"google""microsoft"
cloud?MicrosoftCloud
Value in"global""gcc-high""dod""china"
name*string
Length1 <= length <= 100
clientId*string
Length1 <= length
clientSecret*string
Length1 <= length
authority?string

Response Body

OK

application/json
  1. response
id*string
Formatuuid
provider*OAuthProvider
Value in"google""microsoft"
name*string
clientId*string
cloud*|null
authority*string|null
gmailPush*|null
gmailPushEndpoint*|null
createdAt*string
Formatdate-time
Example Request
curl -X POST 'https://api.workwae.com/v1/oauth-apps' \  -H 'Content-Type: application/json' \  -d '{  "provider": "google",  "name": "string",  "clientId": "string",  "clientSecret": "string"}'
Example Response
{  "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b",  "provider": "google",  "name": "string",  "clientId": "string",  "cloud": "global",  "authority": "string",  "gmailPush": {    "topic": "string",    "serviceAccount": "string"  },  "gmailPushEndpoint": "https://app.example.com/",  "createdAt": "2026-05-04T09:30:00.000Z"}
PATCH
/v1/oauth-apps/{appId}

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

Accounts on the app use the new secret from their next token refresh. gmailPush (Google apps) makes the app's accounts watch the topic with users.watch instead of being polled; null stops their watches and returns them to polling. Changing it wakes the app's accounts so it applies at once, and saving it again retries a watch Gmail refused.

Required scope: admin.

Path Parameters

appId*string
Formatuuid

Request Body

application/json
  1. body
name?string
Length1 <= length <= 100
clientSecret?string
Length1 <= length
authority?string
Length1 <= length
gmailPush?|null

Response Body

OK

application/json
  1. response
id*string
Formatuuid
provider*OAuthProvider
Value in"google""microsoft"
name*string
clientId*string
cloud*|null
authority*string|null
gmailPush*|null
gmailPushEndpoint*|null
createdAt*string
Formatdate-time
Example Request
curl -X PATCH 'https://api.workwae.com/v1/oauth-apps/25e70e52-969f-478b-90b0-9ff86b0b87d4' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b",  "provider": "google",  "name": "string",  "clientId": "string",  "cloud": "global",  "authority": "string",  "gmailPush": {    "topic": "string",    "serviceAccount": "string"  },  "gmailPushEndpoint": "https://app.example.com/",  "createdAt": "2026-05-04T09:30:00.000Z"}
DELETE
/v1/oauth-apps/{appId}

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

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/oauth-apps/25e70e52-969f-478b-90b0-9ff86b0b87d4'
Example Response
null