List accounts with inactive plans

Overview

Get a paginated list of accounts under the authenticated partner that have no active store-plan subscription. Each entry includes the owner email, cancelled-location count, and last plan name.

Prerequisites

  • A bearer token. Callable with Partner tokens.

Base URL

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

Endpoint

GET /api/v1/partner/account/inactive-plan-list

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.
  • Who can call it: Partner tokens.
  • Authentication is under partner/account.
  • The controller hard-requires the caller's company to be bundle_id == 1 (partner) else 403.
  • Scope is the partner's own account tree, matched via partner.id = company.id OR partner.company_id = company.id.
  • The result excludes any account id that currently has an active store_plan.

Rate limit

  • No rate limit.

Query parameters

  • Query: limit (integer, optional) — page size, default 10.
  • Query: page (integer, optional) — page number.

Response

  • data.data[].id (integer) — account company id.
  • data.data[].company_name (string) — account name.
  • data.data[].client_account_id (string|null) — partner-supplied external id.
  • data.data[].email (string|null) — owner user email.
  • data.data[].store_ids (string|null) — comma-separated cancelled store ids (GROUP_CONCAT).
  • data.data[].total_cancelled_location (integer) — count of cancelled stores.
  • data.data[].plan_name (string|null) — last account plan name.

200 Success · 200

{
  "data": {
    "current_page": 1,
    "data": [
      {
        "id": 42,
        "company_name": "Acme Brand",
        "email": "[email protected]",
        "total_cancelled_location": 3,
        "plan_name": "ResponseScribe"
      }
    ],
    "total": 1,
    "per_page": 10,
    "last_page": 1
  }
}

403 Not a partner · 403

{
  "message": "Forbidden",
  "status": "error",
  "errors": "Only partner can access this endpoint!"
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
403Not a partner
422The request failed validation — the response names the fields
500Unexpected server error

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/partner/account/inactive-plan-list?" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?