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

# Verify YouTube social link

`POST /v1/account/social/verify/youtube`

Verify ownership of a YouTube social link using a Google OAuth 2.0 access token.

**Flow:**
1. Client obtains a Google OAuth 2.0 access token via PKCE flow (youtube.readonly scope)
2. Client sends the token to this endpoint
3. API validates the token against YouTube's `GET /v3/channels?mine=true` endpoint
4. If the returned channel matches the account's existing YouTube social link, it's marked as verified

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

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

Authentication: `Authorization: Bearer <CLIENT_JWT>`

## Headers

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

## Request body

- YouTubeVerifyRequest — Request model for POST /v1/account/social/verify/youtube. The client obtains a Google OAuth 2.0 access token via PKCE flow (with youtube.readonly scope), then sends it here for server-side validation against the YouTube Data API.
  - `access_token` string, required — Google OAuth 2.0 access token obtained via PKCE flow with youtube.readonly scope

## Response `200`

Successful Response

- YouTubeVerifyResponse — Response model for POST /v1/account/social/verify/youtube.
  - `verified` boolean, required — Whether the YouTube link is now verified
  - `platform` string — Platform that was verified
  - `channel_name` string, required — YouTube channel name that was verified
  - `verification_method` string, required — Method used for verification

## Other responses

- `400` — Invalid access token, no YouTube link on account, or channel mismatch
- `401` — Missing or invalid Grove JWT
- `422` — Validation Error
- `502` — YouTube API unavailable

---

[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/revisions/f286b48a8105/schema)
