Skip to content

Check Email

Checks whether an account with the given email address already exists. Intended for the guest checkout flow — when a visitor enters their email, call this endpoint to show a message like "An account with this email address already exists." and offer them to log in instead.

This endpoint is only available to guests. Requests carrying a valid authentication token are rejected with 403 Forbidden.

Bot Protection

This endpoint requires a valid Cloudflare Turnstile token when bot protection is enabled. See the Turnstile Integration Guide for frontend setup instructions.

HTTP Request

POST /api/v1/auth/email/exists

ParameterDescription
email stringEmail address to check
turnstileToken stringCloudflare Turnstile verification token.

Response

200 OK

json
{
  "data": {
    "exists": true
  }
}

exists is false when no account uses the email address:

json
{
  "data": {
    "exists": false
  }
}

Soft-deleted accounts

Emails belonging to deactivated (soft-deleted) accounts report exists: true, matching the registration endpoints, which reject those emails as already taken.

Rate Limiting

Limited to 10 requests per minute per IP address. Exceeding the limit returns 429 Too Many Requests. Debounce the check on the frontend rather than firing it on every keystroke.

Error Handling

422 Unprocessable Content — the email is missing or not a valid email address:

json
{
  "message": "The email field must be a valid email address.",
  "errors": {
    "email": [
      "The email field must be a valid email address."
    ]
  }
}

403 Forbidden — the request was sent with a valid authentication token (the endpoint is guest-only).

429 Too Many Requests — the rate limit was exceeded.