---
title: "Request email OTP verification code"
method: POST
path: "/v1/auth/email-otp/request"
tags: ["Auth"]
---

# Request email OTP verification code

`POST /v1/auth/email-otp/request`

Creates a pending email verification and sends a 6-digit OTP code via email. When EMAIL_VERIFICATION_REQUIRED is disabled, or skipVerification is true (paid funnel), auto-verifies and returns a Firebase custom token.

## Headers

- `accept-language` string, required

## Request body

- RequestEmailOtpDto
  - `email` string, required
  - `firebaseUid` string
  - `skipVerification` boolean — When true, marks the user as email-verified without sending OTP. Used by paid funnel create-account.
  - `locale` string — UI locale for the email copy (bare code or BCP-47); falls back to Accept-Language, then English

## Response `200`

OTP sent (empty body) or email auto-verified (body with firebaseCustomToken)

- RequestEmailOtpResponseDto
  - `firebaseCustomToken` string — Present when email verification is disabled — use to sign in directly
  - `firebaseUid` string

---

[API](https://skmtc.dev/miaai/apis/backend-template-api.md) · [All operations](https://skmtc.dev/miaai/apis/backend-template-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/miaai/backend-template-api/revisions/2a8d88a5124f/schema)
