---
title: "Register a new account"
method: POST
path: "/v1/auth/register"
tags: ["auth"]
---

# Register a new account

`POST /v1/auth/register`

## Request

- Base URL: `https://api.strale.io`
- URL: `https://api.strale.io/v1/auth/register`
- Auth: none declared

Creates a new Strale account and returns the API key — store it securely, it is shown only once. Trial credits (€2.00, no card required) are granted once per email address; when they are withheld the account is still created and `wallet_balance_cents` is 0 with a `trial_credits` object explaining why. Read the granted amount from the response rather than assuming the default.

## Request body

- object
  - `email` string, email, required
  - `name` string

## Response `201`

Account created

- object
  - `user_id` string, uuid
  - `email` string
  - `api_key` string: Shown once. Starts with sk_live_.
  - `wallet_balance_cents` integer: What the wallet was actually opened with. 0 when trial credits were withheld.
  - `trial_credits` object: Present only when no trial credit was granted. The account is still usable; top up to make paid calls.
    - `granted` boolean
    - `reason` 'trial_not_available': Deliberately undifferentiated. Registration does not verify the mailbox, so a more specific reason would tell anyone who registers an address whether it had previously held an account.
    - `message` string

## Other responses

- `400`: Invalid email, a disposable-mail domain, or a domain with no mail exchanger. `details.reason` carries disposable_domain or no_mail_exchanger.
- `409`: Email already registered.

---

[API](https://skmtc.dev/strale/apis/strale-api-2.md) · [All operations](https://skmtc.dev/strale/apis/strale-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/strale/apis/strale-api-2/revisions/a5293878cfc6?raw)
