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
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/store/current-plan
Authentication
Partner or Account token
store_idmust be an existing location inside your own account tree; otherwise422. 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
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
store_id | query | integer | Yes | The location's id. |
Request body
None.
Request payload
None.
Response body
The payload is inside data.
| Field | Type | Description |
|---|---|---|
currentPlan | object | The location's latest subscription, or an empty array [] when it never had a plan. |
currentPlan.store_plan_id | integer | The subscription's id. |
currentPlan.status | string | active, expired or close (cancelled or replaced). |
currentPlan.cancel_subscription_at | string or null | When it was cancelled, or null. |
currentPlan.plan_start | string | When the subscription started. |
currentPlan.plan_end | string | When the subscription ends. |
currentPlan.plan_id | integer | The plan's id. |
currentPlan.plan | string | The plan's name. |
currentPlan.price | number | The plan's price. |
currentPlan.daysRemaining | number | Days from now until plan_end. |
currentPlan.totalDays | number | The length of the subscription period, in days. |
currentPlan.features | array of strings | The features turned on in the plan, e.g. ai_response. |
who_will_pay | string or null | Who 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."]
}
}| Status | Meaning |
|---|---|
200 | The location's current plan. |
401 | The token is missing, expired or invalid. |
422 | store_id is missing, doesn't exist, or is outside your account tree. |
500 | Unexpected 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'Updated 17 days ago
Did this page help you?
