---
title: "List the email templates"
method: POST
path: "/email-templates/list"
tags: ["Email Templates"]
---

# List the email templates

`POST /email-templates/list`

## Request

- Base URL: `https://api.reportingninja.com/v1`
- URL: `https://api.reportingninja.com/v1/email-templates/list`
- Auth: HTTP bearer

Returns the email templates of the account: the name, the format of the body, the sender, the reply-to address and the subject of each one. The body itself is not published, and the system template is not listed: /v1/schedules/list says which deliveries use it.

## Request body

- EmailTemplatesListRequest: No parameters.

## Response `200`

The call succeeded. This endpoint reports its errors with a real HTTP status, so a 200 always carries status=ok.

- EmailTemplatesListResponse
  - `status` 'ok', required
  - `data` EmailTemplatesListData, required: The email templates of the account, ordered by name.
    - `email_templates` EmailTemplate[], required
      - `email_template_key` string, required: The email template.
      - `name` string, nullable, required
      - `internal_notes` string, nullable: A note for the account's own staff.
      - `format` 'plain_text' | 'html', nullable, required: Whether the body is HTML or plain text.
      - `sender` string, nullable: The name the email is sent under.
      - `sender_email` string, nullable: The address the email is sent from.
      - `reply_to_email` string, nullable: The address a reply goes to.
      - `subject` string, nullable, required: The subject of the email.
    - `count` integer, required
  - `meta` Meta, required
    - `request_id` string, required: Id of this request, useful when reporting an incident.
    - `timestamp` string, date-time, required: When the answer was built, in UTC.

## Other responses

- `400`: The request was refused before anything was written. INVALID_REQUEST covers the framework refusals of every endpoint (the Content-Type is not application/json, the body could not be read, the body is not valid JSON). The report endpoints add their own: VALIDATION_FAILED with details.problems, UNKNOWN_PARAM with the path of the field the endpoint does not read, and the single-field refusals MISSING_REQUIRED_FIELD, INVALID_VALUE and APPEND_NOT_ALLOWED. The description of each operation lists the ones it emits. Everything else a body can get wrong arrives as an entry of details.problems rather than as the code of the envelope.
- `401`: Invalid or missing Bearer token.
- `413`: The request body is over 1 MB. The cap is applied before authentication, so this answer is refused without the key being read, and it carries the usual error envelope.
- `429`: A budget was spent. RATE_LIMITED is the per-key read budget (300/minute, 5000/day) or the per-account write budget (60/minute, 1000/day). EMAIL_QUOTA_REACHED is the separate budget of 50 calls per account per day that send email, and its Retry-After points at the next UTC midnight. The Retry-After header gives the seconds until the more restrictive window resets. The X-RateLimit-* headers report the read budget, except on the 429 of a write, where they report the write budget.
- `500`: Internal server error.

---

[API](https://skmtc.dev/reportingninja/apis/reporting-ninja-api.md) · [All operations](https://skmtc.dev/reportingninja/apis/reporting-ninja-api/llms.txt) · [OpenAPI document](https://skmtc.dev/reportingninja/apis/reporting-ninja-api/revisions/13876c71be34?raw)
