---
title: "Set TOTP MFA key"
method: POST
path: "/api/user/mfa/totp/set-key"
tags: ["User"]
---

# Set TOTP MFA key

`POST /api/user/mfa/totp/set-key`

## Request

- Base URL: `https://studio.edgeimpulse.com/v1`
- URL: `https://studio.edgeimpulse.com/v1/api/user/mfa/totp/set-key`
- Auth: one of:
  - API key in header `x-api-key`
  - API key in cookie `jwt`
  - API key in header `x-jwt-token`
  - OAuth 2
    - Authorization code: `/v1/oauth/authorize`
    - Client credentials
    - Implicit: `/v1/oauth/authorize`
    - Password
    - Token URL: `/v1/oauth/token`
- TypeScript: <https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/docs/api/user/mfa/totp/set-key/post.ts> (a function with typed inputs; its response is checked against the schema)

Enable MFA on this account using an TOTP token. First create a new key via `userGenerateNewTotpMfaKey`.

## Request body

- UserSetTotpMfaKeyRequest
  - `key` string, required: Secret key obtained through `userGenerateNewMfaKey`.
  - `totpToken` string, required: TOTP token that is valid for the key (to ensure the device is configured correctly)

## Response `200`

OK

- UserSetTotpMfaKeyResponse
  - `success` boolean, required: Whether the operation succeeded
  - `error` string: Optional error description (set if 'success' was false)
  - `recoveryCodes` string[], required: 10 recovery codes, which can be used in case you've lost access to your MFA TOTP app. Recovery codes are single use. Once you've used a recovery code once, it can not be used again.

---

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