---
title: "Verify Email"
method: POST
path: "/admin/users/{user_id}/verify-email"
tags: ["admin"]
---

# Verify Email

`POST /admin/users/{user_id}/verify-email`

## Request

- Base URL: `https://api.alert.camp` (the document declares no server; this is the origin it was published from)
- URL: `https://api.alert.camp/admin/users/{user_id}/verify-email`
- Auth: none declared

Manually mark a user's email as verified.

Used when the verification email is undeliverable (e.g. Yahoo/Hotmail/iCloud
deferring or silently dropping mail). PostgreSQL is the source of truth, but
the mobile app gates the verify screen on the *Firebase* email_verified
claim — so we ALWAYS (re-)push to Firebase, even when our column is already
True. The two can drift (a prior mirror may have failed silently), and only
re-pushing repairs an account that's verified in the DB yet still blocked in
the app. Mirror failures are surfaced to the admin, not swallowed.

## Path parameters

- `user_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/alert/apis/alertcamp.md) · [All operations](https://skmtc.dev/alert/apis/alertcamp/llms.txt) · [OpenAPI document](https://skmtc.dev/alert/apis/alertcamp/revisions/864c8c9ef833?raw)
