---
title: "Confirm an email address"
method: POST
path: "/api/auth/verify-email"
tags: ["auth"]
---

# Confirm an email address

`POST /api/auth/verify-email`

## Request

- Base URL: `https://telawiki.com`
- URL: `https://telawiki.com/api/auth/verify-email`
- Auth: none required

Consumes the single-use token from the confirmation link and **signs the user in**. Tokens are stored hashed; the raw value exists only in the link.

## Request body

- object
  - `token` string, required

## Response `200`

Confirmed and signed in. Sets the `tela_session` cookie.

- object
  - `user` User, required: The signed-in user. `POST /api/auth/login` populates only the identity fields; `GET /api/auth/me` fills in the rest.
    - `id` integer, required
    - `username` string, required: Also the public handle.
    - `display_name` string
    - `email` string, nullable, required: Null on legacy username-only accounts, which skip the email gate.
    - `email_verified` boolean, required
    - `is_instance_admin` boolean, required
    - `bio` string
    - `mcp_connected` boolean: Whether this account has ever authenticated an MCP client.
    - `trial` object: Present only inside the trial-notification window.
      - `plan_key` string
      - `plan_name` string
      - `ends_at` string
      - `grace_ends_at` string
      - `ended` boolean
    - `feedback_unseen` integer: Instance admins only.

## Other responses

- `400`: `bad_request` (token missing) or `invalid_token` (unknown, used, or expired).
- `500`: `internal` — server error.

---

[API](https://skmtc.dev/telawiki/apis/tela-rest-api.md) · [All operations](https://skmtc.dev/telawiki/apis/tela-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/telawiki/apis/tela-rest-api/revisions/f316f31f6fcb?raw)
