Skip to the documentation
CLI

openemail account

Every command in this namespace, with its arguments, flags and examples.

Commands

The account of the person behind the key or the app: the email notifications they get and the workspaces muted on their phone, their profile photo and username, the apps they connected and the invitations waiting for them. An API key acts for the workspace owner, and an app for the person who connected it.

Every command here also takes the global flags, such as --json, --profile and --dry-run. See the global flags

openemail account get-notifications

Read your notification settings

Scopesaccount:readNeeds a sign-in

Usage

openemail account get-notifications [flags]

Resolves which kinds of email OpenEmail sends the person, as Account, Notifications shows them, and the workspaces whose notifications are muted on their phone. An API key answers for the workspace owner, and an app for the person who connected it.

Examples

openemail account get-notifications
Print the raw JSON
openemail account get-notifications --json

Also available in

API
GET /account/notifications
SDK
account.getNotifications()

openemail account set-email-notification

Turn a kind of email on or off

Scopesaccount:writeNeeds a sign-in

Usage

openemail account set-email-notification <category> --enabled [flags]
openemail account set-email-notification <category> --data <json|@file|-> [flags]

enabled: false stops OpenEmail sending the person that kind of email, and true starts it again. activity and product can be turned off. account and billing cannot, and asking to is a 422 invalid_parameter on category.

Arguments

<category>Required

account, billing, activity or product.

Flags

--enabled

True to receive that email, false to stop it. Required, here or in --data.

--data <json|@file|->

The whole body as JSON, inline, from a file with @path, or - for standard input. Flags override its keys.

Examples

openemail account set-email-notification product --no-enabled
Read the whole body from a JSON file
openemail account set-email-notification product --data @account.json

Also available in

API
PUT /account/notifications/email/{category}
SDK
account.setEmailNotification()

openemail account set-push-muted

Mute a workspace on your phone

Scopesaccount:writeNeeds a sign-in

Usage

openemail account set-push-muted <workspace-id> --muted [flags]
openemail account set-push-muted <workspace-id> --data <json|@file|-> [flags]

muted: true stops the phone app notifying the person about the mail of one workspace, on every phone they signed in on, and false lets it notify them again.

Arguments

<workspace-id>Required

A workspace id from workspaces.list.

Flags

--muted

True to mute it, false to let it notify again. Required, here or in --data.

--data <json|@file|->

The whole body as JSON, inline, from a file with @path, or - for standard input. Flags override its keys.

Examples

openemail account set-push-muted 10417196-e324-4283-af98-66ec62167c47 --muted
Read the whole body from a JSON file
openemail account set-push-muted 10417196-e324-4283-af98-66ec62167c47 --data @account.json

Also available in

API
PUT /account/notifications/push/{workspaceId}
SDK
account.setPushMuted()

openemail account set-photo

Set your profile photo

Scopesaccount:writeNeeds a sign-in

Usage

openemail account set-photo <data> [flags]

Sends the image bytes as the request body, replacing the person's profile photo, as Account, Profile does. PNG, JPEG, WebP and GIF are accepted, up to 5 MB. The server fits the image into a 512 pixel square, stores it as WebP and keeps the first frame of an animation.

data is a Blob, an ArrayBuffer or a Uint8Array. The type is read from --content-type, or from a Blob's own type when that is left out. Without either the bytes go as application/octet-stream and the server refuses them with 422 invalid_image.

Arguments

<data>Required

The image: a Blob, ArrayBuffer or Uint8Array.

Flags

--content-type <value>

image/png, image/jpeg, image/webp or image/gif. Required unless data is a Blob with a type.

Examples

The required values only
openemail account set-photo ./photo.jpg
With optional flags
openemail account set-photo ./photo.jpg --content-type image/jpeg

Also available in

API
PUT /account/photo
SDK
account.setPhoto()

openemail account remove-photo

Remove your profile photo

Scopesaccount:writeNeeds a sign-in
Asks you to confirm

Usage

openemail account remove-photo [flags]

Removes the profile photo and deletes the stored image, so the app shows the person's initials again. Removing it when there is none changes nothing.

Examples

openemail account remove-photo
Skip the confirmation, for scripts
openemail account remove-photo --yes

Also available in

API
DELETE /account/photo
SDK
account.removePhoto()

openemail account get-username

Read your username

Scopesaccount:readNeeds a sign-in

Usage

openemail account get-username [flags]

Resolves the person's username, whether they chose it or it was made for them from their name, and the free address it gives them when this deployment offers one. A username the person chose never changes.

Examples

openemail account get-username
Print the raw JSON
openemail account get-username --json

Also available in

API
GET /account/username
SDK
account.getUsername()

openemail account check-username

Check a username

Scopesaccount:readNeeds a sign-in

