> ## 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.

# Create Email OTP authenticator configuration

> Create the tenant's email OTP authenticator configuration.



## OpenAPI

````yaml management-api POST /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:
    post:
      tags:
        - email OTP configuration
      summary: Create an email OTP configuration
      description: >-
        Creates the tenant's email OTP configuration. Include the credentials
        required by the selected provider.
      operationId: createEmailOtpAuthenticatorConfiguration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/CreateEmailOtpAuthenticatorConfigurationBody
      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'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CreateEmailOtpAuthenticatorConfigurationBody:
      type: object
      description: Email OTP configuration to create.
      properties:
        isActive:
          type: boolean
          description: Whether the authentication method is active. Defaults to `true`.
        emailProvider:
          $ref: '#/components/schemas/EmailOtpProvider'
        submissionRateLimitConfiguration:
          $ref: '#/components/schemas/RateLimitConfiguration'
          description: The verification-code submission limit for email OTP.
        sendingRateLimitConfigurations:
          $ref: '#/components/schemas/SendingRateLimitConfigurations'
        allowedCustomEmailVariables:
          $ref: '#/components/schemas/CustomMessageVariables'
          description: Custom template variable names for email.
        mailjetEmailCredentials:
          $ref: '#/components/schemas/MailjetEmailCredentialsCreate'
          description: Use with the `MAILJET` email provider.
        mailgunEmailCredentials:
          $ref: '#/components/schemas/MailgunEmailCredentialsCreate'
          description: Use with the `MAILGUN` email provider.
        mandrillEmailCredentials:
          $ref: '#/components/schemas/MandrillEmailCredentialsCreate'
          description: Use with the `MANDRILL` email provider.
        birdEmailCredentials:
          $ref: '#/components/schemas/BirdEmailCredentialsCreate'
          description: Use with the `BIRD` email provider.
        sendgridEmailCredentials:
          $ref: '#/components/schemas/SendgridEmailCredentialsCreate'
          description: Use with the `SENDGRID` email provider.
        smtpEmailCredentials:
          $ref: '#/components/schemas/SmtpEmailCredentialsCreate'
          description: Use with the `SMTP` email provider.
      required:
        - emailProvider
      allOf:
        - if:
            properties:
              emailProvider:
                const: BIRD
            required:
              - emailProvider
          then:
            required:
              - birdEmailCredentials
        - if:
            properties:
              emailProvider:
                const: MAILJET
            required:
              - emailProvider
          then:
            required:
              - mailjetEmailCredentials
        - if:
            properties:
              emailProvider:
                const: MAILGUN
            required:
              - emailProvider
          then:
            required:
              - mailgunEmailCredentials
        - if:
            properties:
              emailProvider:
                const: MANDRILL
            required:
              - emailProvider
          then:
            required:
              - mandrillEmailCredentials
        - if:
            properties:
              emailProvider:
                const: SENDGRID
            required:
              - emailProvider
          then:
            required:
              - sendgridEmailCredentials
        - if:
            properties:
              emailProvider:
                const: SMTP
            required:
              - emailProvider
          then:
            required:
              - smtpEmailCredentials
      dependentSchemas:
        birdEmailCredentials:
          properties:
            emailProvider:
              const: BIRD
        mailjetEmailCredentials:
          properties:
            emailProvider:
              const: MAILJET
        mailgunEmailCredentials:
          properties:
            emailProvider:
              const: MAILGUN
        mandrillEmailCredentials:
          properties:
            emailProvider:
              const: MANDRILL
        sendgridEmailCredentials:
          properties:
            emailProvider:
              const: SENDGRID
        smtpEmailCredentials:
          properties:
            emailProvider:
              const: SMTP
      additionalProperties: false
      example:
        emailProvider: SMTP
        smtpEmailCredentials:
          host: smtp.example.com
          port: 587
          secure: true
          user: smtp-user
          password: smtp-password
          from: security@example.com
        sendingRateLimitConfigurations:
          - rateLimit: 12
            windowInMinutes: 10
    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
    MailjetEmailCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/MailjetEmailCredentials'
        - required:
            - privateKey
            - publicKey
            - templateId
    MailgunEmailCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/MailgunEmailCredentials'
        - required:
            - apiKey
            - url
            - templateName
            - domain
    MandrillEmailCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/MandrillEmailCredentials'
        - required:
            - apiKey
            - templateName
    BirdEmailCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/BirdEmailCredentials'
        - required:
            - accessKey
            - workspaceId
            - channelId
            - projectId
    SendgridEmailCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/SendgridEmailCredentials'
        - required:
            - apiKey
            - templateId
            - fromEmail
    SmtpEmailCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/SmtpEmailCredentials'
        - required:
            - host
            - port
            - secure
            - user
            - password
            - from
    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.

````