---
title: "POST /api/users/@me/mfa/totp/enable/"
method: POST
path: "/api/users/@me/mfa/totp/enable/"
tags: ["api"]
---

# POST /api/users/@me/mfa/totp/enable/

`POST /api/users/@me/mfa/totp/enable/`

## Request body

- TotpEnableSchema
  - `password` string, required
  - `code` string
  - `secret` string

## Response `200`

- TokenWithBackupCodesResponse
  - `token` string, required
  - `backup_codes` BackupCode[], required
    - `user` User, required
      - `username` string, required
      - `discriminator` string, required
      - `avatar` string
      - `accent_color` integer
      - `banner` string
      - `theme_colors` integer[]
      - `pronouns` string
      - `phone` string
      - `desktop` boolean, required
      - `mobile` boolean, required
      - `premium` boolean, required
      - `premium_type` integer, required
      - `bot` boolean, required
      - `bio` string, required
      - `system` boolean, required
      - `nsfw_allowed` boolean, required
      - `mfa_enabled` boolean, required
      - `webauthn_enabled` boolean, required
      - `totp_secret` string
      - `totp_last_ticket` string
      - `created_at` string, date-time, required
      - `premium_since` string, date-time, required
      - `verified` boolean, required
      - `disabled` boolean, required
      - `deleted` boolean, required
      - `email` string
      - `flags` integer, required
      - `public_flags` integer, required
      - `purchased_flags` integer, required
      - `premium_usage_flags` integer, required
      - `rights` string, required
      - `sessions` Session[], required
        - `session_id` string, required
        - `user_id` string, required
        - `user` User, required — recursive
        - `activities` Activity[], required
          - `name` string, required
          - `type` 0 | 1 | 2 | 4 | 5, required
          - `url` string
          - `created_at` integer
          - `timestamps` object
            - `start` integer, required
            - `end` integer, required
          - `application_id` string
          - `details` string
          - `state` string
          - `emoji` object
            - `name` string, required
            - `id` string
            - `animated` boolean, required
          - `party` object
            - `id` string
            - `size` integer[]
          - `assets` object
            - `large_image` string
            - `large_text` string
            - `small_image` string
            - `small_text` string
          - `secrets` object
            - `join` string
            - `spectate` string
            - `match` string
          - `instance` boolean
          - `flags` string, required
          - `id` string
          - `sync_id` string
          - `metadata` object
            - `button_urls` string[]
            - `context_uri` string
            - `album_id` string
            - `artist_ids` string[]
            - `type` 'episode' | 'track'
          - `session_id` string, required
        - `client_info` object, required
          - `platform` string
          - `os` string
          - `version` integer
          - `location` string
        - `client_status` ClientStatus, required
          - `desktop` string
          - `mobile` string
          - `web` string
          - `embedded` string
          - `vr` string
        - `status` 'dnd' | 'idle' | 'invisible' | 'offline' | 'online', required
        - `is_admin_session` boolean, required
        - `created_at` string, date-time, required
        - `last_seen` string, date-time
        - `last_seen_ip` string
        - `last_seen_location` string
        - `last_seen_location_info` ExtendedLocationInfo
          - `is_eu` boolean, required
          - `city` string, required
          - `region` string, required
          - `region_code` string, required
          - `country_name` string, required
          - `country_code` string, required
          - `continent_name` string, required
          - `continent_code` string, required
          - `latitude` integer, required
          - `longitude` integer, required
          - `postal` string, required
          - `calling_code` string, required
          - `flag` string, required
          - `emoji_flag` string, required
          - `emoji_unicode` string, required
        - `session_nickname` string
      - `relationships` Relationship[], required
        - `from_id` string, required
        - `from` User, required — recursive
        - `to_id` string, required
        - `to` User, required — recursive
        - `nickname` string
        - `type` 4 | 3 | 2 | 1, required
        - `id` string, required
      - `connected_accounts` ConnectedAccount[], required
        - `external_id` string, required
        - `user_id` string, required
        - `user` User, required — recursive
        - `friend_sync` boolean
        - `name` string, required
        - `revoked` boolean
        - `show_activity` integer
        - `type` string, required
        - `verified` boolean
        - `visibility` integer
        - `integrations` string[]
        - `metadata_` unknown
        - `metadata_visibility` integer
        - `two_way_link` boolean
        - `token_data` ConnectedAccountTokenData
          - `access_token` string, required
          - `token_type` string
          - `scope` string
          - `refresh_token` string
          - `expires_in` integer
          - `expires_at` integer
          - `fetched_at` integer, required
        - `id` string, required
      - `data` object, required
        - `valid_tokens_since` string, date-time, required
        - `hash` string
      - `fingerprints` string[], required
      - `settings` UserSettings
        - `index` string, required
        - `afk_timeout` integer, required
        - `allow_accessibility_detection` boolean, required
        - `animate_emoji` boolean, required
        - `animate_stickers` integer, required
        - `contact_sync_enabled` boolean, required
        - `convert_emoticons` boolean, required
        - `custom_status` CustomStatus, required
          - `emoji_id` string
          - `emoji_name` string
          - `expires_at` integer
          - `text` string
        - `default_guilds_restricted` boolean, required
        - `detect_platform_accounts` boolean, required
        - `developer_mode` boolean, required
        - `disable_games_tab` boolean, required
        - `enable_tts_command` boolean, required
        - `explicit_content_filter` integer, required
        - `friend_discovery_flags` integer, required
        - `friend_source_flags` FriendSourceFlags, required
          - `all` boolean, required
        - `gateway_connected` boolean, required
        - `gif_auto_play` boolean, required
        - `guild_folders` GuildFolder[], required
          - `color` integer, nullable
          - `guild_ids` string[], required
          - `id` integer, nullable
          - `name` string, nullable
        - `guild_positions` string[], required
        - `inline_attachment_media` boolean, required
        - `inline_embed_media` boolean, required
        - `locale` string, required
        - `message_display_compact` boolean, required
        - `native_phone_integration_enabled` boolean, required
        - `render_embeds` boolean, required
        - `render_reactions` boolean, required
        - `restricted_guilds` string[], required
        - `show_current_game` boolean, required
        - `status` 'dnd' | 'idle' | 'invisible' | 'offline' | 'online', required
        - `stream_notifications_enabled` boolean, required
        - `theme` 'dark' | 'light', required
        - `timezone_offset` integer, required
        - `view_nsfw_guilds` boolean, required
      - `security_keys` SecurityKey[], required
        - `user_id` string, required
        - `user` User, required — recursive
        - `key_id` string, required
        - `public_key` string, required
        - `counter` integer, required
        - `name` string, required
        - `id` string, required
      - `badge_ids` string[]
      - `avatar_decoration_data` AvatarDecorationData
        - `asset` string, required
        - `sku_id` string, required — A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z ``` If we have a snowflake '266241948824764416' we can represent it as binary: 64 22 17 12 0 000000111011000111100001101001000101000000 00001 00000 000000000000 number of ms since Discord epoch worker pid increment ```
        - `expires_at` string, nullable, required
      - `display_name_styles` DisplayNameStyle
        - `font_id` integer, required
        - `effect_id` integer, required
        - `colors` integer[], required
      - `collectibles` Collectibles
        - `nameplate` NameplateData, required
          - `asset` string, required
          - `sku_id` string, required — A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z ``` If we have a snowflake '266241948824764416' we can represent it as binary: 64 22 17 12 0 000000111011000111100001101001000101000000 00001 00000 000000000000 number of ms since Discord epoch worker pid increment ```
          - `label` string, required
          - `palette` string, required
          - `expires_at` integer, nullable, required
      - `primary_guild` PrimaryGuild
        - `identity_enabled` boolean, nullable, required
        - `identity_guild_id` string, nullable, required
        - `tag` string, nullable, required
        - `badge` string, nullable, required
      - `tag` string, required
      - `id` string, required
    - `code` string, required
    - `consumed` boolean, required
    - `expired` boolean, required
    - `id` string, required

## Other responses

- `400`
- `404`

---

[API](https://skmtc.net/spacebarchat/apis/spacebar-server.md) · [All operations](https://skmtc.net/spacebarchat/apis/spacebar-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/spacebarchat/spacebar-server/versions/034b4e879932/schema)
