---
title: "Render the email editor canvas"
method: POST
path: "/engagement/emails/render-canvas"
tags: ["Engagement Email"]
---

# Render the email editor canvas

`POST /engagement/emails/render-canvas`

## Request

- Base URL: `https://api.gleap.io/v3`
- URL: `https://api.gleap.io/v3/engagement/emails/render-canvas`
- Auth: HTTP bearer

The editor canvas of an email: the email of the look (`emailStyle`) rendered around an
empty body, with `slot` marking where the body goes, and `css` that styles the editor's
content (TipTap markup under the `root` selector) like the renderer styles the body.
Takes the same values as `render-preview` except `message`. Nothing is stored or sent.

## Headers

- `project` string, required

## Request body

- RenderCanvasBody: Body of `render-canvas`: the preview body without the message, plus the editor's content selector.
  - `sender` union: A teammate id, or `{ id?, customSenderName? }`. Defaults to the current user.
    - string
    - object
      - `customSenderName` string
      - `id` string
  - `lang` string
  - `emailStyle` string, required
  - `subject` unknown
  - `preheader` unknown
  - `brand` unknown
  - `emailCategory` 'conversational' | 'marketing': Conversational emails show no unsubscribe line. Defaults to marketing (a newsletter).
  - `root` string, required: CSS selector of the editor's content element, e.g. `#email-canvas .ProseMirror`.

## Response `200`

Ok

- object
  - `slot` string, required
  - `css` string, required
  - `html` string, required

## Changes

- **2026-10-08** `d12d5ab961e5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gleap/apis/gleap-server/changes/engagement/emails/render-canvas/post.md)

---

[API](https://skmtc.dev/gleap/apis/gleap-server.md) - [All operations](https://skmtc.dev/gleap/apis/gleap-server/llms.txt) - [OpenAPI document](https://skmtc.dev/gleap/apis/gleap-server/revisions/3b025e883cef?raw)
