---
title: "Link a secondary email/SMS identity to your account"
method: POST
path: "/v1/account/identities/verify"
tags: ["account"]
---

# Link a secondary email/SMS identity to your account

`POST /v1/account/identities/verify`

Link an additional (secondary) email or SMS identity to your existing account.

**Primary vs Secondary Identities:**
- Your PRIMARY identity was set during signup via `/auth/exchange-cdp-token`
- This endpoint adds SECONDARY identities for backup login and account recovery
- Secondary identities can be used to login via `/auth/login/start` or recover via `/auth/recover/start`

**Flow:**
1. Authenticate with CDP SDK using a NEW email/phone (not your primary)
2. CDP returns an access token
3. Call this endpoint with the CDP token to link as a secondary identity

**Note:** The identity must not already be linked to another account.
Account merging is not yet supported.

Authentication: `Authorization: Bearer <CLIENT_JWT>`

## Headers

- `authorization` string, nullable — Bearer JWT issued by Grove that identifies the account.

## Request body

- IdentityLinkCDPVerifyRequest — Request model for verifying CDP identity (email/SMS).
  - `cdp_token` string, required — CDP Auth token to verify and extract identity from

## Response `200`

Successful Response

- IdentityResponse — Response model for a single identity.
  - `id` string, required — Identity ID
  - `identity_type` string, required — Type of identity (email, sms, evm, solana, ens, etc.)
  - `identity_value` string, required — The identity value (email address, wallet address, ENS name, etc.)
  - `resolved_address` string, nullable — For ENS identities: the resolved wallet address
  - `verified_at` string, nullable — When the identity was verified (ISO 8601)
  - `verification_method` string, nullable — How the identity was verified (otp, signature, ens_lookup, etc.)
  - `is_primary` boolean, required — Whether this is the primary identity (primary cannot be deleted)
  - `created_at` string, required — When the identity was created (ISO 8601)

## Other responses

- `400` — Invalid CDP token or identity already linked to this account
- `401` — CDP token validation failed
- `409` — Identity already linked to another account
- `422` — Validation Error

---

[API](https://skmtc.net/grove/apis/grove-api.md) · [All operations](https://skmtc.net/grove/apis/grove-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/grove/grove-api/versions/f286b48a8105/schema)
