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
- A bearer token. See Authentication.
- The template's id (
emailTemplateId), from List email templates.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://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; otherwise422.
Rate limit
This endpoint has no rate limit.
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
emailTemplateId | path | integer | Yes | The template's id (value in List email templates). Must be one of your account's templates or a shared template. |
store_id | query | integer | No | A 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.
| Field | Type | Description |
|---|---|---|
status | string | success. |
data | object | The template. |
data.id | integer | The template's id. Use it as email_template_id. |
data.company_id | integer or null | The account that owns the template. null for a shared (global) template. |
data.store_id | integer or null | The location the template is tied to, or null. |
data.name | string | The template's name. |
data.subject | string or null | The email subject line. |
data.html_content | string or null | The email's HTML. |
data.json_content | object or null | The editor's design data. |
data.template_editor_mode | string or null | The editor used to author the template: custom or html_editor. |
data.template_type | string | regular or follow_up. |
data.manager_email | string or null | Manager email address saved on the template. |
data.other_manager_email | array of strings or null | More manager email addresses saved on the template. |
data.created_at | string or null | When the template was created (ISO 8601). null on some shared templates. |
data.updated_at | string or null | When the template was last changed (ISO 8601). |
data.deleted_at | string or null | Always 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."
]
}
}| Status | Meaning |
|---|---|
200 | The template. |
401 | The token is missing, expired or invalid. |
404 | The template has been deleted. |
422 | The template doesn't exist or belongs to another account, or store_id is outside your tree. |
500 | Unexpected 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'Updated 17 days ago
Did this page help you?
