---
title: "Mark an email as verified"
method: PUT
path: "/admin/users/{userId}/email-verified"
tags: ["Admin"]
---

# Mark an email as verified

`PUT /admin/users/{userId}/email-verified`

## Request

- Base URL: `https://cloud.kaneo.app/api`
- URL: `https://cloud.kaneo.app/api/admin/users/{userId}/email-verified`
- Auth: HTTP bearer

Mark a non-guest user's email address as verified without asking them, for example so a single sign-on identity with the same address can link to the account. Requires the `users:credentials` instance permission; API keys are rejected.

## Path parameters

- `userId` string, required

## Response `200`

The email is verified

- AdminEmailVerified
  - `emailVerified` true, required

## Other responses

- `401`: Missing or invalid credentials
- `403`: The caller lacks the instance permission or is authenticated with an API key
- `404`: User not found
- `409`: Guest accounts have no email address to verify
- `429`: The API key exceeded its rate limit or usage quota. Wait the number of seconds in Retry-After before retrying. The X-RateLimit headers are sent only when the rate limit was hit.

## Changes

- **2026-10-27** `bbaae0ea62c6`: 1 info
  - endpoint added
- **2026-10-27** `93f78789100c`: 1 breaking
  - api path removed without deprecation
- **2026-10-27** `720626ed550f`: 1 info
  - added the non-success response with the status `409`
- **2026-10-26** `270c2866a46a`: 1 info
  - removed the non-success response with the status `409`
- **2026-10-26** `8cf55c967f4c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/admin/users/:userId/email-verified/put.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) - [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usekaneo/apis/kaneo-api/revisions/741a49dfb347?raw)
