Get a location's current plan

Overview

See the plan a specific location is on right now, and who pays for it.

Use this when a location may differ from its account's default.

You'll need the store_id.

Returns the location's latest subscription: the plan, its dates, its price and its features. A location that never had a plan returns an empty currentPlan.

Prerequisites

  • A Partner or Account token. See Authentication.
  • The location's id (store_id).

Base URL

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

Endpoint

GET /api/v1/store/current-plan

Authentication

Partner or Account token

  • store_id must be an existing location inside your own account tree; otherwise 422. A Partner token reaches any location in its tree, an Account token only its own account's locations.

Rate limit

This endpoint has no rate limit.

Request parameters

ParameterInTypeRequiredDescription
store_idqueryintegerYesThe location's id.

Request body

None.

Request payload

None.

Response body

The payload is inside data.

FieldTypeDescription
currentPlanobjectThe location's latest subscription, or an empty array [] when it never had a plan.
currentPlan.store_plan_idintegerThe subscription's id.
currentPlan.statusstringactive, expired or close (cancelled or replaced).
currentPlan.cancel_subscription_atstring or nullWhen it was cancelled, or null.
currentPlan.plan_startstringWhen the subscription started.
currentPlan.plan_endstringWhen the subscription ends.
currentPlan.plan_idintegerThe plan's id.
currentPlan.planstringThe plan's name.
currentPlan.pricenumberThe plan's price.
currentPlan.daysRemainingnumberDays from now until plan_end.
currentPlan.totalDaysnumberThe length of the subscription period, in days.
currentPlan.featuresarray of stringsThe features turned on in the plan, e.g. ai_response.
who_will_paystring or nullWho pays for the location, e.g. partner.

Response payload

{
  "data": {
    "currentPlan": {
      "store_plan_id": 14935,
      "status": "active",
      "cancel_subscription_at": null,
      "plan_start": "2026-10-01T01:00:23.000000Z",
      "plan_end": "2026-10-31T23:59:59.000000Z",
      "plan_id": 36,
      "plan": "Growth — Unlimited",
      "price": 2,
      "daysRemaining": 30.287769756608796,
      "totalDays": 30.958055555555557,
      "features": [
        "ai_response",
        "review_flag",
        "response_to_past_reviews",
        "response_posting",
        "review_widgets",
        "review_solicitation_email",
        "review_solicitation_sms",
        "review_qr_code",
        "insight_report",
        "competitive_analysis",
        "per_pull_data"
      ]
    },
    "who_will_pay": "partner"
  }
}

Examples

Success payload

A location that never had a plan:

{
  "data": {
    "currentPlan": [],
    "who_will_pay": "partner"
  }
}

Error payload

422 store_id missing

{
  "message": "The store id field is required.",
  "errors": {
    "store_id": ["The store id field is required."]
  }
}

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 location's current plan.
401The token is missing, expired or invalid.
422store_id is missing, doesn't exist, or is outside your account tree.
500Unexpected server error.

Example request

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

Did this page help you?