Mailboxes
Connect, test and tune the mailboxes you send from. 8 endpoints, each also a tool for your AI through MCP. Authentication and errors are on the overview.
List mailboxes
GET/api/v1/mailboxes
Connected sending mailboxes with today's limit, ramp-up and the DNS health of their domain.
MCP tool list_mailboxesRead-only
Returns
mailboxesrequiredobject[]microsoftEnabledrequiredbooleanslotsLeftrequirednumber | null
curl https://ballast.to/api/v1/mailboxes \
-H "Authorization: Bearer $BALLAST_API_KEY"Suggest connection settings for an email address
GET/api/v1/mailboxes/detect
Read-only
Parameters
emailrequiredquery · string
Returns
domainrequiredstringproviderrequired"google" | "microsoft" | "other" | "none"providerLabelrequiredstringsmtprequiredobject | nullimaprequiredobject | nullpasswordHintrequiredobject | null- Where to make an app password, for providers that refuse the normal one
curl https://ballast.to/api/v1/mailboxes/detect?email=<email> \
-H "Authorization: Bearer $BALLAST_API_KEY"Test SMTP and IMAP login without saving
POST/api/v1/mailboxes/test
Owners and admins
Returns
okrequiredbooleansmtprequiredobjectimaprequiredobject
curl -X POST https://ballast.to/api/v1/mailboxes/test \
-H "Authorization: Bearer $BALLAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'Connect a mailbox
POST/api/v1/mailboxes
Tests SMTP and IMAP login first and saves only when both pass. Google needs an app password. Microsoft 365 connects with OAuth from the dashboard.
MCP tool add_mailboxOwners and admins
Returns
mailboxrequiredobject | nulltestrequiredobjectwaitingrequiredboolean- Saved, but no sending IP has room yet: it is tested and starts once one does, usually within a day
curl -X POST https://ballast.to/api/v1/mailboxes \
-H "Authorization: Bearer $BALLAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'Import SMTP/IMAP mailboxes in bulk
POST/api/v1/mailboxes/import
Up to 200 mailboxes per call. Each one is tested and saved only if SMTP and IMAP login pass.
MCP tool import_mailboxesOwners and adminsMCP asks to confirm
Parameters
rowsrequiredobject[]
Returns
addedrequirednumberresultsrequiredobject[]
curl -X POST https://ballast.to/api/v1/mailboxes/import \
-H "Authorization: Bearer $BALLAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"rows":[]}'Change a mailbox's limits, signature or status
PATCH/api/v1/mailboxes/{id}
MCP tool update_mailboxOwners and admins
Parameters
idrequiredpath · stringdisplayNamestring | nullsignaturestring | nulltimezonestringstatus"active" | "paused"- Pause or resume sending from this mailbox
limitsobjectrestartRampboolean- Start the ramp again from day 1
inboxPollboolean- Read the inbox every 60 s instead of keeping a connection open (fewer simultaneous connections; offered for Google)
credentialsobject- New password (and optionally servers). Tested before saving.
Returns
mailboxrequiredobjecttestrequiredobject | null
curl -X PATCH https://ballast.to/api/v1/mailboxes/<id> \
-H "Authorization: Bearer $BALLAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"displayName":{},"signature":{}}'Test a connected mailbox again
POST/api/v1/mailboxes/{id}/test
MCP tool test_mailboxOwners and admins
Parameters
idrequiredpath · string
Returns
okrequiredbooleanerrorrequiredstring | null
curl -X POST https://ballast.to/api/v1/mailboxes/<id>/test \
-H "Authorization: Bearer $BALLAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'Disconnect a mailbox
DELETE/api/v1/mailboxes/{id}
MCP tool delete_mailboxOwners and adminsMCP asks to confirm
Parameters
idrequiredpath · string
Returns
okrequiredtrue
curl -X DELETE https://ballast.to/api/v1/mailboxes/<id> \
-H "Authorization: Bearer $BALLAST_API_KEY"