Account-user location list (POST)
Overview
Returns a paginated list of stores accessible to the authenticated user. Each row is joined out to full location, account, and geographic detail (city, then state, then country) plus the active store_plan with its plan features, and a generated connect_page_url. Backs getUserStoreWithLocation.
Prerequisites
- A bearer token. Callable with Partner and Account tokens.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
POST /api/v1/store/list
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Who can call it: Partner and Account tokens.
-
(Partner or Account user) — authentication, role-agnostic
store/group. -
Default scope is (the caller's own accessible stores).
-
When you supply
company_idit scopes for that company. When you supplystore_idit narrows to that one store. -
Both
company_idandstore_idmust sit inside your own account tree. A partner can reach any store under its tree. An account user is confined to its own account's stores.
Rate limit
- No rate limit.
Request body
- Query:
page(integer, optional) — pagination page. - Body:
| Field | Type | Required | Description |
|---|---|---|---|
sort_field | string | optional | one of store_name, address, zip, city_name, state_code, company_phone, country_name, state_name, storeid, account_name (default store_name) |
sort_by | string | optional | asc / ASC / desc / DESC (default ASC) |
search_field | string | optional | same column set as sort_field |
search_value | string | optional | term; validated by NameNoAngleBrackets |
active_plan | int (0|1) | optional | 1 = only stores with an active plan |
company_id | int | optional | must exist (bundle_id 1/2/3, not deleted) + an ownership check |
store_id | int | optional | must exist:store + an ownership check |
limit | int | optional | page size (default 10) |
{
"sort_field": "store_name",
"sort_by": "ASC",
"search_field": "store_name",
"search_value": "Main St",
"active_plan": 1,
"company_id": 5,
"limit": 10
}Response
data.data[].id(integer) — store id.data.data[].account_name(string) — parent account name.data.data[].store_name,store_full_name,storeid,client_location_id(string) — store identity.data.data[].address,address1,address2,zip(string|null) — location address.data.data[].country_id/_name/_code,state_id/_name/_code,city_id/_name— geo joins.data.data[].company_phone(string|null).data.data[].brand_company_id(integer) — parent account company id.data.data[].connect_page_url(string) — generated connect-review-sites URL.data.data[].active_store_plan(object|null) —{ id,store_id, plan_id, status, plan_start, plan_end, cancel_subscription_at, plan: { id, plan_name, features: [{ id, plan_id, feature_name, options }] } }.
200 Success · 200
200{
"data": {
"current_page": 1,
"data": [
{
"id": 34,
"account_name": "HiPages Brand 1",
"store_name": "Jean Test Location",
"store_full_name": "Jean Test Location - JEAN-1778215061",
"storeid": "JEAN-1778215061",
"client_location_id": "demo-hp-34",
"address": "1 Test Street",
"address1": "1 Test Street",
"address2": null,
"zip": "2000",
"country_id": 1,
"country_name": "Afghanistan",
"country_code": "AF",
"state_id": 3901,
"state_name": "Badakhshan",
"state_code": "BDS",
"city_id": 1,
"city_name": "Ashkāsham",
"company_phone": null,
"active_store_plan": {
"id": 21,
"store_id": 34,
"plan_id": 11,
"status": "active",
"plan_start": "2026-05-08T04:37:42.000000Z",
"plan_end": "2026-05-31T23:59:59.000000Z",
"cancel_subscription_at": null,
"plan": {
"id": 11,
"plan_name": "HiPages Review Management",
"features": [
{
"id": 72,
"plan_id": 11,
"feature_name": "ai_response",
"options": []
},
{
"id": 73,
"plan_id": 11,
"feature_name": "review_flag",
"options": []
}
]
}
}
}
],
"per_page": 10,
"total": 12
}
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
422 | The request failed validation — the response names the fields |
500 | Unexpected server error |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/store/list" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"sort_field": "store_name", "sort_by": "ASC", "search_field": "store_name", "search_value": "Main St", "active_plan": 1, "company_id": 5, "limit": 10}'Updated 9 days ago
