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

> ## Agent Instructions
> Internal links on these pages omit the .md extension. Append .md to a docs page URL, or send an Accept: text/markdown header, to get that page as markdown.

# Preview application email

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

Renders one of the app's application emails as recipients get it, with sample values for their details.

Base44 sends four application emails for the app: password reset (`password_reset`), sign-up verification (`email_verification`), invitation (`user_invite`), and access approval (`access_approved`). They use the app's brand automatically. An app can send its own version of each instead, created with [Customize application email](/api-reference/customize-application-email). The preview shows the app's version whenever it's the one sent.

This is limited to 20 requests per minute per app for each workspace's personal API keys, so every key in a workspace shares one allowance. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key belonging to a user with access to the app. A read-only key is refused, and workspace API keys are not accepted.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/emails/system/{email_type}/preview
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/emails/system/{email_type}/preview:
    get:
      summary: Preview application email
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Renders one of the app's application emails as recipients get it, with
        sample values for their details.


        Base44 sends four application emails for the app: password reset
        (`password_reset`), sign-up verification (`email_verification`),
        invitation (`user_invite`), and access approval (`access_approved`).
        They use the app's brand automatically. An app can send its own version
        of each instead, created with [Customize application
        email](/api-reference/customize-application-email). The preview shows
        the app's version whenever it's the one sent.


        This is limited to 20 requests per minute per app for each workspace's
        personal API keys, so every key in a workspace shares one allowance.
        Some workspaces have a different limit.


        <Note>This endpoint accepts a personal API key belonging to a user with
        access to the app. A read-only key is refused, and workspace API keys
        are not accepted.</Note>
      operationId: >-
        preview_system_email_api_apps__app_id__emails_system__email_type__preview_get
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app the emails belong to.
            title: App Id
          description: ID of the app the emails belong to.
          example: 6820f3a4e7b91d003c45a1f2
        - name: email_type
          in: path
          required: true
          schema:
            type: string
            description: >-
              The application email: `password_reset`, `email_verification`,
              `user_invite`, or `access_approved`.
            title: Email Type
          description: >-
            The application email: `password_reset`, `email_verification`,
            `user_invite`, or `access_approved`.
          example: password_reset
      responses:
        '200':
          description: The rendered email.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationEmailPreview'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, the app is blocked, your API key
            is read-only, or you used a workspace API key.
        '404':
          description: >-
            App not found, or `email_type` isn't one of the four application
            emails.
        '429':
          description: >-
            Rate limit exceeded. The base limit is 20 requests per minute. See
            [Rate
            limits](/developers/references/apps-api/get-started/rate-limits) for
            the multiplier your plan gets.
components:
  schemas:
    ApplicationEmailPreview:
      properties:
        type:
          type: string
          enum:
            - password_reset
            - email_verification
            - user_invite
            - access_approved
          title: Type
          description: The application email.
          example: password_reset
        subject:
          type: string
          title: Subject
          description: The subject line recipients see.
          example: Reset your password for Acme Bookings
        html:
          type: string
          title: Html
          description: >-
            The email as HTML, with sample values in place of the recipient's
            details, such as the name `Alex` and a sample code or link.
          example: >-
            <!doctype html><html><body>Hi Alex, reset your password for Acme
            Bookings.</body></html>
        authored_template_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Authored Template Id
          description: >-
            ID of the app's own template for this email, or `null` when the app
            has none. Having one doesn't mean it's sent: for
            `email_verification`, `authored_status` says which version goes out.
            Delete it with [Delete email
            template](/api-reference/delete-email-template) to go back to the
            Base44 version.
          example: 68c1f0a2b3d4e5f6a7b8c9d0
        authored_status:
          anyOf:
            - type: string
              enum:
                - live
                - no_email_domain
                - awaiting_screen
                - rejected
                - missing_code
                - over_daily_budget
                - too_large
                - mjml
            - type: 'null'
          title: Authored Status
          description: >-
            Only for `email_verification`, which goes to people who haven't
            signed up yet, so the app's own version has extra requirements.
            `live` when the app's own version is sent. Otherwise, the reason the
            Base44 version is sent instead: `no_email_domain` until the app
            sends from its own email domain, `awaiting_screen` while the app's
            version is being reviewed, which can take up to an hour, `rejected`
            when it didn't pass review, `missing_code` when it doesn't show the
            verification code, `over_daily_budget` when it reached today's
            sending limit, `too_large` when it's too large to send, and `mjml`
            when it's written in MJML rather than HTML. `no_email_domain` is
            reported even when the app has no version of its own. `null` for the
            other emails, and for `email_verification` when the app's plan
            doesn't include its own version, or when the app sends from its own
            email domain but has no version of its own.
          example: live
      type: object
      required:
        - type
        - subject
        - html
        - authored_template_id
        - authored_status
      title: ApplicationEmailPreview
      description: An application email as the app sends it.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: 'Personal access token, sent as `Authorization: Bearer <token>`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.