> For AI agents: [llms.txt](https://docs.trustedauth.com/llms.txt) provides a Markdown index of this documentation.

# Get all authentication flows

`GET /api/web/v2/authenticationflows`

Get all authentication flows. Caller requires the CONTEXTRULES:VIEW permission.

## Responses

### 200

Successful

#### application/json

Schema

```json
{
  "type": "array",
  "items": {
    "required": [
      "id",
      "loginFlows",
      "name",
      "readOnly"
    ],
    "type": "object",
    "properties": {
      "applications": {
        "type": "array",
        "description": "List of applications using this authentication flow.",
        "items": {
          "required": [
            "resourceRules"
          ],
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of the application."
            },
            "name": {
              "type": "string",
              "description": "The name of the application."
            },
            "resourceRules": {
              "type": "array",
              "description": "List of resource rules associated to this application.",
              "items": {
                "required": [
                  "id",
                  "name"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique UUID assigned to the resource rule when it is created."
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the resource rule."
                  }
                },
                "description": "A ResourceRuleNameId contains a resource rule name and unique id.",
                "title": "ResourceRuleNameId"
              }
            }
          },
          "description": "An ApplicationResourceRule defines the resource rules used by an application.",
          "title": "ApplicationResourceRule"
        }
      },
      "id": {
        "type": "string",
        "description": "The unique UUID assigned to the authentication flow when it is created."
      },
      "identityProviders": {
        "type": "array",
        "description": "The identity providers, both OIDC and SAML, supported when the IDP login flow is enabled--limited info is returned. This parameter should be used instead of oidcIdentityProviders.",
        "items": {
          "type": "object",
          "properties": {
            "authenticationEnabled": {
              "type": "boolean",
              "description": "A flag indicating if the external identity provider can be used for user authentication.",
              "example": true
            },
            "buttonImage": {
              "type": "string",
              "description": "The URI of the logo to display on the login button for this external identity provider.",
              "example": "https://account.mycompany.com/images/logo.png"
            },
            "buttonText": {
              "type": "string",
              "description": "The unique text to display on the login button for this external identity provider.",
              "example": "Sign in With MyCompany Co."
            },
            "createUser": {
              "type": "boolean",
              "description": "A flag indicating if the user should be created after authenticating to the external identity provider if it doesn't exist. The user attributes specified by the userAttributeMappings attribute are used to populate the user in IDaaS. This value is used if authenticationEnabled is true.",
              "example": true
            },
            "defaultProvider": {
              "type": "boolean",
              "description": "A flag indicating if this is the tenant's default identity provider. This value applies only to non-domain based identity providers. Only one identity provider can be set as the default at a time."
            },
            "domains": {
              "type": "string",
              "description": "The space separated list of domains associated with the external identity provider for use with user authentication.",
              "example": "test.com sample.com"
            },
            "id": {
              "type": "string",
              "description": "The UUID of the external identity provider.",
              "example": "6784549d-433c-44ea-a42f-4701458dg245"
            },
            "issuer": {
              "type": "string",
              "description": "The issuer URI for the external OIDC identity provider or the issuer, or IDP Entity ID, for the external SAML identity provider.",
              "example": "https://accounts.mycompany.com"
            },
            "name": {
              "type": "string",
              "description": "The unique name of the external identity provider.",
              "example": "MyCompany Co."
            },
            "protocol": {
              "type": "string",
              "description": "The type of the external identity provider.",
              "example": "OIDC",
              "enum": [
                "OIDC",
                "SAML"
              ]
            },
            "spId": {
              "type": "string",
              "description": "The client identifier provided by the external OIDC identity provider or the SP entity ID provided to the external SAML identity provider.",
              "example": "client123"
            },
            "type": {
              "type": "string",
              "description": "The type of the external identity provider.",
              "example": "GENERIC"
            },
            "verificationCertificate2DN": {
              "type": "string",
              "description": "The verification certificate2 DN used with the external identity provider."
            },
            "verificationCertificate2ExpiryDate": {
              "type": "string",
              "description": "The verification certificate2 expiry date used with the external identity provider.",
              "format": "date-time",
              "example": "2019-02-19T13:15:27Z"
            },
            "verificationCertificateDN": {
              "type": "string",
              "description": "The verification certificate DN used with the external identity provider."
            },
            "verificationCertificateExpiryDate": {
              "type": "string",
              "description": "The verification certificate expiry date used with the external identity provider.",
              "format": "date-time",
              "example": "2019-02-19T13:15:27Z"
            },
            "verificationEnabled": {
              "type": "boolean",
              "description": "A flag indicating if the external identity provider can be used for user verification.",
              "example": true
            }
          },
          "description": "An IdentityProvider defines the information returned about an external identity provider for use with user authentication or user verification.",
          "title": "IdentityProvider"
        }
      },
      "idpDefault": {
        "type": "boolean",
        "description": "A flag indicating whether the authentication flow uses the tenant's default IDP. When true, domain-based IDPs are not supported."
      },
      "idpDomainBased": {
        "type": "boolean",
        "description": "A flag indicating if the authentication flow will be using domain-based IDPs."
      },
      "idpLoginSecondStep": {
        "type": "array",
        "description": "The authenticator type to use during in the second step of a two-step authentication scenario when the identity provider Login flow is enabled and requires a second factor. PASSTHROUGH is not supported.",
        "items": {
          "type": "string",
          "description": "The authenticator type to use during in the second step of a two-step authentication scenario when the identity provider Login flow is enabled and requires a second factor. PASSTHROUGH is not supported.",
          "enum": [
            "NONE",
            "KBA",
            "TEMP_ACCESS_CODE",
            "OTP",
            "GRID",
            "TOKEN",
            "TOKENCR",
            "TOKENPUSH",
            "FIDO",
            "USER_CERTIFICATE",
            "SMARTCREDENTIALPUSH",
            "FACE",
            "PASSTHROUGH",
            "MAGICLINK"
          ]
        }
      },
      "loginFlows": {
        "type": "array",
        "description": "List of login flows.",
        "items": {
          "required": [
            "enabled",
            "loginFlowType"
          ],
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean",
              "description": "Whether the login flow is enabled or not.",
              "example": true
            },
            "loginFlowType": {
              "type": "string",
              "description": "Identifies the login flow type.",
              "enum": [
                "USER_LOGIN",
                "SMART_LOGIN",
                "IDP_LOGIN",
                "PASSKEY_LOGIN",
                "USER_CERTIFICATE_LOGIN"
              ]
            }
          },
          "description": "An LoginFlow defines an authentication option available in the authentication flow.",
          "title": "LoginFlow"
        }
      },
      "name": {
        "type": "string",
        "description": "The name of the authentication flow."
      },
      "namedPasswordId": {
        "type": "string",
        "description": "The Named Password Id used for password authentication."
      },
      "oidcIdentityProviders": {
        "type": "array",
        "description": "The OIDC identity providers supported when the IDP login flow is enabled--limited info is returned. This parameter is deprecated, use identityProviders instead.",
        "deprecated": true,
        "items": {
          "type": "object",
          "properties": {
            "acrValues": {
              "type": "string",
              "description": "The space separated list of authentication context request values to request as part of the external OIDC identity provider user authentication or user verification request.",
              "example": "level1 level2"
            },
            "amrValues": {
              "type": "string",
              "description": "The space separated list of authentication method request values to request as part of the external OIDC identity provider user authentication or user verification request.",
              "example": "level1 level2"
            },
            "authenticationEnabled": {
              "type": "boolean",
              "description": "A flag indicating if the external OIDC identity provider can be used for user authentication.",
              "example": true
            },
            "authorizationEndpoint": {
              "type": "string",
              "description": "The authorization endpoint for the external OIDC identity provider.",
              "example": "https://account.mycompany.com/oauth/authorize"
            },
            "buttonImage": {
              "type": "string",
              "description": "The URI of the logo to display on the login button for this external OIDC identity provider.",
              "example": "https://account.mycompany.com/images/logo.png"
            },
            "buttonText": {
              "type": "string",
              "description": "The unique text to display on the login button for this external OIDC identity provider.",
              "example": "Sign in With MyCompany Co."
            },
            "clientAuthenticationMethod": {
              "type": "string",
              "description": "The client authentication method to use with the external OIDC identity provider.",
              "example": "ClientAuthenticationMethod.CLIENT_SECRET_BASIC",
              "enum": [
                "CLIENT_SECRET_BASIC",
                "CLIENT_SECRET_POST"
              ]
            },
            "clientId": {
              "type": "string",
              "description": "The client identifier provided by the external OIDC identity provider.",
              "example": "client123"
            },
            "clientSecret": {
              "type": "string",
              "description": "The client secret provided by the external OIDC identity provider. Currently this value is not returned.",
              "example": "cl1en7S3cr3t!"
            },
            "createUser": {
              "type": "boolean",
              "description": "A flag indicating if the user should be created after authenticating to the external OIDC identity provider if it doesn't exist. The user attributes specified by the userAttributeMappings attribute are used to populate the user in IDaaS. This value is used if authenticationEnabled is true.",
              "example": true
            },
            "defaultProvider": {
              "type": "boolean",
              "description": "A flag indicating if this is the tenant's default identity provider. This value applies only to non-domain based identity providers. Only one identity provider can be set as the default at a time."
            },
            "domains": {
              "type": "string",
              "description": "The space separated list of domains associated with the external OIDC identity provider for use with user authentication.",
              "example": "test.com sample.com"
            },
            "externalGroupMappings": {
              "type": "array",
              "description": "The association between a group claim returned from the external OIDC identity provider and authorization groups. This mapping is used to associate OIDC identity provider external groups when a user is created or modified based on user authentication or when it is modified based on an external OIDC identity provider user verification. This value can only be set if createUser, updateUser, or updateVerificationUser is true and groupMapping is present.",
              "items": {
                "required": [
                  "externalGroupId",
                  "groupId"
                ],
                "type": "object",
                "properties": {
                  "externalGroupId": {
                    "type": "string",
                    "description": "The external group name/ID returned from the identity provider.",
                    "example": "admin-group"
                  },
                  "groupId": {
                    "type": "string",
                    "description": "The Authorization Group UUID this external group maps to."
                  },
                  "id": {
                    "type": "string",
                    "description": "The UUID of the identity provider external group mapping. This value is generated once the mapping is created.",
                    "example": "6781549d-433c-44ea-a42f-4705c26f3245"
                  },
                  "identityProviderId": {
                    "type": "string",
                    "description": "The ID of the identity provider this external group mapping belongs to.",
                    "example": "6781549d-433c-44ea-a42f-4705c26f3245"
                  }
                },
                "description": "A IdentityProviderExternalGroupMapping maps a group name/ID returned from an external identity provider to an Authorization Group for matching purposes.",
                "title": "IdentityProviderExternalGroupMapping"
              }
            },
            "fields": {
              "type": "string",
              "description": "The value of user fields that need to be set the external OIDC identity provider when acquiring user information. This value is used with a TWITTER IDP.",
              "example": "email,name,first_name,last_name"
            },
            "groupIds": {
              "type": "array",
              "description": "The UUIDs of groups that will be assigned to users created after an external OIDC identity provider user authentication. An empty list means the user will be assigned to All Groups. If configured, the full set of groups must be configured. This value is used if createUser is true.",
              "items": {
                "type": "string",
                "description": "The UUIDs of groups that will be assigned to users created after an external OIDC identity provider user authentication. An empty list means the user will be assigned to All Groups. If configured, the full set of groups must be configured. This value is used if createUser is true."
              }
            },
            "groupMapping": {
              "type": "string",
              "description": "The association between a specified claim returned from the external OIDC identity provider and IDaaS groups. This mapping is used to associated IDaaS groups when a user is created or modified based on an external OIDC identity provider user authentication or when it is modified based on an external OIDC identity provider user verification. This value is used if createUser, updateUser, or updateVerificationUser is true."
            },
            "id": {
              "type": "string",
              "description": "The UUID of the external OIDC identity provider.",
              "example": "6784549d-433c-44ea-a42f-4701458dg245"
            },
            "idTokenClaims": {
              "type": "string",
              "description": "The space separated list of id token claims to request as part of the external OIDC identity provider user authentication or user verification request.",
              "example": "groups upn"
            },
            "issuer": {
              "type": "string",
              "description": "The issuer URI for the external OIDC identity provider.",
              "example": "https://accounts.mycompany.com"
            },
            "jwksUri": {
              "type": "string",
              "description": "The JWKS URI endpoint for the external OIDC identity provider used to verify a token signature.",
              "example": "https://account.mycompany.com/oauth/discovery/keys"
            },
            "maxAge": {
              "maximum": 2592000,
              "minimum": -1,
              "type": "integer",
              "description": "The max age to request as part of the external OIDC identity provider user authentication or user verification request. If -1, the value will not be included in the request.",
              "format": "int32",
              "example": 300
            },
            "name": {
              "type": "string",
              "description": "The unique name of the external OIDC identity provider.",
              "example": "MyCompany Co."
            },
            "organizationIds": {
              "type": "array",
              "description": "The UUIDs of organizations that will be assigned to users created after an external OIDC identity provider user authentication. If configured, the full set of organizations must be configured. This value is used if createUser is true.",
              "items": {
                "type": "string",
                "description": "The UUIDs of organizations that will be assigned to users created after an external OIDC identity provider user authentication. If configured, the full set of organizations must be configured. This value is used if createUser is true."
              }
            },
            "requireUserinfoSignature": {
              "type": "boolean",
              "description": "A flag indicating if the user information endpoint of the external OIDC identity provider should be signed and verified.",
              "example": true
            },
            "revocationEndpoint": {
              "type": "string",
              "description": "The revocation endpoint for the external OIDC identity provider.",
              "example": "https://account.mycompany.com/oauth/revoke"
            },
            "roleId": {
              "type": "string",
              "description": "The UUID of the role that will be assigned to users created after an external OIDC identity provider user authentication. An empty string means the user will not be assigned a role by default. This role acts as the default if role mapping is empty. This value can only be set if createUser is true."
            },
            "roleMapping": {
              "type": "string",
              "description": "The association between a specified claim returned from the external OIDC identity provider and an IDaaS role. This mapping is used to associated an IDaaS role when a user is created or modified based on an external OIDC identity provider user authentication or when it is modified based on an external OIDC identity provider user verification. This value is used if createUser, updateUser, or updateVerificationUser is true."
            },
            "scopes": {
              "type": "string",
              "description": "The space separated list of scopes to request as part of the external OIDC identity provider user authentication or user verification request.",
              "example": "openid email"
            },
            "tokenEndpoint": {
              "type": "string",
              "description": "The token endpoint for the external OIDC identity provider.",
              "example": "https://account.mycompany.com/oauth/token"
            },
            "type": {
              "type": "string",
              "description": "The type of the external OIDC identity provider. Once created, this value cannot be updated.",
              "example": "FACEBOOK",
              "enum": [
                "FACEBOOK",
                "GENERIC",
                "GOOGLE",
                "IDV",
                "MICROSOFT",
                "SP",
                "TWITTER"
              ]
            },
            "updateUser": {
              "type": "boolean",
              "description": "A flag indicating if the user should be updated after authenticating to the external OIDC identity provider if it exists. The user attributes specified by the userAttributeMappings attribute are used to populate the user in IDaaS. This value is used if authenticationEnabled is true.",
              "example": true
            },
            "updateUserVerification": {
              "type": "boolean",
              "description": "A flag indicating if the user should be updated after user verification to the external OIDC identity provider if it exists. The user attributes specified by the userAttributeMappings attribute are used to populate the user in IDaaS. This value is used if verificationEnabled is true.",
              "example": true
            },
            "userAttributeId": {
              "type": "string",
              "description": "The IDaaS user attribute ID used to find IDaaS users associated with an external OIDC identity provider user authentication. This value is used if authenticationEnabled is true."
            },
            "userAttributeMappings": {
              "type": "array",
              "description": "The association between the claims returned from the external OIDC identity provider and IDaaS user attributes. These attributes are used to populate user attributes when it is created or modified based on an external OIDC identity provider user authentication or when it is modified based on an external OIDC identity provider user verification. If configured, the full set of mappings must be configured. This value is used if createUser, updateUser, or updateVerificationUser is true.",
              "items": {
                "required": [
                  "claim",
                  "userAttributeId"
                ],
                "type": "object",
                "properties": {
                  "claim": {
                    "type": "string",
                    "description": "The name of the claim being mapped. This value must be provided when creating or modifying an attribute mapping.",
                    "example": "email"
                  },
                  "id": {
                    "type": "string",
                    "description": "The UUID of the OIDC identity provider attribute mapping.",
                    "example": "6781549d-433c-44ea-a42f-4705c26f3245"
                  },
                  "oidcIdentityProviderId": {
                    "type": "string",
                    "description": "The UUID of the OIDC identity provider the attribute mapping belongs to.",
                    "example": "6881549d-433c-44ea-a42f-4705c26f3245"
                  },
                  "userAttribute": {
                    "required": [
                      "mandatory",
                      "name",
                      "systemDefined",
                      "unique"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "The UUID for this user attribute.  Generated when the user attribute is created."
                      },
                      "mandatory": {
                        "type": "boolean",
                        "description": "A flag indicating if users must have a value for this user attribute."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of this user attribute."
                      },
                      "systemDefined": {
                        "type": "boolean",
                        "description": "A flag indicating if this user attribute is one of the system defined user attributes."
                      },
                      "type": {
                        "type": "string",
                        "description": "Type of user attribute. Currently only used to specify the type of contact if the attribute is to be used for OTP delivery.",
                        "example": "OTP_EMAIL",
                        "enum": [
                          "NONE",
                          "OTP_EMAIL",
                          "OTP_SMS",
                          "OTP_VOICE",
                          "OTP_WECHAT",
                          "OTP_WHATSAPP"
                        ]
                      },
                      "unique": {
                        "type": "boolean",
                        "description": "A flag indicating if this attribute is intended to be unique."
                      }
                    },
                    "description": "Information about user attribute definitions.",
                    "title": "UserAttribute"
                  },
                  "userAttributeId": {
                    "type": "string",
                    "description": "The UUID of the IDaaS user attribute being mapped to. This value must be provided when creating or modifying an attribute mapping.",
                    "example": "6981549d-433c-44ea-a42f-4705c26f3245"
                  }
                },
                "description": "An OidcIdentityProviderAttributeMapping maps a claim returned from an external OIDC identity provider user authentication or user verification to an IDaaS user attribute.",
                "title": "OidcIdentityProviderAttributeMapping"
              }
            },
            "userAuthMatchMappings": {
              "type": "array",
              "description": "The association between the claims returned from the external OIDC identity provider and IDaaS user attributes. These attributes are used to match an existing IDaaS user based on an external OIDC identity provider user authentication. If configured, the full set of mappings must be configured. This value is used if authenticationEnabled is true.",
              "items": {
                "required": [
                  "claim",
                  "userAttributeId"
                ],
                "type": "object",
                "properties": {
                  "claim": {
                    "type": "string",
                    "description": "The name of the claim being mapped. This value must be provided when creating or modifying a user authentication match mapping.",
                    "example": "email"
                  },
                  "id": {
                    "type": "string",
                    "description": "The UUID of the OIDC identity provider user authentication match mapping.",
                    "example": "6781549d-433c-44ea-a42f-4705c26f3245"
                  },
                  "oidcIdentityProviderId": {
                    "type": "string",
                    "description": "The UUID of the OIDC identity provider the user authentication match mapping belongs to.",
                    "example": "6881549d-433c-44ea-a42f-4705c26f3245"
                  },
                  "userAttribute": {
                    "required": [
                      "mandatory",
                      "name",
                      "systemDefined",
                      "unique"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "The UUID for this user attribute.  Generated when the user attribute is created."
                      },
                      "mandatory": {
                        "type": "boolean",
                        "description": "A flag indicating if users must have a value for this user attribute."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of this user attribute."
                      },
                      "systemDefined": {
                        "type": "boolean",
                        "description": "A flag indicating if this user attribute is one of the system defined user attributes."
                      },
                      "type": {
                        "type": "string",
                        "description": "Type of user attribute. Currently only used to specify the type of contact if the attribute is to be used for OTP delivery.",
                        "example": "OTP_EMAIL",
                        "enum": [
                          "NONE",
                          "OTP_EMAIL",
                          "OTP_SMS",
                          "OTP_VOICE",
                          "OTP_WECHAT",
                          "OTP_WHATSAPP"
                        ]
                      },
                      "unique": {
                        "type": "boolean",
                        "description": "A flag indicating if this attribute is intended to be unique."
                      }
                    },
                    "description": "Information about user attribute definitions.",
                    "title": "UserAttribute"
                  },
                  "userAttributeId": {
                    "type": "string",
                    "description": "The UUID of the IDaaS user attribute being mapped to. This value must be provided when creating or modifying a user authentication match mapping.",
                    "example": "6981549d-433c-44ea-a42f-4705c26f3245"
                  }
                },
                "description": "An OidcIdentityProviderUserAuthMatchMapping maps a claim returned from an external OIDC identity provide user authentication to an IDaaS User user attribute for matching purposes.",
                "title": "OidcIdentityProviderUserAuthMatchMapping"
              }
            },
            "userClaim": {
              "type": "string",
              "description": "The external OIDC identity provider claim used to find IDaaS users associated with an external OIDC identity provider user authentication. This value is used if authenticationEnabled is true."
            },
            "userVerMatchMappings": {
              "type": "array",
              "description": "The association between the claims returned from the external OIDC identity provider and IDaaS user attributes. These attributes are used to match an existing IDaaS user based on an external OIDC identity provider user verification. If configured, the full set of mappings must be configured. This value is used if verificationEnabled is true.",
              "items": {
                "required": [
                  "claim",
                  "userAttributeId"
                ],
                "type": "object",
                "properties": {
                  "claim": {
                    "type": "string",
                    "description": "The name of the claim being mapped. This value must be provided when creating or modifying a user verification match mapping.",
                    "example": "email"
                  },
                  "id": {
                    "type": "string",
                    "description": "The UUID of the OIDC identity provider user verification match mapping.",
                    "example": "6781549d-433c-44ea-a42f-4705c26f3245"
                  },
                  "oidcIdentityProviderId": {
                    "type": "string",
                    "description": "The UUID of the OIDC identity provider the user verification match mapping belongs to.",
                    "example": "6881549d-433c-44ea-a42f-4705c26f3245"
                  },
                  "userAttribute": {
                    "required": [
                      "mandatory",
                      "name",
                      "systemDefined",
                      "unique"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "The UUID for this user attribute.  Generated when the user attribute is created."
                      },
                      "mandatory": {
                        "type": "boolean",
                        "description": "A flag indicating if users must have a value for this user attribute."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of this user attribute."
                      },
                      "systemDefined": {
                        "type": "boolean",
                        "description": "A flag indicating if this user attribute is one of the system defined user attributes."
                      },
                      "type": {
                        "type": "string",
                        "description": "Type of user attribute. Currently only used to specify the type of contact if the attribute is to be used for OTP delivery.",
                        "example": "OTP_EMAIL",
                        "enum": [
                          "NONE",
                          "OTP_EMAIL",
                          "OTP_SMS",
                          "OTP_VOICE",
                          "OTP_WECHAT",
                          "OTP_WHATSAPP"
                        ]
                      },
                      "unique": {
                        "type": "boolean",
                        "description": "A flag indicating if this attribute is intended to be unique."
                      }
                    },
                    "description": "Information about user attribute definitions.",
                    "title": "UserAttribute"
                  },
                  "userAttributeId": {
                    "type": "string",
                    "description": "The UUID of the IDaaS user attribute being mapped to. This value must be provided when creating or modifying a user verification match mapping.",
                    "example": "6981549d-433c-44ea-a42f-4705c26f3245"
                  }
                },
                "description": "An OidcIdentityProviderUserVerMatchMapping maps a claim returned from an external OIDC identity provide user verification to an IDaaS User user attribute for matching purposes.",
                "title": "OidcIdentityProviderUserVerMatchMapping"
              }
            },
            "userinfoClaims": {
              "type": "string",
              "description": "The space separated list of user information claims to request as part of the external OIDC identity provider user authentication or user verification request.",
              "example": "groups upn"
            },
            "userinfoEndpoint": {
              "type": "string",
              "description": "The user information endpoint for the external OIDC identity provider.",
              "example": "https://account.mycompany.com/oauth/userinfo"
            },
            "verificationEnabled": {
              "type": "boolean",
              "description": "A flag indicating if the external OIDC identity provider can be used for user verification.",
              "example": true
            }
          },
          "description": "An OidcIdentityProvider defines the information returned about an external OpenID Connect identity provider for use with user authentication or user verification.",
          "title": "OidcIdentityProvider"
        }
      },
      "otpDeliveryPreference": {
        "type": "array",
        "description": "The order preference to use for OTP delivery.",
        "items": {
          "required": [
            "type"
          ],
          "type": "object",
          "properties": {
            "contactAttributes": {
              "type": "array",
              "description": "A list of uuids of the otp contact attributes in order which indicates the OTP contacts preference.",
              "items": {
                "type": "string",
                "description": "A list of uuids of the otp contact attributes in order which indicates the OTP contacts preference."
              }
            },
            "type": {
              "type": "string",
              "description": "Indicates the type of the otp preference details.",
              "example": "SMS",
              "enum": [
                "EMAIL",
                "SMS",
                "VOICE",
                "WECHAT",
                "WHATSAPP",
                "NONE"
              ]
            }
          },
          "description": "Settings that control the behavior of OTP authentication.",
          "title": "OTPPreferenceDetails"
        }
      },
      "overrideOtpContacts": {
        "type": "boolean",
        "description": "A flag indicating if group based OTP policy can be overridden by the authentication flow OTP policy."
      },
      "readOnly": {
        "type": "boolean",
        "description": "A flag indicating if the authentication flow can be modified or deleted."
      },
      "userLoginFirstStep": {
        "type": "string",
        "description": "The authenticator type to use in the first step of a two-step authentication scenario when the  User Login flow is enabled.",
        "enum": [
          "NONE",
          "EXTERNAL",
          "PASSWORD",
          "KBA",
          "OTP",
          "TOKEN",
          "TOKENPUSH",
          "SMARTCREDENTIALPUSH",
          "IDP",
          "PASSKEY",
          "SMART_LOGIN",
          "USER_CERTIFICATE",
          "FACE",
          "DENY",
          "MAGICLINK"
        ]
      },
      "userLoginSecondStep": {
        "type": "array",
        "description": "The authenticator type to use during in the second step of a two-step authentication scenario when the User Login flow is enabled.",
        "items": {
          "type": "string",
          "description": "The authenticator type to use during in the second step of a two-step authentication scenario when the User Login flow is enabled.",
          "enum": [
            "NONE",
            "KBA",
            "TEMP_ACCESS_CODE",
            "OTP",
            "GRID",
            "TOKEN",
            "TOKENCR",
            "TOKENPUSH",
            "FIDO",
            "USER_CERTIFICATE",
            "SMARTCREDENTIALPUSH",
            "FACE",
            "PASSTHROUGH",
            "MAGICLINK"
          ]
        }
      }
    },
    "description": "An AuthenticationFlow defines the authentication options available for a given risk level.",
    "title": "AuthenticationFlow"
  }
}
```

### 400

Bad Request

#### application/json

Schema

```json
{
  "type": "object",
  "properties": {
    "errorCode": {
      "type": "string",
      "description": "Error Codes specific to cause of failure.",
      "example": "invalid_user_response"
    },
    "errorMessage": {
      "type": "string",
      "description": "Additional Error Message describing the error.",
      "example": "Application id cannot be null"
    },
    "parameters": {
      "type": "array",
      "description": "Optional additional error information.",
      "items": {
        "type": "object",
        "description": "Optional additional error information."
      }
    }
  },
  "description": "Object containing information about errors reported by services.",
  "title": "ErrorInfo"
}
```

### 401

Access denied

#### application/json

Schema

```json
{
  "type": "object",
  "properties": {
    "errorCode": {
      "type": "string",
      "description": "Error Codes specific to cause of failure.",
      "example": "invalid_user_response"
    },
    "errorMessage": {
      "type": "string",
      "description": "Additional Error Message describing the error.",
      "example": "Application id cannot be null"
    },
    "parameters": {
      "type": "array",
      "description": "Optional additional error information.",
      "items": {
        "type": "object",
        "description": "Optional additional error information."
      }
    }
  },
  "description": "Object containing information about errors reported by services.",
  "title": "ErrorInfo"
}
```

### 403

Forbidden

#### application/json

Schema

```json
{
  "type": "object",
  "properties": {
    "errorCode": {
      "type": "string",
      "description": "Error Codes specific to cause of failure.",
      "example": "invalid_user_response"
    },
    "errorMessage": {
      "type": "string",
      "description": "Additional Error Message describing the error.",
      "example": "Application id cannot be null"
    },
    "parameters": {
      "type": "array",
      "description": "Optional additional error information.",
      "items": {
        "type": "object",
        "description": "Optional additional error information."
      }
    }
  },
  "description": "Object containing information about errors reported by services.",
  "title": "ErrorInfo"
}
```

### 404

Not Found

#### application/json

Schema

```json
{
  "type": "object",
  "properties": {
    "errorCode": {
      "type": "string",
      "description": "Error Codes specific to cause of failure.",
      "example": "invalid_user_response"
    },
    "errorMessage": {
      "type": "string",
      "description": "Additional Error Message describing the error.",
      "example": "Application id cannot be null"
    },
    "parameters": {
      "type": "array",
      "description": "Optional additional error information.",
      "items": {
        "type": "object",
        "description": "Optional additional error information."
      }
    }
  },
  "description": "Object containing information about errors reported by services.",
  "title": "ErrorInfo"
}
```

### 409

Conflict

#### application/json

Schema

```json
{
  "type": "object",
  "properties": {
    "errorCode": {
      "type": "string",
      "description": "Error Codes specific to cause of failure.",
      "example": "invalid_user_response"
    },
    "errorMessage": {
      "type": "string",
      "description": "Additional Error Message describing the error.",
      "example": "Application id cannot be null"
    },
    "parameters": {
      "type": "array",
      "description": "Optional additional error information.",
      "items": {
        "type": "object",
        "description": "Optional additional error information."
      }
    }
  },
  "description": "Object containing information about errors reported by services.",
  "title": "ErrorInfo"
}
```

## Security

Requirements

```json
[
  {
    "AdminAPIAuthentication": [
      "CONTEXTRULES:VIEW"
    ]
  }
]
```
