---
title: "Verify 2FA code"
method: POST
path: "/api/v1/me/2fa/{sessionId}/verify"
tags: ["2FA"]
---

# Verify 2FA code

`POST /api/v1/me/2fa/{sessionId}/verify`

## Request

- Base URL: `https://api.proof.holdings`
- URL: `https://api.proof.holdings/api/v1/me/2fa/{sessionId}/verify`
- Auth: API key in cookie `auth_token`

Submit OTP code to complete 2FA verification.

## Path parameters

- `sessionId` string, required: Auth session ID

## Request body

- VerifyCodeRequest: OTP code submission
  - `code` string, required: OTP verification code

## Response `200`

2FA verified

- SuccessResponse: Generic success response
  - `success` boolean, required
  - `message` string

## Other responses

- `400`: Invalid code
- `429`: Rate limit exceeded
- `503`: `twofa_unavailable` — the step-up could not be completed (its store did not answer); no grant was stored. Retry

---

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