---
title: "Change Email"
method: POST
path: "/api/auth/change-email"
---

# Change Email

`POST /api/auth/change-email`

## Request

- Base URL: `https://api.usecreed.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.usecreed.com/api/auth/change-email`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/usecreed/apis/creed-api/docs/api/auth/change-email/post.ts> (a function with typed inputs; its response is checked against the schema)

Change the caller's email to this Apple/Google account. The app first
attaches the login with Supabase's `linkIdentity`; this then makes it the
account's only login and its email the main one, in one transaction.

Safe to call again: if an earlier call failed, the login is still attached
and this finishes the change.

## Headers

- `x-user-id` string, nullable

## Request body

- ChangeEmailRequest
  - `identityToken` string, required
  - `provider` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-27** `66ebef6fbbdb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usecreed/apis/creed-api/changes/api/auth/change-email/post.md)

---

[API](https://skmtc.dev/usecreed/apis/creed-api.md) - [All operations](https://skmtc.dev/usecreed/apis/creed-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usecreed/apis/creed-api/revisions/9a6e25b21a53?raw)
