User Register
Creating a MooverApp account without one: POST users starts signup and names an Operation whose id is the token itself, :check_email_availability says whether an address is free, and the Operation reports each provisioning hop until it is done.
Get operation
Polls the provisioning Operation that signup started (§17). Its id is the signup_token the Create handed back, so the poll authenticates itself and needs no bearer token.
Poll until done is true, then read exactly one of response / error. metadata.step reports which hop of the provisioning is running, which is what a progress bar shows.
path Parameters
operationHeaders
If-None-MatchA matching etag answers 304 with no body (§16).
Get operation › Responses
The resource.
Create user
A MooverApp account, seen from the one place where somebody with no account can create one. Creating it also creates the account and starts provisioning the first website, so the response carries three things the user resource itself does not have: the account_id, a one-time signup_token to exchange for a bearer JWT, and the operation to poll until the site is up.
Create user › Request Body
emailThe address the new account signs in with, and where the platform writes to it. Must not already be registered — users:check_email_availability says so before the form is submitted.
passwordThe password for the new account. Write-only: it is applied and never echoed back.
website_nameWhat to call the first website. It names the account, seeds the site's own name and is the slug the platform hostname is built from. Not a field of the user, so it never comes back — read it from the website on the Tenant API.
website_typeWhich kind of site to provision, which decides the content it is seeded with. Optional; the platform picks a default.
default_languageThe language the first view is created in. It becomes the general.locale.default_language setting of the new website.
recaptcha_tokenA CAPTCHA proof, when the deployment asks for one. This is the only unauthenticated write on the platform, so it is also the only one that needs it.
request_idA client-chosen idempotency key (§15). Retrying a signup that timed out with the same value returns the first attempt's result instead of provisioning a second site.
Create user › Responses
The created resource.
nameThe resource name (§5) — the identity of this resource, and the path that addresses it: websites/{website}/cms_pages/{cms_page}. It is the handle to store, not a human label.
idThe last segment of name on its own, for a client that needs to build a child URL. Unique inside its parent, never across the platform.
create_timeWhen the resource was created (RFC 3339, UTC).
update_timeWhen the resource last changed (RFC 3339, UTC).
etagVersion of the persisted state. Send it back in If-Match on Update or Delete and the write is rejected with ABORTED if anyone else changed the resource meanwhile (§14).
emailThe address the new account signs in with, and where the platform writes to it. Must not already be registered — users:check_email_availability says so before the form is submitted.
is_activeWhether the new account is usable. It is true on a successful signup.
account_idThe account created alongside the user — the one the new website hangs off on the Tenant API.
signup_tokenA one-time credential to trade for a bearer JWT at POST /tenant-api/v1/users:exchange_handoff, so a freshly signed-up user does not have to type the password they just chose.
operationThe name of the provisioning Operation to poll (§17). The account exists as soon as this call returns; the website is not servable until that Operation is done.
Check email availability (users)
Says whether an address can still be registered, so a signup form can tell someone before they fill the rest of it in. Send {"email": "..."}. It is a question, not a reservation: the answer can go stale, and the Create is what actually decides.
Check email availability (users) › Request Body optional
Check email availability (users) › Responses
The affected resource, or the method’s own response object (§10).