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

# Create Email Sender

> Register a new sender identity. In `single_email` mode the API auto-provisions an SES connection and triggers verification; in `domain` mode the email must belong to a verified `EmailDomain` on the company. If the sender is already verified at SendGrid/Resend, the local row is returned as `verified` immediately.



## OpenAPI

````yaml POST /email/senders/
openapi: 3.1.0
info:
  title: Outbox AI API
  description: API for managing AI agents (chatbots and voicebots) on the Outbox platform
  version: 1.0.0
servers:
  - url: https://api.getoutbox.ai
security: []
paths:
  /email/senders/:
    post:
      tags:
        - email
      summary: Create Email Sender Identity
      description: >-
        Register a new sender identity. In `single_email` mode the API
        auto-provisions an SES connection and triggers verification; in `domain`
        mode the email must belong to a verified `EmailDomain` on the company.
        If the sender is already verified at SendGrid/Resend, the local row is
        returned as `verified` immediately.
      operationId: email_senders_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailSenderIdentityRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EmailSenderIdentityRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/EmailSenderIdentityRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailSenderIdentity'
          description: ''
        '400':
          description: >-
            Invalid connection, missing/invalid domain for `domain` verification
            mode, or sender email outside the selected domain.
      security:
        - jwtAuth: []
        - {}
components:
  schemas:
    EmailSenderIdentityRequest:
      type: object
      properties:
        from_name:
          type: string
          maxLength: 255
        from_email:
          type: string
          format: email
          minLength: 1
          maxLength: 255
        verification_mode:
          $ref: '#/components/schemas/VerificationModeEnum'
        reply_to_email:
          type: string
          format: email
          maxLength: 255
        use_default_reply_to:
          type: boolean
        status:
          $ref: '#/components/schemas/StatusA39Enum'
        provider_sender_id:
          type: string
          maxLength: 255
        verification_details: {}
        is_default:
          type: boolean
        is_deleted:
          type: boolean
        verified_at:
          type: string
          format: date-time
          nullable: true
        created_at:
          type: string
          format: date-time
        company:
          type: string
          format: uuid
        connection:
          type: string
          format: uuid
          nullable: true
        domain:
          type: string
          format: uuid
          nullable: true
      required:
        - company
        - from_email
    EmailSenderIdentity:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        from_name:
          type: string
          maxLength: 255
        from_email:
          type: string
          format: email
          maxLength: 255
        verification_mode:
          $ref: '#/components/schemas/VerificationModeEnum'
        reply_to_email:
          type: string
          format: email
          maxLength: 255
        use_default_reply_to:
          type: boolean
        status:
          $ref: '#/components/schemas/StatusA39Enum'
        provider_sender_id:
          type: string
          maxLength: 255
        verification_details: {}
        is_default:
          type: boolean
        is_deleted:
          type: boolean
        verified_at:
          type: string
          format: date-time
          nullable: true
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
          readOnly: true
        company:
          type: string
          format: uuid
        connection:
          type: string
          format: uuid
          nullable: true
        domain:
          type: string
          format: uuid
          nullable: true
      required:
        - company
        - from_email
        - id
        - updated_at
    VerificationModeEnum:
      enum:
        - single_email
        - domain
      type: string
      description: |-
        * `single_email` - Single Email
        * `domain` - Domain
    StatusA39Enum:
      enum:
        - pending
        - verified
        - failed
      type: string
      description: |-
        * `pending` - Pending
        * `verified` - Verified
        * `failed` - Failed
  securitySchemes:
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````