Skip to content
View as Markdown

Templates ​

A template is a saved subject plus a text and/or HTML body. Create them on the Templates page or through the API, then send one by ID in a batch with template_id.

The Free plan can keep 3 templates; Pro is unlimited.

Create a template ​

bash
curl https://api.marleyfetch.com/v1/templates \
  -H "Authorization: Bearer $MARLEYFETCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Renewal reminder",
    "subject": "{{first_name}}, your {{plan}} plan renews soon",
    "html_body": "<p>Hi {{first_name}}, your {{plan}} plan renews next week.</p>",
    "text_body": "Hi {{first_name}}, your {{plan}} plan renews next week."
  }'

name and subject are required, plus at least one of text_body and html_body. When you are at your plan's limit, the API returns 403 with "error": "Template limit reached".

Placeholders ​

Write {{variable}} anywhere in the subject or bodies. When the template is sent to an audience, each placeholder is replaced with that member's payload value.

  • Names are case-sensitive: {{First_Name}} and {{first_name}} are different.
  • Spaces inside the braces are ignored: {{ first_name }} works.
  • A variable the member does not have becomes an empty string.

Placeholders are only filled from data in batches sent to an audience. In a batch to a plain recipients list every placeholder becomes empty, and /send sends them literally — so keep placeholders out of both.

Send a template ​

bash
curl https://api.marleyfetch.com/v1/send/batch \
  -H "Authorization: Bearer $MARLEYFETCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"template_id": 3, "audience_id": 12}'

Other operations ​

GET /v1/templatesAll your templates.
GET /v1/templates/{id}One template.
PUT /v1/templates/{id}Change any of name, subject, text_body, html_body.
DELETE /v1/templates/{id}Delete it. Batches already created are not affected.