Skip to main content
POST
/
v1
/
email-messages
/
{id}
/
preview
Send a preview of an email message
curl --request POST \
  --url https://app.loops.so/api/v1/email-messages/{id}/preview \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "emails": [
    "<string>"
  ],
  "contactProperties": {},
  "eventProperties": {},
  "dataVariables": {}
}
'
{
  "id": "cmn5zia4i0017tzli8ric8giv"
}
Content API endpoints are currently in beta and are subject to change.
Send a test email message to one or more addresses. Accepted variable fields depend on the parent’s type:
  • Campaign accepts contactProperties.
  • Workflow accepts contactProperties and eventProperties.
  • Transactional accepts dataVariables.
Supplying a field the parent cannot reference results in a 400 Bad Request error. Each team can send up to 100 preview emails per day.

Request

Path parameters

id
string
required
The ID of the email message.

Body

emails
string[]
required
One or more addresses to send the preview to.
contactProperties
object
Contact property values to render. Accepted for campaign and workflow previews.
eventProperties
object
Event property values to render. Accepted for workflow previews only.
dataVariables
object
Transactional data variables to render. Accepted for transactional previews only.

Response

Success

id
string
required
The ID of the email message the preview was sent for.

Error

If the request body is invalid or a variable field the parent cannot reference was supplied, a 400 Bad Request is returned. If the daily preview limit (100 per team per rolling 24 hour window) was reached, a 429 Too Many Requests is returned. A 404 Not Found is returned if the email message does not exist. If the API key is invalid (or content API is not enabled for your team), a 401 Unauthorized is returned.
message
string
required
An error message describing what went wrong.
{
  "id": "cmn5zia4i0017tzli8ric8giv"
}
Last modified on June 22, 2026