> ## Documentation Index
> Fetch the complete documentation index at: https://docs.authsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Email OTP authenticator configuration

> Update the tenant's email OTP authenticator configuration.



## OpenAPI

````yaml management-api PATCH /authenticator-configurations/email-otp
openapi: 3.1.0
info:
  description: Authsignal's Management API
  version: 1.0.0
  title: Management Api
  termsOfService: https://www.authsignal.com/legal/terms-of-service
  contact:
    email: hello@authsignal.com
servers:
  - url: https://api.authsignal.com/v1/management
    description: Authsignal's US (Oregon) Management API
  - url: https://au.api.authsignal.com/v1/management
    description: Authsignal's AU (Sydney) Management API
  - url: https://eu.api.authsignal.com/v1/management
    description: Authsignal's EU (Ireland) Management API
  - url: https://ca.api.authsignal.com/v1/management
    description: Authsignal's CA (Montreal) Management API
security:
  - basicAuth: []
tags:
  - name: Tenant
    description: Endpoints related to the configuration of a tenant.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: Action Configurations
    description: Endpoints related to the configuration of action configurations.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: SMS OTP configuration
    description: Endpoints for managing the tenant's SMS OTP configuration.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: email OTP configuration
    description: Endpoints for managing the tenant's email OTP configuration.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: passkey configuration
    description: Endpoints for managing the tenant's passkey configuration.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: push configuration
    description: Endpoints for managing the tenant's push configuration.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: Rules
    description: Endpoints related to the configuration of rules.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: Theme
    description: Endpoints related to the configuration of a Tenant's theme.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: Message Overrides
    description: >-
      Endpoints related to the configuration of a Tenant's pre-built UI message
      overrides.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
externalDocs:
  description: Find out more about Authsignal
  url: https://docs.authsignal.com
