---
title: "Verify Email Otp"
method: POST
path: "/api/v1/auth/verify-email-otp"
tags: ["Authentication"]
---

# Verify Email Otp

`POST /api/v1/auth/verify-email-otp`

## Request

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

Verify email OTP and login/register user

## Headers

- `X-Device-Id` integer, nullable

## Request body

- VerifyEmailOTPRequest
  - `email` string, required: Email address
  - `otp_code` string, required: 6-digit OTP sent to the email
  - `gemstone_ids` integer[], nullable: Optional list of anonymous gemstone IDs to link to the user
  - `promo_code` string, nullable: Optional promo code to redeem on signup (LNK-PROMO)

## Response `200`

Successful Response

- Token
  - `token` string, required
  - `refreshToken` string, required
  - `user` UserResponse, required
    - `id` integer, required
    - `mobile_number` string, nullable
    - `phone_country_code` string, nullable
    - `first_name` string, required
    - `last_name` string, required
    - `avatar` string, nullable
    - `is_verified` boolean, required
    - `member_since` string, date-time, required
    - `email` string, nullable
    - `registration_completed` boolean, required
    - `has_completed_tour` boolean
    - `auth_provider` string, nullable
    - `apple_linked` boolean
  - `gemstones_saved` integer, nullable
  - `is_new_user` boolean, nullable
  - `promo_granted` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/gemstoneaiapp/apis/gemstoneai-api.md) · [All operations](https://skmtc.dev/gemstoneaiapp/apis/gemstoneai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gemstoneaiapp/apis/gemstoneai-api/revisions/fcb441f55161?raw)
