Hosted pages

The calls behind Workwae's hosted connect pages. Your backend creates the session; these routes are used by the page itself.

Guides: Connect flows.

MethodPathOperationScope
GET/v1/hosted/connect-sessions/{token}Read a hosted connect sessionnone
POST/v1/hosted/connect-sessions/{token}/imap-accountsConnect an IMAP account from the hosted pagenone
GET/v1/hosted/connect-sessions/{token}/autoconfigFind IMAP and SMTP settings from the hosted pagenone
GET/v1/hosted/meeting-connect-sessions/{token}Read a hosted meeting connect sessionnone
GET
/v1/hosted/connect-sessions/{token}

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.

Path Parameters

token*string
Length1 <= length

Response Body

OK

application/json
  1. response
tenantName*string
providers*array<>
microsoftCloud*MicrosoftCloud
Value in"global""gcc-high""dod""china"
status*ConnectSessionStatus
Value in"pending""completed""failed"
reauthEmail*string|null
loginHint*string|null
expiresAt*string
Formatdate-time
Example Request
curl -X GET 'https://api.workwae.com/v1/hosted/connect-sessions/string'
Example Response
{  "tenantName": "string",  "providers": [    "google"  ],  "microsoftCloud": "global",  "status": "pending",  "reauthEmail": "string",  "loginHint": "string",  "expiresAt": "2026-05-04T09:30:00.000Z"}
POST
/v1/hosted/connect-sessions/{token}/imap-accounts

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

When the tenant's plan allows no more accounts, or its payment is past due beyond the grace period, the session fails and redirectUrl carries status=error&error=plan_limit_accounts (or billing_past_due), as the OAuth callback does. Giving dav switches settings.calendarEnabled and contactsEnabled on for the halves found unless the session's options name them, as POST /v1/imap-accounts does. A reconnect session replaces the password only: the account keeps its stored servers and DAV settings, and any sent here are ignored. Its DAV login is checked again: with the new password when DAV uses the IMAP password, otherwise with dav.password when given (which then replaces the stored DAV password) or the stored one.

Path Parameters

token*string
Length1 <= length

Request Body

application/json
  1. body
email*string
Formatemail
Lengthlength <= 320
displayName?string
Lengthlength <= 255
password*string
Length1 <= length <= 1024
smtpPassword?string
Length1 <= length <= 1024
imap?
smtp?|null
appendSent?boolean
dav?

Response Body

OK

application/json
  1. response
redirectUrl*string
Formaturi
Example Request
curl -X POST 'https://api.workwae.com/v1/hosted/connect-sessions/string/imap-accounts' \  -H 'Content-Type: application/json' \  -d '{  "email": "ada@example.com",  "password": "string"}'
Example Response
{  "redirectUrl": "https://app.example.com/"}
GET
/v1/hosted/connect-sessions/{token}/autoconfig

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.

Path Parameters

token*string
Length1 <= length

Query Parameters

email*string
Formatemail
Lengthlength <= 320

Response Body

OK

application/json
  1. response
source*AutoconfigSource
Value in"provider""autoconfig""ispdb""srv""mx"
imap*
smtp*|null
oauth*|null
dav*|null
Example Request
curl -X GET 'https://api.workwae.com/v1/hosted/connect-sessions/string/autoconfig?email=ada%40example.com'
Example Response
{  "source": "provider",  "imap": {    "host": "string",    "port": 0,    "security": "tls",    "user": "string"  },  "smtp": {    "host": "string",    "port": 0,    "security": "tls",    "user": "string"  },  "oauth": "google",  "dav": {    "source": "provider",    "calendarUrl": "string",    "contactsUrl": "string"  }}
GET
/v1/hosted/meeting-connect-sessions/{token}

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.

Path Parameters

token*string
Length1 <= length

Response Body

OK

application/json
  1. response
tenantName*string
service*MeetingService
Value in"zoom""webex"
accountEmail*string
status*ConnectSessionStatus
Value in"pending""completed""failed"
expiresAt*string
Formatdate-time
Example Request
curl -X GET 'https://api.workwae.com/v1/hosted/meeting-connect-sessions/string'
Example Response
{  "tenantName": "string",  "service": "zoom",  "accountEmail": "string",  "status": "pending",  "expiresAt": "2026-05-04T09:30:00.000Z"}