Get one email template

Overview

Get a template's full content.

Use this to load it for editing or preview. With store_id, the merge fields in html_content are filled in with that location's details.

You'll need the template id (value in List email templates).

Returns the template.

Prerequisites

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

GET /api/v1/campaign/template/email/{emailTemplateId}

Authentication

Account token

  • The template must belong to your account tree or be a shared (global) template; otherwise 422.
  • store_id, when sent, must be a location inside your own account tree; otherwise 422.

Rate limit

This endpoint has no rate limit.

Request parameters

ParameterInTypeRequiredDescription
emailTemplateIdpathintegerYesThe template's id (value in List email templates). Must be one of your account's templates or a shared template.
store_idqueryintegerNoA location to fill the merge fields in html_content from. Must be inside your account tree.

Request body

None.

Request payload

None.

Response body

The payload is inside data.

FieldTypeDescription
statusstringsuccess.
dataobjectThe template.
data.idintegerThe template's id. Use it as email_template_id.
data.company_idinteger or nullThe account that owns the template. null for a shared (global) template.
data.store_idinteger or nullThe location the template is tied to, or null.
data.namestringThe template's name.
data.subjectstring or nullThe email subject line.
data.html_contentstring or nullThe email's HTML.
data.json_contentobject or nullThe editor's design data.
data.template_editor_modestring or nullThe editor used to author the template: custom or html_editor.
data.template_typestringregular or follow_up.
data.manager_emailstring or nullManager email address saved on the template.
data.other_manager_emailarray of strings or nullMore manager email addresses saved on the template.
data.created_atstring or nullWhen the template was created (ISO 8601). null on some shared templates.
data.updated_atstring or nullWhen the template was last changed (ISO 8601).
data.deleted_atstring or nullAlways null here; deleted templates are not returned.

Response payload

{
  "data": {
    "status": "success",
    "data": {
      "id": 9084,
      "company_id": 5994,
      "store_id": 3007,
      "name": "Default Email Template",
      "subject": "Just checking in",
      "html_content": "<html><body><h1>Welcome!</h1></body></html>",
      "json_content": {
        "rows": []
      },
      "template_editor_mode": "custom",
      "template_type": "regular",
      "manager_email": null,
      "other_manager_email": null,
      "created_at": "2026-09-23T10:43:44.000000Z",
      "updated_at": "2026-09-23T10:43:44.000000Z",
      "deleted_at": null
    }
  }
}

Examples

Success payload

See Response payload. html_content and json_content are shortened here; the real values hold the full email.

A shared (global) template has no company_id or store_id:

{
  "data": {
    "status": "success",
    "data": {
      "id": 2,
      "company_id": null,
      "store_id": null,
      "name": "Follow-up : Warm & Simple",
      "subject": "Just checking in",
      "html_content": "<html><body><h1>Welcome!</h1></body></html>",
      "json_content": {
        "rows": []
      },
      "template_editor_mode": "custom",
      "template_type": "follow_up",
      "manager_email": null,
      "other_manager_email": null,
      "created_at": null,
      "updated_at": null,
      "deleted_at": null
    }
  }
}

Error payload

404 Template deleted

{
  "message": "Email template not found",
  "status": "error",
  "errors": []
}

422 Template doesn't exist

{
  "message": "The selected id is invalid.",
  "errors": {
    "id": [
      "The selected id is invalid."
    ]
  }
}

422 Not your template

{
  "message": "The selected email template does not belong to your company.",
  "errors": {
    "id": [
      "The selected email template does not belong to your company."
    ]
  }
}

422 Location outside your tree

{
  "message": "The selected store id does not belong to your company hierarchy.",
  "errors": {
    "store_id": [
      "The selected store id does not belong to your company hierarchy."
    ]
  }
}
StatusMeaning
200The template.
401The token is missing, expired or invalid.
404The template has been deleted.
422The template doesn't exist or belongs to another account, or store_id is outside your tree.
500Unexpected server error.

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/campaign/template/email/9084?store_id=3007" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?