---
title: "Confirm a new email"
method: PUT
path: "/v0/users/{user}/email"
tags: ["users"]
---

# Confirm a new email

`PUT /v0/users/{user}/email`

## Request

- The document declares no server URL.
- Auth: none declared

Change a user's email to the new email that a confirm link was sent to. A user who updates their own email is sent that link at the new email, and its token lasts as long as a login link's. No credential is needed, so the link works from any device. Any later update to the user ends the link, this confirm included. The response holds a new session for the new email. An invalid or expired token is refused with `401 Unauthorized`; a token for another user, or one sent before the user's latest update, with `403 Forbidden`; and a new email that another user has taken since with `409 Conflict`.

## Path parameters

- `user` string, required

## Request body

- JsonConfirm
  - `token` string, required

## Response `200`

successful operation

- JsonAuthUser
  - `creation` string, date-time, required
  - `expiration` string, date-time, required
  - `token` string, required
  - `user` JsonUser, required
    - `admin` boolean, required
    - `created` string, date-time
    - `email` string, required
    - `locked` boolean, required
    - `name` string, required
    - `slug` string, required
    - `uuid` string, uuid, required

## Other responses

- `4XX`: Error
- `5XX`: Error

## Changes

- **2026-10-18** `238bca76cd14`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bencherdev/apis/bencher-api/changes/v0/users/:user/email/put.md)

---

[API](https://skmtc.dev/bencherdev/apis/bencher-api.md) - [All operations](https://skmtc.dev/bencherdev/apis/bencher-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bencherdev/apis/bencher-api/revisions/538b39b8d755?raw)
