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

# Update email sender details

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Changes the name and address your app's mail is sent from.

Both fields are required, so send the current value for whichever you are not changing.

`from_email` picks which domain you are editing: its part after the `@` has to be a domain already set up on this app, and you get a 404 when it is not. That means you cannot move to a different domain here, even though this looks like the endpoint that would. Use [Replace the email domain](/api-reference/replace-the-email-domain) for that.

The change applies at once and does not re-run verification, so a domain that was `active` keeps sending.

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json patch /api/apps/{app_id}/custom-email-domains
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - ApiKeyAuth: []
paths:
  /api/apps/{app_id}/custom-email-domains:
    patch:
      summary: Update email sender details
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Changes the name and address your app's mail is sent from.


        Both fields are required, so send the current value for whichever you
        are not changing.


        `from_email` picks which domain you are editing: its part after the `@`
        has to be a domain already set up on this app, and you get a 404 when it
        is not. That means you cannot move to a different domain here, even
        though this looks like the endpoint that would. Use [Replace the email
        domain](/api-reference/replace-the-email-domain) for that.


        The change applies at once and does not re-run verification, so a domain
        that was `active` keeps sending.


        <Note>This endpoint accepts a personal API key. Workspace API keys are
        not authorized for it and are rejected with a 403.</Note>
      operationId: update_email_domain_api_apps__app_id__custom_email_domains_patch
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app whose email domains you want to work with.
            title: App Id
          description: ID of the app whose email domains you want to work with.
          example: 6820f3a4e7b91d003c45a1f2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEmailDomainRequest'
      responses:
        '200':
          description: The updated sender details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateEmailDomainResponse'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, the app does not exist, you used
            a workspace API key, or the domain is suspended.
        '404':
          description: '`from_email`''s domain is not set up for email on this app.'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    UpdateEmailDomainRequest:
      properties:
        sender_name:
          type: string
          title: Sender Name
          description: >-
            Name recipients see in the From line. Required, so resend the
            current value to keep it.
          example: Nordwind Furniture
        from_email:
          type: string
          format: email
          title: From Email
          description: >-
            Address mail is sent from. Its domain picks which of the app's email
            domains you are editing and has to be one already set up.
          example: hello@example.com
      type: object
      required:
        - sender_name
        - from_email
      title: UpdateEmailDomainRequest
      description: Request to update email domain configuration.
    UpdateEmailDomainResponse:
      properties:
        sender_name:
          type: string
          title: Sender Name
          description: The name now in use.
          example: Nordwind Furniture
        from_email:
          type: string
          title: From Email
          description: The address now in use, lower-cased.
          example: hello@example.com
        domain:
          type: string
          title: Domain
          description: The domain this configuration belongs to.
          example: example.com
        configuration_status:
          type: string
          title: Configuration Status
          description: Where setup stands. Updating these fields does not change it.
          example: active
      type: object
      required:
        - sender_name
        - from_email
        - domain
        - configuration_status
      title: UpdateEmailDomainResponse
      description: Response for updating email domain configuration.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````