Creates an account together with its own organisation, makes the new user its owner and signs in.
HTTP
POST /auth/registerAccess: No token needed.
Request body #
JSON.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | Your name. At most 80 characters. |
email | string | yes | A valid email address. At most 200 characters. |
password | string | yes | At least 8 characters. |
organization | string | no | The name of the organisation. Defaults to <name>'s workspace. At most 80 characters. |
JSON
{ "name": "Ada Lovelace", "email": "ada@example.com", "password": "correct horse battery" }Response 201 #
The account is created and a session started.
JSON
{
"token": "9f2c...e1",
"expiresAt": "2026-10-23T09:30:00+00:00",
"user": {
"id": "0197a3c2-5b1e-7c4a-9d2f-3e8b6a1f0c55",
"email": "ada@example.com",
"name": "Ada Lovelace",
"locale": "en-GB"
}
}Response fields #
| Field | Type | Description |
|---|---|---|
token | string | The session token. Send it as Authorization: Bearer <token>. It is shown only once. |
expiresAt | string | When the token expires, as an ISO 8601 timestamp. A token lasts 7 days. |
user.id | string | The id of the user. |
user.email | string | The email address. |
user.name | string | The name. |
user.locale | string or null | The interface language the user picked, for example en-GB, or null until they pick one. |
Errors #
| Status | error | When |
|---|---|---|
| 422 | invalid_request | fields names the problem: name is required, email is invalid or taken, password is too_short (fewer than 8 characters). |
| 429 | rate_limited | Too many requests, see Rate limiting. |
See Errors for the error format.