---
title: "Complete MFA authentication"
method: POST
path: "/authenticate/mfa"
tags: ["Authentication", "MFA"]
---

# Complete MFA authentication

`POST /authenticate/mfa`

## Request

- Base URL: `https://demo.ziti.dev/edge/client/v1`
- URL: `https://demo.ziti.dev/edge/client/v1/authenticate/mfa`
- Auth: one of:
  - API key in header `zt-session`
  - OAuth 2
    - Authorization code: `/oidc/authorize`
    - Token URL: `/oidc/token` scopes: `openid`
- TypeScript: <https://skmtc.dev/openziti/apis/ziti-edge-client/docs/authenticate/mfa/post.ts> (a function with typed inputs; its response is checked against the schema)

Completes MFA authentication by submitting a MFA time based one time token or backup code.

## Request body

- MfaCode
  - `code` string, required

## Response `200`

Base empty response

- Empty
  - `data` object, required
  - `meta` Meta, required
    - `apiEnrollmentVersion` string
    - `apiVersion` string
    - `filterableFields` string[]
    - `pagination` Pagination
      - `limit` number, required
      - `offset` number, required
      - `totalCount` number, required

## Other responses

- `401`: Base empty response
- `429`: The resource requested is rate limited and the rate limit has been exceeded

## Changes

- **2024-05-29** `cce2800c1357`: 3 warning
  - the optional response header `WWW-Authenticate` removed for the status `200`
  - the optional response header `WWW-Authenticate` removed for the status `401`
  - the optional response header `WWW-Authenticate` removed for the status `429`

[Operation history](https://skmtc.dev/openziti/apis/ziti-edge-client/changes/authenticate/mfa/post.md)

---

[API](https://skmtc.dev/openziti/apis/ziti-edge-client.md) - [All operations](https://skmtc.dev/openziti/apis/ziti-edge-client/llms.txt) - [OpenAPI document](https://skmtc.dev/openziti/apis/ziti-edge-client/revisions/f7b51eaafbbb?raw)
