Get one landing page template

Overview

Get a template's full content.

Use this to load it for editing. With store_id, the merge fields in html_content are filled in with that location's details. Add preview=true to also turn [allReviewSite] into the location's review sites (with their direct links) and show [customerName] as Customer, [senderName] as the location's name, and [paragraph_1] as empty.

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

Returns the template.

Prerequisites

Base URL

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

Endpoint

GET /api/v1/campaign/template/landing-page/{landingPageId}

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.

Rate limit

This endpoint has no rate limit.

Request parameters

ParameterInTypeRequiredDescription
landingPageIdpathintegerYesThe template's id (value in List landing page 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 a location inside your account tree.
previewquerybooleanNoWith store_id: also expand [allReviewSite] into the location's review sites and fill the customer fields with sample values.

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 landing_page_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.titlestringThe template's name.
data.descriptionstring or nullThe template's description, or null.
data.url_slugstring or nullURL slug, or null.
data.html_contentstring or nullThe page'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.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.enable_direct_to_managerboolean or nullDirect-to-manager option.
data.enable_direct_to_ownerboolean or nullDirect-to-owner option.
data.enable_direct_to_customerboolean or nullDirect-to-customer option.
data.created_atstring or nullWhen the template was created (ISO 8601).
data.updated_atstring or nullWhen the template was last changed (ISO 8601).
data.unique_codestringThe template's encoded id.

Response payload

{
  "data": {
    "status": "success",
    "data": {
      "id": 4548,
      "company_id": 5994,
      "store_id": null,
      "title": "Default Landing Page",
      "description": null,
      "url_slug": null,
      "html_content": "<p>Example content</p>",
      "json_content": {
        "rows": []
      },
      "template_editor_mode": "custom",
      "manager_email": null,
      "other_manager_email": null,
      "enable_direct_to_manager": false,
      "enable_direct_to_owner": false,
      "enable_direct_to_customer": false,
      "created_at": "2026-09-23T10:43:44.000000Z",
      "updated_at": "2026-09-23T10:43:44.000000Z",
      "unique_code": "89kri1"
    }
  }
}

Examples

Success payload

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

Error payload

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 landing page does not belong to your company.",
  "errors": {
    "id": [
      "The selected landing page does not belong to your company."
    ]
  }
}

422 Location doesn't exist

{
  "message": "The selected store id is invalid.",
  "errors": {
    "store_id": [
      "The selected store id is invalid."
    ]
  }
}
StatusMeaning
200The template.
401The token is missing, expired or invalid.
422The template doesn't exist or belongs to another account, or store_id doesn't exist.
500Unexpected server error.

Example request

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

Did this page help you?