Usage

openemail account check-username <username> [flags]

Says whether the person could choose a username, without choosing it, and why not when they could not. The username is lowercased and its spaces become dots before it is checked, as the app does, and username in the answer is the form that was checked.

Arguments

<username>Required

Up to 60 characters before it is tidied.

Examples

openemail account check-username ada.lovelace
Print the raw JSON
openemail account check-username ada.lovelace --json

Also available in

API
GET /account/username/availability
SDK
account.checkUsername()

openemail account set-username

Choose your username

Scopesaccount:writeNeeds a sign-in
Asks you to confirm

Usage

openemail account set-username <username> [flags]

Sets the person's username for good, and with it their free address. Once chosen it never changes: a second choice is refused with 409 username_locked. A username another account has is a 409 username_taken, and one that is too short, too long, reserved or not lowercase letters, numbers and single dots is a 422 invalid_parameter on username. Check one first with checkUsername.

Arguments

<username>Required

3 to 30 lowercase letters, numbers and single dots once it is tidied.

Examples

openemail account set-username ada.lovelace
Skip the confirmation, for scripts
openemail account set-username ada.lovelace --yes

Also available in

API
PUT /account/username
SDK
account.setUsername()

openemail account list-connected-apps

List your connected apps

Scopesaccount:readNeeds a sign-in

Usage

openemail account list-connected-apps [flags]

Resolves every app the person connected with OAuth, as Account, Connected apps lists them: the workspace and the permissions each may reach, until when, how many tokens it holds, and until when it may make changes that ask for a verification code without one. current marks the app making the call.

What an app may reach is changed in the app, never through an app.

Examples

openemail account list-connected-apps
Print the raw JSON
openemail account list-connected-apps --json

Also available in

API
GET /account/connected-apps
SDK
account.listConnectedApps()

openemail account revoke-connected-app

Remove a connected app

Scopesaccount:writeNeeds a sign-in
Asks you to confirm

Usage

openemail account revoke-connected-app <client-id> [flags]

Deletes every token the app holds and the access the person gave it, so its next call is refused and it has to ask again, as removing it in Account, Connected apps does. Removing the app making the call disconnects it.

Arguments

<client-id>Required

The app's clientId from listConnectedApps.

Examples

openemail account revoke-connected-app client_4c1b257a
Skip the confirmation, for scripts
openemail account revoke-connected-app client_4c1b257a --yes

Also available in

API
DELETE /account/connected-apps/{clientId}
SDK
account.revokeConnectedApp()

openemail account list-invitations

List your invitations

Scopesaccount:readNeeds a sign-in

Usage

openemail account list-invitations [flags]

Resolves the invitations to join a workspace that are waiting for the address the person signs in with, oldest first. Expired, accepted and withdrawn ones are left out. The invitations a workspace sent are members.listInvitations instead.

Examples

openemail account list-invitations
Print the raw JSON
openemail account list-invitations --json

Also available in

API
GET /account/invitations
SDK
account.listInvitations()

openemail account accept-invitation

Accept an invitation

Scopesaccount:writeNeeds a sign-in

Usage

openemail account accept-invitation <invitation-id> [flags]

Joins the workspace with the role and the addresses the invitation gives, as accepting it in the app or from its link does. --activate also makes it the workspace the app opens for the person.

A workspace that asks everyone in it to sign in with two-factor authentication is refused with 403 two_factor_required until the person turns it on. An invitation that expired, was withdrawn or went to another address is a 422, and one that is not waiting any more a 404 invitation_not_found.

Arguments

<invitation-id>Required

An invitation id from listInvitations.

Flags

--activate

True to make it the workspace the app opens. Defaults to false.

Examples

The required values only
openemail account accept-invitation winv_6bb640f5b99e47deb758f1f5
With optional flags
openemail account accept-invitation winv_6bb640f5b99e47deb758f1f5 --activate

Also available in

API
POST /account/invitations/{invitationId}/accept
SDK
account.acceptInvitation()

openemail account decline-invitation

Decline an invitation

Scopesaccount:writeNeeds a sign-in
Asks you to confirm

Usage

openemail account decline-invitation <invitation-id> [flags]

Turns the invitation down, so its link stops working, and tells whoever sent it. It cannot be taken back: they have to invite the person again. An invitation the person already accepted is refused with 409 invitation_accepted.

Arguments

<invitation-id>Required

An invitation id from listInvitations.

Examples

openemail account decline-invitation winv_6bb640f5b99e47deb758f1f5
Skip the confirmation, for scripts
openemail account decline-invitation winv_6bb640f5b99e47deb758f1f5 --yes

Also available in

API
POST /account/invitations/{invitationId}/decline
SDK
account.declineInvitation()