| Aspect | Information |
|---|---|
| Route prefix | /domains |
| Default auto-renew | Disabled for all new domains |
| Payment method | Partner wallet balance |
| Async operations | Forwarding, email forwarding, and client ID attachment are queue-based — a 200 response means accepted, not complete |
| Method | Endpoint | Description |
|---|---|---|
POST | /domains/available | Check availability and pricing across multiple TLDs |
POST | /domains/available-single | Check availability and pricing for a single domain |
POST | /domains/has-workspace | Verify no Google/Microsoft workspace exists for a domain |
GET | /domains/by-user?userId= | List all domains owned by a user |
POST | /domains/add-forwarding | Set URL forwarding on one or more domains |
POST | /domains/add-email-forwarding | Set email catch-all forwarding on one or more domains |
DELETE | /domains | Remove domains (must have no mailboxes assigned) |
| Status | Meaning |
|---|---|
ACTIVE | Domain registered and operational |
PENDING | Registration in progress |
GRACE_PERIOD | Expired — recoverable within 7 days |
RENEWING | Renewal in progress (transient) |
EXPIRED | Past grace period — no longer recoverable |
TRANSFERRED | Domain transferred out |
INACTIVE | Deactivated |
DELETE /domains removes one or more domains. A domain must have no mailboxes assigned before it can be deleted. Returns 400 if any mailbox is still assigned.POST /domains/available — find available domains and prices.POST /domains/has-workspace — confirm no existing workspace.POST /orders/json?userId= — submit the order.domain.order.success or poll GET /domains/by-user?userId= until status = "ACTIVE".POST /domains/add-forwarding — submit the target URL.GET /domains/by-user?userId= or test directly once DNS has propagated.DELETE /mailboxes/remove — release every mailbox assigned to the domain.DELETE /domains — pass the domain name in the request body.POST /domains/has-workspace before placing an order. A missed workspace conflict causes provisioning to fail after payment is taken.userId — Using the wrong user ID returns an empty domain list, not an error. Verify the value before querying.200 on forwarding endpoints means the job was queued, not that DNS has updated. Allow time for propagation before testing.DELETE /domains returns 400 if any mailbox is still assigned.