---
title: "Verify email with OTP after signup"
method: POST
path: "/internal/api/auth/verify-email"
tags: ["USERS"]
---

# Verify email with OTP after signup

`POST /internal/api/auth/verify-email`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/internal/api/auth/verify-email`
- Auth: none declared

Verify the user's email with the OTP sent during signup.

    The system will:
    1. Validate the OTP
    2. Check OTP expiration
    3. Activate the user account
    4. Activate trial subscription
    5. Return access token

## Request body

- VerifyEmailRequest
  - `email` string, email, required
  - `otp` string, required: 6-digit OTP received via email

## Response `200`

Email verified successfully with access token

- VerifyEmailResponse
  - `access_token` string, nullable
  - `token_type` string, nullable
  - `access_token_expire_in_minutes` integer, nullable
  - `user_details` UserDetails, required
    - `id` string
    - `email` string, email, nullable
    - `name` string, nullable
    - `status` string, nullable
  - `message` string

## Other responses

- `422`: Validation Error

---

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