> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nexudus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Check Sign-up Email

> Whether signing up with an email would be refused with MUST_SIGN_IN, so the address can be verified first.

# Check Sign-up Email

Tells whether [signing up](/api/endpoints/checkout/signup) with an email would be refused with `MUST_SIGN_IN`. The email belongs to a Nexudus account, possibly in another network, so the person has to verify it before joining this location. The portal asks as soon as the email is typed and offers to send the verification link (`GET /api/sys/users/restore`) instead of the rest of the sign-up form.

It runs the very check the sign-up runs, so the two always agree. The other refusals for an existing account (`EMAIL_USED`, `SIGNUP_DISABLED`) answer `false` here and are reported by the sign-up itself. It only answers yes or no: which locations the account belongs to is not disclosed.

## Authentication

No authentication required. When the request is signed in as the account that owns the email, the answer is `false`, as the sign-up would let that person go ahead.

Limited to 20 requests per minute.

## Request Body

<ParamField body="Email" type="string" required>
  The email typed into the sign-up form. An invalid address answers `false`: the sign-up refuses it with `INVALID_EMAIL` instead.
</ParamField>

<ParamField body="Token" type="string">
  The sign-in token the sign-up will be sent with (the sign-up's `Token`, from the `token` query parameter of an invitation link). With the account owner's own token the sign-up goes ahead, so the answer is `false`.
</ParamField>

## Response

<ResponseField name="MustSignIn" type="boolean">
  `true` when the sign-up would be refused with `MUST_SIGN_IN`.
</ResponseField>

## Examples

```http theme={null}
POST /api/public/signup/checkEmail
Content-Type: application/json

{
  "Email": "jane@example.com"
}
```

```json theme={null}
{
  "MustSignIn": true
}
```

## TypeScript Integration

The sign-up forms use `useMustVerifyEmail`, with the same HTTP client and token as the sign-up request:

```typescript theme={null}
import { useMustVerifyEmail } from '@/views/checkout/components/useMustVerifyEmail'

const mustVerifyEmail = useMustVerifyEmail(httpClient, enteredEmail, useSignupInviteLinks().token)
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.