Skip to main content
Email accounts are the sending mailboxes your campaigns use. Connect them two ways:

Scopes

Connect a mailbox

POST /v1/accounts connects one mailbox or up to 50. Each is handled independently, so the response tells you which connected and which failed (for example, an email already connected to another workspace).
A new mailbox starts out unverified and is checked automatically. Poll verification.overallStatus (or status) to know when it is ready to send.
Response

Connect Google / Microsoft over OAuth

For a native Google Workspace or Microsoft mailbox (managed token refresh, no app password), use the OAuth flow. It’s a three-step handshake because a person has to grant consent in a browser:
1

Start the connection

POST /v1/accounts/oauth/{google|microsoft}/init returns a consent URL and a state handle.
2

Send the mailbox owner to the consent URL

Open authorizationUrl in a browser. After they grant access, the provider redirects back to MailBeast, which exchanges the code and connects the mailbox.
3

Poll for the result

GET /v1/accounts/oauth/{provider}/status?state=… returns pending, then connected (with the new accountId) or failed.
The state is valid for 10 minutes; once it resolves, the result stays pollable for 30 minutes after. Like any new mailbox it is verified automatically and flips to active once verification passes (expect inactive / checking briefly right after connecting).

List, get, update

GET /v1/accounts is cursor-paginated, newest-first, and filterable by status (active, inactive, checking, failed, revoked) and by tags. Keep requesting with ?cursor=meta.nextCursor until meta.hasMore is false. PATCH /v1/accounts/{id} updates settings/limits and rotates credentials in one call. emailAddress is immutable. Any smtp* / imap* field present rotates the credentials and re-runs verification.
POST /v1/accounts/bulk applies one settings patch or one status change (active / inactive) across many ids. The two are mutually exclusive.

Check verification

Mailboxes are verified for you: when you connect one, when you rotate its credentials, when you resume a failed one, and periodically after that. Read the latest result at any time:
Verification result

Pause and resume

Pause sending on a mailbox (for a suspected deliverability issue, say) and resume it later. A paused mailbox reports status: "inactive" and stays that way until you resume it - campaigns and warmup both skip it, and nothing re-activates it on its own.

Delete a mailbox

Delete a mailbox with DELETE /v1/accounts/{id}. Sending from it stops immediately.