---
title: "Verify 2FA via magic link"
method: POST
path: "/api/v1/me/2fa/magic/{token}"
tags: ["2FA"]
---

# Verify 2FA via magic link

`POST /api/v1/me/2fa/magic/{token}`

## Request

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

Verify 2FA via magic link (no body required — token is in URL).

## Path parameters

- `token` string, required: Magic link or callback token

## Response `200`

2FA verified

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

## Other responses

- `400`: Invalid or expired token
- `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/6b8d61ee354f?raw)
