v1

latestOpenAPI 3.0.02026-08-04891301.4 MB
auth

Register a new user with email and password

Creates a new user account and returns an access token, refresh token, and the new user object. Two registration paths are supported:

  • Team registration: supply team_invite with a valid team invite ID. The new user is added to that team immediately upon registration. Returns HTTP 404 if the invite is not found.
  • Standard registration: supply password. An invite_code may optionally be included for invite-gated apps; an invalid code returns HTTP 404.

Exactly one of team_invite or password must be provided; omitting both returns HTTP 400. Password registration must be enabled for the app; disabled apps return HTTP 403. The response status is HTTP 201 on success.

post/api/v1/auth/register

Request body

aliasstring

Display alias (handle) for the new account.

emailstring required

Email address for the new account.

full_namestring

Full name for the new account.

invite_codestring

Invite code for invite-gated registration. Applied only in the standard registration path.

passwordstring

Password for the new account. Required for standard (non-team-invite) registration.

team_invitestring

Team invite ID. When provided, the user is added to the team on registration.

timezonestring

IANA timezone name for the new account, e.g. "America/New_York".

Example request

{
  "alias": "string",
  "email": "user@example.com",
  "full_name": "Example Name",
  "invite_code": "string",
  "password": "string",
  "team_invite": "string",
  "timezone": "America/New_York"
}

Response

Successful response

expires_ininteger required

Number of seconds until token expires. After this period, use refresh_token to obtain a new access token.

metadataobject

Optional auxiliary data associated with this authentication event, such as onboarding_job_id when the user is completing onboarding. null when no extra context is present.

refresh_tokenstring required

Long-lived opaque refresh token. Use this to obtain a new access token when token expires.

tokenstring required

Short-lived JWT access token. Include this value in the Authorization: Bearer <token> header for all authenticated API requests.

token_typestring required

Token scheme. Always "Bearer".

Example response

{
  "expires_in": 3600,
  "metadata": {
    "key": "value"
  },
  "refresh_token": "rt_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfMDEiLCJleHAiOjE3MTcwMDAwMDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
  "token_type": "Bearer",
  "user": {
    "alias": "jdoe",
    "app": "dap_0aBcDeFgHiJkLmNoPqRsTu",
    "app_name": "Example Name",
    "email": "user@example.com",
    "id": "usr_0aBcDeFgHiJkLmNoPqRsTu",
    "is_system_user": true,
    "metadata": {
      "key": "value"
    },
    "name": "Example Name",
    "org": "org_0aBcDeFgHiJkLmNoPqRsTu",
    "org_name": "Example Name",
    "org_role": "member",
    "sandbox": "dsb_0aBcDeFgHiJkLmNoPqRsTu",
    "sandbox_name": "Example Name"
  }
}