---
title: "Verify Discord social link"
method: POST
path: "/v1/account/social/verify/discord"
tags: ["verification"]
---

# Verify Discord social link

`POST /v1/account/social/verify/discord`

## Request

- Base URL: `https://api.grove.city` (the document declares no server; this is the origin it was published from)
- URL: `https://api.grove.city/v1/account/social/verify/discord`
- Auth: none declared

Verify ownership of a Discord social link using an OAuth 2.0 access token.

**Flow:**
1. Client obtains a Discord OAuth 2.0 access token via authorization code flow
2. Client sends the token to this endpoint
3. API validates the token against Discord's `GET /api/v10/users/@me` endpoint
4. If the returned user ID matches the account's existing Discord social link, it's marked as verified

**Prerequisites:**
- Account must have a Discord social link already added (via `POST /v1/account/social-links`)
- Client must have a valid Discord OAuth 2.0 access token with `identify` scope

**Idempotent:** Calling this on an already-verified Discord link returns success.

Authentication: `Authorization: Bearer <CLIENT_JWT>`

## Headers

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

## Request body

- DiscordVerifyRequest: Request model for POST /v1/account/social/verify/discord.
  - `access_token` string, required: Discord OAuth 2.0 access token obtained via authorization code flow

## Response `200`

Successful Response

- DiscordVerifyResponse: Response model for POST /v1/account/social/verify/discord.
  - `verified` boolean, required: Whether the Discord link is now verified
  - `platform` string: Platform that was verified
  - `username` string, required: Discord username that was verified
  - `verification_method` string, required: Method used for verification

## Other responses

- `400`: Invalid access token, no Discord link on account, or user ID mismatch
- `401`: Missing or invalid Grove JWT
- `422`: Validation Error
- `502`: Discord API unavailable

---

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