VeriSwarm
About
DocsPricingAgent Skill
LoginRegister
  1. Home
  2. /Docs
  3. /Mfa
VeriSwarm
AboutTrust CenterDocsAPIInvestorsAgent SkillOATS SpecStatusChangelogBlogPricingTermsPrivacySLADPA

Getting Started

IntroductionQuickstartUser GuideIntegration GuideMFA Setup Guide

Platform

GateGuardPassportVaultCortexFleetWidget ChatPortable CredentialsScoring ProfilesBadge Embeds

Integration

Agent IntegrationsPython SDKNode.js SDKMCP ServerWebhook SecurityWebhook Management

Account

Team ManagementIP AllowlistCustom Domains

Agent Operations

Agent Manage Reference

Enterprise

SSO ConfigurationRate Limits

Technical Reference

API ReferenceArchitectureData Model

Legal

Terms of ServicePrivacy Policy

MFA Setup Guide

Multi-factor authentication (MFA) adds a second verification step to your VeriSwarm account. With MFA enabled, logging in requires both your password and a time-based one-time password (TOTP) from an authenticator app.


Why MFA Matters

Several VeriSwarm operations require MFA verification:

  • Webhook management -- creating, revoking, rotating secrets, retrying deliveries
  • IP allowlist changes -- modifying which IPs can access your API
  • Kill switch -- emergency-stopping an agent
  • Custom domain configuration -- setting or changing your custom domain
  • Workspace switching -- clears MFA state as a security boundary

Without MFA, these operations are blocked. Even if your password is compromised, MFA prevents an attacker from performing destructive actions.


Prerequisites

You need a TOTP authenticator app. Any app that supports the TOTP standard works:

  • 1Password -- built-in one-time password support
  • Google Authenticator -- free, available on iOS and Android
  • Authy -- supports cloud backup of TOTP secrets
  • Microsoft Authenticator -- works with personal accounts too
  • Bitwarden -- TOTP support in premium tier

Step 1: Initiate MFA Setup

Via the Dashboard

Navigate to Account > Settings > Security and click Enable MFA.

Via the API

curl -X POST https://veriswarm.ai/v1/public/accounts/mfa/setup \
  -H "x-account-access-token: YOUR_SESSION_TOKEN"

Response:

{
  "status": "mfa_secret_issued",
  "account_id": "usr_abc123",
  "mfa_enabled": false,
  "totp_secret": "JBSWY3DPEHPK3PXP",
  "otpauth_url": "otpauth://totp/VeriSwarm:you@example.com?secret=JBSWY3DPEHPK3PXP&issuer=VeriSwarm"
}

The totp_secret is only shown once during initial setup. If you call this endpoint again before enabling MFA, it returns the otpauth_url (for the QR code) but not the raw secret.


Step 2: Scan the QR Code

  1. Open your authenticator app.
  2. Tap the + or Add Account button.
  3. Select Scan QR Code (in the dashboard, a QR code is displayed).
  4. If scanning is not available, manually enter the totp_secret string into your authenticator app. Use "VeriSwarm" as the issuer and your email as the account name.

Your authenticator app will now show a 6-digit code that changes every 30 seconds.


Step 3: Verify and Enable

Enter the current 6-digit code from your authenticator app to confirm setup.

Via the Dashboard

Enter the code in the verification field and click Verify.

Via the API

curl -X POST https://veriswarm.ai/v1/public/accounts/mfa/enable \
  -H "x-account-access-token: YOUR_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "mfa_code": "123456"
  }'

Response (includes recovery codes -- save these immediately):

{
  "status": "enabled",
  "account_id": "usr_abc123",
  "mfa_enabled": true,
  "mfa_recovery_codes": [
    "abc12-def34",
    "ghi56-jkl78",
    "mno90-pqr12",
    "stu34-vwx56",
    "yza78-bcd90",
    "efg12-hij34",
    "klm56-nop78",
    "qrs90-tuv12",
    "wxy34-zab56",
    "cde78-fgh90"
  ]
}

Step 4: Save Your Recovery Codes

You receive 10 recovery codes when MFA is enabled. Each code can be used exactly once to log in if you lose access to your authenticator device.

Store these securely:

  • Save them in a password manager.
  • Print them and store in a safe location.
  • Do not store them in plain text on the same device as your authenticator app.

If you use all recovery codes or suspect they have been compromised, regenerate them (requires a valid MFA code):

curl -X POST https://veriswarm.ai/v1/public/accounts/mfa/recovery-codes/regenerate \
  -H "x-account-access-token: YOUR_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "mfa_code": "123456"
  }'

This invalidates all previous recovery codes and issues 10 new ones.


Using Recovery Codes

If you lose access to your authenticator device, use a recovery code in place of the MFA code during login. Each recovery code works exactly once -- after use, it is permanently consumed.

If you run out of recovery codes and cannot access your authenticator, contact your workspace owner or admin for assistance.


Disabling MFA

To disable MFA, you must provide your email, password, and either a valid MFA code or a recovery code. This prevents an attacker with only session access from disabling MFA.

curl -X POST https://veriswarm.ai/v1/public/accounts/mfa/disable \
  -H "x-account-access-token: YOUR_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "you@example.com",
    "password": "your-password",
    "mfa_code": "123456"
  }'

Or using a recovery code:

{
  "email": "you@example.com",
  "password": "your-password",
  "recovery_code": "abc12-def34"
}

After disabling, the MFA secret and all recovery codes are permanently deleted. You can re-enable MFA at any time by starting the setup flow again.


MFA and Workspace Switching

When you switch to a different workspace, your MFA verification is cleared for the current session. This is intentional -- each workspace is a separate security boundary. You will be prompted to re-verify MFA the next time you attempt a sensitive operation in the new workspace.


Best Practices

  • Enable MFA immediately after registration. Many VeriSwarm features require it.
  • Use a password manager with TOTP support. This keeps your MFA codes backed up alongside your passwords.
  • Regenerate recovery codes periodically. If you suspect any have been exposed, regenerate the full set.
  • Require MFA for your whole team. Check MFA status on the Team Management page.