# Create an account

> Sign up with your own email address or with a new Coritan mailbox, then sign in to the dashboard.

Source: https://www.coritan.com/docs/get-started/create-an-account/

In the dashboard:

- /sign-up: https://www.coritan.com/sign-up

Create a Coritan account to order and manage services. You sign in with an email address you already have, or with a new `@coritan.gg` mailbox that Coritan creates for you at the same time. You do not need to confirm the address before you use the account.

## Before you begin

- Choose a password of 8–128 characters that has at least one lowercase letter, one uppercase letter, one digit and one symbol.
- If you sign up with your own address, use one you can read. Password reset links go to it.

## Sign up with your email address

1. Go to [coritan.com/sign-up](https://www.coritan.com/sign-up), or select **Sign up** at the top of the home page.
2. Enter your **First name** and **Last name**. Both are optional, and you can add them later in your profile.
3. If the form shows **How to sign in**, keep **Use your email** selected.
4. Enter your address in **Work email**.
5. Enter a **Password**. The hint under the field lists what it still needs, and shows **Meets every rule** when it passes.
6. Enter the same password in **Confirm password**.
7. If a verification check appears, complete it.
8. Select **Create account**.

## Sign up with a new mailbox

When Coritan offers mailboxes at sign-up, **How to sign in** has a second option that creates a `@coritan.gg` inbox. The new address becomes the email you sign in with, and the inbox opens in Webmail.

1. On the sign-up form, under **How to sign in**, choose the option to create a `@coritan.gg` inbox.
2. Type a name in **Your new address**. Use lowercase letters, digits, dots, hyphens and underscores, up to 40 characters, starting and ending with a letter or a digit. The form checks the name as you type and says whether it is available.
3. Optionally, enter a **Recovery email**. A password reset link goes to this address as well as to the new inbox, so add one if you can.
4. Enter a **Password** and type it again in **Confirm password**. The mailbox uses the same password.
5. If a verification check appears, complete it.
6. Select **Create account and mailbox**.

## Result

You are signed in. With your own address, the [dashboard](/docs/get-started/dashboard/) opens and offers you a free `coritan.gg` name, which you can [claim now or later](/docs/proxies/coritan-gg-names/). With a new mailbox, [webmail](/docs/mail/webmail/) opens on your inbox and says `Your inbox is ready.` Coritan sends a welcome email to the account's address.

Next, [add credit](/docs/billing/add-credit/) or [order a service](/docs/get-started/order-a-service/).

## Troubleshooting

`Email already registered.`
: An account already uses that address. Select **Sign in**, or **reset your password** if you do not remember it.

The password hint says `Still needs` something
: The password is missing a character type or is shorter than 8 characters. Add what the hint lists.

`Complete the verification check to continue.`
: The verification check has not finished. Complete it, then select the button again.

`The verification check did not pass. Complete it and try again.`
: The check expired or was refused. It resets after every attempt, so complete it again.

`That address is already taken.` or `That name is reserved.`
: Someone has that mailbox name, or Coritan keeps it back. Choose another name.

The form switches back to **Use your email** with a notice
: Coritan could not create mailboxes at that moment. Sign up with an address you already have, or try the mailbox again in a few minutes.

`Too many authentication attempts. Please try again later.`
: Your network sent too many sign-up attempts that failed. Wait a minute and try again. [Rate limits](/docs/api/rate-limits/) lists every limit.

## Related

- [Sign in to your account](/docs/account/sign-in/)
- [Turn on two-factor authentication](/docs/account/two-factor-authentication/)
- [Update your profile](/docs/account/profile/)

## With the API

Check first whether sign-up needs a verification token. The endpoint needs no authentication:

```bash
curl https://api.coritan.com/api/v1/auth/turnstile
```

```json
{"enabled": false, "site_key": ""}
```

When `enabled` is `true`, every sign-up request needs a `turnstile_token` that only the widget in a browser can produce, so create the account on the website instead.

Create the account with [`POST /auth/register`](/docs/api/reference/client/authentication/#op-post-api-v1-auth-register). Send exactly one of `email` and `mailbox_local_part`. The other fields are `password`, and optionally `first_name`, `last_name`, `company`, `recovery_email` (with a mailbox only) and `turnstile_token`.

```bash
curl -X POST https://api.coritan.com/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email": "alex@example.com", "password": "Correct-horse-9", "first_name": "Alex"}'
```

The answer is a token pair, so the new account is signed in at once. `expires_in` is the access token's lifetime in seconds.

```json
{
  "access_token": "eyJhbGciOiJIUzI1NiIs...",
  "refresh_token": "eyJhbGciOiJIUzI1NiIs...",
  "token_type": "bearer",
  "expires_in": 1800
}
```

A password that breaks a rule answers `422` with the rule, such as `Password must contain at least one uppercase letter`. An address with an account answers `409` `Email already registered`.

To offer a mailbox, ask which domain the storefront uses with [`GET /auth/mailbox-domain`](/docs/api/reference/client/authentication/#op-get-api-v1-auth-mailbox-domain), then check a name with [`GET /auth/mailbox-availability`](/docs/api/reference/client/authentication/#op-get-api-v1-auth-mailbox-availability):

```bash
curl "https://api.coritan.com/api/v1/auth/mailbox-availability?local_part=alex"
```

```json
{"available": true, "reason": "ok", "detail": null, "address": "alex@coritan.gg"}
```

`reason` is `ok`, `invalid`, `reserved` or `taken`, and `detail` says why a name cannot be used. When there is no mailbox to offer, the domain endpoint answers `"enabled": false` and the availability check answers `404` `Mailboxes are not offered on this storefront`. The availability check is rate-limited per IP address.

## API

- `POST /api/v1/auth/register`: Register (https://www.coritan.com/docs/api/reference/client/authentication/#op-post-api-v1-auth-register)
- `GET /api/v1/auth/mailbox-availability`: Live check behind the sign-up form's username field (https://www.coritan.com/docs/api/reference/client/authentication/#op-get-api-v1-auth-mailbox-availability)
- `GET /api/v1/auth/mailbox-domain`: Mailbox domain (https://www.coritan.com/docs/api/reference/client/authentication/#op-get-api-v1-auth-mailbox-domain)
- `GET /api/v1/auth/turnstile`: Turnstile config (https://www.coritan.com/docs/api/reference/client/authentication/#op-get-api-v1-auth-turnstile)
