---
title: "Verify and complete an email identity link"
method: POST
path: "/api/v1/me/identities/email/verify"
tags: ["Account"]
---

# Verify and complete an email identity link

`POST /api/v1/me/identities/email/verify`

## Request

- Base URL: `https://api.uptimemonitoring.com`
- URL: `https://api.uptimemonitoring.com/api/v1/me/identities/email/verify`
- Auth: HTTP bearer

Session-only. Accepts exactly one of `{"token": "..."}` or
`{"email", "code"}`, scoped to the calling session's user — a token
or code minted for a different user always 401s, identically to any
other invalid/expired case.

## Request body

- object
  - `token` string
  - `email` string, email
  - `code` string

## Response `200`

Linked.

- object
  - `status` string

## Other responses

- `401`: Invalid, expired, wrong, reused, locked, malformed, or belonging to a different session user — identical body for every case.
- `403`: Caller did not authenticate via a dashboard session, or the resolved account is suspended.
- `409`: identity_in_use (another user already holds this address) or identity_already_linked (this user already has an email identity).
- `415`: The request `Content-Type` is not `application/json`. Write operations (POST, PUT, PATCH) require that header; a missing or non-JSON media type is rejected before the body is read. The `charset` parameter is accepted and ignored, so `application/json; charset=utf-8` is valid.
- `503`: Email sign-in is disabled.

---

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