---
title: "Send the verification link to a different address"
method: POST
path: "/uploads/change-verification-email"
tags: ["Uploads"]
---

# Send the verification link to a different address

`POST /uploads/change-verification-email`

## Request

- Base URL: `https://api.nippy.host`
- URL: `https://api.nippy.host/uploads/change-verification-email`
- Auth: none declared

Repairs a mistyped email before verification, which would otherwise strand the site. Authorised by the upload batch id (see /uploads/resend-verification) and only ever moves an unverified account.

## Request body

- ChangeVerificationEmailDto
  - `uploadBatchId` string, uuid, required: UploadBatch id returned from /uploads/init
  - `email` string, email, required: The address the verification link should go to instead

## Response `200`

- APIChangeVerificationEmailResponse
  - `email` string, required: The new address, normalised, with a fresh link already sent

## Other responses

- `400`: The site is not awaiting verification, or already verified
- `404`: Upload batch id not found
- `409`: The new address already belongs to another user. The body carries `code: "EMAIL_BELONGS_TO_VERIFIED_USER"` (sign in instead) or `code: "EMAIL_HAS_UNVERIFIED_SITE"` (that address has its own link waiting).
- `422`: The address cannot be used for a new account (ADR 0048). The body carries `code: "EMAIL_DOMAIN_NOT_ALLOWED"` (a blocked or disposable domain), `code: "EMAIL_ALIAS_NOT_ALLOWED"` (a `+` alias) or `code: "ACCOUNT_LIMIT_REACHED"` (a likely second account, ADR 0050). The move is always checked, because the address is new.

---

[API](https://skmtc.dev/nippy/apis/nippy-backend-api.md) · [All operations](https://skmtc.dev/nippy/apis/nippy-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nippy/apis/nippy-backend-api/revisions/7ab23f040a55?raw)
