List landing page templates

Overview

Dual-mode listing of landing-page templates.

  • Campaign flow (store_id present): returns every selectable template (store + caller company + global), unpaginated and without usage counts — a <select> source. If store_id is passed in the request, the result is returned without pagination.
  • Account-level (store_id omitted): scopes by account(s), excludes global templates, paginates, and adds per-row campaign-usage counts. A partner sees all their accounts, or one account via account_id; an account user sees their own account.

Rows carry company_name (owning account name; null for globals) and the appended unique_code.

Prerequisites

  • A bearer token in the Authorization header.

Base URL

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

Endpoint

GET /api/v1/campaign/template/landing-page/list

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.

  • bearer token, account or partner role — authentication. Account scoping derives from user.person.company and its bundle_id (the company type — 1 = partner, 2 = location, 3 = account).

Rate limit

  • No rate limit.

Query parameters

FieldTypeRequiredDescription
store_idintegerOptionalCampaign-flow mode: scope to a store + return all templates unpaginated. Must be in the caller's hierarchy.
account_idintegerOptionalPartner-only: narrow the account-level listing to one of the caller's accounts. Ignored if not the caller's.
pageintegerOptionalAccount-level pagination; min 1. Ignored if store_id is present.
per_pageintegerOptionalAccount-level pagination; 10–100 (values below 10 are raised to 10), default 10. Ignored if store_id is present.

How it works

  • Synchronous. Campaign flow: 200 OK with data.response only. Account-level: 200 OK with data.response and data.meta (current_page/per_page/total/last_page). 422 on invalid store_id.

Response

200 OK (account-level, paginated) · 200

{
  "data": {
    "status": "success",
    "response": [
      {
        "id": 1,
        "value": 1,
        "label": "Summer Campaign Landing Page",
        "company_id": 30,
        "company_name": "Board & Brew",
        "unique_code": "aBcDeFg",
        "sms_campaign_count": 2,
        "email_campaign_count": 1
      }
    ],
    "meta": {
      "current_page": 1,
      "per_page": 10,
      "total": 1,
      "last_page": 1
    }
  }
}

200 OK (campaign flow, store_id) · 200

{
  "data": {
    "status": "success",
    "response": [
      {
        "id": 1,
        "value": 1,
        "label": "Summer Campaign Landing Page",
        "company_id": 30,
        "company_name": "Board & Brew",
        "unique_code": "aBcDeFg"
      }
    ]
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
422Returned on invalid store_id
500Unexpected server error

Example request

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

Did this page help you?