paths:
  /authenticator-configurations/email-otp:
    patch:
      tags:
        - email OTP configuration
      summary: Update the email OTP configuration
      description: >-
        Updates the tenant's email OTP configuration. Omitted fields are
        preserved.
      operationId: updateEmailOtpAuthenticatorConfiguration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/UpdateEmailOtpAuthenticatorConfigurationBody
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailOtpAuthenticatorConfiguration'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    UpdateEmailOtpAuthenticatorConfigurationBody:
      type: object
      description: >-
        Email OTP fields to update. Omitted fields are preserved. Send `null`
        for a clearable field to remove it. Credential objects are merged with
        stored credentials. When `emailProvider` changes, the new provider's
        credentials are required unless a complete set is already stored;
        restating the current provider needs none. Credentials must belong to
        the selected (or stored) provider, and a request that leaves it without
        complete credentials is rejected.
      properties:
        isActive:
          type: boolean
        emailProvider:
          $ref: '#/components/schemas/EmailOtpProvider'
        submissionRateLimitConfiguration:
          oneOf:
            - $ref: '#/components/schemas/RateLimitConfiguration'
            - type: 'null'
        sendingRateLimitConfigurations:
          oneOf:
            - $ref: '#/components/schemas/SendingRateLimitConfigurations'
            - type: 'null'
        allowedCustomEmailVariables:
          $ref: '#/components/schemas/CustomMessageVariables'
        mailjetEmailCredentials:
          $ref: '#/components/schemas/MailjetEmailCredentialsUpdate'
          description: Use with the `MAILJET` email provider.
        mailgunEmailCredentials:
          $ref: '#/components/schemas/MailgunEmailCredentialsUpdate'
          description: Use with the `MAILGUN` email provider.
        mandrillEmailCredentials:
          $ref: '#/components/schemas/MandrillEmailCredentialsUpdate'
          description: Use with the `MANDRILL` email provider.
        birdEmailCredentials:
          $ref: '#/components/schemas/BirdEmailCredentialsUpdate'
          description: Use with the `BIRD` email provider.
        sendgridEmailCredentials:
          $ref: '#/components/schemas/SendgridEmailCredentialsUpdate'
          description: Use with the `SENDGRID` email provider.
        smtpEmailCredentials:
          $ref: '#/components/schemas/SmtpEmailCredentialsUpdate'
          description: Use with the `SMTP` email provider.
      additionalProperties: false
      allOf:
        - if:
            properties:
              emailProvider:
                const: BIRD
            required:
              - emailProvider
          then:
            not:
              anyOf:
                - required:
                    - mailjetEmailCredentials
                - required:
                    - mailgunEmailCredentials
                - required:
                    - mandrillEmailCredentials
                - required:
                    - sendgridEmailCredentials
                - required:
                    - smtpEmailCredentials
        - if:
            properties:
              emailProvider:
                const: MAILJET
            required:
              - emailProvider
          then:
            not:
              anyOf:
                - required:
                    - birdEmailCredentials
                - required:
                    - mailgunEmailCredentials
                - required:
                    - mandrillEmailCredentials
                - required:
                    - sendgridEmailCredentials
                - required:
                    - smtpEmailCredentials
        - if:
            properties:
              emailProvider:
                const: MAILGUN
            required:
              - emailProvider
          then:
            not:
              anyOf:
                - required:
                    - birdEmailCredentials
                - required:
                    - mailjetEmailCredentials
                - required:
                    - mandrillEmailCredentials
                - required:
                    - sendgridEmailCredentials
                - required:
                    - smtpEmailCredentials
        - if:
            properties:
              emailProvider:
                const: MANDRILL
            required:
              - emailProvider
          then:
            not:
              anyOf:
                - required:
                    - birdEmailCredentials
                - required:
                    - mailjetEmailCredentials
                - required:
                    - mailgunEmailCredentials
                - required:
                    - sendgridEmailCredentials
                - required:
                    - smtpEmailCredentials
        - if:
            properties:
              emailProvider:
                const: SENDGRID
            required:
              - emailProvider
          then:
            not:
              anyOf:
                - required:
                    - birdEmailCredentials
                - required:
                    - mailjetEmailCredentials
                - required:
                    - mailgunEmailCredentials
                - required:
                    - mandrillEmailCredentials
                - required:
                    - smtpEmailCredentials
        - if:
            properties:
              emailProvider:
                const: SMTP
            required:
              - emailProvider
          then:
            not:
              anyOf:
                - required:
                    - birdEmailCredentials
                - required:
                    - mailjetEmailCredentials
                - required:
                    - mailgunEmailCredentials
                - required:
                    - mandrillEmailCredentials
                - required:
                    - sendgridEmailCredentials
      example:
        allowedCustomEmailVariables:
          - firstName
    EmailOtpAuthenticatorConfiguration:
      type: object
      properties:
        authenticatorId:
          type: string
          description: The immutable identifier for this configuration.
          readOnly: true
        isActive:
          type: boolean
        verificationMethod:
          type: string
          const: EMAIL_OTP
          readOnly: true
          description: The verification method produced by this configuration.
        emailProvider:
          $ref: '#/components/schemas/EmailOtpProvider'
        submissionRateLimitConfiguration:
          $ref: '#/components/schemas/RateLimitConfiguration'
        sendingRateLimitConfigurations:
          $ref: '#/components/schemas/SendingRateLimitConfigurations'
        allowedCustomEmailVariables:
          $ref: '#/components/schemas/CustomMessageVariables'
        mailjetEmailCredentials:
          $ref: '#/components/schemas/MailjetEmailCredentialsResponse'
          description: Use with the `MAILJET` email provider.
        mailgunEmailCredentials:
          $ref: '#/components/schemas/MailgunEmailCredentialsResponse'
          description: Use with the `MAILGUN` email provider.
        mandrillEmailCredentials:
          $ref: '#/components/schemas/MandrillEmailCredentialsResponse'
          description: Use with the `MANDRILL` email provider.
        birdEmailCredentials:
          $ref: '#/components/schemas/BirdEmailCredentialsResponse'
          description: Use with the `BIRD` email provider.
        sendgridEmailCredentials:
          $ref: '#/components/schemas/SendgridEmailCredentialsResponse'
          description: Use with the `SENDGRID` email provider.
        smtpEmailCredentials:
          $ref: '#/components/schemas/SmtpEmailCredentialsResponse'
          description: Use with the `SMTP` email provider.
      required:
        - authenticatorId
        - verificationMethod
        - isActive
      additionalProperties: true
      example:
        authenticatorId: 6b736c64-ff30-4b85-8706-0c78c34c0ca9
        verificationMethod: EMAIL_OTP
        isActive: true
        emailProvider: SENDGRID
        sendingRateLimitConfigurations:
          - rateLimit: 12
            windowInMinutes: 10
        sendgridEmailCredentials:
          templateId: template-id
          fromEmail: security@example.com
          fromName: Example
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        errorDescription:
          type: string
    EmailOtpProvider:
      type: string
      description: >-
        The email provider. Supply the matching credential object for `BIRD`,
        `MAILJET`, `MAILGUN`, `MANDRILL`, `SENDGRID`, or `SMTP`.
      enum:
        - BIRD
        - MAILJET
        - MAILGUN
        - MANDRILL
        - SENDGRID
        - SMTP
    RateLimitConfiguration:
      type: object
      properties:
        rateLimit:
          type: integer
          minimum: 1
          maximum: 100
        windowInMinutes:
          type: number
          minimum: 1
          maximum: 1440
      required:
        - rateLimit
        - windowInMinutes
      additionalProperties: false
    SendingRateLimitConfigurations:
      type: array
      description: Message delivery limits. Every configured limit applies.
      items:
        $ref: '#/components/schemas/RateLimitConfiguration'
      minItems: 1
      maxItems: 6
    CustomMessageVariables:
      type: array
      items:
        type: string
    MailjetEmailCredentialsUpdate:
      oneOf:
        - $ref: '#/components/schemas/MailjetEmailCredentials'
        - type: 'null'
    MailgunEmailCredentialsUpdate:
      oneOf:
        - $ref: '#/components/schemas/MailgunEmailCredentials'
        - type: 'null'
    MandrillEmailCredentialsUpdate:
      oneOf:
        - $ref: '#/components/schemas/MandrillEmailCredentials'
        - type: 'null'
    BirdEmailCredentialsUpdate:
      oneOf:
        - $ref: '#/components/schemas/BirdEmailCredentials'
        - type: 'null'
    SendgridEmailCredentialsUpdate:
      oneOf:
        - $ref: '#/components/schemas/SendgridEmailCredentials'
        - type: 'null'
    SmtpEmailCredentialsUpdate:
      oneOf:
        - $ref: '#/components/schemas/SmtpEmailCredentials'
        - type: 'null'
    MailjetEmailCredentialsResponse:
      type: object
      properties:
        publicKey:
          type: string
        templateId:
          type: integer
      additionalProperties: false
    MailgunEmailCredentialsResponse:
      type: object
      properties:
        url:
          type: string
        templateName:
          type: string
        domain:
          type: string
        from:
          type: string
      additionalProperties: false
    MandrillEmailCredentialsResponse:
      type: object
      properties:
        templateName:
          type: string
      additionalProperties: false
    BirdEmailCredentialsResponse:
      type: object
      properties:
        workspaceId:
          type: string
        channelId:
          type: string
        projectId:
          type: string
        versionId:
          type: string
        locale:
          type: string
        senderEmail:
          type: string
        senderName:
          type: string
      additionalProperties: false
    SendgridEmailCredentialsResponse:
      type: object
      properties:
        templateId:
          type: string
        fromEmail:
          type: string
        fromName:
          type: string
      additionalProperties: false
    SmtpEmailCredentialsResponse:
      type: object
      properties:
        host:
          type: string
        port:
          type: integer
        secure:
          type: boolean
        user:
          type: string
        from:
          type: string
        fromName:
          type: string
        replyTo:
          type: string
        replyToName:
          type: string
      additionalProperties: false
    MailjetEmailCredentials:
      type: object
      properties:
        privateKey:
          type: string
          writeOnly: true
        publicKey:
          type: string
        templateId:
          type: integer
      additionalProperties: false
    MailgunEmailCredentials:
      type: object
      properties:
        apiKey:
          type: string
          writeOnly: true
        url:
          type: string
        templateName:
          type: string
        domain:
          type: string
        from:
          type: string
      additionalProperties: false
    MandrillEmailCredentials:
      type: object
      properties:
        apiKey:
          type: string
          writeOnly: true
        templateName:
          type: string
      additionalProperties: false
    BirdEmailCredentials:
      type: object
      properties:
        accessKey:
          type: string
          writeOnly: true
        workspaceId:
          type: string
        channelId:
          type: string
        projectId:
          type: string
        versionId:
          type: string
        locale:
          type: string
        senderEmail:
          type: string
        senderName:
          type: string
      additionalProperties: false
    SendgridEmailCredentials:
      type: object
      properties:
        apiKey:
          type: string
          writeOnly: true
        templateId:
          type: string
        fromEmail:
          type: string
        fromName:
          type: string
      additionalProperties: false
    SmtpEmailCredentials:
      type: object
      properties:
        host:
          type: string
        port:
          type: integer
        secure:
          type: boolean
        user:
          type: string
        password:
          type: string
          writeOnly: true
        from:
          type: string
        fromName:
          type: string
        replyTo:
          type: string
        replyToName:
          type: string
      additionalProperties: false
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Use your Authsignal Management API secret key as the username and leave
        the password empty. This key is different from the Server API key and
        can be found in the API Keys section of the Authsignal Portal settings
        page.

````