---
title: "Get email template"
method: GET
path: "/api/apps/{app_id}/emails/{template_id}"
---

# Get email template

`GET /api/apps/{app_id}/emails/{template_id}`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/apps/{app_id}/emails/{template_id}`
- Auth: HTTP bearer

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

Returns one of the app's email templates with its HTML.

An app's email templates are files in its code, in `base44/emails/`. The AI creates and edits them through [Send chat message](/api-reference/send-chat-message).

This is limited to 60 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, including a read-only key. Workspace API keys are not accepted.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Path parameters

- `app_id` string, required: ID of the app the emails belong to.
- `template_id` string, required: ID of the email template to get. Get it from `id` in [List email templates](/api-reference/list-email-templates).

## Response `200`

The email template.

- EmailTemplateDetail: An email template with its HTML.
  - `id` string, required: ID of the template.
  - `app_id` string, required: ID of the app the template belongs to.
  - `name` string, required: Name of the template, from its file name: the template in `base44/emails/Welcome.html` is `Welcome`. A workflow's send email action or a backend function's `SendEmail` call picks the template by this name.
  - `created_date` string, date-time, required: When the template was created, as a UTC timestamp in ISO 8601 format.
  - `updated_date` string, date-time, required: When the template last changed, as a UTC timestamp in ISO 8601 format.
  - `html` string, required: The email as inbox-ready HTML. Its `<title>` is the default subject line. `{{variable}}` placeholders, such as `{{first_name}}`, stay as written. The sender fills them in.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: You don't have access to this app, the app is blocked, or you used a workspace API key.
- `404`: App not found, or the app has no email template with this ID.
- `429`: Rate limit exceeded. The base limit is 60 requests per minute. See [Rate limits](/developers/references/apps-api/get-started/rate-limits) for the multiplier your plan gets.

## Changes

- **2026-10-13** `06cfcce0bdd9`: 2 info
  - the security scope `read_only` was added to the endpoint's security scheme `PersonalAccessTokenAuth`
  - the security scope `full_access` was removed from the endpoint's security scheme `PersonalAccessTokenAuth`
- **2026-10-11** `80287813ab84`: 1 info
  - the endpoint scheme security `PersonalAccessTokenAuth` was added to the API
- **2026-10-10** `fc604cdcc3a2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/:app_id/emails/:template_id/get.md)

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) - [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) - [OpenAPI document](https://skmtc.dev/idealspot/apis/base44-app-management-api/revisions/b5b4ebd82a1e?raw)
