FusionAuth developer image
FusionAuth developer logo
  • Back to site
  • Expert Advice
  • Blog
  • Developers
  • Downloads
  • Account
  • Contact sales
Navigate to...
  • Welcome
  • Getting Started
    • Getting Started
    • 5-minute Setup Guide
      • Overview
      • Docker
      • Fast Path
      • Sandbox
    • Setup Wizard & First Login
    • Register a User and Login
    • Self-service Registration
    • Start and Stop FusionAuth
    • Core Concepts
      • Overview
      • Users
      • Roles
      • Groups
      • Registrations
      • Applications
      • Tenants
      • Identity Providers
      • Authentication/Authorization
      • Integration Points
    • Example Apps
      • Overview
      • Dart
      • Go
      • Java
      • JavaScript
      • .NET Core
      • PHP
      • Python
      • Ruby
    • Tutorials
      • Overview
      • Java Spring
      • Python Django
  • Installation Guide
    • Overview
    • System Requirements
    • Server Layout
    • Cloud
    • Cluster
    • Docker
    • Fast Path
    • Kubernetes
      • Overview
      • Deployment Guide
      • Minikube Setup
      • Amazon EKS Setup
      • Google GKE Setup
      • Microsoft AKS Setup
    • Kickstart™
    • Homebrew
    • Marketplaces
    • Packages
    • Database
    • FusionAuth App
    • FusionAuth Search
    • Common Configuration
  • Migration Guide
    • Overview
    • General
    • Auth0
    • Keycloak
    • Amazon Cognito
    • Firebase
    • Microsoft Azure AD B2C
    • Tutorial
  • Admin Guide
    • Overview
    • Account Portal
    • Config Management
    • Editions and Features
    • Key Rotation
    • Licensing
    • Monitoring
    • Prometheus Setup
    • Proxy Setup
    • Reference
      • Overview
      • Configuration
      • CORS
      • Data Types
      • Hosted Login Pages Cookies
      • Known Limitations
      • Password Hashes
    • Releases
    • Roadmap
    • Search And FusionAuth
    • Securing
    • Switch Search Engines
    • Technical Support
    • Troubleshooting
    • Upgrading
    • WebAuthn
  • Login Methods
    • Identity Providers
      • Overview
      • Apple
      • Epic Games
      • External JWT
        • Overview
        • Example
      • Facebook
      • Google
      • HYPR
      • LinkedIn
      • Nintendo
      • OpenID Connect
        • Overview
        • Amazon Cognito
        • Azure AD
        • Discord
        • Github
        • Okta
      • Sony PlayStation Network
      • Steam
      • Twitch
      • Twitter
      • SAML v2
        • Overview
        • ADFS
        • Azure AD
        • Okta
      • SAML v2 IdP Initiated
        • Overview
        • Okta
      • Xbox
    • OIDC & OAuth 2.0
      • Overview
      • Endpoints
      • Tokens
      • OAuth Modes
      • URL Validation
    • Passwordless
      • Overview
      • Magic Links
      • WebAuthn & Passkeys
    • SAML v2 IdP
      • Overview
      • Google
      • PagerDuty
      • Tableau Cloud
      • Zendesk
  • Developer Guide
    • Overview
    • API Gateways
      • Overview
      • Amazon API Gateway
      • Kong Gateway
      • ngrok Cloud Edge
    • Client Libraries & SDKs
      • Overview
      • Dart
      • Go
      • Java
      • JavaScript
      • .NET Core
      • Node
      • OpenAPI
      • PHP
      • Python
      • React
      • Ruby
      • Typescript
    • Events & Webhooks
      • Overview
      • Writing a Webhook
      • Securing Webhooks
      • Events
        • Overview
        • Audit Log Create
        • Event Log Create
        • JWT Public Key Update
        • JWT Refresh
        • JWT Refresh Token Revoke
        • Kickstart Success
        • Group Create
        • Group Create Complete
        • Group Delete
        • Group Delete Complete
        • Group Update
        • Group Update Complete
        • Group Member Add
        • Group Member Add Complete
        • Group Member Remove
        • Group Member Remove Complete
        • Group Member Update
        • Group Member Update Complete
        • User Action
        • User Bulk Create
        • User Create
        • User Create Complete
        • User Deactivate
        • User Delete
        • User Delete Complete
        • User Email Update
        • User Email Verified
        • User IdP Link
        • User IdP Unlink
        • User Login Failed
        • User Login Id Dup. Create
        • User Login Id Dup. Update
        • User Login New Device
        • User Login Success
        • User Login Suspicious
        • User Password Breach
        • User Password Reset Send
        • User Password Reset Start
        • User Password Reset Success
        • User Password Update
        • User Reactivate
        • User Reg. Create
        • User Reg. Create Complete
        • User Reg. Delete
        • User Reg. Delete Complete
        • User Registration Update
        • User Reg. Update Complete
        • User Reg. Verified
        • User 2FA Method Add
        • User 2FA Method Remove
        • User Update
        • User Update Complete
    • Guides
      • Overview
      • Application Specific Email Templates
      • Authentication Tokens
      • Exposing A Local Instance
      • JSON Web Tokens
      • Key Master
      • Localization and Internationalization
      • Multi-Factor Authentication
      • Multi-Tenant
      • Passwordless
      • Registration-based Email Verification
      • Searching With Elasticsearch
      • Securing Your APIs
      • Silent Mode
      • Single Sign-on
      • Two Factor (pre 1.26)
    • Integrations
      • Overview
      • CleanSpeak
      • Kafka
      • Twilio
    • Plugins
      • Overview
      • Writing a Plugin
      • Custom Password Hashing
    • User Control & Gating
      • Overview
      • Gate Unverified Users
      • Gate Unverified Registrations
      • User Account Lockout
  • Customization
    • Email & Templates
      • Overview
      • Configure Email
      • Email Templates
      • Email Variables
      • Message Templates
    • Lambdas
      • Overview
      • Apple Reconcile
      • Client Cred. JWT Populate
      • Epic Games Reconcile
      • External JWT Reconcile
      • Facebook Reconcile
      • Google Reconcile
      • HYPR Reconcile
      • JWT Populate
      • LDAP Connector Reconcile
      • LinkedIn Reconcile
      • Nintendo Reconcile
      • OpenID Connect Reconcile
      • SAML v2 Populate
      • SAML v2 Reconcile
      • SCIM Group Req. Converter
      • SCIM Group Resp. Convtr.
      • SCIM User Req. Converter
      • SCIM User Resp. Converter
      • Self-Service Registration
      • Sony PSN Reconcile
      • Steam Reconcile
      • Twitch Reconcile
      • Twitter Reconcile
      • Xbox Reconcile
    • Messengers
      • Overview
      • Generic Messenger
      • Twilio Messenger
    • Themes
      • Overview
      • Examples
      • Helpers
      • Localization
      • Template Variables
      • Kickstart Custom Theme
  • Premium Features
    • Overview
    • Advanced Registration Forms
    • Advanced Threat Detection
    • Application Specific Themes
    • Breached Password Detection
    • Connectors
      • Overview
      • Generic Connector
      • LDAP Connector
      • FusionAuth Connector
    • Entity Management
    • SCIM
      • Overview
      • Azure AD Client
      • Okta Client
      • SCIM-SDK
    • Self Service Account Mgmt
      • Overview
      • Updating User Data & Password
      • Add Two-Factor Authenticator
      • Add Two-Factor Email
      • Add Two-Factor SMS
      • Add WebAuthn Passkey
      • Customizing
      • Troubleshooting
    • WebAuthn
  • APIs
    • Overview
    • Authentication
    • Errors
    • API Explorer
    • Actioning Users
    • API Keys
    • Applications
    • Audit Logs
    • Connectors
      • Overview
      • Generic
      • LDAP
    • Consents
    • Emails
    • Entity Management
      • Overview
      • Entities
      • Entity Types
      • Grants
    • Event Logs
    • Families
    • Forms
    • Form Fields
    • Groups
    • Identity Providers
      • Overview
      • Links
      • Apple
      • External JWT
      • Epic Games
      • Facebook
      • Google
      • HYPR
      • LinkedIn
      • Nintendo
      • OpenID Connect
      • SAML v2
      • SAML v2 IdP Initiated
      • Sony PlayStation Network
      • Steam
      • Twitch
      • Twitter
      • Xbox
    • Integrations
    • IP Access Control Lists
    • JWT
    • Keys
    • Lambdas
    • Login
    • Message Templates
    • Messengers
      • Overview
      • Generic
      • Twilio
    • Multi-Factor/Two Factor
    • Passwordless
    • Reactor
    • Registrations
    • Reports
    • SCIM
      • Overview
      • SCIM User
      • SCIM Group
      • SCIM EnterpriseUser
      • SCIM Service Provider Config.
    • System
    • Tenants
    • Themes
    • Users
    • User Actions
    • User Action Reasons
    • User Comments
    • WebAuthn
    • Webhooks
  • Release Notes

    Tenant APIs

    Overview

    A FusionAuth Tenant is a named object that represents a discrete namespace for Users, Applications and Groups. A user is unique by email address or username within a tenant.

    Tenants may be useful to support a multi-tenant application where you wish to use a single instance of FusionAuth but require the ability to have duplicate users across the tenants in your own application. In this scenario a user may exist multiple times with the same email address and different passwords across tenants.

    Tenants may also be useful in a test or staging environment to allow multiple users to call APIs and create and modify users without possibility of collision.

    The following APIs are provided to manage Tenants.

    • Create a Tenant

    • Retrieve a Tenant

    • Update a Tenant

    • Delete a Tenant

    The following APIs provide a subset of the Tenant configuration without an API Key.

    • Retrieve the Password Validation Rules

    Related Posts

    • How To Use FusionAuth's Multi-Tenant Feature To Create A Private Label Offering

    • Multi-tenancy in a Single-tenant Architecture

    Create a Tenant

    This API is used to create a new Tenant.

    Request

    Create a Tenant with a randomly generated Id

    URI

    POST /api/tenant

    Create a Tenant with the provided unique Id

    URI

    POST /api/tenant/{tenantId}

    Request Parameters

    tenantId [UUID] Optional defaults to secure random UUID

    The Id to use for the new Tenant. If not specified a secure random UUID will be generated.

    Request Body

    sourceTenantId [UUID] Optional Available since 1.14.0

    The optional Id of an existing Tenant to make a copy of. A unique tenant.name is required. All other values will be copied from the source Tenant to the new Tenant.

    tenant.accessControlConfiguration.uiIPAccessControlListId [UUID] Optional Available since 1.30.0

    The Id of the IP Access Control List limiting access to all applications in this tenant.

    Note: An Enterprise plan is required to utilize IP ACLs.

    tenant.captchaConfiguration.captchaMethod [String] Optional Available since 1.30.0

    The type of captcha method to use. This field is required when tenant.captchaConfiguration.enabled is set to true. The possible values are:

    • GoogleRecaptchaV2 - use Google Recaptcha v2

    • GoogleRecaptchaV3 - use Google Recaptcha v3

    • HCaptcha - use HCaptcha

    • HCaptchaEnterprise - use HCaptcha Enterprise - v25

    Note: An Enterprise plan is required to utilize CAPTCHA.

    tenant.captchaConfiguration.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether captcha configuration is enabled.

    Note: An Enterprise plan is required to utilize CAPTCHA.

    tenant.captchaConfiguration.secretKey [String] Optional Available since 1.30.0

    The secret key for this captcha method. This field is required when tenant.captchaConfiguration.enabled is set to true.

    Note: An Enterprise plan is required to utilize CAPTCHA.

    tenant.captchaConfiguration.siteKey [String] Optional Available since 1.30.0

    The site key for this captcha method. This field is required when tenant.captchaConfiguration.enabled is set to true.

    Note: An Enterprise plan is required to utilize CAPTCHA.

    tenant.captchaConfiguration.threshold [Float] Optional defaults to 0.5 Available since 1.30.0

    The numeric threshold which separates a passing score from a failing one. This value only applies if using either the Google v3 or HCaptcha Enterprise method, otherwise this value is ignored.

    The value must be between 0.0 and 1.0. Values outside of that range will result in an error.

    Note: An Enterprise plan is required to utilize CAPTCHA.

    tenant.connectorPolicies [Array] Optional Available since 1.18.0

    A list of Connector policies. Users will be authenticated against Connectors in order. Each Connector can be included in this list at most once and must exist.

    tenant.connectorPolicies[x].connectorId [UUID] Optional defaults to the FusionAuth connector Id of e3306678-a53a-4964-9040-1c96f36dda72 Available since 1.18.0

    The identifier of the Connector to which this policy refers.

    tenant.connectorPolicies[x].domains [Array<String>] Optional defaults to ["*"] Available since 1.18.0

    An list of email domains to which this connector should apply.

    A value of ["*"] indicates this connector applies to all users.

    tenant.connectorPolicies[x].migrate [Boolean] Optional defaults to false Available since 1.18.0

    If true, the user’s data will be migrated to FusionAuth at first successful authentication; subsequent authentications will occur against the FusionAuth datastore. If false, the Connector’s source will be treated as authoritative.

    Prior to version 1.28.0 this value was required.

    tenant.data [Object] Optional

    An object that can hold any information about the Tenant that should be persisted.

    tenant.emailConfiguration.additionalHeaders [Array<Object>] Optional Available since 1.32.0

    The additional SMTP headers to be added to each outgoing email. Each SMTP header consists of a name and a value.

    tenant.emailConfiguration.debug [Boolean] Optional defaults to false Available since 1.37.0

    Determines if debug should be enabled to create an event log to assist in debugging SMTP errors.

    tenant.emailConfiguration.defaultFromEmail [String] Optional defaults to change-me@fusionauth.io Available since 1.16.0

    The default email address that emails will be sent from when a from address is not provided on an individual email template. This is the address part email address (i.e. Jared Dunn <jared@piedpiper.com>).

    tenant.emailConfiguration.defaultFromName [String] Optional Available since 1.16.0

    The default From Name used in sending emails when a from name is not provided on an individual email template. This is the display name part of the email address ( i.e. Jared Dunn <jared@piedpiper.com>).

    tenant.emailConfiguration.emailUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their email address is updated.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.emailVerifiedEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template used to notify a user that their email address has been verified.

    tenant.emailConfiguration.forgotPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user is sent a forgot password email.

    tenant.emailConfiguration.host [String] Optional defaults to localhost Available since 1.8.0

    The host name of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenant.emailConfiguration.implicitEmailVerificationAllowed Optional defaults to true Available since 1.32.0

    When set to true, this allows email to be verified as a result of completing a similar email based workflow such as change password. When set to false, the user must explicitly complete the email verification workflow even if the user has already completed a similar email workflow such as change password.

    tenant.emailConfiguration.loginIdInUseOnCreateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.loginIdInUseOnUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to update an existing account to use their login Id.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.loginNewDeviceEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they log in on a new device.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.loginSuspiciousEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a suspicious login occurs.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.password [String] Optional Available since 1.8.0

    An optional password FusionAuth will use to authenticate with the SMTP server.

    tenant.emailConfiguration.passwordlessEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Passwordless Email Template, sent to users when they start a passwordless login.

    tenant.emailConfiguration.passwordResetSuccessEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password has been reset.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.passwordUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their password has been updated.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.port [Integer] Optional defaults to 25 Available since 1.8.0

    The port of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenant.emailConfiguration.properties [String] Optional Available since 1.8.0

    Additional Email Configuration in a properties file formatted String.

    tenant.emailConfiguration.security [String] Optional defaults to NONE Available since 1.8.0

    The type of security protocol FusionAuth will use when connecting to the SMTP server. The possible values are:

    • NONE - no security will be used. All communications will be sent plaintext.

    • SSL - SSL will be used to connect to the SMTP server. This protocol is not recommended unless it is the only one your SMTP server supports.

    • TLS - TLS will be used to connect to the SMTP server. This is the preferred protocol for all SMTP servers.

    tenant.emailConfiguration.setPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user had their account created for them and they must set their password manually and they are sent an email to set their password.

    tenant.emailConfiguration.twoFactorMethodAddEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been added to their account.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.twoFactorMethodRemoveEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been removed from their account.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.unverified.allowEmailChangeWhenGated [Boolean] Optional defaults to false Available since 1.27.0

    When this value is set to true, the user is allowed to change their email address when they are gated because they haven’t verified their email address.

    tenant.emailConfiguration.unverified.behavior [String] Optional defaults to Allow Available since 1.27.0

    The desired behavior during login for a user that does not have a verified email. The possible values are:

    • Allow - the user will be allowed to complete login.

    • Gated - verification is required before a user can complete login. The use of this value will require a paid edition of FusionAuth.

    tenant.emailConfiguration.username [String] Optional Available since 1.8.0

    An optional username FusionAuth will to authenticate with the SMTP server.

    tenant.emailConfiguration.verificationEmailTemplateId [UUID] Optional

    The Id of the Email Template used to send emails to users to verify that their email address is valid. If either the verifyEmail or verifyEmailWhenChanged fields are true, this field is required.

    tenant.emailConfiguration.verificationStrategy [String] Optional Available since 1.27.0

    The process by which the user will verify their email address. The possible values are:

    • ClickableLink - send the user a code with a clickable link.

    • FormField - send the user a short code intended to be manually entered into a form field. This is only available when tenant.emailConfiguration.unverified.behavior has the Gated value.

    tenant.emailConfiguration.verifyEmail [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the registers with your application.

    tenant.emailConfiguration.verifyEmailWhenChanged [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the user changes them.

    tenant.eventConfiguration.events [Object] Optional Available since 1.8.0

    A mapping of the configuration for each event type that FusionAuth sends. The event types that are the keys into this Object are:

    • audit-log.create - When an audit log is created Available since 1.30.0

    • event-log.create - When an event log is created Available since 1.30.0

    • jwt.public-key.update - When a JWT RSA Public / Private keypair may have been changed

    • jwt.refresh - When an access token is refreshed using a refresh token Available since 1.16.0

    • jwt.refresh-token.revoke - When a JWT Refresh Token is revoked

    • kickstart.success - When kickstart has successfully completed Available since 1.30.0

    • user.action - When a user action is triggered

    • user.bulk.create - When multiple users are created in bulk (i.e. during an import)

    • user.create - When a user is created

    • user.create.complete - When a user create transaction has completed Available since 1.30.0

    • user.deactivate - When a user is deactivated

    • user.delete - When a user is deleted

    • user.delete.complete - When a user delete transaction has completed Available since 1.30.0

    • user.email.update - When a user updates their email address Available since 1.30.0

    • user.email.verified - When a user verifies their email address Available since 1.8.0

    • user.identity-provider.link - When a link is created from a user to an Identity Provider Available since 1.36.0

    • user.identity-provider.unlink - When an existing Identity Provider link is removed from a User Available since 1.36.0

    • user.loginId.duplicate.create - When a request to create a user with a login Id (email or username) which is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.loginId.duplicate.update - When a request to update a user and change their login Id (email or username) to one that is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.failed - When a user fails a login request Available since 1.6.0

    • user.login.new-device - When a user begins a login request with a new device Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.success - When a user completes a login request Available since 1.6.0

    • user.login.suspicious - When a user logs in and is considered to be a potential threat (requires an activated Enterprise license) Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.breach - When Reactor detects a user is using a potentially breached password (requires an activated license) Available since 1.15.0

      Note: A paid plan is required to utilize this event.

    • user.password.reset.send - When a forgot password email has been sent to a user Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.start - When the process to reset a user password has started Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.success - When a user has successfully reset their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.update - When a user has updated their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.reactivate - When a user is reactivated

    • user.registration.create - When a user registration is created Available since 1.6.0

    • user.registration.create.complete - When a user registration create transaction has completed Available since 1.30.0

    • user.registration.delete - When a user registration is deleted Available since 1.6.0

    • user.registration.delete.complete - When a user registration delete transaction has completed Available since 1.30.0

    • user.registration.update - When a user registration is updated Available since 1.6.0

    • user.registration.update.complete - When a user registration update transaction has completed Available since 1.30.0

    • user.registration.verified - When a user completes registration verification Available since 1.8.0

    • user.two-factor.method.add - When a user has added a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.two-factor.method.remove - When a user has removed a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.update - When a user is updated

    • user.update.complete - When a user update transaction has completed Available since 1.30.0

    tenant.eventConfiguration.events[type].enabled [Boolean] Optional defaults to false Available since 1.8.0

    Whether or not FusionAuth should send these types of events to any configured Webhooks.

    tenant.eventConfiguration.events[type].transactionType [String] Optional defaults to None Available since 1.8.0

    The transaction type that FusionAuth uses when sending these types of events to any configured Webhooks. The transaction types are:

    • None - No Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • Any - Only a single Webhook is required to succeed for the FusionAuth transaction to be committed.

    • SimpleMajority - A simple majority (50% or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • SuperMajority - A super majority (2/3 or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • AbsoluteMajority - Every Webhook must succeed for the FusionAuth transaction to be committed.

    Prior to version 1.36.0, this value did not have a default. This meant at runtime the when the transaction type was calculated, it would be assumed to be AbsoluteMajority even though this value was not set in the domain.

    tenant.externalIdentifierConfiguration.authorizationGrantIdTimeToLiveInSeconds [Integer] Optional defaults to 30 Available since 1.8.0

    The time in seconds until a OAuth authorization code in no longer valid to be exchanged for an access token. This is essentially the time allowed between the start of an Authorization request during the Authorization code grant and when you request an access token using this authorization code on the Token endpoint.

    Value must be greater than 0 and less than or equal to 600.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.changePasswordIdGenerator.length [Integer] Optional defaults to 32 Available since 1.8.0

    The length of the secure generator used for generating the change password Id.

    If the changePasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the changePasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.changePasswordIdGenerator.type [String] Optional defaults to randomBytes Available since 1.8.0

    The type of the secure generator used for generating the change password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.changePasswordIdTimeToLiveInSeconds [Integer] Optional defaults to 600 Available since 1.8.0

    The time in seconds until a change password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.deviceCodeTimeToLiveInSeconds [Integer] Optional defaults to 300 Available since 1.11.0

    The time in seconds until a device code Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.deviceUserCodeIdGenerator.length [Integer] Optional defaults to 6 Available since 1.11.0

    The length of the secure generator used for generating the device code Id.

    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.deviceUserCodeIdGenerator.type [String] Optional defaults to randomAlphaNumeric Available since 1.11.0

    The type of the secure generator used for generating the device code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.emailVerificationIdGenerator.length [Integer] Optional defaults to 32 Available since 1.8.0

    The length of the secure generator used for generating the the email verification Id.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.emailVerificationIdGenerator.type [String] Optional defaults to randomBytes Available since 1.8.0

    The type of the secure generator used for generating the email verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.emailVerificationIdTimeToLiveInSeconds [Integer] Optional defaults to 86,400 Available since 1.8.0

    The time in seconds until a email verification Id is no longer valid and cannot be used by the Verify Email API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.length [Integer] Optional defaults to 6 Available since 1.27.0

    The length of the secure generator used for generating the email verification one time code.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.type [String] Optional defaults to randomAlphaNumeric Available since 1.27.0

    The type of the secure generator used for generating the email verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.externalAuthenticationIdTimeToLiveInSeconds [Integer] Optional defaults to 300 Available since 1.12.0

    The time in seconds until an external authentication Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.oneTimePasswordTimeToLiveInSeconds [Integer] Optional defaults to 60 Available since 1.8.0

    The time in seconds until a One Time Password is no longer valid and cannot be used by the Login API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.passwordlessLoginGenerator.length [Integer] Optional defaults to 32 Available since 1.8.0

    The length of the secure generator used for generating the passwordless login.

    If the passwordlessLoginGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the passwordlessLoginGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.passwordlessLoginGenerator.type [String] Optional defaults to randomBytes Available since 1.8.0

    The type of the secure generator used for generating the passwordless login. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.passwordlessLoginTimeToLiveInSeconds [Integer] Optional defaults to 180 Available since 1.8.0

    The time in seconds until a passwordless code is no longer valid and cannot be used by the Passwordless API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.pendingAccountLinkTimeToLiveInSeconds [Integer] Optional defaults to 3600 Available since 1.28.0

    The number of seconds before the pending account link identifier is no longer valid to complete an account link request. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.registrationVerificationIdGenerator.length [Integer] Optional defaults to 32 Available since 1.8.0

    The length of the secure generator used for generating the registration verification Id.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.registrationVerificationIdGenerator.type [String] Optional defaults to randomBytes Available since 1.8.0

    The type of the secure generator used for generating the registration verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.registrationVerificationIdTimeToLiveInSeconds [Integer] Optional defaults to 86,400 Available since 1.8.0

    The time in seconds until a registration verification Id is no longer valid and cannot be used by the Verify Registration API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.length [Integer] Optional defaults to 6 Available since 1.27.0

    The length of the secure generator used for generating the registration verification one time code.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.type [String] Optional defaults to randomAlphaNumeric Available since 1.27.0

    The type of the secure generator used for generating the registration verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

      Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.samlv2AuthNRequestIdTimeToLiveInSeconds [Integer] Optional defaults to 300 Available since 1.19.0

    The time in seconds that a SAML AuthN request Id returned by the Start SAML v2 Login Request API will be eligible to be used to complete a SAML v2 Login request.

    tenant.externalIdentifierConfiguration.setupPasswordIdGenerator.length [Integer] Optional defaults to 32 Available since 1.8.0

    The length of the secure generator used for generating the setup password Id.

    If the setupPasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the setupPasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.setupPasswordIdGenerator.type [String] Optional defaults to randomBytes Available since 1.8.0

    The type of the secure generator used for generating the setup password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.setupPasswordIdTimeToLiveInSeconds [Integer] Optional defaults to 86,400 Available since 1.8.0

    The time in seconds until a setup password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.trustTokenTimeToLiveInSeconds [Integer] Optional defaults to 180 Available since 1.33.0

    The number of seconds before the Trust Token is no longer valid to complete a request that requires trust. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorIdTimeToLiveInSeconds [Integer] Optional defaults to 300 Available since 1.8.0

    The time in seconds until a two factor Id is no longer valid and cannot be used by the Two Factor Login API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.length [Integer] Optional defaults to 6 Available since 1.27.0

    The length of the secure generator used for generating the the two factor code Id.

    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.type [String] Optional defaults to randomDigits Available since 1.27.0

    The type of the secure generator used for generating the two factor one time code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdTimeToLiveInSeconds [Integer] Optional defaults to 60 Available since 1.26.0

    The number of seconds before the Two-Factor One Time Code used to enable or disable a two-factor method is no longer valid. Must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.twoFactorTrustIdTimeToLiveInSeconds [Integer] Optional defaults to 2,592,000 Available since 1.8.0

    The time in seconds until an issued Two Factor trust Id is no longer valid and the User will be required to complete Two Factor authentication during the next authentication attempt. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.webAuthnAuthenticationChallengeTimeToLiveInSeconds [Integer] Optional defaults to 180 Available since 1.41.0

    The time in seconds until a WebAuthn authentication challenge is no longer valid and the User will be required to restart the WebAuthn authentication ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.get API call. Value must be greater than 0.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.externalIdentifierConfiguration.webAuthnRegistrationChallengeTimeToLiveInSeconds [Integer] Optional defaults to 180 Available since 1.41.0

    The time in seconds until a WebAuthn registration challenge is no longer valid and the User will be required to restart the WebAuthn registration ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.create API call. Value must be greater than 0.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.failedAuthenticationConfiguration.actionCancelPolicy.onPasswordReset [Boolean] Optional defaults to false Available since 1.42.0

    Indicates whether you want the user to be able to self-service unlock their account prior to the action duration by completing a password reset workflow.

    tenant.failedAuthenticationConfiguration.actionDuration [Long] Optional defaults to 3 Available since 1.8.0

    The duration of the User Action. This value along with the actionDurationUnit will be used to set the duration of the User Action. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.actionDurationUnit [String] Optional defaults to "MINUTES" Available since 1.8.0

    The unit of time associated with a duration. The possible values are:

    • MINUTES

    • HOURS

    • DAYS

    • WEEKS

    • MONTHS

    • YEARS

    tenant.failedAuthenticationConfiguration.emailUser [String] Optional defaults to false Available since 1.42.0

    Indicates you would like to email the user when the user’s account is locked due to this action being taken. This requires the User Action specified by the tenant.failedAuthenticationConfiguration.userActionId to also be configured for email. If the User Action is not configured to be able to email the user, this configuration will be ignored. See userEmailingEnabled on the User Action.

    The email template configuration will be in the User Action.

    tenant.failedAuthenticationConfiguration.resetCountInSeconds [Integer] Optional defaults to 60 Available since 1.8.0

    The length of time in seconds before the failed authentication count will be reset. Value must be greater than 0.

    For example, if tooManyAttempts is set to 5 and you fail to authenticate 4 times in a row, waiting for the duration specified here will cause your fifth attempt to start back at 1.

    tenant.failedAuthenticationConfiguration.tooManyAttempts [Integer] Optional defaults to 5 Available since 1.8.0

    The number of failed attempts considered to be too many. Once this threshold is reached the specified User Action will be applied to the user for the duration specified. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.userActionId [UUID] Optional Available since 1.8.0

    The Id of the User Action that is applied when the threshold is reached for too many failed authentication attempts.

    tenant.familyConfiguration.allowChildRegistrations [Boolean] Optional defaults to true Available since 1.8.0

    Whether to allow child registrations.

    tenant.familyConfiguration.confirmChildEmailTemplateId [UUID] Optional Available since 1.8.0

    The unique Id of the email template to use when confirming a child.

    tenant.familyConfiguration.deleteOrphanedAccounts [Boolean] Optional defaults to false Available since 1.8.0

    Indicates that child users without parental verification will be permanently deleted after tenant.familyConfiguration.deleteOrphanedAccountsDays days.

    tenant.familyConfiguration.deleteOrphanedAccountsDays [Integer] Optional defaults to 30 Available since 1.8.0

    The number of days from creation child users will be retained before being deleted for not completing parental verification. Value must be greater than 0.

    tenant.familyConfiguration.enabled [Boolean] Optional defaults to false Available since 1.8.0

    Whether family configuration is enabled.

    tenant.familyConfiguration.familyRequestEmailTemplateId [UUID] Optional Available since 1.8.0

    The unique Id of the email template to use when a family request is made.

    tenant.familyConfiguration.maximumChildAge [Integer] Optional defaults to 12 Available since 1.8.0

    The maximum age of a child. Value must be greater than 0.

    tenant.familyConfiguration.minimumOwnerAge [Integer] Optional defaults to 21 Available since 1.8.0

    The minimum age to be an owner. Value must be greater than 0.

    tenant.familyConfiguration.parentEmailRequired [Boolean] Optional defaults to false Available since 1.8.0

    Whether a parent email is required.

    tenant.familyConfiguration.parentRegistrationEmailTemplateId [UUID] Optional Available since 1.8.0

    The unique Id of the email template to use for parent registration.

    tenant.formConfiguration.adminUserFormId [UUID] Optional defaults to [see description] Available since 1.20.0

    The unique Id of the form to use for the Add and Edit User form when used in the FusionAuth admin UI.

    When this parameter is not provided, it will default to the form Id currently assigned to the Default tenant.

    Note: A paid plan is required to utilize custom forms.

    tenant.httpSessionMaxInactiveInterval [Integer] Optional defaults to 3600 Available since 1.8.0

    Time in seconds until an inactive session will be invalidated. Used when creating a new session in the FusionAuth OAuth frontend.

    tenant.issuer [String] Optional defaults to fusionauth.io Available since 1.8.0

    The named issuer used to sign tokens, this is generally your public fully qualified domain.

    Prior to version 1.30.0 this value was required.

    tenant.jwtConfiguration.accessTokenKeyId [UUID] Optional defaults to key value of the FusionAuth application Available since 1.8.0

    The unique id of the signing key used to sign the access token.

    Prior to version 1.30.0 this value was required.

    tenant.jwtConfiguration.idTokenKeyId [UUID] Optional defaults to key value of the FusionAuth application Available since 1.8.0

    The unique id of the signing key used to sign the Id token.

    Prior to version 1.30.0 this value was required.

    tenant.jwtConfiguration.refreshTokenExpirationPolicy [String] Optional defaults to Fixed Available since 1.17.0

    The refresh token expiration policy. The following are valid values:

    • Fixed - the expiration is calculated from the time the token is issued.

    • SlidingWindow - the expiration is calculated from the last time the token was used.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onLoginPrevented [Boolean] Optional defaults to true Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user action, such as locking an account based on a number of failed login attempts, prevents user login.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onMultiFactorEnable [Boolean] Optional defaults to false Available since 1.42.0

    When enabled, all refresh tokens will be revoked when a user enables multi-factor authentication for the first time. This policy will not be applied when adding subsequent multi-factor methods to the user.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onPasswordChanged [Boolean] Optional defaults to true Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user changes their password.

    tenant.jwtConfiguration.refreshTokenTimeToLiveInMinutes [Integer] Optional defaults to 43,200 Available since 1.8.0

    The length of time in minutes a Refresh Token is valid from the time it was issued. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.jwtConfiguration.refreshTokenUsagePolicy [String] Optional defaults to Reusable Available since 1.17.0

    The refresh token usage policy. The following are valid values:

    • Reusable - the token does not change after it was issued.

    • OneTimeUse - the token value will be changed each time the token is used to refresh a JWT. The client must store the new value after each usage.

    Prior to version 1.28.0 this value was required.

    tenant.jwtConfiguration.timeToLiveInSeconds [Integer] Optional defaults to 3,600 Available since 1.8.0

    The length of time in seconds this JWT is valid from the time it was issued. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.lambdaConfiguration.scimEnterpriseUserRequestConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM Enterprise User request to a FusionAuth User.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.lambdaConfiguration.scimEnterpriseUserResponseConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth Enterprise User to a SCIM Server response.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.lambdaConfiguration.scimGroupRequestConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM Group Request Lambda that will be used to convert the SCIM Group request to a FusionAuth Group.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.lambdaConfiguration.scimGroupResponseConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM Group Response Lambda that will be used to convert a FusionAuth Group to a SCIM Server response.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.lambdaConfiguration.scimUserRequestConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM User request to a FusionAuth User.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.lambdaConfiguration.scimUserResponseConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth User to a SCIM Server response.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.logoutURL [String] Optional Available since 1.8.0

    The logout redirect URL when sending the user’s browser to the /oauth2/logout URI of the FusionAuth Front End. This value is only used when a logout URL is not defined in your Application.

    tenant.loginConfiguration.requireAuthentication [Boolean] Optional defaults to true Available since 1.26.0

    Indicates whether to require an API key for the Login API when an applicationId is not provided. When an applicationId is provided to the Login API call, the application configuration will take precedence.

    In almost all cases, you will want to this to be true.

    tenant.logoutURL [String] Optional Available since 1.8.0

    The logout redirect URL when sending the user’s browser to the /oauth2/logout URI of the FusionAuth Front End. This value is only used when a logout URL is not defined in your Application.

    tenant.maximumPasswordAge.days [Integer] Optional defaults to 180 Available since 1.8.0

    The password maximum age in days. The number of days after which FusionAuth will require a user to change their password. Required when tenant.maximumPasswordAge.enabled is set to true.

    tenant.maximumPasswordAge.enabled [Boolean] Optional defaults to false Available since 1.8.0

    Indicates that the maximum password age is enabled and being enforced.

    tenant.minimumPasswordAge.seconds [Integer] Optional defaults to 30 Available since 1.8.0

    The password minimum age in seconds. When enabled FusionAuth will not allow a password to be changed until it reaches this minimum age. Required when tenant.minimumPasswordAge.enabled is set to true.

    tenant.minimumPasswordAge.enabled [Boolean] Optional defaults to false Available since 1.8.0

    Indicates that the minimum password age is enabled and being enforced.

    tenant.multiFactorConfiguration.authenticator.enabled [Boolean] Optional defaults to true Available since 1.26.0

    When enabled, users may utilize an authenticator application to complete a multi-factor authentication request. This method uses TOTP (Time-Based One-Time Password) as defined in RFC 6238 and often uses an native mobile app such as Google Authenticator.

    tenant.multiFactorConfiguration.email.enabled [Boolean] Optional defaults to false Available since 1.26.0

    When enabled, users may utilize an email address to complete a multi-factor authentication request.

    tenant.multiFactorConfiguration.email.templateId [UUID] Optional Available since 1.26.0

    The Id of the email template that is used when notifying a user to complete a multi-factor authentication request. This field is required when tenant.multiFactorConfiguration.email.enabled is set to true.

    tenant.multiFactorConfiguration.loginPolicy [String] Optional Defaults to Enabled Available since 1.37.0

    When set to Enabled and a user has one or more two-factor methods configured, the user will be required to complete a two-factor challenge during login. When set to Disabled, even when a user has configured one or more two-factor methods, the user will not be required to complete a two-factor challenge during login. When set to Required, a two-factor challenge will be required during login. If a user has not configured any two-factor methods, they will not be able to log in.

    This value may be overridden by the value configured by the application.multiFactorConfiguration.loginPolicy.

    Supported values include:

    • Enabled - Require a two-factor challenge during login when an eligible method is available.

    • Disabled - Do not require a two-factor challenge during login.

    • Required - Require a two-factor challenge during login. A user will be required to configure 2FA if no eligible methods are available. Available since 1.42.0

    tenant.multiFactorConfiguration.sms.enabled [Boolean] Optional defaults to false Available since 1.26.0

    When enabled, users may utilize a mobile phone number to complete a multi-factor authentication request.

    tenant.multiFactorConfiguration.sms.messengerId [UUID] Optional Available since 1.26.0

    The messenger that is used to deliver a SMS multi-factor authentication request. This field is required when tenant.multiFactorConfiguration.sms.enabled is set to true.

    tenant.multiFactorConfiguration.sms.templateId [UUID] Optional Available since 1.26.0

    The Id of the SMS template that is used when notifying a user to complete a multi-factor authentication request. This field is required when tenant.multiFactorConfiguration.sms.enabled is set to true.

    tenant.name [String] Required

    The unique name of the Tenant.

    tenant.oauthConfiguration.clientCredentialsAccessTokenPopulateLambdaId [UUID] Optional Available since 1.26.0

    The Id of a lambda that will be called to populate the JWT during a client credentials grant.

    Note: A paid plan is required to utilize client credentials grant.

    tenant.passwordEncryptionConfiguration.encryptionScheme [String] Optional defaults to "salted-pbkdf2-hmac-sha256" Available since 1.8.0

    The default method for encrypting the User’s password. The following encryptors are provided with FusionAuth:

    • salted-md5

    • salted-sha256

    • salted-hmac-sha256

    • salted-pbkdf2-hmac-sha256

    • salted-pbkdf2-hmac-sha256-512   Available since 1.34.0

    • bcrypt

    tenant.passwordEncryptionConfiguration.encryptionSchemeFactor [Integer] Optional defaults to 24000 Available since 1.8.0

    The factor used by the password encryption scheme. If not provided, the PasswordEncryptor provides a default value. Generally this will be used as an iteration count to generate the hash. The actual use of this value is up to the PasswordEncryptor implementation.

    tenant.passwordEncryptionConfiguration.modifyEncryptionSchemeOnLogin [Boolean] Optional defaults to false Available since 1.8.0

    When enabled a user’s hash configuration will be modified to match these configured settings. This can be useful to increase a password hash strength over time or upgrade imported users to a more secure encryption scheme after an initial import.

    Beginning in version 1.42.0 when this configuration is enabled, in addition to re-hashing on login, the password will be re-hashed on password change as well.

    tenant.passwordValidationRules.breachDetection.enabled [Boolean] Optional defaults to false Available since 1.15.0

    Whether to enable Reactor breach detection. Requires an activated license.

    tenant.passwordValidationRules.breachDetection.matchMode [String] Optional Available since 1.15.0

    The level of severity where Reactor will consider a breach. The following are valid values:

    • High Only requires a password match, this is the most secure and is recommended

    • Medium Exact match on username, email address or email sub-address

    • Low Exact match on an email or username, or the password is a common breached value

    tenant.passwordValidationRules.breachDetection.notifyUserEmailTemplateId [UUID] Optional Available since 1.15.0

    The Id of the email template to use when notifying user of breached password. Required if tenant.passwordValidationRules.breachDetection.onLogin is set to NotifyUser.

    tenant.passwordValidationRules.breachDetection.onLogin [String] Optional Available since 1.15.0

    The behavior when detecting breaches at time of user login. The following are valid values:

    • Off Do not perform breach detection at login

    • RecordOnly Only record the result, take no action

    • NotifyUser Notify the end user via email

    • RequireChange Require immediate password change

    tenant.passwordValidationRules.maxLength [Integer] Optional defaults to 256 Available since 1.8.0

    The maximum length of a password when a new user is created or a user requests a password change.

    tenant.passwordValidationRules.minLength [Integer] Optional defaults to 8 Available since 1.8.0

    The minimum length of a password when a new user is created or a user requests a password change.

    tenant.passwordValidationRules.rememberPreviousPasswords.count [Integer] Optional Available since 1.8.0

    The number of previous passwords to remember. Value must be greater than 0.

    tenant.passwordValidationRules.rememberPreviousPasswords.enabled [Boolean] Optional defaults to false Available since 1.8.0

    Whether to prevent a user from using any of their previous passwords.

    tenant.passwordValidationRules.requireMixedCase [Boolean] Optional defaults to false Available since 1.8.0

    Whether to force the user to use at least one uppercase and one lowercase character.

    tenant.passwordValidationRules.requireNonAlpha [Boolean] Optional defaults to false Available since 1.8.0

    Whether to force the user to use at least one non-alphanumeric character.

    tenant.passwordValidationRules.requireNumber [Boolean] Optional defaults to false Available since 1.8.0

    Whether to force the user to use at least one number.

    tenant.passwordValidationRules.validateOnLogin [Boolean] Optional defaults to false Available since 1.15.0

    When enabled the user’s password will be validated during login. If the password does not meet the currently configured validation rules the user will be required to change their password.

    tenant.rateLimitConfiguration.failedLogin.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for failed login.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.failedLogin.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can fail to login within the configured timePeriodInSeconds duration. If a Failed authentication action has been configured then it will take precedence.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.failedLogin.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can fail login before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.forgotPassword.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for forgot password.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.forgotPassword.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can request a forgot password email within the configured timePeriodInSeconds duration.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.forgotPassword.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can request a forgot password email before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendEmailVerification.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for send email verification.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendEmailVerification.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can request a verification email within the configured timePeriodInSeconds duration.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendEmailVerification.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can request a verification email before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendPasswordless.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for send passwordless.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendPasswordless.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can request a passwordless login email within the configured timePeriodInSeconds duration.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendPasswordless.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can request a passwordless login email before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendRegistrationVerification.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for send registration verification.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendRegistrationVerification.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can request a registration verification email within the configured timePeriodInSeconds duration.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendRegistrationVerification.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can request a registration verification email before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendTwoFactor.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for send two factor.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendTwoFactor.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can request a two-factor code by email or SMS within the configured timePeriodInSeconds duration.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendTwoFactor.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can request a two-factor code by email or SMS before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.registrationConfiguration.blockedDomains [Array<String>] Optional Available since 1.30.0

    A list of unique domains that are not allowed to register when self service is enabled.

    Note: An Enterprise plan is required to utilize blocked domains.

    tenant.scimServerConfiguration.clientEntityTypeId [UUID] Optional Available since 1.36.0

    The Entity Type that will be used to represent SCIM Clients for this tenant.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.scimServerConfiguration.enabled [Boolean] Optional Available since 1.36.0

    Whether or not this tenant has the SCIM endpoints enabled.

    Note: An Enterprise plan is required to utilize SCIM.

    tenant.scimServerConfiguration.schemas [Map] Optional defaults to [see description] Available since 1.36.0

    JSON formatted as a SCIM Schemas endpoint response. Because the SCIM lambdas may modify the JSON response, ensure the Schema’s response matches that generated by the response lambdas. More about Schema definitions.

    When this parameter is not provided, it will default to EnterpriseUser, Group, and User schema definitions as defined by the SCIM core schemas spec.

    Note: An Enterprise plan is required to utilize SCIM.

    tenant.scimServerConfiguration.serverEntityTypeId [UUID] Optional Available since 1.36.0

    The Entity Type that will be used to represent SCIM Servers for this tenant.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.ssoConfiguration.deviceTrustTimeToLiveInSeconds [Integer] Optional defaults to 31,536,000 (1 year) Available since 1.30.2

    The number of seconds before a trusted device is reset. When reset, a user is forced to complete captcha during login and complete two factor authentication if applicable.

    tenant.themeId [UUID] Optional defaults to the default tenant theme Id of 75a068fd-e94b-451a-9aeb-3ddb9a3b5987 Available since 1.8.0

    The unique Id of the theme to be used to style the login page and other end user templates.

    Prior to version 1.30.0 this value was required.

    tenant.userDeletePolicy.unverified.enabled [Boolean] Optional defaults to false Available since 1.13.0

    Indicates that users without a verified email address will be permanently deleted after tenant.userDeletePolicy.unverified.numberOfDaysToRetain days.

    tenant.userDeletePolicy.unverified.numberOfDaysToRetain [Integer] Optional Available since 1.13.0

    The number of days from creation users will be retained before being deleted for not completing email verification. This field is required when tenant.userDeletePolicy.unverified.enabled is set to true. Value must be greater than 0.

    tenant.usernameConfiguration.unique.enabled [Boolean] Optional defaults to false Available since 1.27.0

    When true, FusionAuth will handle username collisions by generating a random suffix.

    Note: A paid plan is required to utilize unique usernames.

    tenant.usernameConfiguration.unique.numberOfDigits [Integer] Optional defaults to 5 Available since 1.27.0

    The maximum number of digits to use when building a unique suffix for a username. A number will be randomly selected and will be 1 or more digits up to this configured value in length. For example, if this value is 5, the suffix will be a number between 00001 and 99999, inclusive. The value of this field must be greater than or equal to 3 and less than or equal to 10.

    tenant.usernameConfiguration.unique.separator [String] Optional defaults to the # character Available since 1.27.0

    A single character to use as a separator from the requested username and a unique suffix that is added when a duplicate username is detected. This value can be a single non-alphanumeric ASCII character.

    tenant.usernameConfiguration.unique.strategy [String] Optional defaults to OnCollision Available since 1.29.0

    This strategy instructions FusionAuth when to append a unique suffix to the username. The possible values are:

    • Always - Always append a unique suffix even when the requested username is not in use.

    • OnCollision - Only append a unique suffix when the requested username is in use.

    tenant.webAuthnConfiguration.bootstrapWorkflow.authenticatorAttachmentPreference [String] Optional defaults to crossPlatform Available since 1.41.0

    Determines the authenticator attachment requirement for WebAuthn passkey registration when using the bootstrap workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    The recommended value for the bootstrap workflow is any.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    Note: An Enterprise plan is required to utilize WebAuthn cross-platform authenticators.

    tenant.webAuthnConfiguration.bootstrapWorkflow.enabled [Boolean] Optional defaults to false Available since 1.41.0

    Whether or not this tenant has the WebAuthn bootstrap workflow enabled. The bootstrap workflow is used when the user must "bootstrap" the authentication process by identifying themselves prior to the WebAuthn ceremony and can be used to authenticate from a new device using WebAuthn.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.bootstrapWorkflow.userVerificationRequirement [String] Optional defaults to required Available since 1.41.0

    Determines the user verification requirement for WebAuthn passkey registration and authentication when using the bootstrap workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    It is highly recommended to use the required option for the bootstrap workflow.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.debug [Boolean] Optional defaults to false Available since 1.41.0

    Determines if debug should be enabled for this tenant to create an event log to assist in debugging WebAuthn errors.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.enabled [Boolean] Optional defaults to false Available since 1.41.0

    Whether or not this tenant has WebAuthn enabled globally.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.authenticatorAttachmentPreference [String] Optional defaults to crossPlatform Available since 1.41.0

    Determines the authenticator attachment requirement for WebAuthn passkey registration when using the reauthentication workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    The recommended value for the reauthentication workflow is platform.

    Note: A paid plan is required to utilize unique usernames.

    Note: An Enterprise plan is required to utilize WebAuthn cross-platform authenticators.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.enabled [Boolean] Optional defaults to false Available since 1.41.0

    Whether or not this tenant has the WebAuthn reauthentication workflow enabled. The reauthentication workflow will automatically prompt a user to authenticate using WebAuthn for repeated logins from the same device.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.userVerificationRequirement [String] Optional defaults to required Available since 1.41.0

    Determines the user verification requirement for WebAuthn passkey registration and authentication when using the reauthentication workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    It is highly recommended to use the required option for the reauthentication workflow.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.relyingPartyId [String] Optional defaults to [see description] Available since 1.41.0

    The value this tenant will use for the Relying Party Id in WebAuthn ceremonies. Passkeys can only be used to authenticate on sites using the same Relying Party Id they were registered with. This value must match the browser origin or be a registrable domain suffix of the browser origin. For example, if your domain is auth.piedpiper.com, you could use auth.piedpiper.com or piedpiper.com but not m.auth.piedpiper.com or com.

    When this parameter is omitted, FusionAuth will use null for the Relying Party Id in passkey creation and request options. A null value in the WebAuthn JavaScript API will use the browser origin.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.relyingPartyName [String] Optional defaults to [see description] Available since 1.41.0

    The value this tenant will use for the Relying Party name in WebAuthn ceremonies. This value may be displayed by browser or operating system dialogs during WebAuthn ceremonies.

    When this parameter is omitted, FusionAuth will use the tenant.issuer value.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    webhookIds [Array<UUID>] Optional Available since 1.37.0

    An array of Webhook Ids. For Webhooks that are not already configured for All Tenants, specifying an Id on this request will indicate the associated Webhook should handle events for this tenant.

    Example Request JSON
    
    {
      "tenant": {
        "accessControlConfiguration": {
          "uiIPAccessControlListId": "11d49de7-69f6-46fc-8270-0b3aa626327a"
        },
        "captchaConfiguration": {
          "captchaMethod": "GoogleRecaptchaV3",
          "enabled": true,
          "secretKey": "6LdYWpMbAAAAAKhcksgk70us00012r66r96tt7rp",
          "siteKey": "6LdYWpMbAAAAAKhcksgk75tz00022r66ombcfadr",
          "threshold": 0.5
        },
        "connectorPolicies": [
          {
            "connectorId": "e3306678-a53a-4964-9040-1c96f36dda72",
            "domains": [
              "*"
            ],
            "migrate": false
          },
          {
            "connectorId": "27f22280-7e55-4d1c-b9f8-239bf9cc1a5e",
            "domains": [
              "*"
            ],
            "migrate": true
          }
        ],
        "data": {
          "description": "No more secrets, Marty."
        },
        "emailConfiguration": {
          "additionalHeaders": [
            {
              "name": "X-SES-CONFIGURATION-SET",
              "value": "example_configuration_set_name"
            }
          ],
          "defaultFromEmail": "jared@piedpiper.com",
          "defaultFromName": "Jared Dunn",
          "emailUpdateEmailTemplateId": "ec3045c7-97d8-47f8-8725-61b93deacf5d",
          "emailVerifiedEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
          "forgotPasswordEmailTemplateId": "49aba1de-0225-45d7-a2b1-f9fe46b0242c",
          "host": "smtp.sendgrid.net",
          "implicitEmailVerificationAllowed": true,
          "loginIdInUseOnCreateEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginIdInUseOnUpdateEmailTemplateId": "2c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginNewDeviceEmailTemplateId": "3c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginSuspiciousEmailTemplateId": "4c3045c7-97d8-47f8-8725-61b93deacf5d",
          "password": "password",
          "passwordlessEmailTemplateId": "a917e23a-da58-4cda-be01-90f542f8c343",
          "passwordResetSuccessEmailTemplateId": "5c3045c7-97d8-47f8-8725-61b93deacf5d",
          "passwordUpdateEmailTemplateId": "6c3045c7-97d8-47f8-8725-61b93deacf5d",
          "port": 587,
          "properties": {
            "key": "value"
          },
          "security": "TLS",
          "setPasswordEmailTemplateId": "a9aba13e-0125-4fd7-a2b1-aaa146b02423",
          "twoFactorMethodAddEmailTemplateId": "7c3045c7-97d8-47f8-8725-61b93deacf5d",
          "twoFactorMethodRemoveEmailTemplateId": "8c3045c7-97d8-47f8-8725-61b93deacf5d",
          "unverified": {
            "allowEmailChangeWhenGated": false,
            "behavior": "Allow"
          },
          "username": "username",
          "verificationEmailTemplateId": "8da42c09-461c-45f3-b931-6e9f63b87ab5",
          "verificationStrategy": "FormField",
          "verifyEmail": true,
          "verifyEmailWhenChanged": true
        },
        "eventConfiguration": {
          "events": {
            "user.delete": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.deactivate": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.bulk.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.reactivate": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.refresh": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.refresh-token.revoke": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.public-key.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.login.success": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.login.failed": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.password.breach": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.delete": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.verified": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.email.verified": {
              "enabled": true,
              "transactionType": "None"
            }
          }
        },
        "externalIdentifierConfiguration": {
          "authorizationGrantIdTimeToLiveInSeconds": 30,
          "changePasswordIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "changePasswordIdTimeToLiveInSeconds": 600,
          "deviceCodeTimeToLiveInSeconds": 1800,
          "deviceUserCodeIdGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "emailVerificationIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "emailVerificationIdTimeToLiveInSeconds": 86400,
          "emailVerificationOneTimeCodeGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "externalAuthenticationIdTimeToLiveInSeconds": 300,
          "oneTimePasswordTimeToLiveInSeconds": 60,
          "passwordlessLoginGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "passwordlessLoginTimeToLiveInSeconds": 180,
          "pendingAccountLinkTimeToLiveInSeconds": 3600,
          "registrationVerificationIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "registrationVerificationIdTimeToLiveInSeconds": 86400,
          "registrationVerificationOneTimeCodeGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "samlv2AuthNRequestIdTimeToLiveInSeconds": 300,
          "setupPasswordIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "setupPasswordIdTimeToLiveInSeconds": 86400,
          "trustTokenTimeToLiveInSeconds": 180,
          "twoFactorIdTimeToLiveInSeconds": 300,
          "twoFactorOneTimeCodeIdGenerator": {
            "length": 6,
            "type": "randomDigits"
          },
          "twoFactorOneTimeCodeIdTimeToLiveInSeconds": 60,
          "twoFactorTrustIdTimeToLiveInSeconds": 2592000,
          "webAuthnAuthenticationChallengeTimeToLiveInSeconds": 180,
          "webAuthnRegistrationChallengeTimeToLiveInSeconds": 180
        },
        "failedAuthenticationConfiguration": {
          "actionCancelPolicy": {
            "onPasswordReset": false
          },
          "actionDuration": 3,
          "actionDurationUnit": "MINUTES",
          "emailUser": false,
          "resetCountInSeconds": 60,
          "tooManyAttempts": 5,
          "userActionId": "16cfc707-268c-4c5b-8989-f71f3ee156d4"
        },
        "familyConfiguration": {
          "allowChildRegistrations": true,
          "confirmChildEmailTemplateId": "87654321-4321-8765-ba09-ba0987654321",
          "deleteOrphanedAccounts": false,
          "deleteOrphanedAccountsDays": 30,
          "enabled": true,
          "familyRequestEmailTemplateId": "57462514-a73b-cd76-0001-b8a65cd61230",
          "maximumChildAge": 12,
          "minimumOwnerAge": 21,
          "parentEmailRequired": false,
          "parentRegistrationEmailTemplateId": "12345678-1234-5678-90ab-1234567890ab"
        },
        "formConfiguration": {
          "adminUserFormId": "e92751a5-25f4-4bca-ad91-66cdf67725d2"
        },
        "httpSessionMaxInactiveInterval": 3600,
        "issuer": "https://example.com",
        "jwtConfiguration": {
          "accessTokenKeyId": "025233ca-d4f3-2aa4-eca9-7e4200e9b472",
          "enabled": true,
          "idTokenKeyId": "092dbedc-30af-4149-9c61-b578f2c72f59",
          "refreshTokenExpirationPolicy": "Fixed",
          "refreshTokenRevocationPolicy": {
            "onLoginPrevented": true,
            "onMultiFactorEnable": true,
            "onPasswordChanged": true
          },
          "refreshTokenTimeToLiveInMinutes": 43200,
          "refreshTokenUsagePolicy": "Reusable",
          "timeToLiveInSeconds": 3600
        },
        "lambdaConfiguration": {
          "scimEnterpriseUserRequestConverterId": "c2e70f8d-19bb-4df7-848a-33a9a1e26b84",
          "scimEnterpriseUserResponseConverterId": "44fc9553-8a2e-408f-8aa2-fa65b70b55e2",
          "scimGroupRequestConverterId": "66d65de0-1819-42f8-86ed-7daaa4e155dc",
          "scimGroupResponseConverterId": "79812ede-432f-4375-9b43-23c0fe996fef",
          "scimUserRequestConverterId": "8a51d7a1-5e3e-442a-b96a-0c31379bb3d4",
          "scimUserResponseConverterId": "c8720843-dc4f-4e6c-b6ca-500e9c44695f"
        },
        "logoutURL": "http://example.com/logout",
        "maximumPasswordAge": {
          "days": 180,
          "enabled": false
        },
        "minimumPasswordAge": {
          "enabled": false,
          "seconds": 30
        },
        "multiFactorConfiguration": {
          "authenticator": {
            "enabled": true
          },
          "email": {
            "enabled": true,
            "templateId": "d312fb71-d7d8-4b75-a497-6096a07220b3"
          },
          "loginPolicy": "Enabled",
          "sms": {
            "enabled": true,
            "messengerId": "0a4bae38-ffef-4c33-b74c-1d50c796f600",
            "templateId": "f35e04e6-72ec-4f52-b552-29cf950a4ed6"
          }
        },
        "name": "Playtronics Co.",
        "oauthConfiguration": {
          "clientCredentialsAccessTokenPopulateLambdaId": "46e120c1-4c22-473f-95b4-e2c187cd20c2"
        },
        "passwordEncryptionConfiguration": {
          "encryptionScheme": "salted-pbkdf2-hmac-sha256",
          "encryptionSchemeFactor": 24000,
          "modifyEncryptionSchemeOnLogin": false
        },
        "passwordValidationRules": {
          "breachDetection": {
            "enabled": true,
            "notifyUserEmailTemplateId": "e6c74b53-d43d-471e-ae7e-906456d0f341",
            "matchMode": "High",
            "onLogin": "Off"
          },
          "maxLength": 256,
          "minLength": 8,
          "rememberPreviousPasswords": {
            "count": 2,
            "enabled": true
          },
          "requireMixedCase": true,
          "requireNonAlpha": true,
          "requireNumber": true,
          "validateOnLogin": false
        },
        "rateLimitConfiguration": {
          "failedLogin": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "forgotPassword": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendEmailVerification": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendRegistrationVerification": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendPasswordless": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendTwoFactor": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          }
        },
        "registrationConfiguration": {},
        "scimServerConfiguration": {
          "clientEntityTypeId": "d9ed49f7-1106-4b20-acdb-5cbda76ae77e",
          "enabled": true,
          "serverEntityTypeId": "919e0ac5-1cf0-4fcf-a8fc-29d77a0d1d8f",
          "schemas": {}
        },
        "ssoConfiguration": {
          "deviceTrustTimeToLiveInSeconds": 31536000
        },
        "themeId": "c6ad3fac-6f32-4db7-91a4-061ff035e871",
        "userDeletePolicy": {
          "unverified": {
            "enabled": true,
            "numberOfDaysToRetain": 30
          }
        },
        "usernameConfiguration": {
          "unique": {
            "enabled": false,
            "numberOfDigits": 5,
            "separator": "#"
          }
        },
        "webAuthnConfiguration": {
          "enabled": true,
          "bootstrapWorkflow": {
            "authenticatorAttachmentPreference": "crossPlatform",
            "enabled": true,
            "userVerificationRequirement": "required"
          },
          "debug": false,
          "reauthenticationWorkflow": {
            "authenticatorAttachmentPreference": "platform",
            "enabled": true,
            "userVerificationRequirement": "required"
          },
          "relyingPartyId": "piedpiper.com",
          "relyingPartyName": "Pied Piper"
        },
        "webhookIds": [
          "00000000-0000-0000-0000-000000000042"
        ]
      }
    }

    Response

    The response for this API contains the Tenant that was created.

    Table 1. Response Codes
    Code Description

    200

    The request was successful. The response will contain a JSON body.

    400

    The request was invalid and/or malformed. The response will contain an Errors JSON Object with the specific errors. This status will also be returned if a paid FusionAuth license is required and is not present.

    401

    You did not supply a valid Authorization header. The header was omitted or your API key was not valid. The response will be empty. See Authentication.

    500

    There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty.

    Response Body

    tenant.accessControlConfiguration.uiIPAccessControlListId [UUID] Available since 1.30.0

    The Id of the IP Access Control List limiting access to this all applications in this tenant.

    tenant.captchaConfiguration.captchaMethod [String] Available since 1.30.0

    The type of captcha method to use.

    tenant.captchaConfiguration.enabled [Boolean] Available since 1.30.0

    Whether captcha configuration is enabled.

    tenant.captchaConfiguration.secretKey [String] Available since 1.30.0

    The secret key for this captcha method.

    tenant.captchaConfiguration.siteKey [String] Available since 1.30.0

    The site key for this captcha method.

    tenant.captchaConfiguration.threshold [Float] Available since 1.30.0

    The numeric threshold which separates a passing score from a failing one. This value only applies if using either the Google v3 or HCaptcha Enterprise method, otherwise this value is ignored.

    tenant.configured [Boolean]

    Indicates the tenant has been configured. It is always true, except for default tenant when the setup wizard has not been completed, in which case it is false.

    tenant.connectorPolicies [Array] Available since 1.18.0

    A list of Connector policies. Users will be authenticated against Connectors in order. Each Connector can be included in this list at most once and must exist.

    tenant.connectorPolicies[x].connectorId [UUID] Available since 1.18.0

    The identifier of the Connector to which this policy refers.

    tenant.connectorPolicies[x].domains [String] Available since 1.18.0

    An list of email domains to which this connector should apply.

    A value of ["*"] indicates this connector applies to all users.

    tenant.connectorPolicies[x].migrate [Boolean] # Available since 1.18.0

    If true, the user’s data will be migrated to FusionAuth at first successful authentication; subsequent authentications will occur against the FusionAuth datastore. If false, the Connector’s source will be treated as authoritative.

    tenant.data [Object]

    An object that can hold any information about the Tenant that should be persisted.

    tenant.emailConfiguration.additionalHeaders [Array<Object>] Optional Available since 1.32.0

    The additional SMTP headers to be added to each outgoing email. Each SMTP header consists of a name and a value.

    tenant.emailConfiguration.debug [Boolean] Optional defaults to false Available since 1.37.0

    Determines if debug should be enabled to create an event log to assist in debugging SMTP errors.

    tenant.emailConfiguration.defaultFromEmail [String] Optional defaults to change-me@fusionauth.io Available since 1.16.0

    The default email address that emails will be sent from when a from address is not provided on an individual email template. This is the address part email address (i.e. Jared Dunn <jared@piedpiper.com>).

    tenant.emailConfiguration.defaultFromName [String] Optional Available since 1.16.0

    The default From Name used in sending emails when a from name is not provided on an individual email template. This is the display name part of the email address ( i.e. Jared Dunn <jared@piedpiper.com>).

    tenant.emailConfiguration.emailUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their email address is updated.

    tenant.emailConfiguration.emailVerifiedEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template used to notify a user that their email address has been verified.

    tenant.emailConfiguration.forgotPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user is sent a forgot password email.

    tenant.emailConfiguration.host [String] Optional defaults to localhost Available since 1.8.0

    The host name of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenant.emailConfiguration.implicitEmailVerificationAllowed Optional defaults to true Available since 1.32.0

    When set to true, this allows email to be verified as a result of completing a similar email based workflow such as change password. When set to false, the user must explicitly complete the email verification workflow even if the user has already completed a similar email workflow such as change password.

    tenant.emailConfiguration.loginIdInUseOnCreateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id.

    tenant.emailConfiguration.loginIdInUseOnUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to update an existing account to use their login Id.

    tenant.emailConfiguration.loginNewDeviceEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they log in on a new device.

    tenant.emailConfiguration.loginSuspiciousEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a suspicious login occurs.

    tenant.emailConfiguration.password [String] Optional Available since 1.8.0

    An optional password FusionAuth will use to authenticate with the SMTP server.

    tenant.emailConfiguration.passwordlessEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Passwordless Email Template, sent to users when they start a passwordless login.

    tenant.emailConfiguration.passwordResetSuccessEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password has been reset.

    tenant.emailConfiguration.passwordUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their password has been updated.

    tenant.emailConfiguration.port [Integer] Optional defaults to 25 Available since 1.8.0

    The port of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenant.emailConfiguration.properties [String] Optional Available since 1.8.0

    Additional Email Configuration in a properties file formatted String.

    tenant.emailConfiguration.security [String] Optional defaults to NONE Available since 1.8.0

    The type of security protocol FusionAuth will use when connecting to the SMTP server. The possible values are:

    • NONE - no security will be used. All communications will be sent plaintext.

    • SSL - SSL will be used to connect to the SMTP server. This protocol is not recommended unless it is the only one your SMTP server supports.

    • TLS - TLS will be used to connect to the SMTP server. This is the preferred protocol for all SMTP servers.

    tenant.emailConfiguration.setPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user had their account created for them and they must set their password manually and they are sent an email to set their password.

    tenant.emailConfiguration.twoFactorMethodAddEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been added to their account.

    tenant.emailConfiguration.twoFactorMethodRemoveEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been removed from their account.

    tenant.emailConfiguration.unverified.allowEmailChangeWhenGated [Boolean] Optional defaults to false Available since 1.27.0

    When this value is set to true, the user is allowed to change their email address when they are gated because they haven’t verified their email address.

    tenant.emailConfiguration.unverified.behavior [String] Optional defaults to Allow Available since 1.27.0

    The desired behavior during login for a user that does not have a verified email. The possible values are:

    • Allow - the user will be allowed to complete login.

    • Gated - verification is required before a user can complete login. The use of this value will require a paid edition of FusionAuth.

    tenant.emailConfiguration.username [String] Optional Available since 1.8.0

    An optional username FusionAuth will to authenticate with the SMTP server.

    tenant.emailConfiguration.verificationEmailTemplateId [UUID] Optional

    The Id of the Email Template used to send emails to users to verify that their email address is valid. If either the verifyEmail or verifyEmailWhenChanged fields are true, this field is required.

    tenant.emailConfiguration.verificationStrategy [String] Optional Available since 1.27.0

    The process by which the user will verify their email address. The possible values are:

    • ClickableLink - send the user a code with a clickable link.

    • FormField - send the user a short code intended to be manually entered into a form field. This is only available when tenant.emailConfiguration.unverified.behavior has the Gated value.

    tenant.emailConfiguration.verifyEmail [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the registers with your application.

    tenant.emailConfiguration.verifyEmailWhenChanged [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the user changes them.

    tenant.eventConfiguration.events [Object] Available since 1.8.0

    A mapping of the configuration for each event type that FusionAuth sends. The event types that are the keys into this Object are:

    • audit-log.create - When an audit log is created Available since 1.30.0

    • event-log.create - When an event log is created Available since 1.30.0

    • jwt.public-key.update - When a JWT RSA Public / Private keypair may have been changed

    • jwt.refresh - When an access token is refreshed using a refresh token Available since 1.16.0

    • jwt.refresh-token.revoke - When a JWT Refresh Token is revoked

    • kickstart.success - When kickstart has successfully completed Available since 1.30.0

    • user.action - When a user action is triggered

    • user.bulk.create - When multiple users are created in bulk (i.e. during an import)

    • user.create - When a user is created

    • user.create.complete - When a user create transaction has completed Available since 1.30.0

    • user.deactivate - When a user is deactivated

    • user.delete - When a user is deleted

    • user.delete.complete - When a user delete transaction has completed Available since 1.30.0

    • user.email.update - When a user updates their email address Available since 1.30.0

    • user.email.verified - When a user verifies their email address Available since 1.8.0

    • user.identity-provider.link - When a link is created from a user to an Identity Provider Available since 1.36.0

    • user.identity-provider.unlink - When an existing Identity Provider link is removed from a User Available since 1.36.0

    • user.loginId.duplicate.create - When a request to create a user with a login Id (email or username) which is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.loginId.duplicate.update - When a request to update a user and change their login Id (email or username) to one that is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.failed - When a user fails a login request Available since 1.6.0

    • user.login.new-device - When a user begins a login request with a new device Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.success - When a user completes a login request Available since 1.6.0

    • user.login.suspicious - When a user logs in and is considered to be a potential threat (requires an activated Enterprise license) Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.breach - When Reactor detects a user is using a potentially breached password (requires an activated license) Available since 1.15.0

      Note: A paid plan is required to utilize this event.

    • user.password.reset.send - When a forgot password email has been sent to a user Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.start - When the process to reset a user password has started Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.success - When a user has successfully reset their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.update - When a user has updated their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.reactivate - When a user is reactivated

    • user.registration.create - When a user registration is created Available since 1.6.0

    • user.registration.create.complete - When a user registration create transaction has completed Available since 1.30.0

    • user.registration.delete - When a user registration is deleted Available since 1.6.0

    • user.registration.delete.complete - When a user registration delete transaction has completed Available since 1.30.0

    • user.registration.update - When a user registration is updated Available since 1.6.0

    • user.registration.update.complete - When a user registration update transaction has completed Available since 1.30.0

    • user.registration.verified - When a user completes registration verification Available since 1.8.0

    • user.two-factor.method.add - When a user has added a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.two-factor.method.remove - When a user has removed a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.update - When a user is updated

    • user.update.complete - When a user update transaction has completed Available since 1.30.0

    tenant.eventConfiguration.events[type].enabled [Boolean] Available since 1.8.0

    Whether or not FusionAuth should send these types of events to any configured Webhooks.

    tenant.eventConfiguration.events[type].transactionType [String] Available since 1.8.0

    The transaction type that FusionAuth uses when sending these types of events to any configured Webhooks. The transaction types are:

    • None - No Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • Any - Only a single Webhook is required to succeed for the FusionAuth transaction to be committed.

    • SimpleMajority - A simple majority (50% or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • SuperMajority - A super majority (2/3 or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • AbsoluteMajority - Every Webhook must succeed for the FusionAuth transaction to be committed.

    tenant.externalIdentifierConfiguration.authorizationGrantIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an OAuth authorization code is no longer valid to be exchanged for an access token. This is essentially the time allowed between the start of an Authorization request during the Authorization code grant and when you request an access token using this authorization code on the Token endpoint.

    Value must be greater than 0 and less than or equal to 600.

    tenant.externalIdentifierConfiguration.changePasswordIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the change password Id.

    If the changePasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the changePasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.changePasswordIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the change password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.changePasswordIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a change password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.deviceCodeTimeToLiveInSeconds [Integer] Available since 1.11.0

    The time in seconds until a device code Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.deviceUserCodeIdGenerator.length [Integer] Available since 1.11.0

    The length of the secure generator used for generating the device code Id.

    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.deviceUserCodeIdGenerator.type [String] Available since 1.11.0

    The type of the secure generator used for generating the device code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.emailVerificationIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the the email verification Id.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.emailVerificationIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the email verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.emailVerificationIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an email verification Id is no longer valid and cannot be used by the Verify Email API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.length [Integer] Available since 1.27.0

    The length of the secure generator used for generating the email verification one time code.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.type [String] Available since 1.27.0

    The type of the secure generator used for generating the email verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.externalAuthenticationIdTimeToLiveInSeconds [Integer] Available since 1.12.0

    The time in seconds until an external authentication Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.oneTimePasswordTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a One Time Password is no longer valid and cannot be used by the Login API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.passwordlessLoginGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the passwordless login.

    If the passwordlessLoginGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the passwordlessLoginGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.passwordlessLoginGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the passwordless login. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.passwordlessLoginTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a passwordless code is no longer valid and cannot be used by the Passwordless API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.pendingAccountLinkTimeToLiveInSeconds [Integer] Available since 1.28.0

    The number of seconds before the pending account link identifier is no longer valid to complete an account link request.

    tenant.externalIdentifierConfiguration.registrationVerificationIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the registration verification Id.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.registrationVerificationIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the registration verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.registrationVerificationIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a registration verification Id is no longer valid and cannot be used by the Verify Registration API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.length [Integer] Available since 1.27.0

    The length of the secure generator used for generating the registration verification one time code.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.type [String] Available since 1.27.0

    The type of the secure generator used for generating the registration verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.samlv2AuthNRequestIdTimeToLiveInSeconds [Integer] Available since 1.19.0

    The time in seconds that a SAML AuthN request Id returned by the Start SAML v2 Login Request API will be eligible to be used to complete a SAML v2 Login request.

    tenant.externalIdentifierConfiguration.setupPasswordIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the setup password Id.

    If the setupPasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the setupPasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.setupPasswordIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the setup password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.setupPasswordIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a setup password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.trustTokenTimeToLiveInSeconds [Integer] Available since 1.33.0

    The number of seconds before the Trust Token is no longer valid to complete a request that requires trust. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a two factor Id is no longer valid and cannot be used by the Two Factor Login API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the the two factor one time code Id.

    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the two factor code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdTimeToLiveInSeconds [Integer] Available since 1.26.0

    The number of seconds before the Two-Factor One Time Code used to enable or disable a two-factor method is no longer valid. Must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorTrustIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an issued Two Factor trust Id is no longer valid and the User will be required to complete Two Factor authentication during the next authentication attempt. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.webAuthnAuthenticationChallengeTimeToLiveInSeconds [Integer] Available since 1.41.0

    The time in seconds until a WebAuthn authentication challenge is no longer valid and the User will be required to restart the WebAuthn authentication ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.get API call. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.webAuthnRegistrationChallengeTimeToLiveInSeconds [Integer] Available since 1.41.0

    The time in seconds until a WebAuthn registration challenge is no longer valid and the User will be required to restart the WebAuthn registration ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.create API call. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.actionCancelPolicy.onPasswordReset [Boolean] Available since 1.42.0

    Indicates whether you want the user to be able to self-service unlock their account prior to the action duration by completing a password reset workflow.

    tenant.failedAuthenticationConfiguration.actionDuration [Long] Available since 1.8.0

    The duration of the User Action. This value along with the actionDurationUnit will be used to set the duration of the User Action. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.actionDurationUnit [String] Available since 1.8.0

    The unit of time associated with a duration. The possible values are:

    • MINUTES

    • HOURS

    • DAYS

    • WEEKS

    • MONTHS

    • YEARS

    tenant.failedAuthenticationConfiguration.emailUser [String] Optional Available since 1.42.0

    Indicates you would like to email the user when the user’s account is locked due to this action being taken. This requires the User Action specified by the tenant.failedAuthenticationConfiguration.userActionId to also be configured for email. If the User Action is not configured to be able to email the user, this configuration will be ignored. See userEmailingEnabled on the User Action.

    tenant.failedAuthenticationConfiguration.resetCountInSeconds [Integer] Available since 1.8.0

    The length of time in seconds before the failed authentication count will be reset. Value must be greater than 0.

    For example, if tooManyAttempts is set to 5 and you fail to authenticate 4 times in a row, waiting for the duration specified here will cause your fifth attempt to start back at 1.

    tenant.failedAuthenticationConfiguration.tooManyAttempts [Integer] Available since 1.8.0

    The number of failed attempts considered to be too many. Once this threshold is reached the specified User Action will be applied to the user for the duration specified. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.userActionId [UUID] Available since 1.8.0

    The Id of the User Action that is applied when the threshold is reached for too many failed authentication attempts.

    tenant.familyConfiguration.allowChildRegistrations [Boolean] Available since 1.8.0

    Whether to allow child registrations.

    tenant.familyConfiguration.confirmChildEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use when confirming a child.

    tenant.familyConfiguration.deleteOrphanedAccounts [Boolean] Available since 1.8.0

    Indicates that child users without parental verification will be permanently deleted after tenant.familyConfiguration.deleteOrphanedAccountsDays days.

    tenant.familyConfiguration.deleteOrphanedAccountsDays [Integer] Available since 1.8.0

    The number of days from creation child users will be retained before being deleted for not completing parental verification. Value must be greater than 0.

    tenant.familyConfiguration.enabled [Boolean] Available since 1.8.0

    Whether family configuration is enabled.

    tenant.familyConfiguration.familyRequestEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use when a family request is made.

    tenant.familyConfiguration.maximumChildAge [Integer] Available since 1.8.0

    The maximum age of a child. Value must be greater than 0.

    tenant.familyConfiguration.minimumOwnerAge [Integer] Available since 1.8.0

    The minimum age to be an owner. Value must be greater than 0.

    tenant.familyConfiguration.parentEmailRequired [Boolean] Available since 1.8.0

    Whether a parent email is required.

    tenant.familyConfiguration.parentRegistrationEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use for parent registration.

    tenant.formConfiguration.adminUserFormId [UUID] Available since 1.20.0

    The unique Id of the form to use for the Add and Edit User form when used in the FusionAuth admin UI.

    tenant.httpSessionMaxInactiveInterval [Integer] Available since 1.8.0

    Time in seconds until an inactive session will be invalidated. Used when creating a new session in the FusionAuth OAuth frontend.

    tenant.id [UUID]

    The unique identifier for this Tenant.

    tenant.insertInstant [Long]

    The instant that the Tenant was added to the FusionAuth database.

    tenant.issuer [String] Available since 1.8.0

    The named issuer used to sign tokens, this is generally your public fully qualified domain.

    tenant.jwtConfiguration.accessTokenKeyId [UUID] Available since 1.8.0

    The unique id of the signing key used to sign the access token.

    tenant.jwtConfiguration.idTokenKeyId [UUID] Available since 1.8.0

    The unique id of the signing key used to sign the Id token.

    tenant.jwtConfiguration.refreshTokenExpirationPolicy [String] Available since 1.17.0

    The refresh token expiration policy. The following are valid values:

    • Fixed - the expiration is calculated from the time the token is issued.

    • SlidingWindow - the expiration is calculated from the last time the token was used.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onLoginPrevented [Boolean] Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user action, such as locking an account based on a number of failed login attempts, prevents user login.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onMultiFactorEnable [Boolean] Available since 1.42.0

    When enabled, all refresh tokens will be revoked when a user enables multi-factor authentication for the first time. This policy will not be applied when adding subsequent multi-factor methods to the user.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onPasswordChanged [Boolean] Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user changes their password.

    tenant.jwtConfiguration.refreshTokenTimeToLiveInMinutes [Integer] Available since 1.8.0

    The length of time in minutes a Refresh Token is valid from the time it was issued. Value must be greater than 0.

    tenant.jwtConfiguration.refreshTokenUsagePolicy [String] Available since 1.17.0

    The refresh token usage policy. The following are valid values:

    • Reusable - the token does not change after it was issued.

    • OneTimeUse - the token value will be changed each time the token is used to refresh a JWT. The client must store the new value after each usage.

    tenant.jwtConfiguration.timeToLiveInSeconds [Integer] Available since 1.8.0

    The length of time in seconds this JWT is valid from the time it was issued. Value must be greater than 0.

    tenant.lambdaConfiguration.scimEnterpriseUserRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM Enterprise User request to a FusionAuth User.

    tenant.lambdaConfiguration.scimEnterpriseUserResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth Enterprise User to a SCIM Server response.

    tenant.lambdaConfiguration.scimGroupRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM Group Request Lambda that will be used to convert the SCIM Group request to a FusionAuth Group.

    tenant.lambdaConfiguration.scimGroupResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM GroupResponse Lambda that will be used to convert a FusionAuth Group to a SCIM Server response.

    tenant.lambdaConfiguration.scimUserRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM User request to a FusionAuth User.

    tenant.lambdaConfiguration.scimUserResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth User to a SCIM Server response.

    tenant.lastUpdateInstant [Long]

    The instant that the Tenant was last updated in the FusionAuth database.

    tenant.loginConfiguration.requireAuthentication [Boolean] Available since 1.26.0

    Indicates whether to require an API key for the Login API when an applicationId is not provided. When an applicationId is provided to the Login API call, the application configuration will take precedence.

    tenant.logoutURL [String] Available since 1.8.0

    The logout redirect URL when sending the user’s browser to the /oauth2/logout URI of the FusionAuth Front End. This value is only used when a logout URL is not defined in your Application.

    tenant.maximumPasswordAge.days [Integer] Available since 1.8.0

    The password maximum age in days. The number of days after which FusionAuth will require a user to change their password. Required when tenant.maximumPasswordAge.enabled is set to true.

    tenant.maximumPasswordAge.enabled [Boolean] Available since 1.8.0

    Indicates that the maximum password age is enabled and being enforced.

    tenant.minimumPasswordAge.seconds [Integer] Available since 1.8.0

    The password minimum age in seconds. When enabled FusionAuth will not allow a password to be changed until it reaches this minimum age. Required when tenant.minimumPasswordAge.enabled is set to true.

    tenant.minimumPasswordAge.enabled [Boolean] Available since 1.8.0

    Indicates that the minimum password age is enabled and being enforced.

    tenant.multiFactorConfiguration.authenticator.algorithm [String] Available since 1.26.0

    The algorithm used by the TOTP authenticator. This value is HmacSHA1 and read only.

    tenant.multiFactorConfiguration.authenticator.codeLength [Integer] Available since 1.26.0

    The length of the code generated by the TOTP. This value is 6 and read only.

    tenant.multiFactorConfiguration.authenticator.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize an authenticator application to complete a multi-factor authentication request. This method uses TOTP (Time-Based One-Time Password) as defined in RFC 6238 and often uses an native mobile app such as Google Authenticator.

    tenant.multiFactorConfiguration.authenticator.timeStep [Integer] Available since 1.26.0

    The time-step size in seconds. This value is 30 and read only.

    tenant.multiFactorConfiguration.email.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize an email address to complete a two-factor authentication request.

    tenant.multiFactorConfiguration.email.templateId [UUID] Available since 1.26.0

    The Id of the email template that is used when notifying a user to complete a two-factor authentication request.

    tenant.multiFactorConfiguration.sms.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize a mobile phone number to complete a two-factor authentication request.

    tenant.multiFactorConfiguration.sms.messengerId [UUID] Available since 1.26.0

    The messenger that is used to deliver a SMS two-factor authentication request.

    tenant.multiFactorConfiguration.sms.templateId [UUID] Available since 1.26.0

    The Id of the SMS template that is used when notifying a user to complete a two-factor authentication request.

    tenant.name [String]

    The unique name of the Tenant.

    tenant.oauthConfiguration.clientCredentialsAccessTokenPopulateLambdaId [UUID] Available since 1.26.0

    The Id of a lambda that will be called to populate the JWT during a client credentials grant.

    tenant.passwordEncryptionConfiguration.encryptionScheme [String] Available since 1.8.0

    The default method for encrypting the User’s password. The following encryptors are provided with FusionAuth:

    • salted-md5

    • salted-sha256

    • salted-hmac-sha256

    • salted-pbkdf2-hmac-sha256

    • salted-pbkdf2-hmac-sha256-512   Available since 1.34.0

    • bcrypt

    tenant.passwordEncryptionConfiguration.encryptionSchemeFactor [Integer] Available since 1.8.0

    The factor used by the password encryption scheme. If not provided, the PasswordEncryptor provides a default value. Generally this will be used as an iteration count to generate the hash. The actual use of this value is up to the PasswordEncryptor implementation.

    tenant.passwordEncryptionConfiguration.modifyEncryptionSchemeOnLogin [Boolean] Available since 1.8.0

    When enabled a user’s hash configuration will be modified to match these configured settings. This can be useful to increase a password hash strength over time or upgrade imported users to a more secure encryption scheme after an initial import.

    Beginning in version 1.42.0 when this configuration is enabled, in addition to re-hashing on login, the password will be re-hashed on password change as well.

    tenant.passwordValidationRules.breachDetection.enabled [Boolean] Available since 1.15.0

    Whether to enable Reactor breach detection. Requires an activated license.

    tenant.passwordValidationRules.breachDetection.matchMode [String] Available since 1.15.0

    The level of severity where Reactor will consider a breach. The following are valid values:

    • High Only requires a password match, this is the most secure and is recommended

    • Medium Exact match on username, email address or email sub-address

    • Low Exact match on an email or username, or the password is a common breached value

    tenant.passwordValidationRules.breachDetection.notifyUserEmailTemplateId [UUID] Available since 1.15.0

    The Id of the email template to use when notifying a user of a breached password.

    tenant.passwordValidationRules.breachDetection.onLogin [String] Available since 1.15.0

    The behavior when detecting breaches at time of user login. The following are valid values:

    • Off Do not perform breach detection at login

    • RecordOnly Only record the result, take no action

    • NotifyUser Notify the end user via email

    • RequireChange Require immediate password change

    tenant.passwordValidationRules.maxLength [Integer] Available since 1.8.0

    The maximum length of a password when a new user is created or a user requests a password change.

    tenant.passwordValidationRules.minLength [Integer] Available since 1.8.0

    The minimum length of a password when a new user is created or a user requests a password change.

    tenant.passwordValidationRules.rememberPreviousPasswords.count [Integer] Available since 1.8.0

    The number of previous passwords to remember. Value must be greater than 0.

    tenant.passwordValidationRules.rememberPreviousPasswords.enabled [Boolean] Available since 1.8.0

    Whether to prevent a user from using any of their previous passwords.

    tenant.passwordValidationRules.requireMixedCase [Boolean] Available since 1.8.0

    Whether to force the user to use at least one uppercase and one lowercase character.

    tenant.passwordValidationRules.requireNonAlpha [Boolean] Available since 1.8.0

    Whether to force the user to use at least one non-alphanumeric character.

    tenant.passwordValidationRules.requireNumber [Boolean] Available since 1.8.0

    Whether to force the user to use at least one number.

    tenant.passwordValidationRules.validateOnLogin [Boolean] Available since 1.15.0

    When enabled the user’s password will be validated during login. If the password does not meet the currently configured validation rules the user will be required to change their password.

    tenant.rateLimitConfiguration.failedLogin.limit [Integer] Available since 1.30.0

    The number of times a user can fail to login within the configured timePeriodInSeconds duration. If a Failed authentication action has been configured then it will take precedence.

    tenant.rateLimitConfiguration.failedLogin.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can fail login before being rate limited.

    tenant.rateLimitConfiguration.forgotPassword.limit [Integer] Available since 1.30.0

    The number of times a user can request a forgot password email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.forgotPassword.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a forgot password email before being rate limited.

    tenant.rateLimitConfiguration.sendEmailVerification.limit [Integer] Available since 1.30.0

    The number of times a user can request a verification email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendEmailVerification.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a verification email before being rate limited.

    tenant.rateLimitConfiguration.sendPasswordless.limit [Integer] Available since 1.30.0

    The number of times a user can request a passwordless login email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendPasswordless.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a passwordless login email before being rate limited.

    tenant.rateLimitConfiguration.sendRegistrationVerification.limit [Integer] Available since 1.30.0

    The number of times a user can request a registration verification email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendRegistrationVerification.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a registration verification email before being rate limited.

    tenant.rateLimitConfiguration.sendTwoFactor.limit [Integer] Available since 1.30.0

    The number of times a user can request a two-factor code by email or SMS within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendTwoFactor.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a two-factor code by email or SMS before being rate limited.

    tenant.registrationConfiguration.blockedDomains [Array<String>] Optional Available since 1.30.0

    A list of unique domains that are not allowed to register when self service is enabled.

    tenant.scimServerConfiguration.clientEntityTypeId [UUID] Available since 1.36.0

    The Entity Type that will be used to represent SCIM Clients for this tenant.

    tenant.scimServerConfiguration.enabled [Boolean] Available since 1.36.0

    Whether or not this tenant has the SCIM endpoints enabled.

    tenant.scimServerConfiguration.schemas [Map] Available since 1.36.0

    JSON formatted as a SCIM Schemas endpoint response. Because the SCIM lambdas may modify the JSON response, ensure the Schema’s response matches that generated by the response lambdas. More about Schema definitions.

    tenant.scimServerConfiguration.serverEntityTypeId [UUID] Available since 1.36.0

    The Entity Type that will be used to represent SCIM Servers for this tenant.

    tenant.ssoConfiguration.deviceTrustTimeToLiveInSeconds [Integer] Available since 1.30.2

    The number of seconds before a trusted device is reset. When reset, a user is forced to complete captcha during login and complete two factor authentication if applicable.

    tenant.state [String] Available since 1.22.0

    The current state of the tenant. The following are valid values:

    • Active - The tenant is active.

    • PendingDelete - A delete request has been requested and is being processed.

    tenant.themeId [UUID] Available since 1.8.0

    The unique Id of the theme to be used to style the login page and other end user templates.

    tenant.userDeletePolicy.unverified.enabled [Boolean] Available since 1.13.0

    Indicates that users without a verified email address will be permanently deleted after tenant.userDeletePolicy.unverified.numberOfDaysToRetain days.

    tenant.userDeletePolicy.unverified.numberOfDaysToRetain [Integer] Available since 1.13.0

    The number of days from creation users will be retained before being deleted for not completing email verification. Value must be greater than 0.

    tenant.usernameConfiguration.unique.enabled [Boolean] Available since 1.27.0

    When true, FusionAuth will handle username collisions by generating a random suffix. Users with colliding usernames will be able to use the same one, but in the admin and API interfaces, a unique username will be displayed.

    tenant.usernameConfiguration.unique.numberOfDigits [Integer] Available since 1.27.0

    The maximum number of digits to use when building a unique suffix for a username. A number will be randomly selected and will be 1 or more digits up to this configured value in length. For example, if this value is 5, the suffix will be a number between 00001 and 99999, inclusive.

    tenant.usernameConfiguration.unique.separator [String] Available since 1.27.0

    A single character to use as a separator from the requested username and a unique suffix that is added when a duplicate username is detected. This value can be a single non alphanumeric ASCII character.

    tenant.usernameConfiguration.unique.strategy [String] Available since 1.29.0

    This strategy instructions FusionAuth when to append a unique suffix to the username. The possible values are:

    • Always - Always append a unique suffix even when the requested username is not in use.

    • OnCollision - Only append a unique suffix when the requested username is in use.

    tenant.webAuthnConfiguration.bootstrapWorkflow.authenticatorAttachmentPreference [String] Available since 1.41.0

    The authenticator attachment requirement for WebAuthn passkey registration when using the bootstrap workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    tenant.webAuthnConfiguration.bootstrapWorkflow.enabled [Boolean] Available since 1.41.0

    Whether the WebAuthn bootstrap workflow is enabled.

    tenant.webAuthnConfiguration.bootstrapWorkflow.userVerificationRequirement [String] Available since 1.41.0

    The user verification requirement for WebAuthn passkey registration and authentication when using the bootstrap workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    tenant.webAuthnConfiguration.debug [Boolean] Available since 1.41.0

    Whether debug event log output is enabled for WebAuthn.

    tenant.webAuthnConfiguration.enabled [Boolean] Available since 1.41.0

    Whether WebAuthn configuration is enabled.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.authenticatorAttachmentPreference [String] Available since 1.41.0

    The authenticator attachment requirement for WebAuthn passkey registration when using the reauthentication workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.enabled [Boolean] Available since 1.41.0

    Whether the WebAuthn reauthentication workflow is enabled.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.userVerificationRequirement [String] Available since 1.41.0

    The user verification requirement for WebAuthn passkey registration and authentication when using the reauthentication workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    tenant.webAuthnConfiguration.relyingPartyId [String] Available since 1.41.0

    The Relying Party Id the tenant will use in WebAuthn ceremonies. Passkeys can only be used to authenticate on sites using the same Relying Party Id they were registered with.

    The default value is null, which instructs the WebAuthn JavaScript API to use the browser origin.

    tenant.webAuthnConfiguration.relyingPartyName [String] Available since 1.41.0

    The Relying Party name the tenant will use in WebAuthn ceremonies. This value is used only for display and may be shown by browser or OS dialogs during WebAuthn ceremonies.

    If no value is configured, the tenant.issuer value will be used.

    Example Response JSON
    
    {
      "tenant": {
        "accessControlConfiguration": {
          "uiIPAccessControlListId": "11d49de7-69f6-46fc-8270-0b3aa626327a"
        },
        "configured": true,
        "captchaConfiguration": {
          "captchaMethod": "GoogleRecaptchaV3",
          "enabled": true,
          "secretKey": "6LdYWpMbAAAAAKhcksgk70us00012r66r96tt7rp",
          "siteKey": "6LdYWpMbAAAAAKhcksgk75tz00022r66ombcfadr",
          "threshold": 0.5
        },
        "connectorPolicies": [
          {
            "connectorId": "e3306678-a53a-4964-9040-1c96f36dda72",
            "domains": [
              "*"
            ],
            "migrate": false
          },
          {
            "connectorId": "27f22280-7e55-4d1c-b9f8-239bf9cc1a5e",
            "domains": [
              "*"
            ],
            "migrate": true
          }
        ],
        "data": {
          "description": "No more secrets, Marty."
        },
        "emailConfiguration": {
          "additionalHeaders": [
            {
              "name": "X-SES-CONFIGURATION-SET",
              "value": "example_configuration_set_name"
            }
          ],
          "defaultFromEmail": "jared@piedpiper.com",
          "defaultFromName": "Jared Dunn",
          "emailUpdateEmailTemplateId": "ec3045c7-97d8-47f8-8725-61b93deacf5d",
          "emailVerifiedEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
          "forgotPasswordEmailTemplateId": "49aba1de-0225-45d7-a2b1-f9fe46b0242c",
          "host": "smtp.sendgrid.net",
          "implicitEmailVerificationAllowed": true,
          "loginIdInUseOnCreateEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginIdInUseOnUpdateEmailTemplateId": "2c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginNewDeviceEmailTemplateId": "3c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginSuspiciousEmailTemplateId": "4c3045c7-97d8-47f8-8725-61b93deacf5d",
          "password": "password",
          "passwordlessEmailTemplateId": "a917e23a-da58-4cda-be01-90f542f8c343",
          "passwordResetSuccessEmailTemplateId": "5c3045c7-97d8-47f8-8725-61b93deacf5d",
          "passwordUpdateEmailTemplateId": "6c3045c7-97d8-47f8-8725-61b93deacf5d",
          "port": 587,
          "properties": {
            "key": "value"
          },
          "security": "TLS",
          "setPasswordEmailTemplateId": "a9aba13e-0125-4fd7-a2b1-aaa146b02423",
          "twoFactorMethodAddEmailTemplateId": "7c3045c7-97d8-47f8-8725-61b93deacf5d",
          "twoFactorMethodRemoveEmailTemplateId": "8c3045c7-97d8-47f8-8725-61b93deacf5d",
          "unverified": {
            "allowEmailChangeWhenGated": false,
            "behavior": "Allow"
          },
          "username": "username",
          "verificationEmailTemplateId": "8da42c09-461c-45f3-b931-6e9f63b87ab5",
          "verificationStrategy": "FormField",
          "verifyEmail": true,
          "verifyEmailWhenChanged": true
        },
        "eventConfiguration": {
          "events": {
            "user.delete": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.deactivate": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.bulk.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.reactivate": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.refresh": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.refresh-token.revoke": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.public-key.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.login.success": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.login.failed": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.password.breach": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.delete": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.verified": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.email.verified": {
              "enabled": true,
              "transactionType": "None"
            }
          }
        },
        "externalIdentifierConfiguration": {
          "authorizationGrantIdTimeToLiveInSeconds": 30,
          "changePasswordIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "changePasswordIdTimeToLiveInSeconds": 600,
          "deviceCodeTimeToLiveInSeconds": 1800,
          "deviceUserCodeIdGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "emailVerificationIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "emailVerificationIdTimeToLiveInSeconds": 86400,
          "emailVerificationOneTimeCodeGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "externalAuthenticationIdTimeToLiveInSeconds": 300,
          "oneTimePasswordTimeToLiveInSeconds": 60,
          "passwordlessLoginGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "passwordlessLoginTimeToLiveInSeconds": 180,
          "pendingAccountLinkTimeToLiveInSeconds": 3600,
          "registrationVerificationIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "registrationVerificationIdTimeToLiveInSeconds": 86400,
          "registrationVerificationOneTimeCodeGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "samlv2AuthNRequestIdTimeToLiveInSeconds": 300,
          "setupPasswordIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "setupPasswordIdTimeToLiveInSeconds": 86400,
          "trustTokenTimeToLiveInSeconds": 180,
          "twoFactorIdTimeToLiveInSeconds": 300,
          "twoFactorOneTimeCodeIdGenerator": {
            "length": 6,
            "type": "randomDigits"
          },
          "twoFactorOneTimeCodeIdTimeToLiveInSeconds": 60,
          "twoFactorTrustIdTimeToLiveInSeconds": 2592000,
          "webAuthnAuthenticationChallengeTimeToLiveInSeconds": 180,
          "webAuthnRegistrationChallengeTimeToLiveInSeconds": 180
        },
        "failedAuthenticationConfiguration": {
          "actionCancelPolicy": {
            "onPasswordReset": false
          },
          "actionDuration": 3,
          "actionDurationUnit": "MINUTES",
          "emailUser": false,
          "resetCountInSeconds": 60,
          "tooManyAttempts": 5,
          "userActionId": "16cfc707-268c-4c5b-8989-f71f3ee156d4"
        },
        "familyConfiguration": {
          "allowChildRegistrations": true,
          "confirmChildEmailTemplateId": "87654321-4321-8765-ba09-ba0987654321",
          "deleteOrphanedAccounts": false,
          "deleteOrphanedAccountsDays": 30,
          "enabled": true,
          "familyRequestEmailTemplateId": "57462514-a73b-cd76-0001-b8a65cd61230",
          "maximumChildAge": 12,
          "minimumOwnerAge": 21,
          "parentEmailRequired": false,
          "parentRegistrationEmailTemplateId": "12345678-1234-5678-90ab-1234567890ab"
        },
        "formConfiguration": {
          "adminUserFormId": "e92751a5-25f4-4bca-ad91-66cdf67725d2"
        },
        "httpSessionMaxInactiveInterval": 3600,
        "id": "32306536-3036-6431-3865-646430303332",
        "insertInstant": 1572469040579,
        "issuer": "https://example.com",
        "jwtConfiguration": {
          "accessTokenKeyId": "025233ca-d4f3-2aa4-eca9-7e4200e9b472",
          "enabled": true,
          "idTokenKeyId": "092dbedc-30af-4149-9c61-b578f2c72f59",
          "refreshTokenExpirationPolicy": "Fixed",
          "refreshTokenRevocationPolicy": {
            "onLoginPrevented": true,
            "onMultiFactorEnable": true,
            "onPasswordChanged": true
          },
          "refreshTokenTimeToLiveInMinutes": 43200,
          "refreshTokenUsagePolicy": "Reusable",
          "timeToLiveInSeconds": 3600
        },
        "lambdaConfiguration": {
          "scimEnterpriseUserRequestConverterId": "c2e70f8d-19bb-4df7-848a-33a9a1e26b84",
          "scimEnterpriseUserResponseConverterId": "44fc9553-8a2e-408f-8aa2-fa65b70b55e2",
          "scimGroupRequestConverterId": "66d65de0-1819-42f8-86ed-7daaa4e155dc",
          "scimGroupResponseConverterId": "79812ede-432f-4375-9b43-23c0fe996fef",
          "scimUserRequestConverterId": "8a51d7a1-5e3e-442a-b96a-0c31379bb3d4",
          "scimUserResponseConverterId": "c8720843-dc4f-4e6c-b6ca-500e9c44695f"
        },
        "lastUpdateInstant": 1595361143101,
        "loginConfiguration": {
          "requireAuthentication": true
        },
        "logoutURL": "http://example.com/logout",
        "maximumPasswordAge": {
          "days": 180,
          "enabled": false
        },
        "minimumPasswordAge": {
          "enabled": false,
          "seconds": 30
        },
        "multiFactorConfiguration": {
          "authenticator": {
            "algorithm": "HmacSHA1",
            "codeLength": 6,
            "enabled": true,
            "timeStep": 30
          },
          "email": {
            "enabled": true,
            "templateId": "d312fb71-d7d8-4b75-a497-6096a07220b3"
          },
          "loginPolicy": "Enabled",
          "sms": {
            "enabled": true,
            "messengerId": "0a4bae38-ffef-4c33-b74c-1d50c796f600",
            "templateId": "f35e04e6-72ec-4f52-b552-29cf950a4ed6"
          }
        },
        "name": "Playtronics Co.",
        "oauthConfiguration": {
          "clientCredentialsAccessTokenPopulateLambdaId": "46e120c1-4c22-473f-95b4-e2c187cd20c2"
        },
        "passwordEncryptionConfiguration": {
          "encryptionScheme": "salted-pbkdf2-hmac-sha256",
          "encryptionSchemeFactor": 24000,
          "modifyEncryptionSchemeOnLogin": false
        },
        "passwordValidationRules": {
          "breachDetection": {
            "enabled": true,
            "notifyUserEmailTemplateId": "e6c74b53-d43d-471e-ae7e-906456d0f341",
            "matchMode": "High",
            "onLogin": "Off"
          },
          "maxLength": 256,
          "minLength": 8,
          "rememberPreviousPasswords": {
            "count": 2,
            "enabled": true
          },
          "requireMixedCase": true,
          "requireNonAlpha": true,
          "requireNumber": true,
          "validateOnLogin": false
        },
        "rateLimitConfiguration": {
          "failedLogin": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "forgotPassword": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendEmailVerification": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendRegistrationVerification": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendPasswordless": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendTwoFactor": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          }
        },
        "registrationConfiguration": {},
        "scimServerConfiguration": {
          "clientEntityTypeId": "d9ed49f7-1106-4b20-acdb-5cbda76ae77e",
          "enabled": true,
          "serverEntityTypeId": "919e0ac5-1cf0-4fcf-a8fc-29d77a0d1d8f",
          "schemas": {}
        },
        "ssoConfiguration": {
          "deviceTrustTimeToLiveInSeconds": 31536000
        },
        "state": "Active",
        "themeId": "c6ad3fac-6f32-4db7-91a4-061ff035e871",
        "userDeletePolicy": {
          "unverified": {
            "enabled": true,
            "numberOfDaysToRetain": 30
          }
        },
        "usernameConfiguration": {
          "unique": {
            "enabled": false,
            "numberOfDigits": 5,
            "separator": "#",
            "strategy": "OnCollision"
          }
        },
        "webAuthnConfiguration": {
          "enabled": true,
          "bootstrapWorkflow": {
            "authenticatorAttachmentPreference": "crossPlatform",
            "enabled": true,
            "userVerificationRequirement": "required"
          },
          "debug": false,
          "reauthenticationWorkflow": {
            "authenticatorAttachmentPreference": "platform",
            "enabled": true,
            "userVerificationRequirement": "required"
          },
          "relyingPartyId": "piedpiper.com",
          "relyingPartyName": "Pied Piper"
        }
      }
    }

    Retrieve a Tenant

    This API is used to retrieve a single Tenant by unique Id or all of the configured Tenants.

    Request

    Retrieve all of the Tenants

    URI

    GET /api/tenant

    Retrieve a Tenant by Id

    URI

    GET /api/tenant/{tenantId}

    Request Parameters

    tenantId [UUID] Required

    The unique Id of the Tenant to retrieve.

    Request Headers

    X-FusionAuth-TenantId [String] Optional

    The unique Id of the tenant used to scope this API request.

    The tenant Id is not required on this request even when more than one tenant has been configured because the tenant can be identified based upon the request parameters or it is otherwise not required.

    Specify a tenant Id on this request when you want to ensure the request is scoped to a specific tenant. The tenant Id may be provided through this header or by using a tenant locked API key to achieve the same result.

    See Making an API request using a Tenant Id for additional information.

    Response

    The response for this API contains either a single Tenant or all of the Tenants. When you call this API with an Id the response will contain a single Tenant. When you call this API without an Id the response will contain all of the Tenants. Both response types are defined below along with an example JSON response.

    Table 2. Response Codes
    Code Description

    200

    The request was successful. The response will contain a JSON body.

    400

    The request was invalid and/or malformed. The response will contain an Errors JSON Object with the specific errors. This status will also be returned if a paid FusionAuth license is required and is not present.

    401

    You did not supply a valid Authorization header. The header was omitted or your API key was not valid. The response will be empty. See Authentication.

    404

    The object you requested doesn’t exist. The response will be empty.

    500

    There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty.

    Response Body

    tenant.accessControlConfiguration.uiIPAccessControlListId [UUID] Available since 1.30.0

    The Id of the IP Access Control List limiting access to this all applications in this tenant.

    tenant.captchaConfiguration.captchaMethod [String] Available since 1.30.0

    The type of captcha method to use.

    tenant.captchaConfiguration.enabled [Boolean] Available since 1.30.0

    Whether captcha configuration is enabled.

    tenant.captchaConfiguration.secretKey [String] Available since 1.30.0

    The secret key for this captcha method.

    tenant.captchaConfiguration.siteKey [String] Available since 1.30.0

    The site key for this captcha method.

    tenant.captchaConfiguration.threshold [Float] Available since 1.30.0

    The numeric threshold which separates a passing score from a failing one. This value only applies if using either the Google v3 or HCaptcha Enterprise method, otherwise this value is ignored.

    tenant.configured [Boolean]

    Indicates the tenant has been configured. It is always true, except for default tenant when the setup wizard has not been completed, in which case it is false.

    tenant.connectorPolicies [Array] Available since 1.18.0

    A list of Connector policies. Users will be authenticated against Connectors in order. Each Connector can be included in this list at most once and must exist.

    tenant.connectorPolicies[x].connectorId [UUID] Available since 1.18.0

    The identifier of the Connector to which this policy refers.

    tenant.connectorPolicies[x].domains [String] Available since 1.18.0

    An list of email domains to which this connector should apply.

    A value of ["*"] indicates this connector applies to all users.

    tenant.connectorPolicies[x].migrate [Boolean] # Available since 1.18.0

    If true, the user’s data will be migrated to FusionAuth at first successful authentication; subsequent authentications will occur against the FusionAuth datastore. If false, the Connector’s source will be treated as authoritative.

    tenant.data [Object]

    An object that can hold any information about the Tenant that should be persisted.

    tenant.emailConfiguration.additionalHeaders [Array<Object>] Optional Available since 1.32.0

    The additional SMTP headers to be added to each outgoing email. Each SMTP header consists of a name and a value.

    tenant.emailConfiguration.debug [Boolean] Optional defaults to false Available since 1.37.0

    Determines if debug should be enabled to create an event log to assist in debugging SMTP errors.

    tenant.emailConfiguration.defaultFromEmail [String] Optional defaults to change-me@fusionauth.io Available since 1.16.0

    The default email address that emails will be sent from when a from address is not provided on an individual email template. This is the address part email address (i.e. Jared Dunn <jared@piedpiper.com>).

    tenant.emailConfiguration.defaultFromName [String] Optional Available since 1.16.0

    The default From Name used in sending emails when a from name is not provided on an individual email template. This is the display name part of the email address ( i.e. Jared Dunn <jared@piedpiper.com>).

    tenant.emailConfiguration.emailUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their email address is updated.

    tenant.emailConfiguration.emailVerifiedEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template used to notify a user that their email address has been verified.

    tenant.emailConfiguration.forgotPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user is sent a forgot password email.

    tenant.emailConfiguration.host [String] Optional defaults to localhost Available since 1.8.0

    The host name of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenant.emailConfiguration.implicitEmailVerificationAllowed Optional defaults to true Available since 1.32.0

    When set to true, this allows email to be verified as a result of completing a similar email based workflow such as change password. When set to false, the user must explicitly complete the email verification workflow even if the user has already completed a similar email workflow such as change password.

    tenant.emailConfiguration.loginIdInUseOnCreateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id.

    tenant.emailConfiguration.loginIdInUseOnUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to update an existing account to use their login Id.

    tenant.emailConfiguration.loginNewDeviceEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they log in on a new device.

    tenant.emailConfiguration.loginSuspiciousEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a suspicious login occurs.

    tenant.emailConfiguration.password [String] Optional Available since 1.8.0

    An optional password FusionAuth will use to authenticate with the SMTP server.

    tenant.emailConfiguration.passwordlessEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Passwordless Email Template, sent to users when they start a passwordless login.

    tenant.emailConfiguration.passwordResetSuccessEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password has been reset.

    tenant.emailConfiguration.passwordUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their password has been updated.

    tenant.emailConfiguration.port [Integer] Optional defaults to 25 Available since 1.8.0

    The port of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenant.emailConfiguration.properties [String] Optional Available since 1.8.0

    Additional Email Configuration in a properties file formatted String.

    tenant.emailConfiguration.security [String] Optional defaults to NONE Available since 1.8.0

    The type of security protocol FusionAuth will use when connecting to the SMTP server. The possible values are:

    • NONE - no security will be used. All communications will be sent plaintext.

    • SSL - SSL will be used to connect to the SMTP server. This protocol is not recommended unless it is the only one your SMTP server supports.

    • TLS - TLS will be used to connect to the SMTP server. This is the preferred protocol for all SMTP servers.

    tenant.emailConfiguration.setPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user had their account created for them and they must set their password manually and they are sent an email to set their password.

    tenant.emailConfiguration.twoFactorMethodAddEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been added to their account.

    tenant.emailConfiguration.twoFactorMethodRemoveEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been removed from their account.

    tenant.emailConfiguration.unverified.allowEmailChangeWhenGated [Boolean] Optional defaults to false Available since 1.27.0

    When this value is set to true, the user is allowed to change their email address when they are gated because they haven’t verified their email address.

    tenant.emailConfiguration.unverified.behavior [String] Optional defaults to Allow Available since 1.27.0

    The desired behavior during login for a user that does not have a verified email. The possible values are:

    • Allow - the user will be allowed to complete login.

    • Gated - verification is required before a user can complete login. The use of this value will require a paid edition of FusionAuth.

    tenant.emailConfiguration.username [String] Optional Available since 1.8.0

    An optional username FusionAuth will to authenticate with the SMTP server.

    tenant.emailConfiguration.verificationEmailTemplateId [UUID] Optional

    The Id of the Email Template used to send emails to users to verify that their email address is valid. If either the verifyEmail or verifyEmailWhenChanged fields are true, this field is required.

    tenant.emailConfiguration.verificationStrategy [String] Optional Available since 1.27.0

    The process by which the user will verify their email address. The possible values are:

    • ClickableLink - send the user a code with a clickable link.

    • FormField - send the user a short code intended to be manually entered into a form field. This is only available when tenant.emailConfiguration.unverified.behavior has the Gated value.

    tenant.emailConfiguration.verifyEmail [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the registers with your application.

    tenant.emailConfiguration.verifyEmailWhenChanged [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the user changes them.

    tenant.eventConfiguration.events [Object] Available since 1.8.0

    A mapping of the configuration for each event type that FusionAuth sends. The event types that are the keys into this Object are:

    • audit-log.create - When an audit log is created Available since 1.30.0

    • event-log.create - When an event log is created Available since 1.30.0

    • jwt.public-key.update - When a JWT RSA Public / Private keypair may have been changed

    • jwt.refresh - When an access token is refreshed using a refresh token Available since 1.16.0

    • jwt.refresh-token.revoke - When a JWT Refresh Token is revoked

    • kickstart.success - When kickstart has successfully completed Available since 1.30.0

    • user.action - When a user action is triggered

    • user.bulk.create - When multiple users are created in bulk (i.e. during an import)

    • user.create - When a user is created

    • user.create.complete - When a user create transaction has completed Available since 1.30.0

    • user.deactivate - When a user is deactivated

    • user.delete - When a user is deleted

    • user.delete.complete - When a user delete transaction has completed Available since 1.30.0

    • user.email.update - When a user updates their email address Available since 1.30.0

    • user.email.verified - When a user verifies their email address Available since 1.8.0

    • user.identity-provider.link - When a link is created from a user to an Identity Provider Available since 1.36.0

    • user.identity-provider.unlink - When an existing Identity Provider link is removed from a User Available since 1.36.0

    • user.loginId.duplicate.create - When a request to create a user with a login Id (email or username) which is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.loginId.duplicate.update - When a request to update a user and change their login Id (email or username) to one that is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.failed - When a user fails a login request Available since 1.6.0

    • user.login.new-device - When a user begins a login request with a new device Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.success - When a user completes a login request Available since 1.6.0

    • user.login.suspicious - When a user logs in and is considered to be a potential threat (requires an activated Enterprise license) Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.breach - When Reactor detects a user is using a potentially breached password (requires an activated license) Available since 1.15.0

      Note: A paid plan is required to utilize this event.

    • user.password.reset.send - When a forgot password email has been sent to a user Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.start - When the process to reset a user password has started Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.success - When a user has successfully reset their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.update - When a user has updated their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.reactivate - When a user is reactivated

    • user.registration.create - When a user registration is created Available since 1.6.0

    • user.registration.create.complete - When a user registration create transaction has completed Available since 1.30.0

    • user.registration.delete - When a user registration is deleted Available since 1.6.0

    • user.registration.delete.complete - When a user registration delete transaction has completed Available since 1.30.0

    • user.registration.update - When a user registration is updated Available since 1.6.0

    • user.registration.update.complete - When a user registration update transaction has completed Available since 1.30.0

    • user.registration.verified - When a user completes registration verification Available since 1.8.0

    • user.two-factor.method.add - When a user has added a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.two-factor.method.remove - When a user has removed a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.update - When a user is updated

    • user.update.complete - When a user update transaction has completed Available since 1.30.0

    tenant.eventConfiguration.events[type].enabled [Boolean] Available since 1.8.0

    Whether or not FusionAuth should send these types of events to any configured Webhooks.

    tenant.eventConfiguration.events[type].transactionType [String] Available since 1.8.0

    The transaction type that FusionAuth uses when sending these types of events to any configured Webhooks. The transaction types are:

    • None - No Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • Any - Only a single Webhook is required to succeed for the FusionAuth transaction to be committed.

    • SimpleMajority - A simple majority (50% or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • SuperMajority - A super majority (2/3 or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • AbsoluteMajority - Every Webhook must succeed for the FusionAuth transaction to be committed.

    tenant.externalIdentifierConfiguration.authorizationGrantIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an OAuth authorization code is no longer valid to be exchanged for an access token. This is essentially the time allowed between the start of an Authorization request during the Authorization code grant and when you request an access token using this authorization code on the Token endpoint.

    Value must be greater than 0 and less than or equal to 600.

    tenant.externalIdentifierConfiguration.changePasswordIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the change password Id.

    If the changePasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the changePasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.changePasswordIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the change password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.changePasswordIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a change password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.deviceCodeTimeToLiveInSeconds [Integer] Available since 1.11.0

    The time in seconds until a device code Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.deviceUserCodeIdGenerator.length [Integer] Available since 1.11.0

    The length of the secure generator used for generating the device code Id.

    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.deviceUserCodeIdGenerator.type [String] Available since 1.11.0

    The type of the secure generator used for generating the device code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.emailVerificationIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the the email verification Id.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.emailVerificationIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the email verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.emailVerificationIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an email verification Id is no longer valid and cannot be used by the Verify Email API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.length [Integer] Available since 1.27.0

    The length of the secure generator used for generating the email verification one time code.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.type [String] Available since 1.27.0

    The type of the secure generator used for generating the email verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.externalAuthenticationIdTimeToLiveInSeconds [Integer] Available since 1.12.0

    The time in seconds until an external authentication Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.oneTimePasswordTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a One Time Password is no longer valid and cannot be used by the Login API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.passwordlessLoginGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the passwordless login.

    If the passwordlessLoginGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the passwordlessLoginGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.passwordlessLoginGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the passwordless login. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.passwordlessLoginTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a passwordless code is no longer valid and cannot be used by the Passwordless API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.pendingAccountLinkTimeToLiveInSeconds [Integer] Available since 1.28.0

    The number of seconds before the pending account link identifier is no longer valid to complete an account link request.

    tenant.externalIdentifierConfiguration.registrationVerificationIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the registration verification Id.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.registrationVerificationIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the registration verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.registrationVerificationIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a registration verification Id is no longer valid and cannot be used by the Verify Registration API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.length [Integer] Available since 1.27.0

    The length of the secure generator used for generating the registration verification one time code.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.type [String] Available since 1.27.0

    The type of the secure generator used for generating the registration verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.samlv2AuthNRequestIdTimeToLiveInSeconds [Integer] Available since 1.19.0

    The time in seconds that a SAML AuthN request Id returned by the Start SAML v2 Login Request API will be eligible to be used to complete a SAML v2 Login request.

    tenant.externalIdentifierConfiguration.setupPasswordIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the setup password Id.

    If the setupPasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the setupPasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.setupPasswordIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the setup password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.setupPasswordIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a setup password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.trustTokenTimeToLiveInSeconds [Integer] Available since 1.33.0

    The number of seconds before the Trust Token is no longer valid to complete a request that requires trust. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a two factor Id is no longer valid and cannot be used by the Two Factor Login API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the the two factor one time code Id.

    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the two factor code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdTimeToLiveInSeconds [Integer] Available since 1.26.0

    The number of seconds before the Two-Factor One Time Code used to enable or disable a two-factor method is no longer valid. Must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorTrustIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an issued Two Factor trust Id is no longer valid and the User will be required to complete Two Factor authentication during the next authentication attempt. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.webAuthnAuthenticationChallengeTimeToLiveInSeconds [Integer] Available since 1.41.0

    The time in seconds until a WebAuthn authentication challenge is no longer valid and the User will be required to restart the WebAuthn authentication ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.get API call. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.webAuthnRegistrationChallengeTimeToLiveInSeconds [Integer] Available since 1.41.0

    The time in seconds until a WebAuthn registration challenge is no longer valid and the User will be required to restart the WebAuthn registration ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.create API call. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.actionCancelPolicy.onPasswordReset [Boolean] Available since 1.42.0

    Indicates whether you want the user to be able to self-service unlock their account prior to the action duration by completing a password reset workflow.

    tenant.failedAuthenticationConfiguration.actionDuration [Long] Available since 1.8.0

    The duration of the User Action. This value along with the actionDurationUnit will be used to set the duration of the User Action. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.actionDurationUnit [String] Available since 1.8.0

    The unit of time associated with a duration. The possible values are:

    • MINUTES

    • HOURS

    • DAYS

    • WEEKS

    • MONTHS

    • YEARS

    tenant.failedAuthenticationConfiguration.emailUser [String] Optional Available since 1.42.0

    Indicates you would like to email the user when the user’s account is locked due to this action being taken. This requires the User Action specified by the tenant.failedAuthenticationConfiguration.userActionId to also be configured for email. If the User Action is not configured to be able to email the user, this configuration will be ignored. See userEmailingEnabled on the User Action.

    tenant.failedAuthenticationConfiguration.resetCountInSeconds [Integer] Available since 1.8.0

    The length of time in seconds before the failed authentication count will be reset. Value must be greater than 0.

    For example, if tooManyAttempts is set to 5 and you fail to authenticate 4 times in a row, waiting for the duration specified here will cause your fifth attempt to start back at 1.

    tenant.failedAuthenticationConfiguration.tooManyAttempts [Integer] Available since 1.8.0

    The number of failed attempts considered to be too many. Once this threshold is reached the specified User Action will be applied to the user for the duration specified. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.userActionId [UUID] Available since 1.8.0

    The Id of the User Action that is applied when the threshold is reached for too many failed authentication attempts.

    tenant.familyConfiguration.allowChildRegistrations [Boolean] Available since 1.8.0

    Whether to allow child registrations.

    tenant.familyConfiguration.confirmChildEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use when confirming a child.

    tenant.familyConfiguration.deleteOrphanedAccounts [Boolean] Available since 1.8.0

    Indicates that child users without parental verification will be permanently deleted after tenant.familyConfiguration.deleteOrphanedAccountsDays days.

    tenant.familyConfiguration.deleteOrphanedAccountsDays [Integer] Available since 1.8.0

    The number of days from creation child users will be retained before being deleted for not completing parental verification. Value must be greater than 0.

    tenant.familyConfiguration.enabled [Boolean] Available since 1.8.0

    Whether family configuration is enabled.

    tenant.familyConfiguration.familyRequestEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use when a family request is made.

    tenant.familyConfiguration.maximumChildAge [Integer] Available since 1.8.0

    The maximum age of a child. Value must be greater than 0.

    tenant.familyConfiguration.minimumOwnerAge [Integer] Available since 1.8.0

    The minimum age to be an owner. Value must be greater than 0.

    tenant.familyConfiguration.parentEmailRequired [Boolean] Available since 1.8.0

    Whether a parent email is required.

    tenant.familyConfiguration.parentRegistrationEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use for parent registration.

    tenant.formConfiguration.adminUserFormId [UUID] Available since 1.20.0

    The unique Id of the form to use for the Add and Edit User form when used in the FusionAuth admin UI.

    tenant.httpSessionMaxInactiveInterval [Integer] Available since 1.8.0

    Time in seconds until an inactive session will be invalidated. Used when creating a new session in the FusionAuth OAuth frontend.

    tenant.id [UUID]

    The unique identifier for this Tenant.

    tenant.insertInstant [Long]

    The instant that the Tenant was added to the FusionAuth database.

    tenant.issuer [String] Available since 1.8.0

    The named issuer used to sign tokens, this is generally your public fully qualified domain.

    tenant.jwtConfiguration.accessTokenKeyId [UUID] Available since 1.8.0

    The unique id of the signing key used to sign the access token.

    tenant.jwtConfiguration.idTokenKeyId [UUID] Available since 1.8.0

    The unique id of the signing key used to sign the Id token.

    tenant.jwtConfiguration.refreshTokenExpirationPolicy [String] Available since 1.17.0

    The refresh token expiration policy. The following are valid values:

    • Fixed - the expiration is calculated from the time the token is issued.

    • SlidingWindow - the expiration is calculated from the last time the token was used.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onLoginPrevented [Boolean] Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user action, such as locking an account based on a number of failed login attempts, prevents user login.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onMultiFactorEnable [Boolean] Available since 1.42.0

    When enabled, all refresh tokens will be revoked when a user enables multi-factor authentication for the first time. This policy will not be applied when adding subsequent multi-factor methods to the user.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onPasswordChanged [Boolean] Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user changes their password.

    tenant.jwtConfiguration.refreshTokenTimeToLiveInMinutes [Integer] Available since 1.8.0

    The length of time in minutes a Refresh Token is valid from the time it was issued. Value must be greater than 0.

    tenant.jwtConfiguration.refreshTokenUsagePolicy [String] Available since 1.17.0

    The refresh token usage policy. The following are valid values:

    • Reusable - the token does not change after it was issued.

    • OneTimeUse - the token value will be changed each time the token is used to refresh a JWT. The client must store the new value after each usage.

    tenant.jwtConfiguration.timeToLiveInSeconds [Integer] Available since 1.8.0

    The length of time in seconds this JWT is valid from the time it was issued. Value must be greater than 0.

    tenant.lambdaConfiguration.scimEnterpriseUserRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM Enterprise User request to a FusionAuth User.

    tenant.lambdaConfiguration.scimEnterpriseUserResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth Enterprise User to a SCIM Server response.

    tenant.lambdaConfiguration.scimGroupRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM Group Request Lambda that will be used to convert the SCIM Group request to a FusionAuth Group.

    tenant.lambdaConfiguration.scimGroupResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM GroupResponse Lambda that will be used to convert a FusionAuth Group to a SCIM Server response.

    tenant.lambdaConfiguration.scimUserRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM User request to a FusionAuth User.

    tenant.lambdaConfiguration.scimUserResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth User to a SCIM Server response.

    tenant.lastUpdateInstant [Long]

    The instant that the Tenant was last updated in the FusionAuth database.

    tenant.loginConfiguration.requireAuthentication [Boolean] Available since 1.26.0

    Indicates whether to require an API key for the Login API when an applicationId is not provided. When an applicationId is provided to the Login API call, the application configuration will take precedence.

    tenant.logoutURL [String] Available since 1.8.0

    The logout redirect URL when sending the user’s browser to the /oauth2/logout URI of the FusionAuth Front End. This value is only used when a logout URL is not defined in your Application.

    tenant.maximumPasswordAge.days [Integer] Available since 1.8.0

    The password maximum age in days. The number of days after which FusionAuth will require a user to change their password. Required when tenant.maximumPasswordAge.enabled is set to true.

    tenant.maximumPasswordAge.enabled [Boolean] Available since 1.8.0

    Indicates that the maximum password age is enabled and being enforced.

    tenant.minimumPasswordAge.seconds [Integer] Available since 1.8.0

    The password minimum age in seconds. When enabled FusionAuth will not allow a password to be changed until it reaches this minimum age. Required when tenant.minimumPasswordAge.enabled is set to true.

    tenant.minimumPasswordAge.enabled [Boolean] Available since 1.8.0

    Indicates that the minimum password age is enabled and being enforced.

    tenant.multiFactorConfiguration.authenticator.algorithm [String] Available since 1.26.0

    The algorithm used by the TOTP authenticator. This value is HmacSHA1 and read only.

    tenant.multiFactorConfiguration.authenticator.codeLength [Integer] Available since 1.26.0

    The length of the code generated by the TOTP. This value is 6 and read only.

    tenant.multiFactorConfiguration.authenticator.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize an authenticator application to complete a multi-factor authentication request. This method uses TOTP (Time-Based One-Time Password) as defined in RFC 6238 and often uses an native mobile app such as Google Authenticator.

    tenant.multiFactorConfiguration.authenticator.timeStep [Integer] Available since 1.26.0

    The time-step size in seconds. This value is 30 and read only.

    tenant.multiFactorConfiguration.email.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize an email address to complete a two-factor authentication request.

    tenant.multiFactorConfiguration.email.templateId [UUID] Available since 1.26.0

    The Id of the email template that is used when notifying a user to complete a two-factor authentication request.

    tenant.multiFactorConfiguration.sms.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize a mobile phone number to complete a two-factor authentication request.

    tenant.multiFactorConfiguration.sms.messengerId [UUID] Available since 1.26.0

    The messenger that is used to deliver a SMS two-factor authentication request.

    tenant.multiFactorConfiguration.sms.templateId [UUID] Available since 1.26.0

    The Id of the SMS template that is used when notifying a user to complete a two-factor authentication request.

    tenant.name [String]

    The unique name of the Tenant.

    tenant.oauthConfiguration.clientCredentialsAccessTokenPopulateLambdaId [UUID] Available since 1.26.0

    The Id of a lambda that will be called to populate the JWT during a client credentials grant.

    tenant.passwordEncryptionConfiguration.encryptionScheme [String] Available since 1.8.0

    The default method for encrypting the User’s password. The following encryptors are provided with FusionAuth:

    • salted-md5

    • salted-sha256

    • salted-hmac-sha256

    • salted-pbkdf2-hmac-sha256

    • salted-pbkdf2-hmac-sha256-512   Available since 1.34.0

    • bcrypt

    tenant.passwordEncryptionConfiguration.encryptionSchemeFactor [Integer] Available since 1.8.0

    The factor used by the password encryption scheme. If not provided, the PasswordEncryptor provides a default value. Generally this will be used as an iteration count to generate the hash. The actual use of this value is up to the PasswordEncryptor implementation.

    tenant.passwordEncryptionConfiguration.modifyEncryptionSchemeOnLogin [Boolean] Available since 1.8.0

    When enabled a user’s hash configuration will be modified to match these configured settings. This can be useful to increase a password hash strength over time or upgrade imported users to a more secure encryption scheme after an initial import.

    Beginning in version 1.42.0 when this configuration is enabled, in addition to re-hashing on login, the password will be re-hashed on password change as well.

    tenant.passwordValidationRules.breachDetection.enabled [Boolean] Available since 1.15.0

    Whether to enable Reactor breach detection. Requires an activated license.

    tenant.passwordValidationRules.breachDetection.matchMode [String] Available since 1.15.0

    The level of severity where Reactor will consider a breach. The following are valid values:

    • High Only requires a password match, this is the most secure and is recommended

    • Medium Exact match on username, email address or email sub-address

    • Low Exact match on an email or username, or the password is a common breached value

    tenant.passwordValidationRules.breachDetection.notifyUserEmailTemplateId [UUID] Available since 1.15.0

    The Id of the email template to use when notifying a user of a breached password.

    tenant.passwordValidationRules.breachDetection.onLogin [String] Available since 1.15.0

    The behavior when detecting breaches at time of user login. The following are valid values:

    • Off Do not perform breach detection at login

    • RecordOnly Only record the result, take no action

    • NotifyUser Notify the end user via email

    • RequireChange Require immediate password change

    tenant.passwordValidationRules.maxLength [Integer] Available since 1.8.0

    The maximum length of a password when a new user is created or a user requests a password change.

    tenant.passwordValidationRules.minLength [Integer] Available since 1.8.0

    The minimum length of a password when a new user is created or a user requests a password change.

    tenant.passwordValidationRules.rememberPreviousPasswords.count [Integer] Available since 1.8.0

    The number of previous passwords to remember. Value must be greater than 0.

    tenant.passwordValidationRules.rememberPreviousPasswords.enabled [Boolean] Available since 1.8.0

    Whether to prevent a user from using any of their previous passwords.

    tenant.passwordValidationRules.requireMixedCase [Boolean] Available since 1.8.0

    Whether to force the user to use at least one uppercase and one lowercase character.

    tenant.passwordValidationRules.requireNonAlpha [Boolean] Available since 1.8.0

    Whether to force the user to use at least one non-alphanumeric character.

    tenant.passwordValidationRules.requireNumber [Boolean] Available since 1.8.0

    Whether to force the user to use at least one number.

    tenant.passwordValidationRules.validateOnLogin [Boolean] Available since 1.15.0

    When enabled the user’s password will be validated during login. If the password does not meet the currently configured validation rules the user will be required to change their password.

    tenant.rateLimitConfiguration.failedLogin.limit [Integer] Available since 1.30.0

    The number of times a user can fail to login within the configured timePeriodInSeconds duration. If a Failed authentication action has been configured then it will take precedence.

    tenant.rateLimitConfiguration.failedLogin.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can fail login before being rate limited.

    tenant.rateLimitConfiguration.forgotPassword.limit [Integer] Available since 1.30.0

    The number of times a user can request a forgot password email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.forgotPassword.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a forgot password email before being rate limited.

    tenant.rateLimitConfiguration.sendEmailVerification.limit [Integer] Available since 1.30.0

    The number of times a user can request a verification email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendEmailVerification.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a verification email before being rate limited.

    tenant.rateLimitConfiguration.sendPasswordless.limit [Integer] Available since 1.30.0

    The number of times a user can request a passwordless login email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendPasswordless.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a passwordless login email before being rate limited.

    tenant.rateLimitConfiguration.sendRegistrationVerification.limit [Integer] Available since 1.30.0

    The number of times a user can request a registration verification email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendRegistrationVerification.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a registration verification email before being rate limited.

    tenant.rateLimitConfiguration.sendTwoFactor.limit [Integer] Available since 1.30.0

    The number of times a user can request a two-factor code by email or SMS within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendTwoFactor.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a two-factor code by email or SMS before being rate limited.

    tenant.registrationConfiguration.blockedDomains [Array<String>] Optional Available since 1.30.0

    A list of unique domains that are not allowed to register when self service is enabled.

    tenant.scimServerConfiguration.clientEntityTypeId [UUID] Available since 1.36.0

    The Entity Type that will be used to represent SCIM Clients for this tenant.

    tenant.scimServerConfiguration.enabled [Boolean] Available since 1.36.0

    Whether or not this tenant has the SCIM endpoints enabled.

    tenant.scimServerConfiguration.schemas [Map] Available since 1.36.0

    JSON formatted as a SCIM Schemas endpoint response. Because the SCIM lambdas may modify the JSON response, ensure the Schema’s response matches that generated by the response lambdas. More about Schema definitions.

    tenant.scimServerConfiguration.serverEntityTypeId [UUID] Available since 1.36.0

    The Entity Type that will be used to represent SCIM Servers for this tenant.

    tenant.ssoConfiguration.deviceTrustTimeToLiveInSeconds [Integer] Available since 1.30.2

    The number of seconds before a trusted device is reset. When reset, a user is forced to complete captcha during login and complete two factor authentication if applicable.

    tenant.state [String] Available since 1.22.0

    The current state of the tenant. The following are valid values:

    • Active - The tenant is active.

    • PendingDelete - A delete request has been requested and is being processed.

    tenant.themeId [UUID] Available since 1.8.0

    The unique Id of the theme to be used to style the login page and other end user templates.

    tenant.userDeletePolicy.unverified.enabled [Boolean] Available since 1.13.0

    Indicates that users without a verified email address will be permanently deleted after tenant.userDeletePolicy.unverified.numberOfDaysToRetain days.

    tenant.userDeletePolicy.unverified.numberOfDaysToRetain [Integer] Available since 1.13.0

    The number of days from creation users will be retained before being deleted for not completing email verification. Value must be greater than 0.

    tenant.usernameConfiguration.unique.enabled [Boolean] Available since 1.27.0

    When true, FusionAuth will handle username collisions by generating a random suffix. Users with colliding usernames will be able to use the same one, but in the admin and API interfaces, a unique username will be displayed.

    tenant.usernameConfiguration.unique.numberOfDigits [Integer] Available since 1.27.0

    The maximum number of digits to use when building a unique suffix for a username. A number will be randomly selected and will be 1 or more digits up to this configured value in length. For example, if this value is 5, the suffix will be a number between 00001 and 99999, inclusive.

    tenant.usernameConfiguration.unique.separator [String] Available since 1.27.0

    A single character to use as a separator from the requested username and a unique suffix that is added when a duplicate username is detected. This value can be a single non alphanumeric ASCII character.

    tenant.usernameConfiguration.unique.strategy [String] Available since 1.29.0

    This strategy instructions FusionAuth when to append a unique suffix to the username. The possible values are:

    • Always - Always append a unique suffix even when the requested username is not in use.

    • OnCollision - Only append a unique suffix when the requested username is in use.

    tenant.webAuthnConfiguration.bootstrapWorkflow.authenticatorAttachmentPreference [String] Available since 1.41.0

    The authenticator attachment requirement for WebAuthn passkey registration when using the bootstrap workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    tenant.webAuthnConfiguration.bootstrapWorkflow.enabled [Boolean] Available since 1.41.0

    Whether the WebAuthn bootstrap workflow is enabled.

    tenant.webAuthnConfiguration.bootstrapWorkflow.userVerificationRequirement [String] Available since 1.41.0

    The user verification requirement for WebAuthn passkey registration and authentication when using the bootstrap workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    tenant.webAuthnConfiguration.debug [Boolean] Available since 1.41.0

    Whether debug event log output is enabled for WebAuthn.

    tenant.webAuthnConfiguration.enabled [Boolean] Available since 1.41.0

    Whether WebAuthn configuration is enabled.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.authenticatorAttachmentPreference [String] Available since 1.41.0

    The authenticator attachment requirement for WebAuthn passkey registration when using the reauthentication workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.enabled [Boolean] Available since 1.41.0

    Whether the WebAuthn reauthentication workflow is enabled.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.userVerificationRequirement [String] Available since 1.41.0

    The user verification requirement for WebAuthn passkey registration and authentication when using the reauthentication workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    tenant.webAuthnConfiguration.relyingPartyId [String] Available since 1.41.0

    The Relying Party Id the tenant will use in WebAuthn ceremonies. Passkeys can only be used to authenticate on sites using the same Relying Party Id they were registered with.

    The default value is null, which instructs the WebAuthn JavaScript API to use the browser origin.

    tenant.webAuthnConfiguration.relyingPartyName [String] Available since 1.41.0

    The Relying Party name the tenant will use in WebAuthn ceremonies. This value is used only for display and may be shown by browser or OS dialogs during WebAuthn ceremonies.

    If no value is configured, the tenant.issuer value will be used.

    Example Response JSON
    
    {
      "tenant": {
        "accessControlConfiguration": {
          "uiIPAccessControlListId": "11d49de7-69f6-46fc-8270-0b3aa626327a"
        },
        "configured": true,
        "captchaConfiguration": {
          "captchaMethod": "GoogleRecaptchaV3",
          "enabled": true,
          "secretKey": "6LdYWpMbAAAAAKhcksgk70us00012r66r96tt7rp",
          "siteKey": "6LdYWpMbAAAAAKhcksgk75tz00022r66ombcfadr",
          "threshold": 0.5
        },
        "connectorPolicies": [
          {
            "connectorId": "e3306678-a53a-4964-9040-1c96f36dda72",
            "domains": [
              "*"
            ],
            "migrate": false
          },
          {
            "connectorId": "27f22280-7e55-4d1c-b9f8-239bf9cc1a5e",
            "domains": [
              "*"
            ],
            "migrate": true
          }
        ],
        "data": {
          "description": "No more secrets, Marty."
        },
        "emailConfiguration": {
          "additionalHeaders": [
            {
              "name": "X-SES-CONFIGURATION-SET",
              "value": "example_configuration_set_name"
            }
          ],
          "defaultFromEmail": "jared@piedpiper.com",
          "defaultFromName": "Jared Dunn",
          "emailUpdateEmailTemplateId": "ec3045c7-97d8-47f8-8725-61b93deacf5d",
          "emailVerifiedEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
          "forgotPasswordEmailTemplateId": "49aba1de-0225-45d7-a2b1-f9fe46b0242c",
          "host": "smtp.sendgrid.net",
          "implicitEmailVerificationAllowed": true,
          "loginIdInUseOnCreateEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginIdInUseOnUpdateEmailTemplateId": "2c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginNewDeviceEmailTemplateId": "3c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginSuspiciousEmailTemplateId": "4c3045c7-97d8-47f8-8725-61b93deacf5d",
          "password": "password",
          "passwordlessEmailTemplateId": "a917e23a-da58-4cda-be01-90f542f8c343",
          "passwordResetSuccessEmailTemplateId": "5c3045c7-97d8-47f8-8725-61b93deacf5d",
          "passwordUpdateEmailTemplateId": "6c3045c7-97d8-47f8-8725-61b93deacf5d",
          "port": 587,
          "properties": {
            "key": "value"
          },
          "security": "TLS",
          "setPasswordEmailTemplateId": "a9aba13e-0125-4fd7-a2b1-aaa146b02423",
          "twoFactorMethodAddEmailTemplateId": "7c3045c7-97d8-47f8-8725-61b93deacf5d",
          "twoFactorMethodRemoveEmailTemplateId": "8c3045c7-97d8-47f8-8725-61b93deacf5d",
          "unverified": {
            "allowEmailChangeWhenGated": false,
            "behavior": "Allow"
          },
          "username": "username",
          "verificationEmailTemplateId": "8da42c09-461c-45f3-b931-6e9f63b87ab5",
          "verificationStrategy": "FormField",
          "verifyEmail": true,
          "verifyEmailWhenChanged": true
        },
        "eventConfiguration": {
          "events": {
            "user.delete": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.deactivate": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.bulk.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.reactivate": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.refresh": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.refresh-token.revoke": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.public-key.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.login.success": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.login.failed": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.password.breach": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.delete": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.verified": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.email.verified": {
              "enabled": true,
              "transactionType": "None"
            }
          }
        },
        "externalIdentifierConfiguration": {
          "authorizationGrantIdTimeToLiveInSeconds": 30,
          "changePasswordIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "changePasswordIdTimeToLiveInSeconds": 600,
          "deviceCodeTimeToLiveInSeconds": 1800,
          "deviceUserCodeIdGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "emailVerificationIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "emailVerificationIdTimeToLiveInSeconds": 86400,
          "emailVerificationOneTimeCodeGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "externalAuthenticationIdTimeToLiveInSeconds": 300,
          "oneTimePasswordTimeToLiveInSeconds": 60,
          "passwordlessLoginGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "passwordlessLoginTimeToLiveInSeconds": 180,
          "pendingAccountLinkTimeToLiveInSeconds": 3600,
          "registrationVerificationIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "registrationVerificationIdTimeToLiveInSeconds": 86400,
          "registrationVerificationOneTimeCodeGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "samlv2AuthNRequestIdTimeToLiveInSeconds": 300,
          "setupPasswordIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "setupPasswordIdTimeToLiveInSeconds": 86400,
          "trustTokenTimeToLiveInSeconds": 180,
          "twoFactorIdTimeToLiveInSeconds": 300,
          "twoFactorOneTimeCodeIdGenerator": {
            "length": 6,
            "type": "randomDigits"
          },
          "twoFactorOneTimeCodeIdTimeToLiveInSeconds": 60,
          "twoFactorTrustIdTimeToLiveInSeconds": 2592000,
          "webAuthnAuthenticationChallengeTimeToLiveInSeconds": 180,
          "webAuthnRegistrationChallengeTimeToLiveInSeconds": 180
        },
        "failedAuthenticationConfiguration": {
          "actionCancelPolicy": {
            "onPasswordReset": false
          },
          "actionDuration": 3,
          "actionDurationUnit": "MINUTES",
          "emailUser": false,
          "resetCountInSeconds": 60,
          "tooManyAttempts": 5,
          "userActionId": "16cfc707-268c-4c5b-8989-f71f3ee156d4"
        },
        "familyConfiguration": {
          "allowChildRegistrations": true,
          "confirmChildEmailTemplateId": "87654321-4321-8765-ba09-ba0987654321",
          "deleteOrphanedAccounts": false,
          "deleteOrphanedAccountsDays": 30,
          "enabled": true,
          "familyRequestEmailTemplateId": "57462514-a73b-cd76-0001-b8a65cd61230",
          "maximumChildAge": 12,
          "minimumOwnerAge": 21,
          "parentEmailRequired": false,
          "parentRegistrationEmailTemplateId": "12345678-1234-5678-90ab-1234567890ab"
        },
        "formConfiguration": {
          "adminUserFormId": "e92751a5-25f4-4bca-ad91-66cdf67725d2"
        },
        "httpSessionMaxInactiveInterval": 3600,
        "id": "32306536-3036-6431-3865-646430303332",
        "insertInstant": 1572469040579,
        "issuer": "https://example.com",
        "jwtConfiguration": {
          "accessTokenKeyId": "025233ca-d4f3-2aa4-eca9-7e4200e9b472",
          "enabled": true,
          "idTokenKeyId": "092dbedc-30af-4149-9c61-b578f2c72f59",
          "refreshTokenExpirationPolicy": "Fixed",
          "refreshTokenRevocationPolicy": {
            "onLoginPrevented": true,
            "onMultiFactorEnable": true,
            "onPasswordChanged": true
          },
          "refreshTokenTimeToLiveInMinutes": 43200,
          "refreshTokenUsagePolicy": "Reusable",
          "timeToLiveInSeconds": 3600
        },
        "lambdaConfiguration": {
          "scimEnterpriseUserRequestConverterId": "c2e70f8d-19bb-4df7-848a-33a9a1e26b84",
          "scimEnterpriseUserResponseConverterId": "44fc9553-8a2e-408f-8aa2-fa65b70b55e2",
          "scimGroupRequestConverterId": "66d65de0-1819-42f8-86ed-7daaa4e155dc",
          "scimGroupResponseConverterId": "79812ede-432f-4375-9b43-23c0fe996fef",
          "scimUserRequestConverterId": "8a51d7a1-5e3e-442a-b96a-0c31379bb3d4",
          "scimUserResponseConverterId": "c8720843-dc4f-4e6c-b6ca-500e9c44695f"
        },
        "lastUpdateInstant": 1595361143101,
        "loginConfiguration": {
          "requireAuthentication": true
        },
        "logoutURL": "http://example.com/logout",
        "maximumPasswordAge": {
          "days": 180,
          "enabled": false
        },
        "minimumPasswordAge": {
          "enabled": false,
          "seconds": 30
        },
        "multiFactorConfiguration": {
          "authenticator": {
            "algorithm": "HmacSHA1",
            "codeLength": 6,
            "enabled": true,
            "timeStep": 30
          },
          "email": {
            "enabled": true,
            "templateId": "d312fb71-d7d8-4b75-a497-6096a07220b3"
          },
          "loginPolicy": "Enabled",
          "sms": {
            "enabled": true,
            "messengerId": "0a4bae38-ffef-4c33-b74c-1d50c796f600",
            "templateId": "f35e04e6-72ec-4f52-b552-29cf950a4ed6"
          }
        },
        "name": "Playtronics Co.",
        "oauthConfiguration": {
          "clientCredentialsAccessTokenPopulateLambdaId": "46e120c1-4c22-473f-95b4-e2c187cd20c2"
        },
        "passwordEncryptionConfiguration": {
          "encryptionScheme": "salted-pbkdf2-hmac-sha256",
          "encryptionSchemeFactor": 24000,
          "modifyEncryptionSchemeOnLogin": false
        },
        "passwordValidationRules": {
          "breachDetection": {
            "enabled": true,
            "notifyUserEmailTemplateId": "e6c74b53-d43d-471e-ae7e-906456d0f341",
            "matchMode": "High",
            "onLogin": "Off"
          },
          "maxLength": 256,
          "minLength": 8,
          "rememberPreviousPasswords": {
            "count": 2,
            "enabled": true
          },
          "requireMixedCase": true,
          "requireNonAlpha": true,
          "requireNumber": true,
          "validateOnLogin": false
        },
        "rateLimitConfiguration": {
          "failedLogin": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "forgotPassword": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendEmailVerification": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendRegistrationVerification": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendPasswordless": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendTwoFactor": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          }
        },
        "registrationConfiguration": {},
        "scimServerConfiguration": {
          "clientEntityTypeId": "d9ed49f7-1106-4b20-acdb-5cbda76ae77e",
          "enabled": true,
          "serverEntityTypeId": "919e0ac5-1cf0-4fcf-a8fc-29d77a0d1d8f",
          "schemas": {}
        },
        "ssoConfiguration": {
          "deviceTrustTimeToLiveInSeconds": 31536000
        },
        "state": "Active",
        "themeId": "c6ad3fac-6f32-4db7-91a4-061ff035e871",
        "userDeletePolicy": {
          "unverified": {
            "enabled": true,
            "numberOfDaysToRetain": 30
          }
        },
        "usernameConfiguration": {
          "unique": {
            "enabled": false,
            "numberOfDigits": 5,
            "separator": "#",
            "strategy": "OnCollision"
          }
        },
        "webAuthnConfiguration": {
          "enabled": true,
          "bootstrapWorkflow": {
            "authenticatorAttachmentPreference": "crossPlatform",
            "enabled": true,
            "userVerificationRequirement": "required"
          },
          "debug": false,
          "reauthenticationWorkflow": {
            "authenticatorAttachmentPreference": "platform",
            "enabled": true,
            "userVerificationRequirement": "required"
          },
          "relyingPartyId": "piedpiper.com",
          "relyingPartyName": "Pied Piper"
        }
      }
    }

    Response Body

    tenants [Array]

    The list of Tenant objects.

    tenants[x].accessControlConfiguration.uiIPAccessControlListId [UUID] Available since 1.30.0

    The Id of the IP Access Control List limiting access to this all applications in this tenant.

    tenants[x].captchaConfiguration.captchaMethod [String] Available since 1.30.0

    The type of captcha method to use.

    tenants[x].captchaConfiguration.enabled [Boolean] Available since 1.30.0

    Whether captcha configuration is enabled.

    tenants[x].captchaConfiguration.secretKey [String] Available since 1.30.0

    The secret key for this captcha method.

    tenants[x].captchaConfiguration.siteKey [String] Available since 1.30.0

    The site key for this captcha method.

    tenants[x].captchaConfiguration.threshold [Float] Available since 1.30.0

    The numeric threshold which separates a passing score from a failing one. This value only applies if using either the Google v3 or HCaptcha Enterprise method, otherwise this value is ignored.

    tenants[x].configured [Boolean]

    Indicates the tenant has been configured. It is always true, except for default tenant when the setup wizard has not been completed, in which case it is false.

    tenants[x].connectorPolicies [Array] Available since 1.18.0

    A list of Connector policies. Users will be authenticated against Connectors in order. Each Connector can be included in this list at most once and must exist.

    tenants[x].connectorPolicies[x].connectorId [UUID] Available since 1.18.0

    The identifier of the Connector to which this policy refers.

    tenants[x].connectorPolicies[x].domains [String] Available since 1.18.0

    An list of email domains to which this connector should apply.

    A value of ["*"] indicates this connector applies to all users.

    tenants[x].connectorPolicies[x].migrate [Boolean] # Available since 1.18.0

    If true, the user’s data will be migrated to FusionAuth at first successful authentication; subsequent authentications will occur against the FusionAuth datastore. If false, the Connector’s source will be treated as authoritative.

    tenants[x].data [Object]

    An object that can hold any information about the Tenant that should be persisted.

    tenants[x].emailConfiguration.additionalHeaders [Array<Object>] Optional Available since 1.32.0

    The additional SMTP headers to be added to each outgoing email. Each SMTP header consists of a name and a value.

    tenants[x].emailConfiguration.debug [Boolean] Optional defaults to false Available since 1.37.0

    Determines if debug should be enabled to create an event log to assist in debugging SMTP errors.

    tenants[x].emailConfiguration.defaultFromEmail [String] Optional defaults to change-me@fusionauth.io Available since 1.16.0

    The default email address that emails will be sent from when a from address is not provided on an individual email template. This is the address part email address (i.e. Jared Dunn <jared@piedpiper.com>).

    tenants[x].emailConfiguration.defaultFromName [String] Optional Available since 1.16.0

    The default From Name used in sending emails when a from name is not provided on an individual email template. This is the display name part of the email address ( i.e. Jared Dunn <jared@piedpiper.com>).

    tenants[x].emailConfiguration.emailUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their email address is updated.

    tenants[x].emailConfiguration.emailVerifiedEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template used to notify a user that their email address has been verified.

    tenants[x].emailConfiguration.forgotPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user is sent a forgot password email.

    tenants[x].emailConfiguration.host [String] Optional defaults to localhost Available since 1.8.0

    The host name of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenants[x].emailConfiguration.implicitEmailVerificationAllowed Optional defaults to true Available since 1.32.0

    When set to true, this allows email to be verified as a result of completing a similar email based workflow such as change password. When set to false, the user must explicitly complete the email verification workflow even if the user has already completed a similar email workflow such as change password.

    tenants[x].emailConfiguration.loginIdInUseOnCreateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id.

    tenants[x].emailConfiguration.loginIdInUseOnUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to update an existing account to use their login Id.

    tenants[x].emailConfiguration.loginNewDeviceEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they log in on a new device.

    tenants[x].emailConfiguration.loginSuspiciousEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a suspicious login occurs.

    tenants[x].emailConfiguration.password [String] Optional Available since 1.8.0

    An optional password FusionAuth will use to authenticate with the SMTP server.

    tenants[x].emailConfiguration.passwordlessEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Passwordless Email Template, sent to users when they start a passwordless login.

    tenants[x].emailConfiguration.passwordResetSuccessEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password has been reset.

    tenants[x].emailConfiguration.passwordUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their password has been updated.

    tenants[x].emailConfiguration.port [Integer] Optional defaults to 25 Available since 1.8.0

    The port of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenants[x].emailConfiguration.properties [String] Optional Available since 1.8.0

    Additional Email Configuration in a properties file formatted String.

    tenants[x].emailConfiguration.security [String] Optional defaults to NONE Available since 1.8.0

    The type of security protocol FusionAuth will use when connecting to the SMTP server. The possible values are:

    • NONE - no security will be used. All communications will be sent plaintext.

    • SSL - SSL will be used to connect to the SMTP server. This protocol is not recommended unless it is the only one your SMTP server supports.

    • TLS - TLS will be used to connect to the SMTP server. This is the preferred protocol for all SMTP servers.

    tenants[x].emailConfiguration.setPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user had their account created for them and they must set their password manually and they are sent an email to set their password.

    tenants[x].emailConfiguration.twoFactorMethodAddEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been added to their account.

    tenants[x].emailConfiguration.twoFactorMethodRemoveEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been removed from their account.

    tenants[x].emailConfiguration.unverified.allowEmailChangeWhenGated [Boolean] Optional defaults to false Available since 1.27.0

    When this value is set to true, the user is allowed to change their email address when they are gated because they haven’t verified their email address.

    tenants[x].emailConfiguration.unverified.behavior [String] Optional defaults to Allow Available since 1.27.0

    The desired behavior during login for a user that does not have a verified email. The possible values are:

    • Allow - the user will be allowed to complete login.

    • Gated - verification is required before a user can complete login. The use of this value will require a paid edition of FusionAuth.

    tenants[x].emailConfiguration.username [String] Optional Available since 1.8.0

    An optional username FusionAuth will to authenticate with the SMTP server.

    tenants[x].emailConfiguration.verificationEmailTemplateId [UUID] Optional

    The Id of the Email Template used to send emails to users to verify that their email address is valid. If either the verifyEmail or verifyEmailWhenChanged fields are true, this field is required.

    tenants[x].emailConfiguration.verificationStrategy [String] Optional Available since 1.27.0

    The process by which the user will verify their email address. The possible values are:

    • ClickableLink - send the user a code with a clickable link.

    • FormField - send the user a short code intended to be manually entered into a form field. This is only available when tenants[x].emailConfiguration.unverified.behavior has the Gated value.

    tenants[x].emailConfiguration.verifyEmail [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the registers with your application.

    tenants[x].emailConfiguration.verifyEmailWhenChanged [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the user changes them.

    tenants[x].eventConfiguration.events [Object] Available since 1.8.0

    A mapping of the configuration for each event type that FusionAuth sends. The event types that are the keys into this Object are:

    • audit-log.create - When an audit log is created Available since 1.30.0

    • event-log.create - When an event log is created Available since 1.30.0

    • jwt.public-key.update - When a JWT RSA Public / Private keypair may have been changed

    • jwt.refresh - When an access token is refreshed using a refresh token Available since 1.16.0

    • jwt.refresh-token.revoke - When a JWT Refresh Token is revoked

    • kickstart.success - When kickstart has successfully completed Available since 1.30.0

    • user.action - When a user action is triggered

    • user.bulk.create - When multiple users are created in bulk (i.e. during an import)

    • user.create - When a user is created

    • user.create.complete - When a user create transaction has completed Available since 1.30.0

    • user.deactivate - When a user is deactivated

    • user.delete - When a user is deleted

    • user.delete.complete - When a user delete transaction has completed Available since 1.30.0

    • user.email.update - When a user updates their email address Available since 1.30.0

    • user.email.verified - When a user verifies their email address Available since 1.8.0

    • user.identity-provider.link - When a link is created from a user to an Identity Provider Available since 1.36.0

    • user.identity-provider.unlink - When an existing Identity Provider link is removed from a User Available since 1.36.0

    • user.loginId.duplicate.create - When a request to create a user with a login Id (email or username) which is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.loginId.duplicate.update - When a request to update a user and change their login Id (email or username) to one that is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.failed - When a user fails a login request Available since 1.6.0

    • user.login.new-device - When a user begins a login request with a new device Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.success - When a user completes a login request Available since 1.6.0

    • user.login.suspicious - When a user logs in and is considered to be a potential threat (requires an activated Enterprise license) Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.breach - When Reactor detects a user is using a potentially breached password (requires an activated license) Available since 1.15.0

      Note: A paid plan is required to utilize this event.

    • user.password.reset.send - When a forgot password email has been sent to a user Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.start - When the process to reset a user password has started Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.success - When a user has successfully reset their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.update - When a user has updated their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.reactivate - When a user is reactivated

    • user.registration.create - When a user registration is created Available since 1.6.0

    • user.registration.create.complete - When a user registration create transaction has completed Available since 1.30.0

    • user.registration.delete - When a user registration is deleted Available since 1.6.0

    • user.registration.delete.complete - When a user registration delete transaction has completed Available since 1.30.0

    • user.registration.update - When a user registration is updated Available since 1.6.0

    • user.registration.update.complete - When a user registration update transaction has completed Available since 1.30.0

    • user.registration.verified - When a user completes registration verification Available since 1.8.0

    • user.two-factor.method.add - When a user has added a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.two-factor.method.remove - When a user has removed a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.update - When a user is updated

    • user.update.complete - When a user update transaction has completed Available since 1.30.0

    tenants[x].eventConfiguration.events[type].enabled [Boolean] Available since 1.8.0

    Whether or not FusionAuth should send these types of events to any configured Webhooks.

    tenants[x].eventConfiguration.events[type].transactionType [String] Available since 1.8.0

    The transaction type that FusionAuth uses when sending these types of events to any configured Webhooks. The transaction types are:

    • None - No Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • Any - Only a single Webhook is required to succeed for the FusionAuth transaction to be committed.

    • SimpleMajority - A simple majority (50% or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • SuperMajority - A super majority (2/3 or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • AbsoluteMajority - Every Webhook must succeed for the FusionAuth transaction to be committed.

    tenants[x].externalIdentifierConfiguration.authorizationGrantIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an OAuth authorization code is no longer valid to be exchanged for an access token. This is essentially the time allowed between the start of an Authorization request during the Authorization code grant and when you request an access token using this authorization code on the Token endpoint.

    Value must be greater than 0 and less than or equal to 600.

    tenants[x].externalIdentifierConfiguration.changePasswordIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the change password Id.

    If the changePasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the changePasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenants[x].externalIdentifierConfiguration.changePasswordIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the change password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenants[x].externalIdentifierConfiguration.changePasswordIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a change password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.deviceCodeTimeToLiveInSeconds [Integer] Available since 1.11.0

    The time in seconds until a device code Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.deviceUserCodeIdGenerator.length [Integer] Available since 1.11.0

    The length of the secure generator used for generating the device code Id.

    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenants[x].externalIdentifierConfiguration.deviceUserCodeIdGenerator.type [String] Available since 1.11.0

    The type of the secure generator used for generating the device code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenants[x].externalIdentifierConfiguration.emailVerificationIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the the email verification Id.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenants[x].externalIdentifierConfiguration.emailVerificationIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the email verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenants[x].externalIdentifierConfiguration.emailVerificationIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an email verification Id is no longer valid and cannot be used by the Verify Email API. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.length [Integer] Available since 1.27.0

    The length of the secure generator used for generating the email verification one time code.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenants[x].externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.type [String] Available since 1.27.0

    The type of the secure generator used for generating the email verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenants[x].externalIdentifierConfiguration.externalAuthenticationIdTimeToLiveInSeconds [Integer] Available since 1.12.0

    The time in seconds until an external authentication Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.oneTimePasswordTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a One Time Password is no longer valid and cannot be used by the Login API. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.passwordlessLoginGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the passwordless login.

    If the passwordlessLoginGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the passwordlessLoginGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenants[x].externalIdentifierConfiguration.passwordlessLoginGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the passwordless login. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenants[x].externalIdentifierConfiguration.passwordlessLoginTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a passwordless code is no longer valid and cannot be used by the Passwordless API. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.pendingAccountLinkTimeToLiveInSeconds [Integer] Available since 1.28.0

    The number of seconds before the pending account link identifier is no longer valid to complete an account link request.

    tenants[x].externalIdentifierConfiguration.registrationVerificationIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the registration verification Id.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenants[x].externalIdentifierConfiguration.registrationVerificationIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the registration verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenants[x].externalIdentifierConfiguration.registrationVerificationIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a registration verification Id is no longer valid and cannot be used by the Verify Registration API. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.length [Integer] Available since 1.27.0

    The length of the secure generator used for generating the registration verification one time code.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenants[x].externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.type [String] Available since 1.27.0

    The type of the secure generator used for generating the registration verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenants[x].externalIdentifierConfiguration.samlv2AuthNRequestIdTimeToLiveInSeconds [Integer] Available since 1.19.0

    The time in seconds that a SAML AuthN request Id returned by the Start SAML v2 Login Request API will be eligible to be used to complete a SAML v2 Login request.

    tenants[x].externalIdentifierConfiguration.setupPasswordIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the setup password Id.

    If the setupPasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the setupPasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenants[x].externalIdentifierConfiguration.setupPasswordIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the setup password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenants[x].externalIdentifierConfiguration.setupPasswordIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a setup password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.trustTokenTimeToLiveInSeconds [Integer] Available since 1.33.0

    The number of seconds before the Trust Token is no longer valid to complete a request that requires trust. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.twoFactorIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a two factor Id is no longer valid and cannot be used by the Two Factor Login API. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the the two factor one time code Id.

    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenants[x].externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the two factor code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenants[x].externalIdentifierConfiguration.twoFactorOneTimeCodeIdTimeToLiveInSeconds [Integer] Available since 1.26.0

    The number of seconds before the Two-Factor One Time Code used to enable or disable a two-factor method is no longer valid. Must be greater than 0.

    tenants[x].externalIdentifierConfiguration.twoFactorTrustIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an issued Two Factor trust Id is no longer valid and the User will be required to complete Two Factor authentication during the next authentication attempt. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.webAuthnAuthenticationChallengeTimeToLiveInSeconds [Integer] Available since 1.41.0

    The time in seconds until a WebAuthn authentication challenge is no longer valid and the User will be required to restart the WebAuthn authentication ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.get API call. Value must be greater than 0.

    tenants[x].externalIdentifierConfiguration.webAuthnRegistrationChallengeTimeToLiveInSeconds [Integer] Available since 1.41.0

    The time in seconds until a WebAuthn registration challenge is no longer valid and the User will be required to restart the WebAuthn registration ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.create API call. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.actionCancelPolicy.onPasswordReset [Boolean] Available since 1.42.0

    Indicates whether you want the user to be able to self-service unlock their account prior to the action duration by completing a password reset workflow.

    tenants[x].failedAuthenticationConfiguration.actionDuration [Long] Available since 1.8.0

    The duration of the User Action. This value along with the actionDurationUnit will be used to set the duration of the User Action. Value must be greater than 0.

    tenants[x].failedAuthenticationConfiguration.actionDurationUnit [String] Available since 1.8.0

    The unit of time associated with a duration. The possible values are:

    • MINUTES

    • HOURS

    • DAYS

    • WEEKS

    • MONTHS

    • YEARS

    tenant.failedAuthenticationConfiguration.emailUser [String] Optional Available since 1.42.0

    Indicates you would like to email the user when the user’s account is locked due to this action being taken. This requires the User Action specified by the tenant.failedAuthenticationConfiguration.userActionId to also be configured for email. If the User Action is not configured to be able to email the user, this configuration will be ignored. See userEmailingEnabled on the User Action.

    tenants[x].failedAuthenticationConfiguration.resetCountInSeconds [Integer] Available since 1.8.0

    The length of time in seconds before the failed authentication count will be reset. Value must be greater than 0.

    For example, if tooManyAttempts is set to 5 and you fail to authenticate 4 times in a row, waiting for the duration specified here will cause your fifth attempt to start back at 1.

    tenants[x].failedAuthenticationConfiguration.tooManyAttempts [Integer] Available since 1.8.0

    The number of failed attempts considered to be too many. Once this threshold is reached the specified User Action will be applied to the user for the duration specified. Value must be greater than 0.

    tenants[x].failedAuthenticationConfiguration.userActionId [UUID] Available since 1.8.0

    The Id of the User Action that is applied when the threshold is reached for too many failed authentication attempts.

    tenants[x].familyConfiguration.allowChildRegistrations [Boolean] Available since 1.8.0

    Whether to allow child registrations.

    tenants[x].familyConfiguration.confirmChildEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use when confirming a child.

    tenants[x].familyConfiguration.deleteOrphanedAccounts [Boolean] Available since 1.8.0

    Indicates that child users without parental verification will be permanently deleted after tenants[x].familyConfiguration.deleteOrphanedAccountsDays days.

    tenants[x].familyConfiguration.deleteOrphanedAccountsDays [Integer] Available since 1.8.0

    The number of days from creation child users will be retained before being deleted for not completing parental verification. Value must be greater than 0.

    tenants[x].familyConfiguration.enabled [Boolean] Available since 1.8.0

    Whether family configuration is enabled.

    tenants[x].familyConfiguration.familyRequestEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use when a family request is made.

    tenants[x].familyConfiguration.maximumChildAge [Integer] Available since 1.8.0

    The maximum age of a child. Value must be greater than 0.

    tenants[x].familyConfiguration.minimumOwnerAge [Integer] Available since 1.8.0

    The minimum age to be an owner. Value must be greater than 0.

    tenants[x].familyConfiguration.parentEmailRequired [Boolean] Available since 1.8.0

    Whether a parent email is required.

    tenants[x].familyConfiguration.parentRegistrationEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use for parent registration.

    tenants[x].formConfiguration.adminUserFormId [UUID] Available since 1.20.0

    The unique Id of the form to use for the Add and Edit User form when used in the FusionAuth admin UI.

    tenants[x].httpSessionMaxInactiveInterval [Integer] Available since 1.8.0

    Time in seconds until an inactive session will be invalidated. Used when creating a new session in the FusionAuth OAuth frontend.

    tenants[x].id [UUID]

    The unique identifier for this Tenant.

    tenants[x].insertInstant [Long]

    The instant that the Tenant was added to the FusionAuth database.

    tenants[x].issuer [String] Available since 1.8.0

    The named issuer used to sign tokens, this is generally your public fully qualified domain.

    tenants[x].jwtConfiguration.accessTokenKeyId [UUID] Available since 1.8.0

    The unique id of the signing key used to sign the access token.

    tenants[x].jwtConfiguration.idTokenKeyId [UUID] Available since 1.8.0

    The unique id of the signing key used to sign the Id token.

    tenants[x].jwtConfiguration.refreshTokenExpirationPolicy [String] Available since 1.17.0

    The refresh token expiration policy. The following are valid values:

    • Fixed - the expiration is calculated from the time the token is issued.

    • SlidingWindow - the expiration is calculated from the last time the token was used.

    tenants[x].jwtConfiguration.refreshTokenRevocationPolicy.onLoginPrevented [Boolean] Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user action, such as locking an account based on a number of failed login attempts, prevents user login.

    tenants[x].jwtConfiguration.refreshTokenRevocationPolicy.onMultiFactorEnable [Boolean] Available since 1.42.0

    When enabled, all refresh tokens will be revoked when a user enables multi-factor authentication for the first time. This policy will not be applied when adding subsequent multi-factor methods to the user.

    tenants[x].jwtConfiguration.refreshTokenRevocationPolicy.onPasswordChanged [Boolean] Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user changes their password.

    tenants[x].jwtConfiguration.refreshTokenTimeToLiveInMinutes [Integer] Available since 1.8.0

    The length of time in minutes a Refresh Token is valid from the time it was issued. Value must be greater than 0.

    tenants[x].jwtConfiguration.refreshTokenUsagePolicy [String] Available since 1.17.0

    The refresh token usage policy. The following are valid values:

    • Reusable - the token does not change after it was issued.

    • OneTimeUse - the token value will be changed each time the token is used to refresh a JWT. The client must store the new value after each usage.

    tenants[x].jwtConfiguration.timeToLiveInSeconds [Integer] Available since 1.8.0

    The length of time in seconds this JWT is valid from the time it was issued. Value must be greater than 0.

    tenants[x].lambdaConfiguration.scimEnterpriseUserRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM Enterprise User request to a FusionAuth User.

    tenants[x].lambdaConfiguration.scimEnterpriseUserResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth Enterprise User to a SCIM Server response.

    tenants[x].lambdaConfiguration.scimGroupRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM Group Request Lambda that will be used to convert the SCIM Group request to a FusionAuth Group.

    tenants[x].lambdaConfiguration.scimGroupResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM GroupResponse Lambda that will be used to convert a FusionAuth Group to a SCIM Server response.

    tenants[x].lambdaConfiguration.scimUserRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM User request to a FusionAuth User.

    tenants[x].lambdaConfiguration.scimUserResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth User to a SCIM Server response.

    tenants[x].lastUpdateInstant [Long]

    The instant that the Tenant was last updated in the FusionAuth database.

    tenants[x].loginConfiguration.requireAuthentication [Boolean] Available since 1.26.0

    Indicates whether to require an API key for the Login API when an applicationId is not provided. When an applicationId is provided to the Login API call, the application configuration will take precedence.

    tenants[x].logoutURL [String] Available since 1.8.0

    The logout redirect URL when sending the user’s browser to the /oauth2/logout URI of the FusionAuth Front End. This value is only used when a logout URL is not defined in your Application.

    tenants[x].maximumPasswordAge.days [Integer] Available since 1.8.0

    The password maximum age in days. The number of days after which FusionAuth will require a user to change their password. Required when tenant.maximumPasswordAge.enabled is set to true.

    tenants[x].maximumPasswordAge.enabled [Boolean] Available since 1.8.0

    Indicates that the maximum password age is enabled and being enforced.

    tenants[x].minimumPasswordAge.seconds [Integer] Available since 1.8.0

    The password minimum age in seconds. When enabled FusionAuth will not allow a password to be changed until it reaches this minimum age. Required when tenant.minimumPasswordAge.enabled is set to true.

    tenants[x].minimumPasswordAge.enabled [Boolean] Available since 1.8.0

    Indicates that the minimum password age is enabled and being enforced.

    tenants[x].multiFactorConfiguration.authenticator.algorithm [String] Available since 1.26.0

    The algorithm used by the TOTP authenticator. This value is HmacSHA1 and read only.

    tenants[x].multiFactorConfiguration.authenticator.codeLength [Integer] Available since 1.26.0

    The length of the code generated by the TOTP. This value is 6 and read only.

    tenants[x].multiFactorConfiguration.authenticator.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize an authenticator application to complete a multi-factor authentication request. This method uses TOTP (Time-Based One-Time Password) as defined in RFC 6238 and often uses an native mobile app such as Google Authenticator.

    tenants[x].multiFactorConfiguration.authenticator.timeStep [Integer] Available since 1.26.0

    The time-step size in seconds. This value is 30 and read only.

    tenants[x].multiFactorConfiguration.email.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize an email address to complete a two-factor authentication request.

    tenants[x].multiFactorConfiguration.email.templateId [UUID] Available since 1.26.0

    The Id of the email template that is used when notifying a user to complete a two-factor authentication request.

    tenants[x].multiFactorConfiguration.sms.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize a mobile phone number to complete a two-factor authentication request.

    tenants[x].multiFactorConfiguration.sms.messengerId [UUID] Available since 1.26.0

    The messenger that is used to deliver a SMS two-factor authentication request.

    tenants[x].multiFactorConfiguration.sms.templateId [UUID] Available since 1.26.0

    The Id of the SMS template that is used when notifying a user to complete a two-factor authentication request.

    tenants[x].name [String]

    The unique name of the Tenant.

    tenants[x].oauthConfiguration.clientCredentialsAccessTokenPopulateLambdaId [UUID] Available since 1.26.0

    The Id of a lambda that will be called to populate the JWT during a client credentials grant.

    tenants[x].passwordEncryptionConfiguration.encryptionScheme [String] Available since 1.8.0

    The default method for encrypting the User’s password. The following encryptors are provided with FusionAuth:

    • salted-md5

    • salted-sha256

    • salted-hmac-sha256

    • salted-pbkdf2-hmac-sha256

    • salted-pbkdf2-hmac-sha256-512   Available since 1.34.0

    • bcrypt

    tenants[x].passwordEncryptionConfiguration.encryptionSchemeFactor [Integer] Available since 1.8.0

    The factor used by the password encryption scheme. If not provided, the PasswordEncryptor provides a default value. Generally this will be used as an iteration count to generate the hash. The actual use of this value is up to the PasswordEncryptor implementation.

    tenants[x].passwordEncryptionConfiguration.modifyEncryptionSchemeOnLogin [Boolean] Available since 1.8.0

    When enabled a user’s hash configuration will be modified to match these configured settings. This can be useful to increase a password hash strength over time or upgrade imported users to a more secure encryption scheme after an initial import.

    Beginning in version 1.42.0 when this configuration is enabled, in addition to re-hashing on login, the password will be re-hashed on password change as well.

    tenants[x].passwordValidationRules.breachDetection.enabled [Boolean] Available since 1.15.0

    Whether to enable Reactor breach detection. Requires an activated license.

    tenants[x].passwordValidationRules.breachDetection.matchMode [String] Available since 1.15.0

    The level of severity where Reactor will consider a breach. The following are valid values:

    • High Only requires a password match, this is the most secure and is recommended

    • Medium Exact match on username, email address or email sub-address

    • Low Exact match on an email or username, or the password is a common breached value

    tenants[x].passwordValidationRules.breachDetection.notifyUserEmailTemplateId [UUID] Available since 1.15.0

    The Id of the email template to use when notifying a user of a breached password.

    tenants[x].passwordValidationRules.breachDetection.onLogin [String] Available since 1.15.0

    The behavior when detecting breaches at time of user login. The following are valid values:

    • Off Do not perform breach detection at login

    • RecordOnly Only record the result, take no action

    • NotifyUser Notify the end user via email

    • RequireChange Require immediate password change

    tenants[x].passwordValidationRules.maxLength [Integer] Available since 1.8.0

    The maximum length of a password when a new user is created or a user requests a password change.

    tenants[x].passwordValidationRules.minLength [Integer] Available since 1.8.0

    The minimum length of a password when a new user is created or a user requests a password change.

    tenants[x].passwordValidationRules.rememberPreviousPasswords.count [Integer] Available since 1.8.0

    The number of previous passwords to remember. Value must be greater than 0.

    tenants[x].passwordValidationRules.rememberPreviousPasswords.enabled [Boolean] Available since 1.8.0

    Whether to prevent a user from using any of their previous passwords.

    tenants[x].passwordValidationRules.requireMixedCase [Boolean] Available since 1.8.0

    Whether to force the user to use at least one uppercase and one lowercase character.

    tenants[x].passwordValidationRules.requireNonAlpha [Boolean] Available since 1.8.0

    Whether to force the user to use at least one non-alphanumeric character.

    tenants[x].passwordValidationRules.requireNumber [Boolean] Available since 1.8.0

    Whether to force the user to use at least one number.

    tenants[x].passwordValidationRules.validateOnLogin [Boolean] Available since 1.15.0

    When enabled the user’s password will be validated during login. If the password does not meet the currently configured validation rules the user will be required to change their password.

    tenants[x].rateLimitConfiguration.failedLogin.limit [Integer] Available since 1.30.0

    The number of times a user can fail to login within the configured timePeriodInSeconds duration. If a Failed authentication action has been configured then it will take precedence.

    tenants[x].rateLimitConfiguration.failedLogin.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can fail login before being rate limited.

    tenants[x].rateLimitConfiguration.forgotPassword.limit [Integer] Available since 1.30.0

    The number of times a user can request a forgot password email within the configured timePeriodInSeconds duration.

    tenants[x].rateLimitConfiguration.forgotPassword.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a forgot password email before being rate limited.

    tenants[x].rateLimitConfiguration.sendEmailVerification.limit [Integer] Available since 1.30.0

    The number of times a user can request a verification email within the configured timePeriodInSeconds duration.

    tenants[x].rateLimitConfiguration.sendEmailVerification.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a verification email before being rate limited.

    tenants[x].rateLimitConfiguration.sendPasswordless.limit [Integer] Available since 1.30.0

    The number of times a user can request a passwordless login email within the configured timePeriodInSeconds duration.

    tenants[x].rateLimitConfiguration.sendPasswordless.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a passwordless login email before being rate limited.

    tenants[x].rateLimitConfiguration.sendRegistrationVerification.limit [Integer] Available since 1.30.0

    The number of times a user can request a registration verification email within the configured timePeriodInSeconds duration.

    tenants[x].rateLimitConfiguration.sendRegistrationVerification.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a registration verification email before being rate limited.

    tenants[x].rateLimitConfiguration.sendTwoFactor.limit [Integer] Available since 1.30.0

    The number of times a user can request a two-factor code by email or SMS within the configured timePeriodInSeconds duration.

    tenants[x].rateLimitConfiguration.sendTwoFactor.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a two-factor code by email or SMS before being rate limited.

    tenants[x].registrationConfiguration.blockedDomains [Array<String>] Optional Available since 1.30.0

    A list of unique domains that are not allowed to register when self service is enabled.

    tenants[x].scimServerConfiguration.clientEntityTypeId [UUID] Available since 1.36.0

    The Entity Type that will be used to represent SCIM Clients for this tenant.

    tenants[x].scimServerConfiguration.enabled [Boolean] Available since 1.36.0

    Whether or not this tenant has the SCIM endpoints enabled.

    tenants[x].scimServerConfiguration.schemas [Map] Available since 1.36.0

    JSON formatted as a SCIM Schemas endpoint response. Because the SCIM lambdas may modify the JSON response, ensure the Schema’s response matches that generated by the response lambdas. More about Schema definitions.

    tenants[x].scimServerConfiguration.serverEntityTypeId [UUID] Available since 1.36.0

    The Entity Type that will be used to represent SCIM Servers for this tenant.

    tenants[x].ssoConfiguration.deviceTrustTimeToLiveInSeconds [Integer] Available since 1.30.2

    The number of seconds before a trusted device is reset. When reset, a user is forced to complete captcha during login and complete two factor authentication if applicable.

    tenants[x].state [String] Available since 1.22.0

    The current state of the tenant. The following are valid values:

    • Active - The tenant is active.

    • PendingDelete - A delete request has been requested and is being processed.

    tenants[x].themeId [UUID] Available since 1.8.0

    The unique Id of the theme to be used to style the login page and other end user templates.

    tenants[x].userDeletePolicy.unverified.enabled [Boolean] Available since 1.13.0

    Indicates that users without a verified email address will be permanently deleted after tenants[x].userDeletePolicy.unverified.numberOfDaysToRetain days.

    tenants[x].userDeletePolicy.unverified.numberOfDaysToRetain [Integer] Available since 1.13.0

    The number of days from creation users will be retained before being deleted for not completing email verification. Value must be greater than 0.

    tenants[x].usernameConfiguration.unique.enabled [Boolean] Available since 1.27.0

    When true, FusionAuth will handle username collisions by generating a random suffix. Users with colliding usernames will be able to use the same one, but in the admin and API interfaces, a unique username will be displayed.

    tenants[x].usernameConfiguration.unique.numberOfDigits [Integer] Available since 1.27.0

    The maximum number of digits to use when building a unique suffix for a username. A number will be randomly selected and will be 1 or more digits up to this configured value in length. For example, if this value is 5, the suffix will be a number between 00001 and 99999, inclusive.

    tenants[x].usernameConfiguration.unique.separator [String] Available since 1.27.0

    A single character to use as a separator from the requested username and a unique suffix that is added when a duplicate username is detected. This value can be a single non alphanumeric ASCII character.

    tenants[x].usernameConfiguration.unique.strategy [String] Available since 1.29.0

    This strategy instructions FusionAuth when to append a unique suffix to the username. The possible values are:

    • Always - Always append a unique suffix even when the requested username is not in use.

    • OnCollision - Only append a unique suffix when the requested username is in use.

    tenants[x].webAuthnConfiguration.bootstrapWorkflow.authenticatorAttachmentPreference [String] Available since 1.41.0

    The authenticator attachment requirement for WebAuthn passkey registration when using the bootstrap workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    tenants[x].webAuthnConfiguration.bootstrapWorkflow.enabled [Boolean] Available since 1.41.0

    Whether the WebAuthn bootstrap workflow is enabled.

    tenants[x].webAuthnConfiguration.bootstrapWorkflow.userVerificationRequirement [String] Available since 1.41.0

    The user verification requirement for WebAuthn passkey registration and authentication when using the bootstrap workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    tenants[x].webAuthnConfiguration.debug [Boolean] Available since 1.41.0

    Whether debug event log output is enabled for WebAuthn.

    tenants[x].webAuthnConfiguration.enabled [Boolean] Available since 1.41.0

    Whether WebAuthn configuration is enabled.

    tenants[x].webAuthnConfiguration.reauthenticationWorkflow.authenticatorAttachmentPreference [String] Available since 1.41.0

    The authenticator attachment requirement for WebAuthn passkey registration when using the reauthentication workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    tenants[x].webAuthnConfiguration.reauthenticationWorkflow.enabled [Boolean] Available since 1.41.0

    Whether the WebAuthn reauthentication workflow is enabled.

    tenants[x].webAuthnConfiguration.reauthenticationWorkflow.userVerificationRequirement [String] Available since 1.41.0

    The user verification requirement for WebAuthn passkey registration and authentication when using the reauthentication workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    tenants[x].webAuthnConfiguration.relyingPartyId [String] Available since 1.41.0

    The Relying Party Id the tenant will use in WebAuthn ceremonies. Passkeys can only be used to authenticate on sites using the same Relying Party Id they were registered with.

    The default value is null, which instructs the WebAuthn JavaScript API to use the browser origin.

    tenants[x].webAuthnConfiguration.relyingPartyName [String] Available since 1.41.0

    The Relying Party name the tenant will use in WebAuthn ceremonies. This value is used only for display and may be shown by browser or OS dialogs during WebAuthn ceremonies.

    If no value is configured, the tenant.issuer value will be used.

    Example Response JSON for all the Tenants
    
    {
      "tenants": [
        {
          "accessControlConfiguration": {
            "uiIPAccessControlListId": "11d49de7-69f6-46fc-8270-0b3aa626327a"
          },
          "configured": true,
          "captchaConfiguration": {
            "captchaMethod": "GoogleRecaptchaV3",
            "enabled": false,
            "threshold": 0.5
          },
          "connectorPolicies": [
            {
              "connectorId": "e3306678-a53a-4964-9040-1c96f36dda72",
              "domains": [
                "*"
              ],
              "migrate": false
            },
            {
              "connectorId": "27f22280-7e55-4d1c-b9f8-239bf9cc1a5e",
              "domains": [
                "*"
              ],
              "migrate": true
            }
          ],
          "data": {
            "description": "No more secrets, Marty."
          },
          "emailConfiguration": {
            "additionalHeaders": [
              {
                "name": "X-SES-CONFIGURATION-SET",
                "value": "example_configuration_set_name"
              }
            ],
            "defaultFromEmail": "jared@piedpiper.com",
            "defaultFromName": "Jared Dunn",
            "emailUpdateEmailTemplateId": "ec3045c7-97d8-47f8-8725-61b93deacf5d",
            "emailVerifiedEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
            "forgotPasswordEmailTemplateId": "49aba1de-0225-45d7-a2b1-f9fe46b0242c",
            "host": "smtp.sendgrid.net",
            "implicitEmailVerificationAllowed": true,
            "loginIdInUseOnCreateEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
            "loginIdInUseOnUpdateEmailTemplateId": "2c3045c7-97d8-47f8-8725-61b93deacf5d",
            "loginNewDeviceEmailTemplateId": "3c3045c7-97d8-47f8-8725-61b93deacf5d",
            "loginSuspiciousEmailTemplateId": "4c3045c7-97d8-47f8-8725-61b93deacf5d",
            "password": "password",
            "passwordlessEmailTemplateId": "a917e23a-da58-4cda-be01-90f542f8c343",
            "passwordResetSuccessEmailTemplateId": "5c3045c7-97d8-47f8-8725-61b93deacf5d",
            "passwordUpdateEmailTemplateId": "6c3045c7-97d8-47f8-8725-61b93deacf5d",
            "port": 587,
            "properties": {
              "key": "value"
            },
            "security": "TLS",
            "setPasswordEmailTemplateId": "a9aba13e-0125-4fd7-a2b1-aaa146b02423",
            "twoFactorMethodAddEmailTemplateId": "7c3045c7-97d8-47f8-8725-61b93deacf5d",
            "twoFactorMethodRemoveEmailTemplateId": "8c3045c7-97d8-47f8-8725-61b93deacf5d",
            "unverified": {
              "allowEmailChangeWhenGated": false,
              "behavior": "Allow"
            },
            "username": "username",
            "verificationEmailTemplateId": "8da42c09-461c-45f3-b931-6e9f63b87ab5",
            "verificationStrategy": "FormField",
            "verifyEmail": true,
            "verifyEmailWhenChanged": true
          },
          "eventConfiguration": {
            "events": {
              "user.delete": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.create": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.update": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.deactivate": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.bulk.create": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.reactivate": {
                "enabled": true,
                "transactionType": "None"
              },
              "jwt.refresh": {
                "enabled": true,
                "transactionType": "None"
              },
              "jwt.refresh-token.revoke": {
                "enabled": true,
                "transactionType": "None"
              },
              "jwt.public-key.update": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.login.success": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.login.failed": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.password.breach": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.registration.create": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.registration.update": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.registration.delete": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.registration.verified": {
                "enabled": true,
                "transactionType": "None"
              },
              "user.email.verified": {
                "enabled": true,
                "transactionType": "None"
              }
            }
          },
          "externalIdentifierConfiguration": {
            "authorizationGrantIdTimeToLiveInSeconds": 30,
            "changePasswordIdGenerator": {
              "length": 32,
              "type": "randomBytes"
            },
            "changePasswordIdTimeToLiveInSeconds": 600,
            "deviceCodeTimeToLiveInSeconds": 1800,
            "deviceUserCodeIdGenerator": {
              "length": 6,
              "type": "randomAlphaNumeric"
            },
            "emailVerificationIdGenerator": {
              "length": 32,
              "type": "randomBytes"
            },
            "emailVerificationIdTimeToLiveInSeconds": 86400,
            "emailVerificationOneTimeCodeGenerator": {
              "length": 6,
              "type": "randomAlphaNumeric"
            },
            "externalAuthenticationIdTimeToLiveInSeconds": 300,
            "oneTimePasswordTimeToLiveInSeconds": 60,
            "passwordlessLoginGenerator": {
              "length": 32,
              "type": "randomBytes"
            },
            "passwordlessLoginTimeToLiveInSeconds": 180,
            "pendingAccountLinkTimeToLiveInSeconds": 3600,
            "registrationVerificationIdGenerator": {
              "length": 32,
              "type": "randomBytes"
            },
            "registrationVerificationIdTimeToLiveInSeconds": 86400,
            "registrationVerificationOneTimeCodeGenerator": {
              "length": 6,
              "type": "randomAlphaNumeric"
            },
            "samlv2AuthNRequestIdTimeToLiveInSeconds": 300,
            "setupPasswordIdGenerator": {
              "length": 32,
              "type": "randomBytes"
            },
            "setupPasswordIdTimeToLiveInSeconds": 86400,
            "twoFactorIdTimeToLiveInSeconds": 300,
            "twoFactorOneTimeCodeIdGenerator": {
              "length": 6,
              "type": "randomDigits"
            },
            "twoFactorOneTimeCodeIdTimeToLiveInSeconds": 60,
            "twoFactorTrustIdTimeToLiveInSeconds": 2592000,
            "webAuthnAuthenticationChallengeTimeToLiveInSeconds": 180,
            "webAuthnRegistrationChallengeTimeToLiveInSeconds": 180
          },
          "failedAuthenticationConfiguration": {
            "actionCancelPolicy": {
              "onPasswordReset": false
            },
            "actionDuration": 3,
            "actionDurationUnit": "MINUTES",
            "emailUser": false,
            "resetCountInSeconds": 60,
            "tooManyAttempts": 5,
            "userActionId": "16cfc707-268c-4c5b-8989-f71f3ee156d4"
          },
          "familyConfiguration": {
            "allowChildRegistrations": true,
            "confirmChildEmailTemplateId": "87654321-4321-8765-ba09-ba0987654321",
            "deleteOrphanedAccounts": false,
            "deleteOrphanedAccountsDays": 30,
            "enabled": true,
            "familyRequestEmailTemplateId": "57462514-a73b-cd76-0001-b8a65cd61230",
            "maximumChildAge": 12,
            "minimumOwnerAge": 21,
            "parentEmailRequired": false,
            "parentRegistrationEmailTemplateId": "12345678-1234-5678-90ab-1234567890ab"
          },
          "formConfiguration": {
            "adminUserFormId": "e92751a5-25f4-4bca-ad91-66cdf67725d2"
          },
          "httpSessionMaxInactiveInterval": 3600,
          "id": "32306536-3036-6431-3865-646430303332",
          "insertInstant": 1572469040579,
          "issuer": "https://example.com",
          "jwtConfiguration": {
            "accessTokenKeyId": "025233ca-d4f3-2aa4-eca9-7e4200e9b472",
            "enabled": true,
            "idTokenKeyId": "092dbedc-30af-4149-9c61-b578f2c72f59",
            "refreshTokenExpirationPolicy": "Fixed",
            "refreshTokenRevocationPolicy": {
              "onLoginPrevented": true,
              "onMultiFactorEnable": true,
              "onPasswordChanged": true
            },
            "refreshTokenTimeToLiveInMinutes": 43200,
            "refreshTokenUsagePolicy": "Reusable",
            "timeToLiveInSeconds": 3600
          },
          "lambdaConfiguration": {
            "scimEnterpriseUserRequestConverterId": "c2e70f8d-19bb-4df7-848a-33a9a1e26b84",
            "scimEnterpriseUserResponseConverterId": "44fc9553-8a2e-408f-8aa2-fa65b70b55e2",
            "scimGroupRequestConverterId": "66d65de0-1819-42f8-86ed-7daaa4e155dc",
            "scimGroupResponseConverterId": "79812ede-432f-4375-9b43-23c0fe996fef",
            "scimUserRequestConverterId": "8a51d7a1-5e3e-442a-b96a-0c31379bb3d4",
            "scimUserResponseConverterId": "c8720843-dc4f-4e6c-b6ca-500e9c44695f"
          },
          "lastUpdateInstant": 1595361143101,
          "loginConfiguration": {
            "requireAuthentication": true
          },
          "logoutURL": "http://example.com/logout",
          "maximumPasswordAge": {
            "days": 180,
            "enabled": false
          },
          "minimumPasswordAge": {
            "enabled": false,
            "seconds": 30
          },
          "multiFactorConfiguration": {
            "authenticator": {
              "algorithm": "HmacSHA1",
              "codeLength": 6,
              "enabled": true,
              "timeStep": 30
            },
            "email": {
              "enabled": true,
              "templateId": "d312fb71-d7d8-4b75-a497-6096a07220b3"
            },
            "loginPolicy": "Enabled",
            "sms": {
              "enabled": true,
              "messengerId": "0a4bae38-ffef-4c33-b74c-1d50c796f600",
              "templateId": "f35e04e6-72ec-4f52-b552-29cf950a4ed6"
            }
          },
          "name": "Playtronics Co.",
          "oauthConfiguration": {
            "clientCredentialsAccessTokenPopulateLambdaId": "46e120c1-4c22-473f-95b4-e2c187cd20c2"
          },
          "passwordEncryptionConfiguration": {
            "encryptionScheme": "salted-pbkdf2-hmac-sha256",
            "encryptionSchemeFactor": 24000,
            "modifyEncryptionSchemeOnLogin": false
          },
          "passwordValidationRules": {
            "breachDetection": {
              "enabled": true,
              "notifyUserEmailTemplateId": "e6c74b53-d43d-471e-ae7e-906456d0f341",
              "matchMode": "High",
              "onLogin": "Off"
            },
            "maxLength": 256,
            "minLength": 8,
            "rememberPreviousPasswords": {
              "count": 2,
              "enabled": true
            },
            "requireMixedCase": true,
            "requireNonAlpha": true,
            "requireNumber": true,
            "validateOnLogin": false
          },
          "scimServerConfiguration": {
            "clientEntityTypeId": "d9ed49f7-1106-4b20-acdb-5cbda76ae77e",
            "enabled": true,
            "serverEntityTypeId": "919e0ac5-1cf0-4fcf-a8fc-29d77a0d1d8f",
            "schemas": {}
          },
          "ssoConfiguration": {
            "deviceTrustTimeToLiveInSeconds": 31536000
          },
          "state": "Active",
          "themeId": "c6ad3fac-6f32-4db7-91a4-061ff035e871",
          "userDeletePolicy": {
            "unverified": {
              "enabled": true,
              "numberOfDaysToRetain": 30
            }
          },
          "usernameConfiguration": {
            "unique": {
              "enabled": false,
              "numberOfDigits": 5,
              "separator": "#",
              "strategy": "OnCollision"
            }
          },
          "webAuthnConfiguration": {
            "enabled": true,
            "bootstrapWorkflow": {
              "authenticatorAttachmentPreference": "crossPlatform",
              "enabled": true,
              "userVerificationRequirement": "required"
            },
            "debug": false,
            "reauthenticationWorkflow": {
              "authenticatorAttachmentPreference": "platform",
              "enabled": true,
              "userVerificationRequirement": "required"
            },
            "relyingPartyId": "piedpiper.com",
            "relyingPartyName": "Pied Piper"
          }
        }
      ]
    }

    Update a Tenant

    This API is used to update an existing Tenant.

    You must specify the Id of the Tenant you are updating on the URI.

    You must specify all of the properties of the Tenant when calling this API with the PUT HTTP method. When used with PUT, this API doesn’t merge the existing Tenant and your new data. It replaces the existing Tenant with your new data.

    Utilize the PATCH HTTP method to send specific changes to merge into an existing Tenant.

    Request

    Update the Tenant with the given Id

    URI

    PUT /api/tenant/{tenantId}

    PATCH /api/tenant/{tenantId}

    Available since 1.39.0

    When using the PATCH method, you can either use the same request body documentation that is provided for the PUT request for backward compatibility. Or you may use either JSON Patch/RFC 6902 or JSON Merge Patch/RFC 7396. See the PATCH documentation for more information.

    Available since 1.12.0

    When using the PATCH method, use the same request body documentation that is provided for the PUT request. The PATCH method will merge the provided request parameters into the existing object, this means all parameters are optional when using the PATCH method and you only provide the values you want changed. A null value can be used to remove a value. Patching an Array will result in all values from the new list being appended to the existing list, this is a known limitation to the current implementation of PATCH.

     

    Request Parameters

    tenantId [UUID] Required

    The Id of the Tenant to update.

    Request Headers

    X-FusionAuth-TenantId [String] Optional

    The unique Id of the tenant used to scope this API request.

    The tenant Id is not required on this request even when more than one tenant has been configured because the tenant can be identified based upon the request parameters or it is otherwise not required.

    Specify a tenant Id on this request when you want to ensure the request is scoped to a specific tenant. The tenant Id may be provided through this header or by using a tenant locked API key to achieve the same result.

    See Making an API request using a Tenant Id for additional information.

    Request Body

    sourceTenantId [UUID] Optional Available since 1.14.0

    The optional Id of an existing Tenant to make a copy of. A unique tenant.name is required. All other values will be copied from the source Tenant to the new Tenant.

    tenant.accessControlConfiguration.uiIPAccessControlListId [UUID] Optional Available since 1.30.0

    The Id of the IP Access Control List limiting access to all applications in this tenant.

    Note: An Enterprise plan is required to utilize IP ACLs.

    tenant.captchaConfiguration.captchaMethod [String] Optional Available since 1.30.0

    The type of captcha method to use. This field is required when tenant.captchaConfiguration.enabled is set to true. The possible values are:

    • GoogleRecaptchaV2 - use Google Recaptcha v2

    • GoogleRecaptchaV3 - use Google Recaptcha v3

    • HCaptcha - use HCaptcha

    • HCaptchaEnterprise - use HCaptcha Enterprise - v25

    Note: An Enterprise plan is required to utilize CAPTCHA.

    tenant.captchaConfiguration.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether captcha configuration is enabled.

    Note: An Enterprise plan is required to utilize CAPTCHA.

    tenant.captchaConfiguration.secretKey [String] Optional Available since 1.30.0

    The secret key for this captcha method. This field is required when tenant.captchaConfiguration.enabled is set to true.

    Note: An Enterprise plan is required to utilize CAPTCHA.

    tenant.captchaConfiguration.siteKey [String] Optional Available since 1.30.0

    The site key for this captcha method. This field is required when tenant.captchaConfiguration.enabled is set to true.

    Note: An Enterprise plan is required to utilize CAPTCHA.

    tenant.captchaConfiguration.threshold [Float] Optional defaults to 0.5 Available since 1.30.0

    The numeric threshold which separates a passing score from a failing one. This value only applies if using either the Google v3 or HCaptcha Enterprise method, otherwise this value is ignored.

    The value must be between 0.0 and 1.0. Values outside of that range will result in an error.

    Note: An Enterprise plan is required to utilize CAPTCHA.

    tenant.connectorPolicies [Array] Optional Available since 1.18.0

    A list of Connector policies. Users will be authenticated against Connectors in order. Each Connector can be included in this list at most once and must exist.

    tenant.connectorPolicies[x].connectorId [UUID] Optional defaults to the FusionAuth connector Id of e3306678-a53a-4964-9040-1c96f36dda72 Available since 1.18.0

    The identifier of the Connector to which this policy refers.

    tenant.connectorPolicies[x].domains [Array<String>] Optional defaults to ["*"] Available since 1.18.0

    An list of email domains to which this connector should apply.

    A value of ["*"] indicates this connector applies to all users.

    tenant.connectorPolicies[x].migrate [Boolean] Optional defaults to false Available since 1.18.0

    If true, the user’s data will be migrated to FusionAuth at first successful authentication; subsequent authentications will occur against the FusionAuth datastore. If false, the Connector’s source will be treated as authoritative.

    Prior to version 1.28.0 this value was required.

    tenant.data [Object] Optional

    An object that can hold any information about the Tenant that should be persisted.

    tenant.emailConfiguration.additionalHeaders [Array<Object>] Optional Available since 1.32.0

    The additional SMTP headers to be added to each outgoing email. Each SMTP header consists of a name and a value.

    tenant.emailConfiguration.debug [Boolean] Optional defaults to false Available since 1.37.0

    Determines if debug should be enabled to create an event log to assist in debugging SMTP errors.

    tenant.emailConfiguration.defaultFromEmail [String] Optional defaults to change-me@fusionauth.io Available since 1.16.0

    The default email address that emails will be sent from when a from address is not provided on an individual email template. This is the address part email address (i.e. Jared Dunn <jared@piedpiper.com>).

    tenant.emailConfiguration.defaultFromName [String] Optional Available since 1.16.0

    The default From Name used in sending emails when a from name is not provided on an individual email template. This is the display name part of the email address ( i.e. Jared Dunn <jared@piedpiper.com>).

    tenant.emailConfiguration.emailUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their email address is updated.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.emailVerifiedEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template used to notify a user that their email address has been verified.

    tenant.emailConfiguration.forgotPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user is sent a forgot password email.

    tenant.emailConfiguration.host [String] Optional defaults to localhost Available since 1.8.0

    The host name of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenant.emailConfiguration.implicitEmailVerificationAllowed Optional defaults to true Available since 1.32.0

    When set to true, this allows email to be verified as a result of completing a similar email based workflow such as change password. When set to false, the user must explicitly complete the email verification workflow even if the user has already completed a similar email workflow such as change password.

    tenant.emailConfiguration.loginIdInUseOnCreateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.loginIdInUseOnUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to update an existing account to use their login Id.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.loginNewDeviceEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they log in on a new device.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.loginSuspiciousEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a suspicious login occurs.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.password [String] Optional Available since 1.8.0

    An optional password FusionAuth will use to authenticate with the SMTP server.

    tenant.emailConfiguration.passwordlessEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Passwordless Email Template, sent to users when they start a passwordless login.

    tenant.emailConfiguration.passwordResetSuccessEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password has been reset.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.passwordUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their password has been updated.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.port [Integer] Optional defaults to 25 Available since 1.8.0

    The port of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenant.emailConfiguration.properties [String] Optional Available since 1.8.0

    Additional Email Configuration in a properties file formatted String.

    tenant.emailConfiguration.security [String] Optional defaults to NONE Available since 1.8.0

    The type of security protocol FusionAuth will use when connecting to the SMTP server. The possible values are:

    • NONE - no security will be used. All communications will be sent plaintext.

    • SSL - SSL will be used to connect to the SMTP server. This protocol is not recommended unless it is the only one your SMTP server supports.

    • TLS - TLS will be used to connect to the SMTP server. This is the preferred protocol for all SMTP servers.

    tenant.emailConfiguration.setPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user had their account created for them and they must set their password manually and they are sent an email to set their password.

    tenant.emailConfiguration.twoFactorMethodAddEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been added to their account.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.twoFactorMethodRemoveEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been removed from their account.

    Note: An Enterprise plan is required to utilize advanced threat detection emails.

    tenant.emailConfiguration.unverified.allowEmailChangeWhenGated [Boolean] Optional defaults to false Available since 1.27.0

    When this value is set to true, the user is allowed to change their email address when they are gated because they haven’t verified their email address.

    tenant.emailConfiguration.unverified.behavior [String] Optional defaults to Allow Available since 1.27.0

    The desired behavior during login for a user that does not have a verified email. The possible values are:

    • Allow - the user will be allowed to complete login.

    • Gated - verification is required before a user can complete login. The use of this value will require a paid edition of FusionAuth.

    tenant.emailConfiguration.username [String] Optional Available since 1.8.0

    An optional username FusionAuth will to authenticate with the SMTP server.

    tenant.emailConfiguration.verificationEmailTemplateId [UUID] Optional

    The Id of the Email Template used to send emails to users to verify that their email address is valid. If either the verifyEmail or verifyEmailWhenChanged fields are true, this field is required.

    tenant.emailConfiguration.verificationStrategy [String] Optional Available since 1.27.0

    The process by which the user will verify their email address. The possible values are:

    • ClickableLink - send the user a code with a clickable link.

    • FormField - send the user a short code intended to be manually entered into a form field. This is only available when tenant.emailConfiguration.unverified.behavior has the Gated value.

    tenant.emailConfiguration.verifyEmail [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the registers with your application.

    tenant.emailConfiguration.verifyEmailWhenChanged [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the user changes them.

    tenant.eventConfiguration.events [Object] Optional Available since 1.8.0

    A mapping of the configuration for each event type that FusionAuth sends. The event types that are the keys into this Object are:

    • audit-log.create - When an audit log is created Available since 1.30.0

    • event-log.create - When an event log is created Available since 1.30.0

    • jwt.public-key.update - When a JWT RSA Public / Private keypair may have been changed

    • jwt.refresh - When an access token is refreshed using a refresh token Available since 1.16.0

    • jwt.refresh-token.revoke - When a JWT Refresh Token is revoked

    • kickstart.success - When kickstart has successfully completed Available since 1.30.0

    • user.action - When a user action is triggered

    • user.bulk.create - When multiple users are created in bulk (i.e. during an import)

    • user.create - When a user is created

    • user.create.complete - When a user create transaction has completed Available since 1.30.0

    • user.deactivate - When a user is deactivated

    • user.delete - When a user is deleted

    • user.delete.complete - When a user delete transaction has completed Available since 1.30.0

    • user.email.update - When a user updates their email address Available since 1.30.0

    • user.email.verified - When a user verifies their email address Available since 1.8.0

    • user.identity-provider.link - When a link is created from a user to an Identity Provider Available since 1.36.0

    • user.identity-provider.unlink - When an existing Identity Provider link is removed from a User Available since 1.36.0

    • user.loginId.duplicate.create - When a request to create a user with a login Id (email or username) which is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.loginId.duplicate.update - When a request to update a user and change their login Id (email or username) to one that is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.failed - When a user fails a login request Available since 1.6.0

    • user.login.new-device - When a user begins a login request with a new device Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.success - When a user completes a login request Available since 1.6.0

    • user.login.suspicious - When a user logs in and is considered to be a potential threat (requires an activated Enterprise license) Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.breach - When Reactor detects a user is using a potentially breached password (requires an activated license) Available since 1.15.0

      Note: A paid plan is required to utilize this event.

    • user.password.reset.send - When a forgot password email has been sent to a user Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.start - When the process to reset a user password has started Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.success - When a user has successfully reset their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.update - When a user has updated their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.reactivate - When a user is reactivated

    • user.registration.create - When a user registration is created Available since 1.6.0

    • user.registration.create.complete - When a user registration create transaction has completed Available since 1.30.0

    • user.registration.delete - When a user registration is deleted Available since 1.6.0

    • user.registration.delete.complete - When a user registration delete transaction has completed Available since 1.30.0

    • user.registration.update - When a user registration is updated Available since 1.6.0

    • user.registration.update.complete - When a user registration update transaction has completed Available since 1.30.0

    • user.registration.verified - When a user completes registration verification Available since 1.8.0

    • user.two-factor.method.add - When a user has added a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.two-factor.method.remove - When a user has removed a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.update - When a user is updated

    • user.update.complete - When a user update transaction has completed Available since 1.30.0

    tenant.eventConfiguration.events[type].enabled [Boolean] Optional defaults to false Available since 1.8.0

    Whether or not FusionAuth should send these types of events to any configured Webhooks.

    tenant.eventConfiguration.events[type].transactionType [String] Optional defaults to None Available since 1.8.0

    The transaction type that FusionAuth uses when sending these types of events to any configured Webhooks. The transaction types are:

    • None - No Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • Any - Only a single Webhook is required to succeed for the FusionAuth transaction to be committed.

    • SimpleMajority - A simple majority (50% or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • SuperMajority - A super majority (2/3 or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • AbsoluteMajority - Every Webhook must succeed for the FusionAuth transaction to be committed.

    Prior to version 1.36.0, this value did not have a default. This meant at runtime the when the transaction type was calculated, it would be assumed to be AbsoluteMajority even though this value was not set in the domain.

    tenant.externalIdentifierConfiguration.authorizationGrantIdTimeToLiveInSeconds [Integer] Optional defaults to 30 Available since 1.8.0

    The time in seconds until a OAuth authorization code in no longer valid to be exchanged for an access token. This is essentially the time allowed between the start of an Authorization request during the Authorization code grant and when you request an access token using this authorization code on the Token endpoint.

    Value must be greater than 0 and less than or equal to 600.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.changePasswordIdGenerator.length [Integer] Optional defaults to 32 Available since 1.8.0

    The length of the secure generator used for generating the change password Id.

    If the changePasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the changePasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.changePasswordIdGenerator.type [String] Optional defaults to randomBytes Available since 1.8.0

    The type of the secure generator used for generating the change password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.changePasswordIdTimeToLiveInSeconds [Integer] Optional defaults to 600 Available since 1.8.0

    The time in seconds until a change password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.deviceCodeTimeToLiveInSeconds [Integer] Optional defaults to 300 Available since 1.11.0

    The time in seconds until a device code Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.deviceUserCodeIdGenerator.length [Integer] Optional defaults to 6 Available since 1.11.0

    The length of the secure generator used for generating the device code Id.

    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.deviceUserCodeIdGenerator.type [String] Optional defaults to randomAlphaNumeric Available since 1.11.0

    The type of the secure generator used for generating the device code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.emailVerificationIdGenerator.length [Integer] Optional defaults to 32 Available since 1.8.0

    The length of the secure generator used for generating the the email verification Id.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.emailVerificationIdGenerator.type [String] Optional defaults to randomBytes Available since 1.8.0

    The type of the secure generator used for generating the email verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.emailVerificationIdTimeToLiveInSeconds [Integer] Optional defaults to 86,400 Available since 1.8.0

    The time in seconds until a email verification Id is no longer valid and cannot be used by the Verify Email API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.length [Integer] Optional defaults to 6 Available since 1.27.0

    The length of the secure generator used for generating the email verification one time code.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.type [String] Optional defaults to randomAlphaNumeric Available since 1.27.0

    The type of the secure generator used for generating the email verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.externalAuthenticationIdTimeToLiveInSeconds [Integer] Optional defaults to 300 Available since 1.12.0

    The time in seconds until an external authentication Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.oneTimePasswordTimeToLiveInSeconds [Integer] Optional defaults to 60 Available since 1.8.0

    The time in seconds until a One Time Password is no longer valid and cannot be used by the Login API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.passwordlessLoginGenerator.length [Integer] Optional defaults to 32 Available since 1.8.0

    The length of the secure generator used for generating the passwordless login.

    If the passwordlessLoginGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the passwordlessLoginGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.passwordlessLoginGenerator.type [String] Optional defaults to randomBytes Available since 1.8.0

    The type of the secure generator used for generating the passwordless login. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.passwordlessLoginTimeToLiveInSeconds [Integer] Optional defaults to 180 Available since 1.8.0

    The time in seconds until a passwordless code is no longer valid and cannot be used by the Passwordless API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.pendingAccountLinkTimeToLiveInSeconds [Integer] Optional defaults to 3600 Available since 1.28.0

    The number of seconds before the pending account link identifier is no longer valid to complete an account link request. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.registrationVerificationIdGenerator.length [Integer] Optional defaults to 32 Available since 1.8.0

    The length of the secure generator used for generating the registration verification Id.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.registrationVerificationIdGenerator.type [String] Optional defaults to randomBytes Available since 1.8.0

    The type of the secure generator used for generating the registration verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.registrationVerificationIdTimeToLiveInSeconds [Integer] Optional defaults to 86,400 Available since 1.8.0

    The time in seconds until a registration verification Id is no longer valid and cannot be used by the Verify Registration API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.length [Integer] Optional defaults to 6 Available since 1.27.0

    The length of the secure generator used for generating the registration verification one time code.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.type [String] Optional defaults to randomAlphaNumeric Available since 1.27.0

    The type of the secure generator used for generating the registration verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

      Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.samlv2AuthNRequestIdTimeToLiveInSeconds [Integer] Optional defaults to 300 Available since 1.19.0

    The time in seconds that a SAML AuthN request Id returned by the Start SAML v2 Login Request API will be eligible to be used to complete a SAML v2 Login request.

    tenant.externalIdentifierConfiguration.setupPasswordIdGenerator.length [Integer] Optional defaults to 32 Available since 1.8.0

    The length of the secure generator used for generating the setup password Id.

    If the setupPasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the setupPasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.setupPasswordIdGenerator.type [String] Optional defaults to randomBytes Available since 1.8.0

    The type of the secure generator used for generating the setup password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.setupPasswordIdTimeToLiveInSeconds [Integer] Optional defaults to 86,400 Available since 1.8.0

    The time in seconds until a setup password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.trustTokenTimeToLiveInSeconds [Integer] Optional defaults to 180 Available since 1.33.0

    The number of seconds before the Trust Token is no longer valid to complete a request that requires trust. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorIdTimeToLiveInSeconds [Integer] Optional defaults to 300 Available since 1.8.0

    The time in seconds until a two factor Id is no longer valid and cannot be used by the Two Factor Login API. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.length [Integer] Optional defaults to 6 Available since 1.27.0

    The length of the secure generator used for generating the the two factor code Id.

    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.type [String] Optional defaults to randomDigits Available since 1.27.0

    The type of the secure generator used for generating the two factor one time code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdTimeToLiveInSeconds [Integer] Optional defaults to 60 Available since 1.26.0

    The number of seconds before the Two-Factor One Time Code used to enable or disable a two-factor method is no longer valid. Must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.twoFactorTrustIdTimeToLiveInSeconds [Integer] Optional defaults to 2,592,000 Available since 1.8.0

    The time in seconds until an issued Two Factor trust Id is no longer valid and the User will be required to complete Two Factor authentication during the next authentication attempt. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.externalIdentifierConfiguration.webAuthnAuthenticationChallengeTimeToLiveInSeconds [Integer] Optional defaults to 180 Available since 1.41.0

    The time in seconds until a WebAuthn authentication challenge is no longer valid and the User will be required to restart the WebAuthn authentication ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.get API call. Value must be greater than 0.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.externalIdentifierConfiguration.webAuthnRegistrationChallengeTimeToLiveInSeconds [Integer] Optional defaults to 180 Available since 1.41.0

    The time in seconds until a WebAuthn registration challenge is no longer valid and the User will be required to restart the WebAuthn registration ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.create API call. Value must be greater than 0.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.failedAuthenticationConfiguration.actionCancelPolicy.onPasswordReset [Boolean] Optional defaults to false Available since 1.42.0

    Indicates whether you want the user to be able to self-service unlock their account prior to the action duration by completing a password reset workflow.

    tenant.failedAuthenticationConfiguration.actionDuration [Long] Optional defaults to 3 Available since 1.8.0

    The duration of the User Action. This value along with the actionDurationUnit will be used to set the duration of the User Action. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.actionDurationUnit [String] Optional defaults to "MINUTES" Available since 1.8.0

    The unit of time associated with a duration. The possible values are:

    • MINUTES

    • HOURS

    • DAYS

    • WEEKS

    • MONTHS

    • YEARS

    tenant.failedAuthenticationConfiguration.emailUser [String] Optional defaults to false Available since 1.42.0

    Indicates you would like to email the user when the user’s account is locked due to this action being taken. This requires the User Action specified by the tenant.failedAuthenticationConfiguration.userActionId to also be configured for email. If the User Action is not configured to be able to email the user, this configuration will be ignored. See userEmailingEnabled on the User Action.

    The email template configuration will be in the User Action.

    tenant.failedAuthenticationConfiguration.resetCountInSeconds [Integer] Optional defaults to 60 Available since 1.8.0

    The length of time in seconds before the failed authentication count will be reset. Value must be greater than 0.

    For example, if tooManyAttempts is set to 5 and you fail to authenticate 4 times in a row, waiting for the duration specified here will cause your fifth attempt to start back at 1.

    tenant.failedAuthenticationConfiguration.tooManyAttempts [Integer] Optional defaults to 5 Available since 1.8.0

    The number of failed attempts considered to be too many. Once this threshold is reached the specified User Action will be applied to the user for the duration specified. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.userActionId [UUID] Optional Available since 1.8.0

    The Id of the User Action that is applied when the threshold is reached for too many failed authentication attempts.

    tenant.familyConfiguration.allowChildRegistrations [Boolean] Optional defaults to true Available since 1.8.0

    Whether to allow child registrations.

    tenant.familyConfiguration.confirmChildEmailTemplateId [UUID] Optional Available since 1.8.0

    The unique Id of the email template to use when confirming a child.

    tenant.familyConfiguration.deleteOrphanedAccounts [Boolean] Optional defaults to false Available since 1.8.0

    Indicates that child users without parental verification will be permanently deleted after tenant.familyConfiguration.deleteOrphanedAccountsDays days.

    tenant.familyConfiguration.deleteOrphanedAccountsDays [Integer] Optional defaults to 30 Available since 1.8.0

    The number of days from creation child users will be retained before being deleted for not completing parental verification. Value must be greater than 0.

    tenant.familyConfiguration.enabled [Boolean] Optional defaults to false Available since 1.8.0

    Whether family configuration is enabled.

    tenant.familyConfiguration.familyRequestEmailTemplateId [UUID] Optional Available since 1.8.0

    The unique Id of the email template to use when a family request is made.

    tenant.familyConfiguration.maximumChildAge [Integer] Optional defaults to 12 Available since 1.8.0

    The maximum age of a child. Value must be greater than 0.

    tenant.familyConfiguration.minimumOwnerAge [Integer] Optional defaults to 21 Available since 1.8.0

    The minimum age to be an owner. Value must be greater than 0.

    tenant.familyConfiguration.parentEmailRequired [Boolean] Optional defaults to false Available since 1.8.0

    Whether a parent email is required.

    tenant.familyConfiguration.parentRegistrationEmailTemplateId [UUID] Optional Available since 1.8.0

    The unique Id of the email template to use for parent registration.

    tenant.formConfiguration.adminUserFormId [UUID] Optional defaults to [see description] Available since 1.20.0

    The unique Id of the form to use for the Add and Edit User form when used in the FusionAuth admin UI.

    When this parameter is not provided, it will default to the form Id currently assigned to the Default tenant.

    Note: A paid plan is required to utilize custom forms.

    tenant.httpSessionMaxInactiveInterval [Integer] Optional defaults to 3600 Available since 1.8.0

    Time in seconds until an inactive session will be invalidated. Used when creating a new session in the FusionAuth OAuth frontend.

    tenant.issuer [String] Optional defaults to fusionauth.io Available since 1.8.0

    The named issuer used to sign tokens, this is generally your public fully qualified domain.

    Prior to version 1.30.0 this value was required.

    tenant.jwtConfiguration.accessTokenKeyId [UUID] Optional defaults to key value of the FusionAuth application Available since 1.8.0

    The unique id of the signing key used to sign the access token.

    Prior to version 1.30.0 this value was required.

    tenant.jwtConfiguration.idTokenKeyId [UUID] Optional defaults to key value of the FusionAuth application Available since 1.8.0

    The unique id of the signing key used to sign the Id token.

    Prior to version 1.30.0 this value was required.

    tenant.jwtConfiguration.refreshTokenExpirationPolicy [String] Optional defaults to Fixed Available since 1.17.0

    The refresh token expiration policy. The following are valid values:

    • Fixed - the expiration is calculated from the time the token is issued.

    • SlidingWindow - the expiration is calculated from the last time the token was used.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onLoginPrevented [Boolean] Optional defaults to true Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user action, such as locking an account based on a number of failed login attempts, prevents user login.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onMultiFactorEnable [Boolean] Optional defaults to false Available since 1.42.0

    When enabled, all refresh tokens will be revoked when a user enables multi-factor authentication for the first time. This policy will not be applied when adding subsequent multi-factor methods to the user.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onPasswordChanged [Boolean] Optional defaults to true Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user changes their password.

    tenant.jwtConfiguration.refreshTokenTimeToLiveInMinutes [Integer] Optional defaults to 43,200 Available since 1.8.0

    The length of time in minutes a Refresh Token is valid from the time it was issued. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.jwtConfiguration.refreshTokenUsagePolicy [String] Optional defaults to Reusable Available since 1.17.0

    The refresh token usage policy. The following are valid values:

    • Reusable - the token does not change after it was issued.

    • OneTimeUse - the token value will be changed each time the token is used to refresh a JWT. The client must store the new value after each usage.

    Prior to version 1.28.0 this value was required.

    tenant.jwtConfiguration.timeToLiveInSeconds [Integer] Optional defaults to 3,600 Available since 1.8.0

    The length of time in seconds this JWT is valid from the time it was issued. Value must be greater than 0.

    Prior to version 1.28.0 this value was required.

    tenant.lambdaConfiguration.scimEnterpriseUserRequestConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM Enterprise User request to a FusionAuth User.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.lambdaConfiguration.scimEnterpriseUserResponseConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth Enterprise User to a SCIM Server response.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.lambdaConfiguration.scimGroupRequestConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM Group Request Lambda that will be used to convert the SCIM Group request to a FusionAuth Group.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.lambdaConfiguration.scimGroupResponseConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM Group Response Lambda that will be used to convert a FusionAuth Group to a SCIM Server response.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.lambdaConfiguration.scimUserRequestConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM User request to a FusionAuth User.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.lambdaConfiguration.scimUserResponseConverterId [UUID] Optional Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth User to a SCIM Server response.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.logoutURL [String] Optional Available since 1.8.0

    The logout redirect URL when sending the user’s browser to the /oauth2/logout URI of the FusionAuth Front End. This value is only used when a logout URL is not defined in your Application.

    tenant.loginConfiguration.requireAuthentication [Boolean] Optional defaults to true Available since 1.26.0

    Indicates whether to require an API key for the Login API when an applicationId is not provided. When an applicationId is provided to the Login API call, the application configuration will take precedence.

    In almost all cases, you will want to this to be true.

    tenant.logoutURL [String] Optional Available since 1.8.0

    The logout redirect URL when sending the user’s browser to the /oauth2/logout URI of the FusionAuth Front End. This value is only used when a logout URL is not defined in your Application.

    tenant.maximumPasswordAge.days [Integer] Optional defaults to 180 Available since 1.8.0

    The password maximum age in days. The number of days after which FusionAuth will require a user to change their password. Required when tenant.maximumPasswordAge.enabled is set to true.

    tenant.maximumPasswordAge.enabled [Boolean] Optional defaults to false Available since 1.8.0

    Indicates that the maximum password age is enabled and being enforced.

    tenant.minimumPasswordAge.seconds [Integer] Optional defaults to 30 Available since 1.8.0

    The password minimum age in seconds. When enabled FusionAuth will not allow a password to be changed until it reaches this minimum age. Required when tenant.minimumPasswordAge.enabled is set to true.

    tenant.minimumPasswordAge.enabled [Boolean] Optional defaults to false Available since 1.8.0

    Indicates that the minimum password age is enabled and being enforced.

    tenant.multiFactorConfiguration.authenticator.enabled [Boolean] Optional defaults to true Available since 1.26.0

    When enabled, users may utilize an authenticator application to complete a multi-factor authentication request. This method uses TOTP (Time-Based One-Time Password) as defined in RFC 6238 and often uses an native mobile app such as Google Authenticator.

    tenant.multiFactorConfiguration.email.enabled [Boolean] Optional defaults to false Available since 1.26.0

    When enabled, users may utilize an email address to complete a multi-factor authentication request.

    tenant.multiFactorConfiguration.email.templateId [UUID] Optional Available since 1.26.0

    The Id of the email template that is used when notifying a user to complete a multi-factor authentication request. This field is required when tenant.multiFactorConfiguration.email.enabled is set to true.

    tenant.multiFactorConfiguration.loginPolicy [String] Optional Defaults to Enabled Available since 1.37.0

    When set to Enabled and a user has one or more two-factor methods configured, the user will be required to complete a two-factor challenge during login. When set to Disabled, even when a user has configured one or more two-factor methods, the user will not be required to complete a two-factor challenge during login. When set to Required, a two-factor challenge will be required during login. If a user has not configured any two-factor methods, they will not be able to log in.

    This value may be overridden by the value configured by the application.multiFactorConfiguration.loginPolicy.

    Supported values include:

    • Enabled - Require a two-factor challenge during login when an eligible method is available.

    • Disabled - Do not require a two-factor challenge during login.

    • Required - Require a two-factor challenge during login. A user will be required to configure 2FA if no eligible methods are available. Available since 1.42.0

    tenant.multiFactorConfiguration.sms.enabled [Boolean] Optional defaults to false Available since 1.26.0

    When enabled, users may utilize a mobile phone number to complete a multi-factor authentication request.

    tenant.multiFactorConfiguration.sms.messengerId [UUID] Optional Available since 1.26.0

    The messenger that is used to deliver a SMS multi-factor authentication request. This field is required when tenant.multiFactorConfiguration.sms.enabled is set to true.

    tenant.multiFactorConfiguration.sms.templateId [UUID] Optional Available since 1.26.0

    The Id of the SMS template that is used when notifying a user to complete a multi-factor authentication request. This field is required when tenant.multiFactorConfiguration.sms.enabled is set to true.

    tenant.name [String] Required

    The unique name of the Tenant.

    tenant.oauthConfiguration.clientCredentialsAccessTokenPopulateLambdaId [UUID] Optional Available since 1.26.0

    The Id of a lambda that will be called to populate the JWT during a client credentials grant.

    Note: A paid plan is required to utilize client credentials grant.

    tenant.passwordEncryptionConfiguration.encryptionScheme [String] Optional defaults to "salted-pbkdf2-hmac-sha256" Available since 1.8.0

    The default method for encrypting the User’s password. The following encryptors are provided with FusionAuth:

    • salted-md5

    • salted-sha256

    • salted-hmac-sha256

    • salted-pbkdf2-hmac-sha256

    • salted-pbkdf2-hmac-sha256-512   Available since 1.34.0

    • bcrypt

    tenant.passwordEncryptionConfiguration.encryptionSchemeFactor [Integer] Optional defaults to 24000 Available since 1.8.0

    The factor used by the password encryption scheme. If not provided, the PasswordEncryptor provides a default value. Generally this will be used as an iteration count to generate the hash. The actual use of this value is up to the PasswordEncryptor implementation.

    tenant.passwordEncryptionConfiguration.modifyEncryptionSchemeOnLogin [Boolean] Optional defaults to false Available since 1.8.0

    When enabled a user’s hash configuration will be modified to match these configured settings. This can be useful to increase a password hash strength over time or upgrade imported users to a more secure encryption scheme after an initial import.

    Beginning in version 1.42.0 when this configuration is enabled, in addition to re-hashing on login, the password will be re-hashed on password change as well.

    tenant.passwordValidationRules.breachDetection.enabled [Boolean] Optional defaults to false Available since 1.15.0

    Whether to enable Reactor breach detection. Requires an activated license.

    tenant.passwordValidationRules.breachDetection.matchMode [String] Optional Available since 1.15.0

    The level of severity where Reactor will consider a breach. The following are valid values:

    • High Only requires a password match, this is the most secure and is recommended

    • Medium Exact match on username, email address or email sub-address

    • Low Exact match on an email or username, or the password is a common breached value

    tenant.passwordValidationRules.breachDetection.notifyUserEmailTemplateId [UUID] Optional Available since 1.15.0

    The Id of the email template to use when notifying user of breached password. Required if tenant.passwordValidationRules.breachDetection.onLogin is set to NotifyUser.

    tenant.passwordValidationRules.breachDetection.onLogin [String] Optional Available since 1.15.0

    The behavior when detecting breaches at time of user login. The following are valid values:

    • Off Do not perform breach detection at login

    • RecordOnly Only record the result, take no action

    • NotifyUser Notify the end user via email

    • RequireChange Require immediate password change

    tenant.passwordValidationRules.maxLength [Integer] Optional defaults to 256 Available since 1.8.0

    The maximum length of a password when a new user is created or a user requests a password change.

    tenant.passwordValidationRules.minLength [Integer] Optional defaults to 8 Available since 1.8.0

    The minimum length of a password when a new user is created or a user requests a password change.

    tenant.passwordValidationRules.rememberPreviousPasswords.count [Integer] Optional Available since 1.8.0

    The number of previous passwords to remember. Value must be greater than 0.

    tenant.passwordValidationRules.rememberPreviousPasswords.enabled [Boolean] Optional defaults to false Available since 1.8.0

    Whether to prevent a user from using any of their previous passwords.

    tenant.passwordValidationRules.requireMixedCase [Boolean] Optional defaults to false Available since 1.8.0

    Whether to force the user to use at least one uppercase and one lowercase character.

    tenant.passwordValidationRules.requireNonAlpha [Boolean] Optional defaults to false Available since 1.8.0

    Whether to force the user to use at least one non-alphanumeric character.

    tenant.passwordValidationRules.requireNumber [Boolean] Optional defaults to false Available since 1.8.0

    Whether to force the user to use at least one number.

    tenant.passwordValidationRules.validateOnLogin [Boolean] Optional defaults to false Available since 1.15.0

    When enabled the user’s password will be validated during login. If the password does not meet the currently configured validation rules the user will be required to change their password.

    tenant.rateLimitConfiguration.failedLogin.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for failed login.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.failedLogin.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can fail to login within the configured timePeriodInSeconds duration. If a Failed authentication action has been configured then it will take precedence.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.failedLogin.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can fail login before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.forgotPassword.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for forgot password.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.forgotPassword.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can request a forgot password email within the configured timePeriodInSeconds duration.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.forgotPassword.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can request a forgot password email before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendEmailVerification.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for send email verification.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendEmailVerification.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can request a verification email within the configured timePeriodInSeconds duration.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendEmailVerification.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can request a verification email before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendPasswordless.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for send passwordless.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendPasswordless.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can request a passwordless login email within the configured timePeriodInSeconds duration.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendPasswordless.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can request a passwordless login email before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendRegistrationVerification.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for send registration verification.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendRegistrationVerification.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can request a registration verification email within the configured timePeriodInSeconds duration.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendRegistrationVerification.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can request a registration verification email before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendTwoFactor.enabled [Boolean] Optional defaults to false Available since 1.30.0

    Whether rate limiting is enabled for send two factor.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendTwoFactor.limit [Integer] Optional defaults to 5 Available since 1.30.0

    The number of times a user can request a two-factor code by email or SMS within the configured timePeriodInSeconds duration.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.rateLimitConfiguration.sendTwoFactor.timePeriodInSeconds [Integer] Optional defaults to 60 Available since 1.30.0

    The duration for the number of times a user can request a two-factor code by email or SMS before being rate limited.

    Required when enabled is set to true.

    Note: An Enterprise plan is required to utilize rate limiting.

    tenant.registrationConfiguration.blockedDomains [Array<String>] Optional Available since 1.30.0

    A list of unique domains that are not allowed to register when self service is enabled.

    Note: An Enterprise plan is required to utilize blocked domains.

    tenant.scimServerConfiguration.clientEntityTypeId [UUID] Optional Available since 1.36.0

    The Entity Type that will be used to represent SCIM Clients for this tenant.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.scimServerConfiguration.enabled [Boolean] Optional Available since 1.36.0

    Whether or not this tenant has the SCIM endpoints enabled.

    Note: An Enterprise plan is required to utilize SCIM.

    tenant.scimServerConfiguration.schemas [Map] Optional defaults to [see description] Available since 1.36.0

    JSON formatted as a SCIM Schemas endpoint response. Because the SCIM lambdas may modify the JSON response, ensure the Schema’s response matches that generated by the response lambdas. More about Schema definitions.

    When this parameter is not provided, it will default to EnterpriseUser, Group, and User schema definitions as defined by the SCIM core schemas spec.

    Note: An Enterprise plan is required to utilize SCIM.

    tenant.scimServerConfiguration.serverEntityTypeId [UUID] Optional Available since 1.36.0

    The Entity Type that will be used to represent SCIM Servers for this tenant.

    Note: An Enterprise plan is required to utilize SCIM.

    Required when tenant.scimServerConfiguration.enabled is true.

    tenant.ssoConfiguration.deviceTrustTimeToLiveInSeconds [Integer] Optional defaults to 31,536,000 (1 year) Available since 1.30.2

    The number of seconds before a trusted device is reset. When reset, a user is forced to complete captcha during login and complete two factor authentication if applicable.

    tenant.themeId [UUID] Optional defaults to the default tenant theme Id of 75a068fd-e94b-451a-9aeb-3ddb9a3b5987 Available since 1.8.0

    The unique Id of the theme to be used to style the login page and other end user templates.

    Prior to version 1.30.0 this value was required.

    tenant.userDeletePolicy.unverified.enabled [Boolean] Optional defaults to false Available since 1.13.0

    Indicates that users without a verified email address will be permanently deleted after tenant.userDeletePolicy.unverified.numberOfDaysToRetain days.

    tenant.userDeletePolicy.unverified.numberOfDaysToRetain [Integer] Optional Available since 1.13.0

    The number of days from creation users will be retained before being deleted for not completing email verification. This field is required when tenant.userDeletePolicy.unverified.enabled is set to true. Value must be greater than 0.

    tenant.usernameConfiguration.unique.enabled [Boolean] Optional defaults to false Available since 1.27.0

    When true, FusionAuth will handle username collisions by generating a random suffix.

    Note: A paid plan is required to utilize unique usernames.

    tenant.usernameConfiguration.unique.numberOfDigits [Integer] Optional defaults to 5 Available since 1.27.0

    The maximum number of digits to use when building a unique suffix for a username. A number will be randomly selected and will be 1 or more digits up to this configured value in length. For example, if this value is 5, the suffix will be a number between 00001 and 99999, inclusive. The value of this field must be greater than or equal to 3 and less than or equal to 10.

    tenant.usernameConfiguration.unique.separator [String] Optional defaults to the # character Available since 1.27.0

    A single character to use as a separator from the requested username and a unique suffix that is added when a duplicate username is detected. This value can be a single non-alphanumeric ASCII character.

    tenant.usernameConfiguration.unique.strategy [String] Optional defaults to OnCollision Available since 1.29.0

    This strategy instructions FusionAuth when to append a unique suffix to the username. The possible values are:

    • Always - Always append a unique suffix even when the requested username is not in use.

    • OnCollision - Only append a unique suffix when the requested username is in use.

    tenant.webAuthnConfiguration.bootstrapWorkflow.authenticatorAttachmentPreference [String] Optional defaults to crossPlatform Available since 1.41.0

    Determines the authenticator attachment requirement for WebAuthn passkey registration when using the bootstrap workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    The recommended value for the bootstrap workflow is any.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    Note: An Enterprise plan is required to utilize WebAuthn cross-platform authenticators.

    tenant.webAuthnConfiguration.bootstrapWorkflow.enabled [Boolean] Optional defaults to false Available since 1.41.0

    Whether or not this tenant has the WebAuthn bootstrap workflow enabled. The bootstrap workflow is used when the user must "bootstrap" the authentication process by identifying themselves prior to the WebAuthn ceremony and can be used to authenticate from a new device using WebAuthn.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.bootstrapWorkflow.userVerificationRequirement [String] Optional defaults to required Available since 1.41.0

    Determines the user verification requirement for WebAuthn passkey registration and authentication when using the bootstrap workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    It is highly recommended to use the required option for the bootstrap workflow.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.debug [Boolean] Optional defaults to false Available since 1.41.0

    Determines if debug should be enabled for this tenant to create an event log to assist in debugging WebAuthn errors.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.enabled [Boolean] Optional defaults to false Available since 1.41.0

    Whether or not this tenant has WebAuthn enabled globally.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.authenticatorAttachmentPreference [String] Optional defaults to crossPlatform Available since 1.41.0

    Determines the authenticator attachment requirement for WebAuthn passkey registration when using the reauthentication workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    The recommended value for the reauthentication workflow is platform.

    Note: A paid plan is required to utilize unique usernames.

    Note: An Enterprise plan is required to utilize WebAuthn cross-platform authenticators.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.enabled [Boolean] Optional defaults to false Available since 1.41.0

    Whether or not this tenant has the WebAuthn reauthentication workflow enabled. The reauthentication workflow will automatically prompt a user to authenticate using WebAuthn for repeated logins from the same device.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.userVerificationRequirement [String] Optional defaults to required Available since 1.41.0

    Determines the user verification requirement for WebAuthn passkey registration and authentication when using the reauthentication workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    It is highly recommended to use the required option for the reauthentication workflow.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.relyingPartyId [String] Optional defaults to [see description] Available since 1.41.0

    The value this tenant will use for the Relying Party Id in WebAuthn ceremonies. Passkeys can only be used to authenticate on sites using the same Relying Party Id they were registered with. This value must match the browser origin or be a registrable domain suffix of the browser origin. For example, if your domain is auth.piedpiper.com, you could use auth.piedpiper.com or piedpiper.com but not m.auth.piedpiper.com or com.

    When this parameter is omitted, FusionAuth will use null for the Relying Party Id in passkey creation and request options. A null value in the WebAuthn JavaScript API will use the browser origin.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    tenant.webAuthnConfiguration.relyingPartyName [String] Optional defaults to [see description] Available since 1.41.0

    The value this tenant will use for the Relying Party name in WebAuthn ceremonies. This value may be displayed by browser or operating system dialogs during WebAuthn ceremonies.

    When this parameter is omitted, FusionAuth will use the tenant.issuer value.

    Note: An Essentials or Enterprise plan is required to utilize WebAuthn.

    webhookIds [Array<UUID>] Optional Available since 1.37.0

    An array of Webhook Ids. For Webhooks that are not already configured for All Tenants, specifying an Id on this request will indicate the associated Webhook should handle events for this tenant.

    Example Request JSON
    
    {
      "tenant": {
        "accessControlConfiguration": {
          "uiIPAccessControlListId": "11d49de7-69f6-46fc-8270-0b3aa626327a"
        },
        "captchaConfiguration": {
          "captchaMethod": "GoogleRecaptchaV3",
          "enabled": true,
          "secretKey": "6LdYWpMbAAAAAKhcksgk70us00012r66r96tt7rp",
          "siteKey": "6LdYWpMbAAAAAKhcksgk75tz00022r66ombcfadr",
          "threshold": 0.5
        },
        "connectorPolicies": [
          {
            "connectorId": "e3306678-a53a-4964-9040-1c96f36dda72",
            "domains": [
              "*"
            ],
            "migrate": false
          },
          {
            "connectorId": "27f22280-7e55-4d1c-b9f8-239bf9cc1a5e",
            "domains": [
              "*"
            ],
            "migrate": true
          }
        ],
        "data": {
          "description": "No more secrets, Marty."
        },
        "emailConfiguration": {
          "additionalHeaders": [
            {
              "name": "X-SES-CONFIGURATION-SET",
              "value": "example_configuration_set_name"
            }
          ],
          "defaultFromEmail": "jared@piedpiper.com",
          "defaultFromName": "Jared Dunn",
          "emailUpdateEmailTemplateId": "ec3045c7-97d8-47f8-8725-61b93deacf5d",
          "emailVerifiedEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
          "forgotPasswordEmailTemplateId": "49aba1de-0225-45d7-a2b1-f9fe46b0242c",
          "host": "smtp.sendgrid.net",
          "implicitEmailVerificationAllowed": true,
          "loginIdInUseOnCreateEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginIdInUseOnUpdateEmailTemplateId": "2c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginNewDeviceEmailTemplateId": "3c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginSuspiciousEmailTemplateId": "4c3045c7-97d8-47f8-8725-61b93deacf5d",
          "password": "password",
          "passwordlessEmailTemplateId": "a917e23a-da58-4cda-be01-90f542f8c343",
          "passwordResetSuccessEmailTemplateId": "5c3045c7-97d8-47f8-8725-61b93deacf5d",
          "passwordUpdateEmailTemplateId": "6c3045c7-97d8-47f8-8725-61b93deacf5d",
          "port": 587,
          "properties": {
            "key": "value"
          },
          "security": "TLS",
          "setPasswordEmailTemplateId": "a9aba13e-0125-4fd7-a2b1-aaa146b02423",
          "twoFactorMethodAddEmailTemplateId": "7c3045c7-97d8-47f8-8725-61b93deacf5d",
          "twoFactorMethodRemoveEmailTemplateId": "8c3045c7-97d8-47f8-8725-61b93deacf5d",
          "unverified": {
            "allowEmailChangeWhenGated": false,
            "behavior": "Allow"
          },
          "username": "username",
          "verificationEmailTemplateId": "8da42c09-461c-45f3-b931-6e9f63b87ab5",
          "verificationStrategy": "FormField",
          "verifyEmail": true,
          "verifyEmailWhenChanged": true
        },
        "eventConfiguration": {
          "events": {
            "user.delete": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.deactivate": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.bulk.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.reactivate": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.refresh": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.refresh-token.revoke": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.public-key.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.login.success": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.login.failed": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.password.breach": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.delete": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.verified": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.email.verified": {
              "enabled": true,
              "transactionType": "None"
            }
          }
        },
        "externalIdentifierConfiguration": {
          "authorizationGrantIdTimeToLiveInSeconds": 30,
          "changePasswordIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "changePasswordIdTimeToLiveInSeconds": 600,
          "deviceCodeTimeToLiveInSeconds": 1800,
          "deviceUserCodeIdGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "emailVerificationIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "emailVerificationIdTimeToLiveInSeconds": 86400,
          "emailVerificationOneTimeCodeGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "externalAuthenticationIdTimeToLiveInSeconds": 300,
          "oneTimePasswordTimeToLiveInSeconds": 60,
          "passwordlessLoginGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "passwordlessLoginTimeToLiveInSeconds": 180,
          "pendingAccountLinkTimeToLiveInSeconds": 3600,
          "registrationVerificationIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "registrationVerificationIdTimeToLiveInSeconds": 86400,
          "registrationVerificationOneTimeCodeGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "samlv2AuthNRequestIdTimeToLiveInSeconds": 300,
          "setupPasswordIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "setupPasswordIdTimeToLiveInSeconds": 86400,
          "trustTokenTimeToLiveInSeconds": 180,
          "twoFactorIdTimeToLiveInSeconds": 300,
          "twoFactorOneTimeCodeIdGenerator": {
            "length": 6,
            "type": "randomDigits"
          },
          "twoFactorOneTimeCodeIdTimeToLiveInSeconds": 60,
          "twoFactorTrustIdTimeToLiveInSeconds": 2592000,
          "webAuthnAuthenticationChallengeTimeToLiveInSeconds": 180,
          "webAuthnRegistrationChallengeTimeToLiveInSeconds": 180
        },
        "failedAuthenticationConfiguration": {
          "actionCancelPolicy": {
            "onPasswordReset": false
          },
          "actionDuration": 3,
          "actionDurationUnit": "MINUTES",
          "emailUser": false,
          "resetCountInSeconds": 60,
          "tooManyAttempts": 5,
          "userActionId": "16cfc707-268c-4c5b-8989-f71f3ee156d4"
        },
        "familyConfiguration": {
          "allowChildRegistrations": true,
          "confirmChildEmailTemplateId": "87654321-4321-8765-ba09-ba0987654321",
          "deleteOrphanedAccounts": false,
          "deleteOrphanedAccountsDays": 30,
          "enabled": true,
          "familyRequestEmailTemplateId": "57462514-a73b-cd76-0001-b8a65cd61230",
          "maximumChildAge": 12,
          "minimumOwnerAge": 21,
          "parentEmailRequired": false,
          "parentRegistrationEmailTemplateId": "12345678-1234-5678-90ab-1234567890ab"
        },
        "formConfiguration": {
          "adminUserFormId": "e92751a5-25f4-4bca-ad91-66cdf67725d2"
        },
        "httpSessionMaxInactiveInterval": 3600,
        "issuer": "https://example.com",
        "jwtConfiguration": {
          "accessTokenKeyId": "025233ca-d4f3-2aa4-eca9-7e4200e9b472",
          "enabled": true,
          "idTokenKeyId": "092dbedc-30af-4149-9c61-b578f2c72f59",
          "refreshTokenExpirationPolicy": "Fixed",
          "refreshTokenRevocationPolicy": {
            "onLoginPrevented": true,
            "onMultiFactorEnable": true,
            "onPasswordChanged": true
          },
          "refreshTokenTimeToLiveInMinutes": 43200,
          "refreshTokenUsagePolicy": "Reusable",
          "timeToLiveInSeconds": 3600
        },
        "lambdaConfiguration": {
          "scimEnterpriseUserRequestConverterId": "c2e70f8d-19bb-4df7-848a-33a9a1e26b84",
          "scimEnterpriseUserResponseConverterId": "44fc9553-8a2e-408f-8aa2-fa65b70b55e2",
          "scimGroupRequestConverterId": "66d65de0-1819-42f8-86ed-7daaa4e155dc",
          "scimGroupResponseConverterId": "79812ede-432f-4375-9b43-23c0fe996fef",
          "scimUserRequestConverterId": "8a51d7a1-5e3e-442a-b96a-0c31379bb3d4",
          "scimUserResponseConverterId": "c8720843-dc4f-4e6c-b6ca-500e9c44695f"
        },
        "logoutURL": "http://example.com/logout",
        "maximumPasswordAge": {
          "days": 180,
          "enabled": false
        },
        "minimumPasswordAge": {
          "enabled": false,
          "seconds": 30
        },
        "multiFactorConfiguration": {
          "authenticator": {
            "enabled": true
          },
          "email": {
            "enabled": true,
            "templateId": "d312fb71-d7d8-4b75-a497-6096a07220b3"
          },
          "loginPolicy": "Enabled",
          "sms": {
            "enabled": true,
            "messengerId": "0a4bae38-ffef-4c33-b74c-1d50c796f600",
            "templateId": "f35e04e6-72ec-4f52-b552-29cf950a4ed6"
          }
        },
        "name": "Playtronics Co.",
        "oauthConfiguration": {
          "clientCredentialsAccessTokenPopulateLambdaId": "46e120c1-4c22-473f-95b4-e2c187cd20c2"
        },
        "passwordEncryptionConfiguration": {
          "encryptionScheme": "salted-pbkdf2-hmac-sha256",
          "encryptionSchemeFactor": 24000,
          "modifyEncryptionSchemeOnLogin": false
        },
        "passwordValidationRules": {
          "breachDetection": {
            "enabled": true,
            "notifyUserEmailTemplateId": "e6c74b53-d43d-471e-ae7e-906456d0f341",
            "matchMode": "High",
            "onLogin": "Off"
          },
          "maxLength": 256,
          "minLength": 8,
          "rememberPreviousPasswords": {
            "count": 2,
            "enabled": true
          },
          "requireMixedCase": true,
          "requireNonAlpha": true,
          "requireNumber": true,
          "validateOnLogin": false
        },
        "rateLimitConfiguration": {
          "failedLogin": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "forgotPassword": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendEmailVerification": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendRegistrationVerification": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendPasswordless": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendTwoFactor": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          }
        },
        "registrationConfiguration": {},
        "scimServerConfiguration": {
          "clientEntityTypeId": "d9ed49f7-1106-4b20-acdb-5cbda76ae77e",
          "enabled": true,
          "serverEntityTypeId": "919e0ac5-1cf0-4fcf-a8fc-29d77a0d1d8f",
          "schemas": {}
        },
        "ssoConfiguration": {
          "deviceTrustTimeToLiveInSeconds": 31536000
        },
        "themeId": "c6ad3fac-6f32-4db7-91a4-061ff035e871",
        "userDeletePolicy": {
          "unverified": {
            "enabled": true,
            "numberOfDaysToRetain": 30
          }
        },
        "usernameConfiguration": {
          "unique": {
            "enabled": false,
            "numberOfDigits": 5,
            "separator": "#"
          }
        },
        "webAuthnConfiguration": {
          "enabled": true,
          "bootstrapWorkflow": {
            "authenticatorAttachmentPreference": "crossPlatform",
            "enabled": true,
            "userVerificationRequirement": "required"
          },
          "debug": false,
          "reauthenticationWorkflow": {
            "authenticatorAttachmentPreference": "platform",
            "enabled": true,
            "userVerificationRequirement": "required"
          },
          "relyingPartyId": "piedpiper.com",
          "relyingPartyName": "Pied Piper"
        },
        "webhookIds": [
          "00000000-0000-0000-0000-000000000042"
        ]
      }
    }

    Response

    The response for this API contains the Tenant that was updated.

    Table 3. Response Codes
    Code Description

    200

    The request was successful. The response will contain a JSON body.

    400

    The request was invalid and/or malformed. The response will contain an Errors JSON Object with the specific errors. This status will also be returned if a paid FusionAuth license is required and is not present.

    401

    You did not supply a valid Authorization header. The header was omitted or your API key was not valid. The response will be empty. See Authentication.

    404

    The object you are trying to update doesn’t exist. The response will be empty.

    500

    There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty.

    Response Body

    tenant.accessControlConfiguration.uiIPAccessControlListId [UUID] Available since 1.30.0

    The Id of the IP Access Control List limiting access to this all applications in this tenant.

    tenant.captchaConfiguration.captchaMethod [String] Available since 1.30.0

    The type of captcha method to use.

    tenant.captchaConfiguration.enabled [Boolean] Available since 1.30.0

    Whether captcha configuration is enabled.

    tenant.captchaConfiguration.secretKey [String] Available since 1.30.0

    The secret key for this captcha method.

    tenant.captchaConfiguration.siteKey [String] Available since 1.30.0

    The site key for this captcha method.

    tenant.captchaConfiguration.threshold [Float] Available since 1.30.0

    The numeric threshold which separates a passing score from a failing one. This value only applies if using either the Google v3 or HCaptcha Enterprise method, otherwise this value is ignored.

    tenant.configured [Boolean]

    Indicates the tenant has been configured. It is always true, except for default tenant when the setup wizard has not been completed, in which case it is false.

    tenant.connectorPolicies [Array] Available since 1.18.0

    A list of Connector policies. Users will be authenticated against Connectors in order. Each Connector can be included in this list at most once and must exist.

    tenant.connectorPolicies[x].connectorId [UUID] Available since 1.18.0

    The identifier of the Connector to which this policy refers.

    tenant.connectorPolicies[x].domains [String] Available since 1.18.0

    An list of email domains to which this connector should apply.

    A value of ["*"] indicates this connector applies to all users.

    tenant.connectorPolicies[x].migrate [Boolean] # Available since 1.18.0

    If true, the user’s data will be migrated to FusionAuth at first successful authentication; subsequent authentications will occur against the FusionAuth datastore. If false, the Connector’s source will be treated as authoritative.

    tenant.data [Object]

    An object that can hold any information about the Tenant that should be persisted.

    tenant.emailConfiguration.additionalHeaders [Array<Object>] Optional Available since 1.32.0

    The additional SMTP headers to be added to each outgoing email. Each SMTP header consists of a name and a value.

    tenant.emailConfiguration.debug [Boolean] Optional defaults to false Available since 1.37.0

    Determines if debug should be enabled to create an event log to assist in debugging SMTP errors.

    tenant.emailConfiguration.defaultFromEmail [String] Optional defaults to change-me@fusionauth.io Available since 1.16.0

    The default email address that emails will be sent from when a from address is not provided on an individual email template. This is the address part email address (i.e. Jared Dunn <jared@piedpiper.com>).

    tenant.emailConfiguration.defaultFromName [String] Optional Available since 1.16.0

    The default From Name used in sending emails when a from name is not provided on an individual email template. This is the display name part of the email address ( i.e. Jared Dunn <jared@piedpiper.com>).

    tenant.emailConfiguration.emailUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their email address is updated.

    tenant.emailConfiguration.emailVerifiedEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template used to notify a user that their email address has been verified.

    tenant.emailConfiguration.forgotPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user is sent a forgot password email.

    tenant.emailConfiguration.host [String] Optional defaults to localhost Available since 1.8.0

    The host name of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenant.emailConfiguration.implicitEmailVerificationAllowed Optional defaults to true Available since 1.32.0

    When set to true, this allows email to be verified as a result of completing a similar email based workflow such as change password. When set to false, the user must explicitly complete the email verification workflow even if the user has already completed a similar email workflow such as change password.

    tenant.emailConfiguration.loginIdInUseOnCreateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to create an account with their login Id.

    tenant.emailConfiguration.loginIdInUseOnUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when another user attempts to update an existing account to use their login Id.

    tenant.emailConfiguration.loginNewDeviceEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they log in on a new device.

    tenant.emailConfiguration.loginSuspiciousEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a suspicious login occurs.

    tenant.emailConfiguration.password [String] Optional Available since 1.8.0

    An optional password FusionAuth will use to authenticate with the SMTP server.

    tenant.emailConfiguration.passwordlessEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Passwordless Email Template, sent to users when they start a passwordless login.

    tenant.emailConfiguration.passwordResetSuccessEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when they have completed a 'forgot password' workflow and their password has been reset.

    tenant.emailConfiguration.passwordUpdateEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when their password has been updated.

    tenant.emailConfiguration.port [Integer] Optional defaults to 25 Available since 1.8.0

    The port of the SMTP server that FusionAuth will use.

    Prior to version 1.28.0 this value was required.

    tenant.emailConfiguration.properties [String] Optional Available since 1.8.0

    Additional Email Configuration in a properties file formatted String.

    tenant.emailConfiguration.security [String] Optional defaults to NONE Available since 1.8.0

    The type of security protocol FusionAuth will use when connecting to the SMTP server. The possible values are:

    • NONE - no security will be used. All communications will be sent plaintext.

    • SSL - SSL will be used to connect to the SMTP server. This protocol is not recommended unless it is the only one your SMTP server supports.

    • TLS - TLS will be used to connect to the SMTP server. This is the preferred protocol for all SMTP servers.

    tenant.emailConfiguration.setPasswordEmailTemplateId [UUID] Optional Available since 1.19.0

    The Id of the Email Template that is used when a user had their account created for them and they must set their password manually and they are sent an email to set their password.

    tenant.emailConfiguration.twoFactorMethodAddEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been added to their account.

    tenant.emailConfiguration.twoFactorMethodRemoveEmailTemplateId [UUID] Optional Available since 1.30.0

    The Id of the Email Template used to send emails to users when a MFA method has been removed from their account.

    tenant.emailConfiguration.unverified.allowEmailChangeWhenGated [Boolean] Optional defaults to false Available since 1.27.0

    When this value is set to true, the user is allowed to change their email address when they are gated because they haven’t verified their email address.

    tenant.emailConfiguration.unverified.behavior [String] Optional defaults to Allow Available since 1.27.0

    The desired behavior during login for a user that does not have a verified email. The possible values are:

    • Allow - the user will be allowed to complete login.

    • Gated - verification is required before a user can complete login. The use of this value will require a paid edition of FusionAuth.

    tenant.emailConfiguration.username [String] Optional Available since 1.8.0

    An optional username FusionAuth will to authenticate with the SMTP server.

    tenant.emailConfiguration.verificationEmailTemplateId [UUID] Optional

    The Id of the Email Template used to send emails to users to verify that their email address is valid. If either the verifyEmail or verifyEmailWhenChanged fields are true, this field is required.

    tenant.emailConfiguration.verificationStrategy [String] Optional Available since 1.27.0

    The process by which the user will verify their email address. The possible values are:

    • ClickableLink - send the user a code with a clickable link.

    • FormField - send the user a short code intended to be manually entered into a form field. This is only available when tenant.emailConfiguration.unverified.behavior has the Gated value.

    tenant.emailConfiguration.verifyEmail [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the registers with your application.

    tenant.emailConfiguration.verifyEmailWhenChanged [Boolean] Optional defaults to false

    Whether the user’s email addresses are verified when the user changes them.

    tenant.eventConfiguration.events [Object] Available since 1.8.0

    A mapping of the configuration for each event type that FusionAuth sends. The event types that are the keys into this Object are:

    • audit-log.create - When an audit log is created Available since 1.30.0

    • event-log.create - When an event log is created Available since 1.30.0

    • jwt.public-key.update - When a JWT RSA Public / Private keypair may have been changed

    • jwt.refresh - When an access token is refreshed using a refresh token Available since 1.16.0

    • jwt.refresh-token.revoke - When a JWT Refresh Token is revoked

    • kickstart.success - When kickstart has successfully completed Available since 1.30.0

    • user.action - When a user action is triggered

    • user.bulk.create - When multiple users are created in bulk (i.e. during an import)

    • user.create - When a user is created

    • user.create.complete - When a user create transaction has completed Available since 1.30.0

    • user.deactivate - When a user is deactivated

    • user.delete - When a user is deleted

    • user.delete.complete - When a user delete transaction has completed Available since 1.30.0

    • user.email.update - When a user updates their email address Available since 1.30.0

    • user.email.verified - When a user verifies their email address Available since 1.8.0

    • user.identity-provider.link - When a link is created from a user to an Identity Provider Available since 1.36.0

    • user.identity-provider.unlink - When an existing Identity Provider link is removed from a User Available since 1.36.0

    • user.loginId.duplicate.create - When a request to create a user with a login Id (email or username) which is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.loginId.duplicate.update - When a request to update a user and change their login Id (email or username) to one that is already in use has been received Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.failed - When a user fails a login request Available since 1.6.0

    • user.login.new-device - When a user begins a login request with a new device Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.login.success - When a user completes a login request Available since 1.6.0

    • user.login.suspicious - When a user logs in and is considered to be a potential threat (requires an activated Enterprise license) Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.breach - When Reactor detects a user is using a potentially breached password (requires an activated license) Available since 1.15.0

      Note: A paid plan is required to utilize this event.

    • user.password.reset.send - When a forgot password email has been sent to a user Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.start - When the process to reset a user password has started Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.reset.success - When a user has successfully reset their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.password.update - When a user has updated their password Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.reactivate - When a user is reactivated

    • user.registration.create - When a user registration is created Available since 1.6.0

    • user.registration.create.complete - When a user registration create transaction has completed Available since 1.30.0

    • user.registration.delete - When a user registration is deleted Available since 1.6.0

    • user.registration.delete.complete - When a user registration delete transaction has completed Available since 1.30.0

    • user.registration.update - When a user registration is updated Available since 1.6.0

    • user.registration.update.complete - When a user registration update transaction has completed Available since 1.30.0

    • user.registration.verified - When a user completes registration verification Available since 1.8.0

    • user.two-factor.method.add - When a user has added a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.two-factor.method.remove - When a user has removed a two-factor method Available since 1.30.0

      Note: An Enterprise plan is required to utilize this event.

    • user.update - When a user is updated

    • user.update.complete - When a user update transaction has completed Available since 1.30.0

    tenant.eventConfiguration.events[type].enabled [Boolean] Available since 1.8.0

    Whether or not FusionAuth should send these types of events to any configured Webhooks.

    tenant.eventConfiguration.events[type].transactionType [String] Available since 1.8.0

    The transaction type that FusionAuth uses when sending these types of events to any configured Webhooks. The transaction types are:

    • None - No Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • Any - Only a single Webhook is required to succeed for the FusionAuth transaction to be committed.

    • SimpleMajority - A simple majority (50% or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • SuperMajority - A super majority (2/3 or more) of Webhooks are required to succeed for the FusionAuth transaction to be committed.

    • AbsoluteMajority - Every Webhook must succeed for the FusionAuth transaction to be committed.

    tenant.externalIdentifierConfiguration.authorizationGrantIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an OAuth authorization code is no longer valid to be exchanged for an access token. This is essentially the time allowed between the start of an Authorization request during the Authorization code grant and when you request an access token using this authorization code on the Token endpoint.

    Value must be greater than 0 and less than or equal to 600.

    tenant.externalIdentifierConfiguration.changePasswordIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the change password Id.

    If the changePasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the changePasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the changePasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.changePasswordIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the change password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.changePasswordIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a change password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.deviceCodeTimeToLiveInSeconds [Integer] Available since 1.11.0

    The time in seconds until a device code Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.deviceUserCodeIdGenerator.length [Integer] Available since 1.11.0

    The length of the secure generator used for generating the device code Id.

    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the deviceCodeTimeToLiveInSeconds.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.deviceUserCodeIdGenerator.type [String] Available since 1.11.0

    The type of the secure generator used for generating the device code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.emailVerificationIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the the email verification Id.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.emailVerificationIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the email verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.emailVerificationIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an email verification Id is no longer valid and cannot be used by the Verify Email API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.length [Integer] Available since 1.27.0

    The length of the secure generator used for generating the email verification one time code.

    If the emailVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the emailVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the emailVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.emailVerificationOneTimeCodeGenerator.type [String] Available since 1.27.0

    The type of the secure generator used for generating the email verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.externalAuthenticationIdTimeToLiveInSeconds [Integer] Available since 1.12.0

    The time in seconds until an external authentication Id is no longer valid and cannot be used by the Token API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.oneTimePasswordTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a One Time Password is no longer valid and cannot be used by the Login API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.passwordlessLoginGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the passwordless login.

    If the passwordlessLoginGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the passwordlessLoginGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the passwordlessLoginGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.passwordlessLoginGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the passwordless login. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.passwordlessLoginTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a passwordless code is no longer valid and cannot be used by the Passwordless API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.pendingAccountLinkTimeToLiveInSeconds [Integer] Available since 1.28.0

    The number of seconds before the pending account link identifier is no longer valid to complete an account link request.

    tenant.externalIdentifierConfiguration.registrationVerificationIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the registration verification Id.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.registrationVerificationIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the registration verification Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.registrationVerificationIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a registration verification Id is no longer valid and cannot be used by the Verify Registration API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.length [Integer] Available since 1.27.0

    The length of the secure generator used for generating the registration verification one time code.

    If the registrationVerificationIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the registrationVerificationIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the registrationVerificationIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.registrationVerificationOneTimeCodeGenerator.type [String] Available since 1.27.0

    The type of the secure generator used for generating the registration verification one time code. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.samlv2AuthNRequestIdTimeToLiveInSeconds [Integer] Available since 1.19.0

    The time in seconds that a SAML AuthN request Id returned by the Start SAML v2 Login Request API will be eligible to be used to complete a SAML v2 Login request.

    tenant.externalIdentifierConfiguration.setupPasswordIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the setup password Id.

    If the setupPasswordIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the setupPasswordIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the setupPasswordIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.setupPasswordIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the setup password Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.setupPasswordIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a setup password Id is no longer valid and cannot be used by the Change Password API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.trustTokenTimeToLiveInSeconds [Integer] Available since 1.33.0

    The number of seconds before the Trust Token is no longer valid to complete a request that requires trust. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until a two factor Id is no longer valid and cannot be used by the Two Factor Login API. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.length [Integer] Available since 1.8.0

    The length of the secure generator used for generating the the two factor one time code Id.

    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlpha then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomAlphaNumeric then the length must be greater or equal to 4 and less than or equal to 12.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomBytes then the length must be greater or equal to 16 and less than or equal to 128.
    If the twoFactorOneTimeCodeIdGenerator.type is equal to randomDigits then the length must be greater or equal to 4 and less than or equal to 12.

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdGenerator.type [String] Available since 1.8.0

    The type of the secure generator used for generating the two factor code Id. Possible values are:

    • randomAlpha

    • randomAlphaNumeric

    • randomBytes

    • randomDigits

    tenant.externalIdentifierConfiguration.twoFactorOneTimeCodeIdTimeToLiveInSeconds [Integer] Available since 1.26.0

    The number of seconds before the Two-Factor One Time Code used to enable or disable a two-factor method is no longer valid. Must be greater than 0.

    tenant.externalIdentifierConfiguration.twoFactorTrustIdTimeToLiveInSeconds [Integer] Available since 1.8.0

    The time in seconds until an issued Two Factor trust Id is no longer valid and the User will be required to complete Two Factor authentication during the next authentication attempt. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.webAuthnAuthenticationChallengeTimeToLiveInSeconds [Integer] Available since 1.41.0

    The time in seconds until a WebAuthn authentication challenge is no longer valid and the User will be required to restart the WebAuthn authentication ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.get API call. Value must be greater than 0.

    tenant.externalIdentifierConfiguration.webAuthnRegistrationChallengeTimeToLiveInSeconds [Integer] Available since 1.41.0

    The time in seconds until a WebAuthn registration challenge is no longer valid and the User will be required to restart the WebAuthn registration ceremony by creating a new challenge. This value also controls the timeout for the client-side WebAuthn navigator.credentials.create API call. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.actionCancelPolicy.onPasswordReset [Boolean] Available since 1.42.0

    Indicates whether you want the user to be able to self-service unlock their account prior to the action duration by completing a password reset workflow.

    tenant.failedAuthenticationConfiguration.actionDuration [Long] Available since 1.8.0

    The duration of the User Action. This value along with the actionDurationUnit will be used to set the duration of the User Action. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.actionDurationUnit [String] Available since 1.8.0

    The unit of time associated with a duration. The possible values are:

    • MINUTES

    • HOURS

    • DAYS

    • WEEKS

    • MONTHS

    • YEARS

    tenant.failedAuthenticationConfiguration.emailUser [String] Optional Available since 1.42.0

    Indicates you would like to email the user when the user’s account is locked due to this action being taken. This requires the User Action specified by the tenant.failedAuthenticationConfiguration.userActionId to also be configured for email. If the User Action is not configured to be able to email the user, this configuration will be ignored. See userEmailingEnabled on the User Action.

    tenant.failedAuthenticationConfiguration.resetCountInSeconds [Integer] Available since 1.8.0

    The length of time in seconds before the failed authentication count will be reset. Value must be greater than 0.

    For example, if tooManyAttempts is set to 5 and you fail to authenticate 4 times in a row, waiting for the duration specified here will cause your fifth attempt to start back at 1.

    tenant.failedAuthenticationConfiguration.tooManyAttempts [Integer] Available since 1.8.0

    The number of failed attempts considered to be too many. Once this threshold is reached the specified User Action will be applied to the user for the duration specified. Value must be greater than 0.

    tenant.failedAuthenticationConfiguration.userActionId [UUID] Available since 1.8.0

    The Id of the User Action that is applied when the threshold is reached for too many failed authentication attempts.

    tenant.familyConfiguration.allowChildRegistrations [Boolean] Available since 1.8.0

    Whether to allow child registrations.

    tenant.familyConfiguration.confirmChildEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use when confirming a child.

    tenant.familyConfiguration.deleteOrphanedAccounts [Boolean] Available since 1.8.0

    Indicates that child users without parental verification will be permanently deleted after tenant.familyConfiguration.deleteOrphanedAccountsDays days.

    tenant.familyConfiguration.deleteOrphanedAccountsDays [Integer] Available since 1.8.0

    The number of days from creation child users will be retained before being deleted for not completing parental verification. Value must be greater than 0.

    tenant.familyConfiguration.enabled [Boolean] Available since 1.8.0

    Whether family configuration is enabled.

    tenant.familyConfiguration.familyRequestEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use when a family request is made.

    tenant.familyConfiguration.maximumChildAge [Integer] Available since 1.8.0

    The maximum age of a child. Value must be greater than 0.

    tenant.familyConfiguration.minimumOwnerAge [Integer] Available since 1.8.0

    The minimum age to be an owner. Value must be greater than 0.

    tenant.familyConfiguration.parentEmailRequired [Boolean] Available since 1.8.0

    Whether a parent email is required.

    tenant.familyConfiguration.parentRegistrationEmailTemplateId [UUID] Available since 1.8.0

    The unique Id of the email template to use for parent registration.

    tenant.formConfiguration.adminUserFormId [UUID] Available since 1.20.0

    The unique Id of the form to use for the Add and Edit User form when used in the FusionAuth admin UI.

    tenant.httpSessionMaxInactiveInterval [Integer] Available since 1.8.0

    Time in seconds until an inactive session will be invalidated. Used when creating a new session in the FusionAuth OAuth frontend.

    tenant.id [UUID]

    The unique identifier for this Tenant.

    tenant.insertInstant [Long]

    The instant that the Tenant was added to the FusionAuth database.

    tenant.issuer [String] Available since 1.8.0

    The named issuer used to sign tokens, this is generally your public fully qualified domain.

    tenant.jwtConfiguration.accessTokenKeyId [UUID] Available since 1.8.0

    The unique id of the signing key used to sign the access token.

    tenant.jwtConfiguration.idTokenKeyId [UUID] Available since 1.8.0

    The unique id of the signing key used to sign the Id token.

    tenant.jwtConfiguration.refreshTokenExpirationPolicy [String] Available since 1.17.0

    The refresh token expiration policy. The following are valid values:

    • Fixed - the expiration is calculated from the time the token is issued.

    • SlidingWindow - the expiration is calculated from the last time the token was used.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onLoginPrevented [Boolean] Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user action, such as locking an account based on a number of failed login attempts, prevents user login.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onMultiFactorEnable [Boolean] Available since 1.42.0

    When enabled, all refresh tokens will be revoked when a user enables multi-factor authentication for the first time. This policy will not be applied when adding subsequent multi-factor methods to the user.

    tenant.jwtConfiguration.refreshTokenRevocationPolicy.onPasswordChanged [Boolean] Available since 1.17.0

    When enabled, all refresh tokens will be revoked when a user changes their password.

    tenant.jwtConfiguration.refreshTokenTimeToLiveInMinutes [Integer] Available since 1.8.0

    The length of time in minutes a Refresh Token is valid from the time it was issued. Value must be greater than 0.

    tenant.jwtConfiguration.refreshTokenUsagePolicy [String] Available since 1.17.0

    The refresh token usage policy. The following are valid values:

    • Reusable - the token does not change after it was issued.

    • OneTimeUse - the token value will be changed each time the token is used to refresh a JWT. The client must store the new value after each usage.

    tenant.jwtConfiguration.timeToLiveInSeconds [Integer] Available since 1.8.0

    The length of time in seconds this JWT is valid from the time it was issued. Value must be greater than 0.

    tenant.lambdaConfiguration.scimEnterpriseUserRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM Enterprise User request to a FusionAuth User.

    tenant.lambdaConfiguration.scimEnterpriseUserResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth Enterprise User to a SCIM Server response.

    tenant.lambdaConfiguration.scimGroupRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM Group Request Lambda that will be used to convert the SCIM Group request to a FusionAuth Group.

    tenant.lambdaConfiguration.scimGroupResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM GroupResponse Lambda that will be used to convert a FusionAuth Group to a SCIM Server response.

    tenant.lambdaConfiguration.scimUserRequestConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Request Lambda that will be used to convert the SCIM User request to a FusionAuth User.

    tenant.lambdaConfiguration.scimUserResponseConverterId [UUID] Available since 1.36.0

    The Id of a SCIM User Response Lambda that will be used to convert a FusionAuth User to a SCIM Server response.

    tenant.lastUpdateInstant [Long]

    The instant that the Tenant was last updated in the FusionAuth database.

    tenant.loginConfiguration.requireAuthentication [Boolean] Available since 1.26.0

    Indicates whether to require an API key for the Login API when an applicationId is not provided. When an applicationId is provided to the Login API call, the application configuration will take precedence.

    tenant.logoutURL [String] Available since 1.8.0

    The logout redirect URL when sending the user’s browser to the /oauth2/logout URI of the FusionAuth Front End. This value is only used when a logout URL is not defined in your Application.

    tenant.maximumPasswordAge.days [Integer] Available since 1.8.0

    The password maximum age in days. The number of days after which FusionAuth will require a user to change their password. Required when tenant.maximumPasswordAge.enabled is set to true.

    tenant.maximumPasswordAge.enabled [Boolean] Available since 1.8.0

    Indicates that the maximum password age is enabled and being enforced.

    tenant.minimumPasswordAge.seconds [Integer] Available since 1.8.0

    The password minimum age in seconds. When enabled FusionAuth will not allow a password to be changed until it reaches this minimum age. Required when tenant.minimumPasswordAge.enabled is set to true.

    tenant.minimumPasswordAge.enabled [Boolean] Available since 1.8.0

    Indicates that the minimum password age is enabled and being enforced.

    tenant.multiFactorConfiguration.authenticator.algorithm [String] Available since 1.26.0

    The algorithm used by the TOTP authenticator. This value is HmacSHA1 and read only.

    tenant.multiFactorConfiguration.authenticator.codeLength [Integer] Available since 1.26.0

    The length of the code generated by the TOTP. This value is 6 and read only.

    tenant.multiFactorConfiguration.authenticator.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize an authenticator application to complete a multi-factor authentication request. This method uses TOTP (Time-Based One-Time Password) as defined in RFC 6238 and often uses an native mobile app such as Google Authenticator.

    tenant.multiFactorConfiguration.authenticator.timeStep [Integer] Available since 1.26.0

    The time-step size in seconds. This value is 30 and read only.

    tenant.multiFactorConfiguration.email.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize an email address to complete a two-factor authentication request.

    tenant.multiFactorConfiguration.email.templateId [UUID] Available since 1.26.0

    The Id of the email template that is used when notifying a user to complete a two-factor authentication request.

    tenant.multiFactorConfiguration.sms.enabled [Boolean] Available since 1.26.0

    When enabled, users may utilize a mobile phone number to complete a two-factor authentication request.

    tenant.multiFactorConfiguration.sms.messengerId [UUID] Available since 1.26.0

    The messenger that is used to deliver a SMS two-factor authentication request.

    tenant.multiFactorConfiguration.sms.templateId [UUID] Available since 1.26.0

    The Id of the SMS template that is used when notifying a user to complete a two-factor authentication request.

    tenant.name [String]

    The unique name of the Tenant.

    tenant.oauthConfiguration.clientCredentialsAccessTokenPopulateLambdaId [UUID] Available since 1.26.0

    The Id of a lambda that will be called to populate the JWT during a client credentials grant.

    tenant.passwordEncryptionConfiguration.encryptionScheme [String] Available since 1.8.0

    The default method for encrypting the User’s password. The following encryptors are provided with FusionAuth:

    • salted-md5

    • salted-sha256

    • salted-hmac-sha256

    • salted-pbkdf2-hmac-sha256

    • salted-pbkdf2-hmac-sha256-512   Available since 1.34.0

    • bcrypt

    tenant.passwordEncryptionConfiguration.encryptionSchemeFactor [Integer] Available since 1.8.0

    The factor used by the password encryption scheme. If not provided, the PasswordEncryptor provides a default value. Generally this will be used as an iteration count to generate the hash. The actual use of this value is up to the PasswordEncryptor implementation.

    tenant.passwordEncryptionConfiguration.modifyEncryptionSchemeOnLogin [Boolean] Available since 1.8.0

    When enabled a user’s hash configuration will be modified to match these configured settings. This can be useful to increase a password hash strength over time or upgrade imported users to a more secure encryption scheme after an initial import.

    Beginning in version 1.42.0 when this configuration is enabled, in addition to re-hashing on login, the password will be re-hashed on password change as well.

    tenant.passwordValidationRules.breachDetection.enabled [Boolean] Available since 1.15.0

    Whether to enable Reactor breach detection. Requires an activated license.

    tenant.passwordValidationRules.breachDetection.matchMode [String] Available since 1.15.0

    The level of severity where Reactor will consider a breach. The following are valid values:

    • High Only requires a password match, this is the most secure and is recommended

    • Medium Exact match on username, email address or email sub-address

    • Low Exact match on an email or username, or the password is a common breached value

    tenant.passwordValidationRules.breachDetection.notifyUserEmailTemplateId [UUID] Available since 1.15.0

    The Id of the email template to use when notifying a user of a breached password.

    tenant.passwordValidationRules.breachDetection.onLogin [String] Available since 1.15.0

    The behavior when detecting breaches at time of user login. The following are valid values:

    • Off Do not perform breach detection at login

    • RecordOnly Only record the result, take no action

    • NotifyUser Notify the end user via email

    • RequireChange Require immediate password change

    tenant.passwordValidationRules.maxLength [Integer] Available since 1.8.0

    The maximum length of a password when a new user is created or a user requests a password change.

    tenant.passwordValidationRules.minLength [Integer] Available since 1.8.0

    The minimum length of a password when a new user is created or a user requests a password change.

    tenant.passwordValidationRules.rememberPreviousPasswords.count [Integer] Available since 1.8.0

    The number of previous passwords to remember. Value must be greater than 0.

    tenant.passwordValidationRules.rememberPreviousPasswords.enabled [Boolean] Available since 1.8.0

    Whether to prevent a user from using any of their previous passwords.

    tenant.passwordValidationRules.requireMixedCase [Boolean] Available since 1.8.0

    Whether to force the user to use at least one uppercase and one lowercase character.

    tenant.passwordValidationRules.requireNonAlpha [Boolean] Available since 1.8.0

    Whether to force the user to use at least one non-alphanumeric character.

    tenant.passwordValidationRules.requireNumber [Boolean] Available since 1.8.0

    Whether to force the user to use at least one number.

    tenant.passwordValidationRules.validateOnLogin [Boolean] Available since 1.15.0

    When enabled the user’s password will be validated during login. If the password does not meet the currently configured validation rules the user will be required to change their password.

    tenant.rateLimitConfiguration.failedLogin.limit [Integer] Available since 1.30.0

    The number of times a user can fail to login within the configured timePeriodInSeconds duration. If a Failed authentication action has been configured then it will take precedence.

    tenant.rateLimitConfiguration.failedLogin.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can fail login before being rate limited.

    tenant.rateLimitConfiguration.forgotPassword.limit [Integer] Available since 1.30.0

    The number of times a user can request a forgot password email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.forgotPassword.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a forgot password email before being rate limited.

    tenant.rateLimitConfiguration.sendEmailVerification.limit [Integer] Available since 1.30.0

    The number of times a user can request a verification email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendEmailVerification.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a verification email before being rate limited.

    tenant.rateLimitConfiguration.sendPasswordless.limit [Integer] Available since 1.30.0

    The number of times a user can request a passwordless login email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendPasswordless.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a passwordless login email before being rate limited.

    tenant.rateLimitConfiguration.sendRegistrationVerification.limit [Integer] Available since 1.30.0

    The number of times a user can request a registration verification email within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendRegistrationVerification.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a registration verification email before being rate limited.

    tenant.rateLimitConfiguration.sendTwoFactor.limit [Integer] Available since 1.30.0

    The number of times a user can request a two-factor code by email or SMS within the configured timePeriodInSeconds duration.

    tenant.rateLimitConfiguration.sendTwoFactor.timePeriodInSeconds [Integer] Available since 1.30.0

    The duration for the number of times a user can request a two-factor code by email or SMS before being rate limited.

    tenant.registrationConfiguration.blockedDomains [Array<String>] Optional Available since 1.30.0

    A list of unique domains that are not allowed to register when self service is enabled.

    tenant.scimServerConfiguration.clientEntityTypeId [UUID] Available since 1.36.0

    The Entity Type that will be used to represent SCIM Clients for this tenant.

    tenant.scimServerConfiguration.enabled [Boolean] Available since 1.36.0

    Whether or not this tenant has the SCIM endpoints enabled.

    tenant.scimServerConfiguration.schemas [Map] Available since 1.36.0

    JSON formatted as a SCIM Schemas endpoint response. Because the SCIM lambdas may modify the JSON response, ensure the Schema’s response matches that generated by the response lambdas. More about Schema definitions.

    tenant.scimServerConfiguration.serverEntityTypeId [UUID] Available since 1.36.0

    The Entity Type that will be used to represent SCIM Servers for this tenant.

    tenant.ssoConfiguration.deviceTrustTimeToLiveInSeconds [Integer] Available since 1.30.2

    The number of seconds before a trusted device is reset. When reset, a user is forced to complete captcha during login and complete two factor authentication if applicable.

    tenant.state [String] Available since 1.22.0

    The current state of the tenant. The following are valid values:

    • Active - The tenant is active.

    • PendingDelete - A delete request has been requested and is being processed.

    tenant.themeId [UUID] Available since 1.8.0

    The unique Id of the theme to be used to style the login page and other end user templates.

    tenant.userDeletePolicy.unverified.enabled [Boolean] Available since 1.13.0

    Indicates that users without a verified email address will be permanently deleted after tenant.userDeletePolicy.unverified.numberOfDaysToRetain days.

    tenant.userDeletePolicy.unverified.numberOfDaysToRetain [Integer] Available since 1.13.0

    The number of days from creation users will be retained before being deleted for not completing email verification. Value must be greater than 0.

    tenant.usernameConfiguration.unique.enabled [Boolean] Available since 1.27.0

    When true, FusionAuth will handle username collisions by generating a random suffix. Users with colliding usernames will be able to use the same one, but in the admin and API interfaces, a unique username will be displayed.

    tenant.usernameConfiguration.unique.numberOfDigits [Integer] Available since 1.27.0

    The maximum number of digits to use when building a unique suffix for a username. A number will be randomly selected and will be 1 or more digits up to this configured value in length. For example, if this value is 5, the suffix will be a number between 00001 and 99999, inclusive.

    tenant.usernameConfiguration.unique.separator [String] Available since 1.27.0

    A single character to use as a separator from the requested username and a unique suffix that is added when a duplicate username is detected. This value can be a single non alphanumeric ASCII character.

    tenant.usernameConfiguration.unique.strategy [String] Available since 1.29.0

    This strategy instructions FusionAuth when to append a unique suffix to the username. The possible values are:

    • Always - Always append a unique suffix even when the requested username is not in use.

    • OnCollision - Only append a unique suffix when the requested username is in use.

    tenant.webAuthnConfiguration.bootstrapWorkflow.authenticatorAttachmentPreference [String] Available since 1.41.0

    The authenticator attachment requirement for WebAuthn passkey registration when using the bootstrap workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    tenant.webAuthnConfiguration.bootstrapWorkflow.enabled [Boolean] Available since 1.41.0

    Whether the WebAuthn bootstrap workflow is enabled.

    tenant.webAuthnConfiguration.bootstrapWorkflow.userVerificationRequirement [String] Available since 1.41.0

    The user verification requirement for WebAuthn passkey registration and authentication when using the bootstrap workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    tenant.webAuthnConfiguration.debug [Boolean] Available since 1.41.0

    Whether debug event log output is enabled for WebAuthn.

    tenant.webAuthnConfiguration.enabled [Boolean] Available since 1.41.0

    Whether WebAuthn configuration is enabled.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.authenticatorAttachmentPreference [String] Available since 1.41.0

    The authenticator attachment requirement for WebAuthn passkey registration when using the reauthentication workflow. The possible values are:

    • any - An authenticator with any attachment modality will be allowed during registration.

    • crossPlatform - Only authenticators with the cross-platform attachment modality will be allowed during registration. These are also referred to as "roaming" authenticators.

    • platform - Only authenticators with the platform attachment modality will be allowed during registration.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.enabled [Boolean] Available since 1.41.0

    Whether the WebAuthn reauthentication workflow is enabled.

    tenant.webAuthnConfiguration.reauthenticationWorkflow.userVerificationRequirement [String] Available since 1.41.0

    The user verification requirement for WebAuthn passkey registration and authentication when using the reauthentication workflow. The possible values are:

    • discouraged - If possible, do not require user verification during registration and authentication.

    • preferred - Prefer authenticators that support user verification during registration and authentication but allow others.

    • required - Only authenticators that support user verification will be allowed.

    tenant.webAuthnConfiguration.relyingPartyId [String] Available since 1.41.0

    The Relying Party Id the tenant will use in WebAuthn ceremonies. Passkeys can only be used to authenticate on sites using the same Relying Party Id they were registered with.

    The default value is null, which instructs the WebAuthn JavaScript API to use the browser origin.

    tenant.webAuthnConfiguration.relyingPartyName [String] Available since 1.41.0

    The Relying Party name the tenant will use in WebAuthn ceremonies. This value is used only for display and may be shown by browser or OS dialogs during WebAuthn ceremonies.

    If no value is configured, the tenant.issuer value will be used.

    Example Response JSON
    
    {
      "tenant": {
        "accessControlConfiguration": {
          "uiIPAccessControlListId": "11d49de7-69f6-46fc-8270-0b3aa626327a"
        },
        "configured": true,
        "captchaConfiguration": {
          "captchaMethod": "GoogleRecaptchaV3",
          "enabled": true,
          "secretKey": "6LdYWpMbAAAAAKhcksgk70us00012r66r96tt7rp",
          "siteKey": "6LdYWpMbAAAAAKhcksgk75tz00022r66ombcfadr",
          "threshold": 0.5
        },
        "connectorPolicies": [
          {
            "connectorId": "e3306678-a53a-4964-9040-1c96f36dda72",
            "domains": [
              "*"
            ],
            "migrate": false
          },
          {
            "connectorId": "27f22280-7e55-4d1c-b9f8-239bf9cc1a5e",
            "domains": [
              "*"
            ],
            "migrate": true
          }
        ],
        "data": {
          "description": "No more secrets, Marty."
        },
        "emailConfiguration": {
          "additionalHeaders": [
            {
              "name": "X-SES-CONFIGURATION-SET",
              "value": "example_configuration_set_name"
            }
          ],
          "defaultFromEmail": "jared@piedpiper.com",
          "defaultFromName": "Jared Dunn",
          "emailUpdateEmailTemplateId": "ec3045c7-97d8-47f8-8725-61b93deacf5d",
          "emailVerifiedEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
          "forgotPasswordEmailTemplateId": "49aba1de-0225-45d7-a2b1-f9fe46b0242c",
          "host": "smtp.sendgrid.net",
          "implicitEmailVerificationAllowed": true,
          "loginIdInUseOnCreateEmailTemplateId": "1c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginIdInUseOnUpdateEmailTemplateId": "2c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginNewDeviceEmailTemplateId": "3c3045c7-97d8-47f8-8725-61b93deacf5d",
          "loginSuspiciousEmailTemplateId": "4c3045c7-97d8-47f8-8725-61b93deacf5d",
          "password": "password",
          "passwordlessEmailTemplateId": "a917e23a-da58-4cda-be01-90f542f8c343",
          "passwordResetSuccessEmailTemplateId": "5c3045c7-97d8-47f8-8725-61b93deacf5d",
          "passwordUpdateEmailTemplateId": "6c3045c7-97d8-47f8-8725-61b93deacf5d",
          "port": 587,
          "properties": {
            "key": "value"
          },
          "security": "TLS",
          "setPasswordEmailTemplateId": "a9aba13e-0125-4fd7-a2b1-aaa146b02423",
          "twoFactorMethodAddEmailTemplateId": "7c3045c7-97d8-47f8-8725-61b93deacf5d",
          "twoFactorMethodRemoveEmailTemplateId": "8c3045c7-97d8-47f8-8725-61b93deacf5d",
          "unverified": {
            "allowEmailChangeWhenGated": false,
            "behavior": "Allow"
          },
          "username": "username",
          "verificationEmailTemplateId": "8da42c09-461c-45f3-b931-6e9f63b87ab5",
          "verificationStrategy": "FormField",
          "verifyEmail": true,
          "verifyEmailWhenChanged": true
        },
        "eventConfiguration": {
          "events": {
            "user.delete": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.deactivate": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.bulk.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.reactivate": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.refresh": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.refresh-token.revoke": {
              "enabled": true,
              "transactionType": "None"
            },
            "jwt.public-key.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.login.success": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.login.failed": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.password.breach": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.create": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.update": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.delete": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.registration.verified": {
              "enabled": true,
              "transactionType": "None"
            },
            "user.email.verified": {
              "enabled": true,
              "transactionType": "None"
            }
          }
        },
        "externalIdentifierConfiguration": {
          "authorizationGrantIdTimeToLiveInSeconds": 30,
          "changePasswordIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "changePasswordIdTimeToLiveInSeconds": 600,
          "deviceCodeTimeToLiveInSeconds": 1800,
          "deviceUserCodeIdGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "emailVerificationIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "emailVerificationIdTimeToLiveInSeconds": 86400,
          "emailVerificationOneTimeCodeGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "externalAuthenticationIdTimeToLiveInSeconds": 300,
          "oneTimePasswordTimeToLiveInSeconds": 60,
          "passwordlessLoginGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "passwordlessLoginTimeToLiveInSeconds": 180,
          "pendingAccountLinkTimeToLiveInSeconds": 3600,
          "registrationVerificationIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "registrationVerificationIdTimeToLiveInSeconds": 86400,
          "registrationVerificationOneTimeCodeGenerator": {
            "length": 6,
            "type": "randomAlphaNumeric"
          },
          "samlv2AuthNRequestIdTimeToLiveInSeconds": 300,
          "setupPasswordIdGenerator": {
            "length": 32,
            "type": "randomBytes"
          },
          "setupPasswordIdTimeToLiveInSeconds": 86400,
          "trustTokenTimeToLiveInSeconds": 180,
          "twoFactorIdTimeToLiveInSeconds": 300,
          "twoFactorOneTimeCodeIdGenerator": {
            "length": 6,
            "type": "randomDigits"
          },
          "twoFactorOneTimeCodeIdTimeToLiveInSeconds": 60,
          "twoFactorTrustIdTimeToLiveInSeconds": 2592000,
          "webAuthnAuthenticationChallengeTimeToLiveInSeconds": 180,
          "webAuthnRegistrationChallengeTimeToLiveInSeconds": 180
        },
        "failedAuthenticationConfiguration": {
          "actionCancelPolicy": {
            "onPasswordReset": false
          },
          "actionDuration": 3,
          "actionDurationUnit": "MINUTES",
          "emailUser": false,
          "resetCountInSeconds": 60,
          "tooManyAttempts": 5,
          "userActionId": "16cfc707-268c-4c5b-8989-f71f3ee156d4"
        },
        "familyConfiguration": {
          "allowChildRegistrations": true,
          "confirmChildEmailTemplateId": "87654321-4321-8765-ba09-ba0987654321",
          "deleteOrphanedAccounts": false,
          "deleteOrphanedAccountsDays": 30,
          "enabled": true,
          "familyRequestEmailTemplateId": "57462514-a73b-cd76-0001-b8a65cd61230",
          "maximumChildAge": 12,
          "minimumOwnerAge": 21,
          "parentEmailRequired": false,
          "parentRegistrationEmailTemplateId": "12345678-1234-5678-90ab-1234567890ab"
        },
        "formConfiguration": {
          "adminUserFormId": "e92751a5-25f4-4bca-ad91-66cdf67725d2"
        },
        "httpSessionMaxInactiveInterval": 3600,
        "id": "32306536-3036-6431-3865-646430303332",
        "insertInstant": 1572469040579,
        "issuer": "https://example.com",
        "jwtConfiguration": {
          "accessTokenKeyId": "025233ca-d4f3-2aa4-eca9-7e4200e9b472",
          "enabled": true,
          "idTokenKeyId": "092dbedc-30af-4149-9c61-b578f2c72f59",
          "refreshTokenExpirationPolicy": "Fixed",
          "refreshTokenRevocationPolicy": {
            "onLoginPrevented": true,
            "onMultiFactorEnable": true,
            "onPasswordChanged": true
          },
          "refreshTokenTimeToLiveInMinutes": 43200,
          "refreshTokenUsagePolicy": "Reusable",
          "timeToLiveInSeconds": 3600
        },
        "lambdaConfiguration": {
          "scimEnterpriseUserRequestConverterId": "c2e70f8d-19bb-4df7-848a-33a9a1e26b84",
          "scimEnterpriseUserResponseConverterId": "44fc9553-8a2e-408f-8aa2-fa65b70b55e2",
          "scimGroupRequestConverterId": "66d65de0-1819-42f8-86ed-7daaa4e155dc",
          "scimGroupResponseConverterId": "79812ede-432f-4375-9b43-23c0fe996fef",
          "scimUserRequestConverterId": "8a51d7a1-5e3e-442a-b96a-0c31379bb3d4",
          "scimUserResponseConverterId": "c8720843-dc4f-4e6c-b6ca-500e9c44695f"
        },
        "lastUpdateInstant": 1595361143101,
        "loginConfiguration": {
          "requireAuthentication": true
        },
        "logoutURL": "http://example.com/logout",
        "maximumPasswordAge": {
          "days": 180,
          "enabled": false
        },
        "minimumPasswordAge": {
          "enabled": false,
          "seconds": 30
        },
        "multiFactorConfiguration": {
          "authenticator": {
            "algorithm": "HmacSHA1",
            "codeLength": 6,
            "enabled": true,
            "timeStep": 30
          },
          "email": {
            "enabled": true,
            "templateId": "d312fb71-d7d8-4b75-a497-6096a07220b3"
          },
          "loginPolicy": "Enabled",
          "sms": {
            "enabled": true,
            "messengerId": "0a4bae38-ffef-4c33-b74c-1d50c796f600",
            "templateId": "f35e04e6-72ec-4f52-b552-29cf950a4ed6"
          }
        },
        "name": "Playtronics Co.",
        "oauthConfiguration": {
          "clientCredentialsAccessTokenPopulateLambdaId": "46e120c1-4c22-473f-95b4-e2c187cd20c2"
        },
        "passwordEncryptionConfiguration": {
          "encryptionScheme": "salted-pbkdf2-hmac-sha256",
          "encryptionSchemeFactor": 24000,
          "modifyEncryptionSchemeOnLogin": false
        },
        "passwordValidationRules": {
          "breachDetection": {
            "enabled": true,
            "notifyUserEmailTemplateId": "e6c74b53-d43d-471e-ae7e-906456d0f341",
            "matchMode": "High",
            "onLogin": "Off"
          },
          "maxLength": 256,
          "minLength": 8,
          "rememberPreviousPasswords": {
            "count": 2,
            "enabled": true
          },
          "requireMixedCase": true,
          "requireNonAlpha": true,
          "requireNumber": true,
          "validateOnLogin": false
        },
        "rateLimitConfiguration": {
          "failedLogin": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "forgotPassword": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendEmailVerification": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendRegistrationVerification": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendPasswordless": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          },
          "sendTwoFactor": {
            "enabled": false,
            "limit": 5,
            "timePeriodInSeconds": 60
          }
        },
        "registrationConfiguration": {},
        "scimServerConfiguration": {
          "clientEntityTypeId": "d9ed49f7-1106-4b20-acdb-5cbda76ae77e",
          "enabled": true,
          "serverEntityTypeId": "919e0ac5-1cf0-4fcf-a8fc-29d77a0d1d8f",
          "schemas": {}
        },
        "ssoConfiguration": {
          "deviceTrustTimeToLiveInSeconds": 31536000
        },
        "state": "Active",
        "themeId": "c6ad3fac-6f32-4db7-91a4-061ff035e871",
        "userDeletePolicy": {
          "unverified": {
            "enabled": true,
            "numberOfDaysToRetain": 30
          }
        },
        "usernameConfiguration": {
          "unique": {
            "enabled": false,
            "numberOfDigits": 5,
            "separator": "#",
            "strategy": "OnCollision"
          }
        },
        "webAuthnConfiguration": {
          "enabled": true,
          "bootstrapWorkflow": {
            "authenticatorAttachmentPreference": "crossPlatform",
            "enabled": true,
            "userVerificationRequirement": "required"
          },
          "debug": false,
          "reauthenticationWorkflow": {
            "authenticatorAttachmentPreference": "platform",
            "enabled": true,
            "userVerificationRequirement": "required"
          },
          "relyingPartyId": "piedpiper.com",
          "relyingPartyName": "Pied Piper"
        }
      }
    }

    Delete a Tenant

    This API is used to permanently delete a Tenant. Deleting a Tenant will delete all Users, Applications and Groups that belong to this tenant. Proceed with caution.

    Request

    Delete a Tenant by Id

    URI

    DELETE /api/tenant/{tenantId}

    Request Parameters

    tenantId [UUID] Required

    The unique Id of the Tenant to delete.

    async [Boolean] Optional defaults to false

    Set this value to true to perform this request asynchronously, this means the API will return a response indicating the request has been accepted and will not wait for the operation to complete.

    Request Headers

    X-FusionAuth-TenantId [String] Optional

    The unique Id of the tenant used to scope this API request.

    The tenant Id is not required on this request even when more than one tenant has been configured because the tenant can be identified based upon the request parameters or it is otherwise not required.

    Specify a tenant Id on this request when you want to ensure the request is scoped to a specific tenant. The tenant Id may be provided through this header or by using a tenant locked API key to achieve the same result.

    See Making an API request using a Tenant Id for additional information.

    Response

    This API does not return a JSON response body.

    Table 4. Response Codes
    Code Description

    200

    The request was successful. The response will be empty.

    202

    The request has been accepted but not completed. The response will be empty.

    400

    The request was invalid and/or malformed. The response will contain an Errors JSON Object with the specific errors. This status will also be returned if a paid FusionAuth license is required and is not present.

    401

    You did not supply a valid Authorization header. The header was omitted or your API key was not valid. The response will be empty. See Authentication.

    404

    The object you are trying to delete doesn’t exist. The response will be empty.

    500

    There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty.

    Retrieve the Password Validation Rules

    This API has been available since 1.8.0

    This API is used to retrieve the Password Validation Rules. This configuration is a subset of the Tenant configuration.

    Request

    Retrieve the Password Validation Rules

    URI

    GET /api/tenant/password-validation-rules/{tenantId}

    Request Parameters

    tenantId [UUID] Required

    The Id of the tenant.

    Request Headers

    X-FusionAuth-TenantId [String] Optional

    The unique Id of the tenant used to scope this API request.

    The tenant Id is not required on this request even when more than one tenant has been configured because the tenant can be identified based upon the request parameters or it is otherwise not required.

    Specify a tenant Id on this request when you want to ensure the request is scoped to a specific tenant. The tenant Id may be provided through this header or by using a tenant locked API key to achieve the same result.

    See Making an API request using a Tenant Id for additional information.

    Response

    The response for this API contains the Password Validation Rules.

    Table 5. Response Codes
    Code Description

    200

    The request was successful. The response will contain a JSON body.

    500

    There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty.

    Response Body

    tenant.passwordValidationRules.maxLength [Integer]

    The maximum number of characters that are allowed for user passwords.

    tenant.passwordValidationRules.minLength [Integer]

    The minimum number of characters that are required for user passwords.

    tenant.passwordValidationRules.rememberPreviousPasswords.count [Integer]

    The number of previous passwords that should be remembered so they are not re-used by the User.

    tenant.passwordValidationRules.rememberPreviousPasswords.enabled [Boolean]

    Indicates that the remember previous password validation is enabled and being enforced.

    tenant.passwordValidationRules.requireMixedCase [Boolean]

    Indicates that passwords require an uppercase and lowercase character to be valid.

    tenant.passwordValidationRules.requireNonAlpha [Boolean]

    Indicates that passwords require a non-alphanumeric character to be valid.

    tenant.passwordValidationRules.requireNumber [Boolean]

    Indicates that passwords require at least one number to be valid.

    Example Response JSON
    
    {
      "passwordValidationRules": {
        "maxLength": 256,
        "minLength": 8,
        "rememberPreviousPasswords": {
          "count": 2,
          "enabled": true
        },
        "requireMixedCase": true,
        "requireNonAlpha": true,
        "requireNumber": true
      }
    }

    Feedback

    How helpful was this page?

    See a problem?

    File an issue in our docs repo

    Have a question or comment to share?

    Visit the FusionAuth community forum.

    © 2023 FusionAuth
    How-to
    Subscribe for developer updates