Identities
The addresses an account may send as, their signatures, and the account's mail settings.
Guides: Sending mail.
| Method | Path | Operation | Scope |
|---|---|---|---|
GET | /v1/accounts/{accountId}/identities | List the addresses the account may send as | read |
POST | /v1/accounts/{accountId}/identities | Add a custom identity | write |
PATCH | /v1/accounts/{accountId}/identities/{identityId} | Change an identity's signature or name | write |
DELETE | /v1/accounts/{accountId}/identities/{identityId} | Remove a custom identity | write |
GET | /v1/accounts/{accountId}/mail-settings | Get the account's mail settings | read |
PATCH | /v1/accounts/{accountId}/mail-settings | Update the account's mail settings | write |
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.
The account's own address, the provider's (Gmail send-as addresses with their Gmail signatures in one users.settings.sendAs request; Microsoft proxy addresses from /me) and custom ones. The provider's list is read when the cached one is a day old, or with refresh=true at most once a minute; a paused or disconnected account serves the cached list.
Required scope: read.
accountId*stringuuidrefresh?boolean|OK
application/json- response
items*array<>refreshedAt*|nullcurl -X GET 'https://api.workwae.com/v1/accounts/6f1c2a4e-8b3d-4e5f-9a7b-1c2d3e4f5a6b/identities'{ "items": [ { "name": "Ada Lovelace", "address": "ada@example.com", "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b", "source": "primary", "signature": { "html": "string", "text": "string" }, "providerSignature": { "html": "string", "text": "string" } } ], "refreshedAt": "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.
For IMAP aliases, and Microsoft mailboxes the account has Send As permission on (Graph cannot list those). Sending as it is checked by the provider when the message goes out.
Required scope: write.
accountId*stringuuidapplication/json- body
name?stringlength <= 256address*stringemaillength <= 320signature?OK
application/json- response
name*string|nulladdress*stringid*stringuuidsource*IdentitySource"primary""provider""custom"signature*|nullproviderSignature*|nullcurl -X POST 'https://api.workwae.com/v1/accounts/6f1c2a4e-8b3d-4e5f-9a7b-1c2d3e4f5a6b/identities' \ -H 'Content-Type: application/json' \ -d '{ "address": "ada@example.com"}'{ "name": "Ada Lovelace", "address": "ada@example.com", "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b", "source": "primary", "signature": { "html": "string", "text": "string" }, "providerSignature": { "html": "string", "text": "string" }}Runs against the live API with the key you enter: this change really happens. Use a key limited to a test account.
signature: null removes ours (Gmail's own then applies again). Only custom identities take a name; the others carry the provider's.
Required scope: write.
accountId*stringuuididentityId*stringuuidapplication/json- body
name?|nullsignature?|nullOK
application/json- response
name*string|nulladdress*stringid*stringuuidsource*IdentitySource"primary""provider""custom"signature*|nullproviderSignature*|nullcurl -X PATCH 'https://api.workwae.com/v1/accounts/6f1c2a4e-8b3d-4e5f-9a7b-1c2d3e4f5a6b/identities/ad046281-ad6e-45b7-8cd5-4370649c73ce' \ -H 'Content-Type: application/json' \ -d '{}'{ "name": "Ada Lovelace", "address": "ada@example.com", "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b", "source": "primary", "signature": { "html": "string", "text": "string" }, "providerSignature": { "html": "string", "text": "string" }}Runs against the live API with the key you enter: this change really happens. Use a key limited to a test account.
Required scope: write.
accountId*stringuuididentityId*stringuuidOK
application/json- response
curl -X DELETE 'https://api.workwae.com/v1/accounts/6f1c2a4e-8b3d-4e5f-9a7b-1c2d3e4f5a6b/identities/ad046281-ad6e-45b7-8cd5-4370649c73ce'nullRuns 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: read.
accountId*stringuuidOK
application/json- response
signByDefault*booleancurl -X GET 'https://api.workwae.com/v1/accounts/6f1c2a4e-8b3d-4e5f-9a7b-1c2d3e4f5a6b/mail-settings'{ "signByDefault": true}Runs against the live API with the key you enter: this change really happens. Use a key limited to a test account.
Required scope: write.
accountId*stringuuidapplication/json- body
signByDefault?booleanOK
application/json- response
signByDefault*booleancurl -X PATCH 'https://api.workwae.com/v1/accounts/6f1c2a4e-8b3d-4e5f-9a7b-1c2d3e4f5a6b/mail-settings' \ -H 'Content-Type: application/json' \ -d '{}'{ "signByDefault": true}