Mailboxes

List mailboxes

GET
/v1/mailboxes

Your mailboxes, newest first. Sign-in details are only on the credentials route.

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from the Developers page. rhq_test_ keys reach the sandbox, rhq_live_ keys the live side.

Query Parameters

limit?integer

How many to return

Range1 <= value <= 100
Default25
cursor?string

nextCursor from the previous page

mailboxDomainId?string
status?string

queued until the domain is connected; provisioning while it is being set up (minutes to a few hours); active with its sign-in details ready; failed if it could not be set up, when nothing is charged for it; cancelled once its domain is deleted

Value in"queued""provisioning""active""failed""cancelled"
customerId?string
q?string

Text to look for anywhere in the address

Length1 <= length <= 100

Response Body

Success

application/json
  1. response

Success

data*array<>
nextCursor*|

Pass as cursor for the next page. null on the last page

total*integer

How many match across every page

Range0 <= value
curl -X GET "https://example.com/v1/mailboxes?mailboxDomainId=mdm_01K6XJ4Q8ZT3M9R5V2B7WDHNCA&customerId=cus_01K6XJ4Q8ZT3M9R5V2B7WDHNCA"
{  "data": [    {      "id": "mbx_01K6XJ4Q8ZT3M9R5V2B7WDHNCA",      "mailboxDomainId": "mdm_01K6XJ4Q8ZT3M9R5V2B7WDHNCA",      "email": "[email protected]",      "username": "jo",      "firstName": "Jo",      "lastName": "Bloggs",      "profilePictureUrl": "string",      "isAdmin": true,      "status": "queued",      "setupStage": "configuring_dns",      "failure": {        "code": "DOMAIN_IN_USE_GOOGLE",        "message": "Domain is already in use in Google Workspace."      },      "customerId": "cus_01K6XJ4Q8ZT3M9R5V2B7WDHNCA",      "activatedAt": "2026-10-07T11:04:31.000Z",      "actor": {        "kind": "user",        "label": "string"      },      "createdAt": "2026-10-07T11:04:31.000Z"    }  ],  "nextCursor": null,  "total": 1}

Order mailboxes POST

Orders Google mailboxes on a domain, by its name or id: the one call you need. A domain you bought here needs nothing else: we point its nameservers ourselves, keep its existing records (website, verifications), and the mailboxes are set up as soon as it is ready (`nameserversManaged: true`). For a domain registered elsewhere, set the `nameservers` in `mailboxDomain` at its registrar; the mailboxes wait, paid for, and are set up once it points there. A domain nobody has registered is checked with the registrar first: send `buy: true` to register it (a year, to the registrant on the customer or your account default) before its mailboxes are ordered, or leave it off and get `domain_not_registered`, with nothing held or charged. A premium name is never bought here, whatever `buy` says (`premium_domain`). Order more later the same way, up to 10 per domain. Each month is held from your wallet now (checked first, so a short balance changes nothing) and only taken once that mailbox is set up. Send an Idempotency-Key header so a retry never orders twice.

Order mailboxes on several domains POST

Orders mailboxes on up to 50 domains in one call, buying the ones sent with `buy: true` first (for a year, to the customer's registrant or your default one). The wallet is checked for everything up front, so a short balance changes nothing. Each domain then succeeds or fails on its own: `results` says which, and a failed one can be sent again alone. A domain still being registered comes back `awaiting_domain`, its mailboxes paid for and set up once the registration finishes. Send an Idempotency-Key header so a retry never orders twice.